Jetzt ist die beste Zeit, die weitere Entwicklung von Ruby zu verfolgen, denn Ruby 2.0 ist in Arbeit. Durch das erhöhte Interesse an Ruby, welches sich in den letzten Jahren entwickelt hat, besteht ein steigender Bedarf an Talenten, die bei der Verbesserung von Ruby und der Dokumentation seiner Teile mitwirken. Also, womit willst Du anfangen?

Die hier behandelten Themen zur Entwicklung von Ruby sind Folgende:

Subversion zur Entwicklung von Ruby nutzen

Mit dem folgenden Kommandozeilenbefehl kannst du den aktuellsten Quelltext von Ruby über Subversion herunterladen (auschecken):

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

Das Verzeichnis ruby enthält nun den vollständigen Quelltext der Entwicklerversion Ruby 1.9. Bitte bedenke, dass es sich bei dieser Version um die absolut neuste Variante von Ruby handelt. Sie wird ständig weiterentwickelt und wird erst am Ende des Jahres 2007 offiziell veröffentlicht.

Wenn du Interesse an der Verbesserung von Ruby 1.8 hast, solltest du dir den Branch ruby_1_8 genauer anschauen. Über den folgenden Kommandozeilenbefehl kannst du den Quelltext auschecken:

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

Damit hast du die aktuelle Entwicklerversion des offiziellen Ruby 1.8 Zweiges in das Verzeichnis ruby_1_8 heruntergeladen. Entwickler die einen Patch für diese Version entwickeln, werden darum gebeten ebenfalls einen Patch für die Entwicklerversion 1.9 zu erstellen. Aufgrund dessen sollten die Versionen 1.8 und 1.9 sich einander ähneln, mit der Ausnahme von Erweiterungen an der Sprache Ruby selbst.

Bei Interesse besteht die Möglichkeit das Ruby Repository über den Webbrowser zu begutachten.

Für weiterführende Informationen bezüglich Subversion bietet sich das englischsprachige Subversion FAQ und das ebenfalls englischsprachige Subversion Buch an.

Ruby verbessern, Patch für Patch

Rubyforge bietet einen Bug-Tracker, für das Melden von Fehlern und Übersenden von Patches an Matz und die Anderen. Die Fehlerreports gehen parallel auch zur Diskussion an die Ruby-Core Mailing-Liste, womit keine Fehlermeldung unbeachtet bleibt.

Zusammendfassend sind folgende Schritte für das Erstellen eines Patches erforderlich:

  1. Eine Kopie von Ruby 1.8 aus dem CVS auschecken. Dabei das Tag ruby_1_8 verwenden.
     $ cvs -z4 -d :pserver:anonymous@cvs.ruby-online.co.uk:/src \
         co -r ruby_1_8 -d ruby-1.8 ruby
    
  2. Hinzufügen der eigenen Verbesserungen (im Verzeichnis ruby-1.8.)
  3. Einen Patch erstellen.
     $ cvs diff > ruby-1.8-changes.patch
    
  4. Abschicken des neuen Patches.

Bitte beachten: Patche sollten als unified diff abgeschickt werden. Wer mehr über das Zusammenführen (Merge) der Patche wissen will, sollte sich die diffutils reference ansehen.

Diskussionen zum Thema Entwicklungszusammenführung finden sich unter Ruby-Core mailing list. Wer herausfinden will, ob sein Patch sinn macht oder nur eine Diskussion über die Zukunft von Ruby anfangen will, sollte nicht zögern an Bord zu kommen. Es wird an dieser Stelle davor gewarnt, Off-Topic Diskussionen zu führen, da diese in der Liste nicht akzeptiert werden. Es sollte klar kommuniziert und aussagefähige Überschriften verwendet werden. Schließlich wird hier der Erfinder von Ruby angesprochen, daher lasst uns ein wenig Respekt haben.

Es sollte klar sein, dass das Kernteam in Japan lebt. Obwohl die meisten sehr gut Englisch sprechen, gibt es aber auch noch einen signifikanten Unterschied in der Zeitzone zu beachten. Es existieren übrigens auch komplett Japanisch-sprachige Listen neben den englischen Pendants. Man sollte nur die Ruhe bewahren, wenn eine Antwort nicht sofort zurückkommt. Notfalls kann die gleiche Anfrage ein paar Tage später nochmal gestellt werden.

Regeln für Core-Entwickler

Allgemein sollten Entwickler von Ruby mit den Sourcen und dem Entwicklungstil des Teams vertraut sein. Zum besseren Verständnis, sollten die folgenden Richtlinien beim Einchecken ins CVS beachtet werden:

  • Alle Änderungen sollten im Changelog gemäß den GNU-Konventionen erfasst werden. (Viele Core-Entwickler von Ruby nutzen den add-log Modus von Emacs: C-x 4 a)
  • Der Check-in Zeitstempel sollte in Japan Standard Time (UTC+9) angegeben werden.
  • Die Punkte im Changelog sollten als Kommentar beim Einchecken verwendet werden. Dieser Kommentar wird automatisch nach einem Commit an die Ruby-CVS-Liste gemailt.
  • K&R Funktionsdeklarationen werden überall im Ruby-Sourcecode verwendet.
  • Bitte keine C++ Kommentare // verwenden. Das Ruby-Wartungsteam bevorzugt stattdessen die Mehrzeilenkommentare von Standard-C (/* .. */).