Ruby Core

Jetzt ist die beste Zeit, die weitere Entwicklung von Ruby zu verfolgen. Durch das in den letzten Jahren gestiegene Interesse an Ruby besteht ein wachsender Bedarf an Talenten, die bei der Verbesserung von Ruby und der Dokumentation seiner Bestandteile mitwirken. Also, womit willst Du anfangen?

Die hier behandelten Themen zur Entwicklung von Ruby sind Folgende:

Die Ruby-Entwicklung über Git verfolgen

Das aktuelle Haupt-Repository mit dem neuesten Ruby-Quellcode ist git.ruby-lang.org/ruby.git. Zusätzlich existiert auch ein Mirror auf GitHub. Verwende im Allgemeinen bitte diesen Mirror.

Du kannst über Git den neuesten Quellcode von Ruby beziehen. Von deiner Kommandozeile:

$ git clone https://github.com/ruby/ruby.git

Der Ordner ruby wird jetzt den neuesten Quellcode für die Entwicklungsversion von Ruby beinhalten (ruby-trunk).

Siehe dazu auch das Dokument Non-committer’s HOWTO to join our development.

Wenn du Commit-Berechtigung hast und etwas pushen möchtest, solltest du das Haupt-Repository verwenden.

$ git clone git@git.ruby-lang.org:ruby.git

Ruby verbessern, Patch für Patch

Das Kernteam betreibt einen Issue-Tracker für das Beisteuern von Patches und Fehlerberichte an Matz und die Gang. Diese Berichte werden auch an die Ruby-Core Mailingliste zur Diskussion gesendet. So kannst du sicher sein, dass deine Anfrage nicht unbemerkt bleibt. Du kannst Patches auch direkt an die Mailingliste senden. Wie auch immer, du bist herzlich eingeladen an der entstehenden Diskussion teilzunehmen.

Bitte schau dir den Leitfaden für Patch-Autoren an. Dort findest du einige Tips direkt von Matz dazu, wie deine Patches berücksichtigt werden können.

Als Zusammenfassung, die Schritte zur Erstellung eines Patches sind:

  1. Checke den Ruby-Quellcode von GitHub aus. Patches für Bugfixes oder neue Features sollten für den trunk von Rubys Quellcode abgegeben werden.

    $ git clone https://github.com/ruby/ruby.git
    

    Wenn du einen Bug in einem Maintenance-Branch fixen willst, dann checke eine Kopie dieses Branches aus.

    $ git checkout ruby_X_X
    

    X_X sollte durch die auszucheckende Version ersetzt werden.

  2. Füge deine Verbesserungen zum Code hinzu.

  3. Erstelle einen Patch.

    $ git diff > ruby-changes.patch
    
  4. Erstelle ein Ticket im Issue-Tracker oder maile deinen Patch an die Ruby-Core Mailingliste mit einem ChangeLog-Eintrag zu deinem Patch.

  5. Wenn zu dem Patch keine Bedenken angemeldet werden, dann wird den Committern die Berechtigung erteilt, ihn zu übernehmen.

Bitte beachte: Patches sollten als unified diff abgegeben werden. Siehe die diffutils Referenz für mehr Informationen dazu, wie Patches übernommen werden.

Die Diskussion zur Ruby-Entwicklung findet auf der Ruby-Core Mailingliste statt. Wenn du also neugierig bist, ob sich dein Patch lohnt oder du eine Diskussion zur Zukunft von Ruby starten möchtest, dann zögere nicht, an Bord zu kommen. Sei gewarnt: Off-Topic-Diskussionen werden auf dieser Liste nicht toleriert. Der Lärmpegel sollte niedrig, Themen sollten pointiert, gut durchdacht und formuliert sein. Da wir uns an den Schöpfer von Ruby wenden, sollten wir etwas Ehrfurcht an den Tag legen.

Behalte im Hinterkopf, dass viele Kernentwickler von Ruby in Japan leben. Viele sprechen hervorragendes Englisch, aber trotzdem bleibt ein erheblicher Zeitzonen-Unterschied. Außerdem gibt es neben den englischen auch eine ganze Menge japanische Entwicklungs-Mailinglisten. Sei geduldig. Wenn deine Anfrage nicht gelöst wird, dann bleib dran - versuch es ein paar Tage später nochmal.

Hinweis zu Branches

Der Ruby-Quellcode wurde bis zum 22. April 2019 über Subversion verwaltet. Daher werden manche Zweige immer noch über Subversion gepflegt. Du kannst das SVN-Repository betrachten.

Normalerweise musst du dich darum aber nicht kümmern (außer wenn du ein Branch-Maintainer bist). Du kannst Branches in deiner Git-Arbeitskopie auschecken, zum Beispiel über folgendes Kommando.

$ git checkout ruby_X_X

X_X sollte durch die auszucheckende Version ersetzt werden.

Wenn du die Zweige modifizieren möchtest, dann öffne bitte ein Issue im Issue-Tracker. Siehe auch den nachfolgenden Abschnitt.