Codequalität und CodesicherheitTopDie OpenVAS Quelltext-KarteQuelltext-Zweige für stabile und Entwicklungsversionen

Quelltext-Zweige für stabile und Entwicklungsversionen

Wenn Sie den OpenVAS-Quelltext zum ersten Mal anschauen, fragen Sie sich wahrscheinlich, wozu all diese „branches“ (Zweige) und „tags“ (Markierungen) gut sind und warum die meisten Änderungen im „trunk“ (Stamm) passieren.

Wie viele andere Projekte nutzt OpenVAS das Konzept von Zweigen und Markierungen, um wichtige Schritte in der Quelltextverwaltung festzuhalten. Wie Sie eventuell bereits bemerkt haben, finden so gut wie alle Änderungen am Quelltext im Stamm statt. Der Stamm ist der Ort, wo Fehler beseitigt werden und neue Funktionalität zuerst erscheint. 2

Wenn ein Module sich stabilisiert hat und die Änderungen an diesem Modul von anderen Entwicklern geprüft wurden, findet eine Entscheidung über ein neues Release statt. Die Absicht, eine neue Version zu veröffentlichen, wird im Allgemeinen auf der Mailingliste der Entwickler geäußert; wenn sich dazu eine Zustimmung findet, wird ein Release vorbereitet. Als Teil des Releaseablaufs wird die aktuelle Revision des Moduls markiert („tagged“) und erscheint unter den Tags mit einer neuen Versionsnummer, beispielsweise openvas-client-release-2.1.0.

Eine markierte Version ist eine Momentaufnahme des Quelltextes zum Zeitpunkt des Releases; dieser erlaubt es unter anderem Benutzern, alte Versionen problemlos aus der Quelltextverwaltung abzurufen, falls dies notwendig werden sollte. Eine markierte Version wird nicht mehr weiterentwickelt. Sollten Änderungen an einer markierten Version notwendig werden, werden diese Änderungen im Stamm oder in dem ursprünglichen Zweig des Moduls vorgenommen und ein neues Release mit einer neuen Versionsnummer erstellt.

Wie Sie anhand des letzten Satzes vermuten können, unterscheiden sich Zweige und Markierungen dadurch, dass in einem Zweig Weiterentwicklungen stattfinden können. Der Quelltext wird in der Regel verzweigt, wenn größere Änderungen anstehen, die den Stamm für eine gewisse Zeit instabil machen werden oder mit älteren Versionen nicht mehr kompatibel sein werden. Ein Grund für das Verzweigen ist, dass so größere Änderung möglich sind und gleichzeitig eine getrennter Zweig erhalten bleibt, indem rasch kleinere Fehler an bereits veröffentlichten Versionen vorgenommen werden können.

Beispielsweise könnte nach der Veröffentlichung der Version 2.1.5 des Moduls openvas-client der Beschluss gefasst werden, dass bevorstehende größere Änderungen eine Verzweigung rechtfertigen. Dies führt dazu, dass eine neuer Zweig mit dem Namen openvas-client-2-1 erstellt wird. Weitere Releases aus der 2.1er-Serie (2.1.6, 2.1.7) werden aus diesem Zweig erstellt, während die größeren Änderungen im Stamm letztlich in der Veröffentlichung der Version 2.2.0 münden werden.

Falls Fehler im Quelltext gefunden werden, die sowohl den Stamm als auch einen oder mehrere Zweige betreffen, werden diese Fehler im Allgemeinen zuerst im Stamm behoben und dann in die einzelnen Zweige übertragen. Die Übertragung für als „backporting“ bezeichnet. Diese „Backports“ stellen den Großteil der Änderungen dar, die in einem Zweig geschehen. Es sollte nur äußert selten notwendig sein, eine Änderung in die Gegenrichtung zu übertragen, also Änderungen in einem Zweig in den Stamm zurückzuführen. Entwickler sollten es nach Möglichkeit vermeiden, Änderungen an einem Zweig vorzunehmen die noch nicht am Stamm durchgeführt wurden, solange kein zwingender Grund dafür besteht.


Codequalität und CodesicherheitTopDie OpenVAS Quelltext-KarteQuelltext-Zweige für stabile und Entwicklungsversionen