Gedanken zur Release-Versionierung von Software-Projekten
Kürzlich habe ich auf Fryboyter diesen Artikel gelesen: Wie sollte man Veröffentlichungen versionieren?
Meine Gedanken zu dem Artikel und dem Thema möchte ich an dieser Stelle mit Fryboyter und euch teilen.
Fryboyter favorisiert nach eigener Darstellung Calendar Versioning (CalVer), da dies seiner Meinung nach aussagekräftiger ist, als z.B. 0.78.1, was sehr stark nach Semantic Versioning (SemVer) aussieht. Meiner Meinung nach kann man dies nicht pauschal sagen, da beide Versionsschemata ihre eigenen Vor- und Nachteile haben. Doch wann sollte man zu welchem Schema greifen?
Calendar Versioning
Die folgende Liste ist eine Übersetzung des englischen Textes, welcher hier zu finden ist. Wenn einer der in dieser Liste genannten Punkte auf ein Projekt zutrifft, scheint CalVer ein geeignetes Schema für die Versionierung zu sein.
- Hat Ihr Projekt einen großen oder ständig wechselnden Umfang?
- Große Systeme und Frameworks, wie Ubuntu und Twisted.
- Amorphe Gruppen von Dienstprogrammen, wie Boltons.
- Ist Ihr Projekt in irgendeiner Weise zeitkritisch? Beeinflussen externe Änderungen neue Projektveröffentlichungen?
- Geschäftliche Anforderungen, wie Ubuntus Fokus auf Unterstützungstermine.
- Sicherheitsupdates, wie certifi’s Notwendigkeit, Zertifikate zu aktualisieren.
- Politische Veränderungen, wie die Handhabung von Zeitzonenänderungen durch die IANA-Datenbank.
Einige Betriebssysteme wie z.B. Ubuntu haben einen festen Veröffentlichungsrythmus und Unterstützungszeitraum. So werden Ubuntu LTS Versionen ohne Zusatzverträge für 5 Jahre unterstützt und mit Aktualisierungen versorgt. Bei Ubuntu 24.04 LTS kann man bereits am Namen erkennen, wie alt dieses Release ist und wie lange es mit Aktualisierungen versorgt wird. Ubuntu veröffentlicht Aktualisierungen für die enthaltenen Pakete in unregelmäßigen Abständen, meist sobald diese verfügbar sind. Aufgrund der vielen enthaltenen Pakete und der Aktualisierungsrichtlinie scheint SemVer (siehe nächster Abschnitt) hier nicht vorteilhaft zu sein.
Bei Debian 12, RHEL 9 oder SLES 15 erkennt man das Datum der Veröffentlichung hingegen nicht. Hier hilft nur ein Blick in die jeweilige Versionshistorie der Projekte, um Informationen über den Zeitpunkt der Veröffentlichung und der jeweiligen Unterstützungszeiträume zu finden.
Semantic Versioning
Auf Grundlage einer Versionsnummer von MAJOR.MINOR.PATCH werden die einzelnen Elemente folgendermaßen erhöht:
Quelle: https://semver.org/lang/de/
1. MAJOR wird erhöht, wenn API-inkompatible Änderungen veröffentlicht werden,
2. MINOR wird erhöht, wenn neue Funktionalitäten, die kompatibel zur bisherigen API sind, veröffentlicht werden, und
3. PATCH wird erhöht, wenn die Änderungen ausschließlich API-kompatible Bugfixes umfassen.
SemVer ist stringent, einfach nachzuvollziehen und bietet für mich als Systemadministrator die folgenden Vorteile.
Wird PATCH erhöht, weiß ich, dass lediglich Fehler behoben wurden, sich am Funktionsumfang einer Anwendung jedoch nichts ändert. Das Einzige, was mir hierbei den Tag vermiesen kann, sind Regressionen. Das Risiko, dass irgendetwas kaputtgeht oder schlimmer wird, ist jedoch gering.
Wird MINOR erhöht, weiß ich, dass die Anwendung neue Funktionalität enthält und ich weiß, dass nun ein genauerer Blick erforderlich ist, um zu entscheiden, ob diese Funktionalität in meiner Umgebung bereitgestellt werden soll bzw. darf. Gegebenenfalls sind vor einer Aktualisierung Anwenderschulungen durchzuführen und interne Prozessbeschreibungen zu aktualisieren, bevor die neue Version zur Nutzung freigegeben werden kann.
Einem an Featureritis erkrankter Nerd mag jede neue Funktion gefallen. Unzureichend geplante Veröffentlichungen neuer Funktionen in Unternehmen können hingegen interessante Folgen haben.
Wird MAJOR erhöht, ist ein Blick in die Release Notes angeraten. Denn man weiß schon mit einem Blick auf die Versionsnummer, dass diese Version Breaking Changes enthält. Dies können sein:
- API-inkompatible Änderungen
- Entfallene bzw. entfernte Funktionalität
- Geänderte Architektur
- Geändertes Format der Konfigurationsdatei(en)
- etc.
Eine solche Aktualisierung kann man in aller Regel nicht ohne sorgfältige Planung installieren. Das Risiko, dass dabei etwas kaputtgeht und Stress und Produktionsausfall folgen ist einfach zu groß.
Aussagekraft
Fryboyter schreibt: „Zumal meiner Meinung nach 2024.10.11 aussagekräftiger als 0.78.1 ist.“
Aber ist es wirklich aussagekräftiger? Wenn ich nur das Datum sehe, weiß ich lediglich, wann die Version veröffentlicht wurde. Welchen Funktionsumfang die Version hat, welche Änderungen es zur vorhergehenden Version es gibt, ob diese Version stabil ist oder ob es die aktuellste Version ist, erkennt man nicht. Bei zwei Daten erkennt man zumindest, welches die aktuellere Version ist.
Sehe ich nur 0.78.1, weiß ich nicht, wann diese Version veröffentlicht wurde. Ich sehe jedoch auf den ersten Blick, dass sich diese Version in einer initialen Entwicklungsphase befindet, der Funktionsumfang nicht abschließend definiert ist und sich jederzeit ändern kann. Kurz gesagt, mit jeder weiteren Erhöhung von MINOR und PATCH ist damit zu rechnen, dass sich das Verhalten und der Funktionsumfang signifikant ändern. Da die einzelnen Elemente bei SemVer ausschließlich erhöht jedoch nie gesenkt werden, kann man bei Vorliegen von zwei Versionsnummern der gleichen Anwendung erkennen, welches die aktuellere ist. Details zu Änderungen gegenüber der Vorgängerversion verrät SemVer zwar auch nicht, doch kann ich den Umfang der Änderungen erkennen. Für mich besitzt SemVer damit in den meisten Fällen die größere Aussagekraft.
Die Frage wann es Zeit für Version 1.0.0 ist, beantwortet SemVer wie folgt:
Wenn die Software schon in der Produktion verwendet wird, sollte sie bereits in Version 1.0.0 vorliegen. Falls eine stable API existiert, auf die sich Nutzer bereits verlassen, sollte es ebenfalls die Version 1.0.0 sein. Auch wenn Kompatibilität zu vorherigen Versionen bereits eine wichtige Rolle spielt, ist Version 1.0.0 angebracht.
Quelle: https://semver.org/lang/de/#woher-wei%C3%9F-ich-wann-es-zeit-ist-version-100-zu-ver%C3%B6ffentlichen
Abschließende Bemerkung
Ich gehöre tendenziell eher zu Team SemVer und denke, dass dies eine höre Aussagekraft als CalVer besitzt.
Grundsätzlich halte ich es für sinnvoll und wichtig, wenn sich Entwickler bzw. Organisationen Gedanken machen, welches Versionsschema am besten zu ihrem Projekt passt.
Wie denkt ihr darüber? Hinterlasst doch gern einen Kommentar mit eurer Meinung oder veröffentlicht einen eigenen Text dazu in eurem Blog.
Mit diesem Beitrag und diesem Video möchte ich zeigen, welche Maßnahmen ich auf einem Ubuntu 24.04 System ergreife, um es nach meinen Bedürfnissen anzupassen. Dazu zählen z.B. Snap durch Flatpak zu ersetzen, wie ich Apps installiere, welche Apps und was ich so an Feinschliff für einen Ubuntu Desktop bei mir selbst anwende und wie ich […]
Am Mittwoch bestätigte der Linux-Häuptling, dass letzte Woche etwa ein Dutzend Kernel-Maintainer aus Russland entfernt wurden. Am 18. Oktober veröffentlichte der Linux-Kernel-Entwickler Greg Kroah-Hartman eine Nachricht in der Linux-Mailingliste, in der er mitteilte, dass einige Entwickler aus der MAINTAINERS-Datei gestrichen wurden. Seine Erklärung blieb vage: “Einträge wurden aufgrund von verschiedenen Compliance-Anforderungen entfernt,” schrieb Kroah-Hartman. “Sie […]
Das Gnome Projekt hat das erste Point-Release für die derzeit aktuelle Gnome 47-Serie veröffentlicht. Das erste Wartungsupdate kümmert sich um die Beseitigung von Fehlern und Abstürzen und bringt diverse Verbesserungen mit. GNOME 47.1 verbessert unter anderem in den Schnelleinstellungen die Barrierefreiheit. Es behebt Probleme mit Schatteneffekten und ungleichmäßigen Abständen in den Benachrichtigungen. Außerdem wird nun […]
Wenn es um Betriebssysteme geht, stehen die meisten Menschen vor der Wahl zwischen Windows und Linux. Diese beiden Plattformen haben unterschiedliche Philosophien, Zielgruppen und technische Besonderheiten aber gemeinsam, dass sie auf einem klassischen 64-bit Computer laufen. Während Windows als das weltweit am häufigsten verwendete Betriebssystem gilt, erfreut sich Linux vor allem bei Technikbegeisterten, Entwicklern und […]
Signal erweitert seine Videokonferenz-Features, um stärker gegen Zoom und Teams zu konkurrieren. Der Messenger-Dienst setzt dabei auf Datenschutz und einfache Bedienung. Nutzer können in Kürze Anruflinks erstellen und teilen. Diese Links erlauben es mehrere Personen zu Konferenzen einzuladen. Eine neue Admin-Funktion ermöglicht es auf Wunsch Teilnehmer individuell zu bestätigen. Die Anruflinks sind, wie die Anrufe […]
Letzten Donnerstag feierte Canonical das 20-jährige Ubuntu-Jubiläum. Zeitgleich wurde Ubuntu 24.10 “Oracular Oriole” veröffentlicht. Doch bereits jetzt blickt Canonical auf die nächste Version, Ubuntu 25.04. Diese wird im April 2025 erscheinen. Heute wurde der erste Entwicklungsschritt gemacht. Statt eines Daily Builds wurde der Codename enthüllt: Plucky Puffin. „Plucky Puffin“ lässt sich am besten als „tapferer […]
Das Asahi-Projekt arbeitet seit einigen Jahren daran, Linux nativ auf Macs mit Apple-Silicon-Prozessoren zum Laufen zu bringen. Dabei wird Linux nicht als Gastsystem unter macOS ausgeführt, sondern direkt nach dem Einschalten des Rechners geladen. Im letzten Jahr wechselte das Projekt von der Distribution Arch Linux zu Fedora, was zu einer verbesserten Entwicklung führte. Nun wurden […]
Das Entwicklerteam der KDE neon Linux-Distribution hat KDE neon 6.2 veröffentlicht. Diese Version basiert auf der neuesten Ubuntu 24.04 LTS (Noble Numbat) Serie und bringt u.a. KDE Plasma 6.2. KDE neon kombiniert den Ubuntu Unterbau mit Langzeitpflege mit der neuesten KDE-Software und Plasma-Desktopumgebung. Die Distribution nutzt eine Art Rolling-Release-Modell, sodass Benutzer keine neuen ISO-Dateien herunterladen […]
Das KDE-Projekt hat KDE Plasma 6.2 veröffentlicht, das zweite große Update der KDE Plasma 6 Serie. Dieses Update bringt viele neue Funktionen und Verbesserungen mit sich, die sowohl die Benutzerfreundlichkeit als auch die Leistung betreffen. Zu den Highlights von KDE Plasma 6.2 gehören neue Energiemanagement-Funktionen. Dazu zählen eine Helligkeitssteuerung pro Monitor, die Möglichkeit, Apps zu […]
Ubuntu 24.10, mit dem Codenamen „Oracular Oriole“, stellt die neueste Entwicklung der beliebten Linux-Distribution dar und bringt zahlreiche spannende Neuerungen und Verbesserungen mit sich. Diese Version konzentriert sich stark auf die Verfeinerung der Benutzeroberfläche, Leistungsoptimierungen und eine verbesserte Hardwareunterstützung. Gleichzeitig integriert sie die neuesten Technologien, wie den GNOME 47-Desktop und den Linux-Kernel 6.11. In diesem […]
Canonical hat die neueste stabile Version von Ubuntu veröffentlicht. Sie enthält aktuelle Komponenten und neue Funktionen. Ubuntu 24.10 läuft mit dem neuesten Linux 6.11-Kernel. Für die Desktop-Version wurde GNOME 47 mit zusätzlichen Patches für Mutter und GNOME Shell integriert. Diese verbessern Stabilität und Leistung. Außerdem visualisiert das Ubuntu-Dock jetzt Snap-Aktualisierungen. Neu ist die Sicherheitszentrale-App, mit […]
Die Entwicklung von openSUSE Leap 16.0 wurde kürzlich in einer Vorabversion, der sogenannten “pre-Alpha”, gestartet. Diese frühe Version steht der Öffentlichkeit bereits zur Verfügung und kann von Interessierten heruntergeladen und getestet werden. Es ist jedoch wichtig zu betonen, dass diese Vorabversion noch erheblichen Veränderungen unterliegt und die finale Version von Leap 16.0 in späteren Phasen […]
Die Diskussion über einen KI-Assistenten für Linux wirft grundlegende Fragen zu den Werten und der Philosophie des Betriebssystems auf. Linux wird für seine Anpassungsfähigkeit und Benutzerkontrolle geschätzt, was im Widerspruch zu der Idee steht, einen KI-Assistenten einzuführen, der Aufgaben automatisiert und den Lernprozess von Nutzern potenziell beeinträchtigt. Dennoch könnte ein KI-Assistent in vielen Bereichen von […]
Mein neuer Udemy Onlinekurs „Ubuntu Masterclass – Ein Komplettkurs zu Ubuntu LTS (Ubuntu 24.04) für Privat und Business“ ist ab sofort online. Zum Start zum vergünstigten Preis. In diesem umfassenden Kurs tauchst Du ein in die Welt von Ubuntu Desktop, einer der beliebtesten Linux-Distributionen. Egal, ob du ein absoluter Anfänger oder bereits Vorkenntnisse hast, dieser […]
Ubuntu 24.10 unterstützt nun offiziell das Snapdragon-betriebene Lenovo ThinkPad X13s über das generische ARM64 ISO, was eine bedeutende Verbesserung darstellt. Zuvor war es möglich, Ubuntu 23.10 auf diesem Gerät zu nutzen, jedoch nur mit einem speziellen ISO für das ThinkPad. Für die Version 24.04 LTS gab es keinen offiziellen Installer. Mit Ubuntu 24.10 kann jedoch […]
Im veröffentlichten monatlichen Newsletter für September gibt Clement Lefebvre, der Leiter des Linux Mint Projekts, einen ersten Einblick in das neue Standard-Design der Cinnamon-Oberfläche, die mit Linux Mint 22.1 noch in diesem Jahr erscheinen wird. Die Veröffentlichung von Linux Mint 22.1 ist für Dezember 2024 geplant, kurz vor den Weihnachtsfeiertagen. Es wird mit der neuen […]
In der OpenPrinting Common Unix Printing System (CUPS) auf Linux-Systemen wurden neue Sicherheitslücken entdeckt. Unter bestimmten Bedingungen könnten diese Schwachstellen eine Fernbefehlsausführung ermöglichen. Ein entfernter, nicht authentifizierter Angreifer kann dabei unbemerkt bestehende Drucker-URLs durch bösartige URLs ersetzen. Sobald ein Druckauftrag von diesem Computer gestartet wird, kann der Angreifer beliebige Befehle mit den entsprechenden Benutzerrechten ohne […]
Die Document Foundation hat die allgemeine Verfügbarkeit von LibreOffice 24.8.2 angekündigt. Dies ist das zweite Wartungsupdate der neuesten LibreOffice 24.8 Office-Suite-Serie und behebt über 80 Fehler. Zwei Wochen nach LibreOffice 24.8.1 ist das Update 24.8.2 da. Es behebt weitere lästige Fehler, Abstürze und andere Probleme, die von Nutzern gemeldet wurden. Dies sollte die Stabilität und […]
In diesem Beitrag vergleichen wir Kubuntu und KDE neon – zwei beliebte Linux-Distributionen, die den KDE Plasma-Desktop auf Ubuntu Basis verwenden. Beide haben Gemeinsamkeiten, aber auch wesentliche Unterschiede, besonders in Bezug auf Zielgruppe, Update-Zyklus und Benutzerfreundlichkeit. Ob du ein Anfänger oder ein KDE-Fan bist, wir schauen uns an, welche Option für dich besser geeignet ist. […]
Die Aufregung in der Linux-Community wächst, denn sowohl Ubuntu 24.10 als auch Fedora 41 sind nun in der öffentlichen Beta-Phase. Tester und Enthusiasten können sich darauf freuen, die neuesten Funktionen und Verbesserungen dieser beiden beliebten Distributionen auszuprobieren. Ubuntu 24.10 „Oracular Oriole“ Die Beta von Ubuntu 24.10, mit dem Codenamen „Oracular Oriole“, bringt eine Reihe von […]
Voyager Linux 24.04 Gnome ist eine spezielle Linux-Distribution, die auf Ubuntu 24.04 LTS basiert und die beliebte Gnome-Desktop-Umgebung verwendet. Diese Version wurde entwickelt, um ein elegantes, modernes und dennoch stabiles Betriebssystem zu bieten. Sie richtet sich an Benutzer, die sowohl auf Optik als auch auf Leistung Wert legen. Dabei bleibt Voyager leichtgewichtig und flexibel, sodass […]
Zorin OS 17.2 wurde veröffentlicht und bringt viele Verbesserungen. Die Anpassung des Desktops ist nun einfacher mit neuen Optionen wie benutzerdefinierten Cursor-Themes und einem überarbeiteten Fensterverwaltungsbereich. Auch LibreOffice wurde auf eine frische Version aktualisiert, was die Kompatibilität mit Microsoft-Dokumenten und die Leistung verbessert. Weitere Apps wurden vorinstalliert, um Software-Updates zu minimieren. Sicherheits- und Hardwarekompatibilität wurden […]