Avec l’arrivée de Ruby 2.0, participer au développement de Ruby est plus attrayant que jamais. Et du fait de l’attention toujours plus grande portée à ce langage depuis quelques années, les nouveaux talents sont les bienvenus afin d’améliorer Ruby, son code comme sa documentation. Par où commencer ?

Cette page couvre les sujets suivants :

Utiliser Subversion pour suivre le développement de Ruby

Pour récupérer la dernière version du code source Ruby, il faut réaliser un check out en se connectant au compte anonyme du dépôt Subversion. Dans un terminal :

 $ svn co http://svn.ruby-online.co.uk/repos/ruby/trunk ruby

Le répertoire ou dossier ruby contient maintenant le code source de Ruby 1.9 (tronc) dans sa dernière version. Il s’agit de la branche de développement de Ruby, dont l’objectif principal est la release 1.9.0 à la fin 2007.

Si vous êtes plutôt intéressé par le suivi des patchs appliqués à Ruby 1.8, l’actuelle version stable, récupérer cette branche par :

 $ svn co http://svn.ruby-online.co.uk/repos/ruby/branches/ruby_1_8

Les développeurs travaillant sur Ruby 1.8 doivent migrer leurs modifications sur la branche principale, de sorte qu’en général, les deux branches sont assez similaires, avec la notable exception des améliorations portées sur le langage lui-même par Matz et Nobu.

Vous pouvez également parcourir le dépôt Subersion en ligne.

Pour des informations sur le logiciel Subversion, voyez la Subversion FAQ et le Subversion book. Un excellent livre introductif est Pragmatic Version Control with Subversion.

Suivre Ruby 2.0, la création de YARV

Un des composants essentiels dans le développement de Ruby 2.0 est le projet YARV, travail de Sasada Koichi. YARV ajoute une machine virtuelle interne permettant l’accélération de l’exécution et le support d’un format bytecode pour la compilation des scripts Ruby.

Le code source de YARV peut être récupéré depuis son dépôt Subversion pour des tests personnels :

 $ svn co http://www.atdot.net/svn/yarv/trunk yarv

Pour la procédure d’installation, voir le fichier README. Le développeur principal, Koichi Sasada, fournit des listes de diffusions, un système de rapport de bugs et des notes techniques sur la page officielle du projet.

Améliorer Ruby, patch par patch

Rubyforge maintient un système de suivi des bugs permettant de transmettres patchs et rapports de bugs à Matz et l’équipe de développement. Ces rapports parviennent également à la liste de diffusion Ruby-Core, ils ne passent donc pas inaperçus.

Pour résumer, les grandes étapes pour proposer un patch sont :

  1. Récupérer une copie de travail de Ruby 1.8 depuis Subversion, sur la branche ruby_1_8 branch.
     $ svn co http://svn.ruby-online.co.uk/repos/ruby/branches/ruby_1_8
    
  2. Ajouter vos améliorations dans le code (dans le répertoire/dossier ruby_1_8 en local).
  3. Créer un patch.
     $ svn diff > ruby-1.8-changes.patch
    
  4. Envoyer ce patch.

Note importante : les patchs doivent être au format unified diff. Pour plus d’informations sur les patchs, leur devenir, voyez the diffutils reference.

Les discussions portant sur le développement de Ruby sont toutes regroupées sur la liste de diffusion Ruby-Core. Donc, si vous êtes curieux du devenir de votre patch, ou si vous voulez lancer une discussion sur le futur de Ruby, n’hésitez pas à venir y faire un tour. Prenez garde à ne pas lancer des hors-sujets, ils ne sont pas tolérés sur cette liste dont le niveau de bruit doit rester très bas. Les sujets doivent être précis, bien rédigés et conçus. Parmi les intervenants figurent les créateurs de Ruby, le respect mutuel est donc la norme.

Gardez également à l’esprit que les développeurs principaux de Ruby résident au Japon, et si la plupart parlent un excellent anglais, il y a un décalage horaire conséquent. Il existe également tout un groupe de listes de diffusion entièrement en japonais, similaires à leurs équivalent en anglais. Soyez patients, et n’hésitez pas à intervenir de nouveau après quelques jours si votre question n’a pas reçu de réponse.

Règles et usages pour les développeurs principaux

Les développeurs de Ruby devraient évidemment être à l’aise avec le code source et le style utilisé par l’équipe principale. Les principales règles à vérifier avant tout envoi vers le dépôt Subversion sont :
  • tout check in doit être décrit dans le ChangeLog, en respectant les conventions GNU. Plusieurs développeurs principaux utilisent le mode add-log d’Emacs à cette fin, mode s’activant par la combinaison C-x 4 a ;
  • les dates de check in doivent être données au Japan Standard Time (UTC+9) ;
  • les différents items de votre ChangeLog doivent également être mentionnés dans le résumé Subversion, car ce message est automatiquement transmis à la liste de diffusion Ruby-CVS après le commit ;
  • les déclarations de fonctions K&R sont utilisées dans l’ensemble du code source de Ruby et des extensions liées ;
  • pas de commentaire en style C++ (//), seul le commentaire multiligne est utilisé (/* .. */).