Der cURL Releasezyklus

Mi, 17. August 2022, Ralf Hersel

Manchmal ist es interessant, einen tieferen Einblick in das Vorgehen in einem FLOSS-Projekt zu erhalten. Nun hat Daniel Stenberg, der Release Manager des cURL-Projektes, den Release Zyklus vorgestellt. cURL ist eine Programmbibliothek und ein Kommandozeilen-Programm zum Übertragen von Dateien in Rechnernetzen.

Wie man der Grafik entnehmen kann, handelt es sich um ein getaktetes Vorgehen: Jeder Releasezyklus dauert genau 56 Tage, also acht Wochen. Dabei hat das Einhalten der Zeit eine höhere Priorität als der Inhalt, welcher an die Zeitvorgabe angepasst wird.

1 - Margin Fenster

Ein neuer Zyklus beginnt mit dem Tag der Veröffentlichung. Das Release wird direkt aus dem Master-Git-Zweig erstellt, wird signiert, hochgeladen, gebloggt und die Nachricht verbreitet. An diesem Tag beginnt das "Release-Margin-Fenster". In diesem Zeitfenster nimmt das Team immer noch Fehlerbehebungen an und führt sie in den Master-Zweig ein, aber es werden keine Änderungen oder neuen Funktionen bearbeitet.

Die fünf Tage dienen dazu, um ein Gefühl dafür zu bekommen, wie die vorherige Version aufgenommen wurde. Wurde ein schwerwiegender Fehler gemeldet? Wenn ein schwerwiegender Fehler gemacht wurde, wird evtl. beschlossen, bald eine neue Version zu veröffentlichen, bevor Änderungen in den Versionszweig integriert wurden. Falls ein Patch-Release beschlossen wurde, wird das Feature-Fenster übersprungen und es geht direkt zum Feature-Freeze über.

2 - Feature Fenster

Wenn das Margin-Fenster ohne Probleme durchlaufen wurde, geht der Prozess am Montag, der auf die vorangegangene Veröffentlichung folgt, in das Feature Fenster über. Dies ist die Phase, in der zusätzlich zu den normalen Bugfixes (sofern es welche gibt) Änderungen und neue Features eingepflegt werden.

Das Feature-Fenster ist 23 Tage lang geöffnet. Idealerweise haben die Leute schon eine Weile an ihren Pull-Requests gearbeitet und gefeilt, bevor sich dieses Fenster öffnet und dann kann die Arbeit ziemlich schnell zusammengeführt werden. Was genau als Änderung und was als Fehlerbehebung gilt, ist Ansichtssache und kann diskutiert werden, aber das Team tendieren dazu, im Zweifelsfall den sichereren Ansatz zu wählen.

3 - Features Freeze

In den 28 Tagen vor der anstehenden Veröffentlichung führt das Team nur Bugfixes in den Master-Zweig ein. Alle Features und Änderungen werden in eine Warteschlange gestellt und müssen warten, bis sich das Feature-Fenster wieder öffnet. Ausnahmen können für experimentelle und nicht standardmäßige Funktionen gemacht werden.

Diese Phase ist dafür gedacht, dass sich die Dinge beruhigen, dass grobe Kanten geglättet werden und dass alle Fehler, die bei den vorherigen Zusammenführungen von Funktionen gemacht wurden, behoben werden. Nach dem Feature Freeze beginnt der Releasezyklus erneut.

Mehr Details und weitere Informationen zum cURL Releasezyklus finden sich in der Quelle.

Quelle: https://daniel.haxx.se/blog/2022/08/16/the-curl-release-cycle/

Tags

Release, Zyklus, Vorgehen, Curl