<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Semantic_Versioning</id>
	<title>Semantic Versioning - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Semantic_Versioning"/>
	<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Semantic_Versioning&amp;action=history"/>
	<updated>2026-08-26T00:34:53Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in dev.kaibel.net</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://dev.kaibel.net/index.php?title=Semantic_Versioning&amp;diff=160&amp;oldid=prev</id>
		<title>PhilKa: Die Seite wurde neu angelegt: „= Semantic Versioning (SemVer) = &#039;&#039;&#039;Semantic Versioning&#039;&#039;&#039; (kurz &#039;&#039;&#039;SemVer&#039;&#039;&#039;) ist ein Schema zur Versionsnummerierung von Software, das aus einer Versionsnummer &#039;&#039;&#039;MAJOR.MINOR.PATCH&#039;&#039;&#039; besteht. Ziel ist, aus der Versionsnummer zuverlässig abzuleiten, ob ein Update abwärtskompatibel ist und welche Art von Änderungen enthalten sind.  __TOC__  == Grundidee == Eine Version besteht aus drei Zahlen:  * &#039;&#039;&#039;MAJOR&#039;&#039;&#039; – Inkompatible/Breaking Änderungen (API-…“</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Semantic_Versioning&amp;diff=160&amp;oldid=prev"/>
		<updated>2026-01-27T12:44:08Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Semantic Versioning (SemVer) = &amp;#039;&amp;#039;&amp;#039;Semantic Versioning&amp;#039;&amp;#039;&amp;#039; (kurz &amp;#039;&amp;#039;&amp;#039;SemVer&amp;#039;&amp;#039;&amp;#039;) ist ein Schema zur Versionsnummerierung von Software, das aus einer Versionsnummer &amp;#039;&amp;#039;&amp;#039;MAJOR.MINOR.PATCH&amp;#039;&amp;#039;&amp;#039; besteht. Ziel ist, aus der Versionsnummer zuverlässig abzuleiten, ob ein Update abwärtskompatibel ist und welche Art von Änderungen enthalten sind.  __TOC__  == Grundidee == Eine Version besteht aus drei Zahlen:  * &amp;#039;&amp;#039;&amp;#039;MAJOR&amp;#039;&amp;#039;&amp;#039; – Inkompatible/Breaking Änderungen (API-…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Semantic Versioning (SemVer) =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Semantic Versioning&amp;#039;&amp;#039;&amp;#039; (kurz &amp;#039;&amp;#039;&amp;#039;SemVer&amp;#039;&amp;#039;&amp;#039;) ist ein Schema zur Versionsnummerierung von Software, das aus einer Versionsnummer &amp;#039;&amp;#039;&amp;#039;MAJOR.MINOR.PATCH&amp;#039;&amp;#039;&amp;#039; besteht. Ziel ist, aus der Versionsnummer zuverlässig abzuleiten, ob ein Update abwärtskompatibel ist und welche Art von Änderungen enthalten sind.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Grundidee ==&lt;br /&gt;
Eine Version besteht aus drei Zahlen:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MAJOR&amp;#039;&amp;#039;&amp;#039; – Inkompatible/Breaking Änderungen (API-Bruch)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MINOR&amp;#039;&amp;#039;&amp;#039; – Neue Features, abwärtskompatibel&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PATCH&amp;#039;&amp;#039;&amp;#039; – Bugfixes, abwärtskompatibel&lt;br /&gt;
&lt;br /&gt;
Beispiel: &amp;#039;&amp;#039;&amp;#039;2.4.1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* MAJOR = 2&lt;br /&gt;
* MINOR = 4&lt;br /&gt;
* PATCH = 1&lt;br /&gt;
&lt;br /&gt;
== Regeln ==&lt;br /&gt;
=== 1) MAJOR erhöhen ===&lt;br /&gt;
Erhöhe &amp;#039;&amp;#039;&amp;#039;MAJOR&amp;#039;&amp;#039;&amp;#039;, wenn du &amp;#039;&amp;#039;&amp;#039;breaking changes&amp;#039;&amp;#039;&amp;#039; einführst, also eine Änderung, die bestehende Nutzer/Integrationen bricht (z. B. entfernte/umbenannte API-Endpunkte, geänderte Parameter, geänderte Rückgabeformate).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiele:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Entfernen eines REST-Endpunkts&lt;br /&gt;
* Änderung von Pflichtfeldern in einem JSON-Request&lt;br /&gt;
* Umbenennen einer öffentlichen Funktion/Klasse&lt;br /&gt;
&lt;br /&gt;
=== 2) MINOR erhöhen ===&lt;br /&gt;
Erhöhe &amp;#039;&amp;#039;&amp;#039;MINOR&amp;#039;&amp;#039;&amp;#039;, wenn du &amp;#039;&amp;#039;&amp;#039;neue Funktionalität&amp;#039;&amp;#039;&amp;#039; hinzufügst, die abwärtskompatibel ist.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiele:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Neuer optionaler Parameter&lt;br /&gt;
* Neuer API-Endpunkt, der bestehende nicht verändert&lt;br /&gt;
* Zusätzliche Felder in einer Response (sofern Clients robust sind)&lt;br /&gt;
&lt;br /&gt;
=== 3) PATCH erhöhen ===&lt;br /&gt;
Erhöhe &amp;#039;&amp;#039;&amp;#039;PATCH&amp;#039;&amp;#039;&amp;#039;, wenn du &amp;#039;&amp;#039;&amp;#039;Bugfixes&amp;#039;&amp;#039;&amp;#039; oder interne Korrekturen veröffentlichst, ohne neue Features und ohne Breaking Changes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiele:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Fix eines Nullpointer/Exceptions&lt;br /&gt;
* Korrektur eines Berechnungsfehlers&lt;br /&gt;
* Security-Fix ohne API-Änderung&lt;br /&gt;
&lt;br /&gt;
== Pre-Release und Build-Metadaten ==&lt;br /&gt;
SemVer erlaubt Erweiterungen:&lt;br /&gt;
&lt;br /&gt;
=== Pre-Release ===&lt;br /&gt;
Format: &amp;#039;&amp;#039;&amp;#039;MAJOR.MINOR.PATCH-&amp;lt;label&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Pre-Releases sind &amp;#039;&amp;#039;&amp;#039;instabil&amp;#039;&amp;#039;&amp;#039; und haben eine niedrigere Priorität als die zugehörige Release-Version.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiele:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 1.2.0-alpha&lt;br /&gt;
* 1.2.0-alpha.1&lt;br /&gt;
* 1.2.0-beta&lt;br /&gt;
* 1.2.0-rc.1&lt;br /&gt;
&lt;br /&gt;
=== Build-Metadaten ===&lt;br /&gt;
Format: &amp;#039;&amp;#039;&amp;#039;MAJOR.MINOR.PATCH+&amp;lt;build&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Build-Metadaten beeinflussen &amp;#039;&amp;#039;&amp;#039;nicht&amp;#039;&amp;#039;&amp;#039; die Versions-Priorität.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiele:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 1.2.3+20260127&lt;br /&gt;
* 1.2.3+git.abc123&lt;br /&gt;
&lt;br /&gt;
== Vergleich (Priorität) ==&lt;br /&gt;
Die Reihenfolge richtet sich nach MAJOR, dann MINOR, dann PATCH.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1.0.0 &amp;lt; 2.0.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1.2.0 &amp;lt; 1.3.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1.2.3 &amp;lt; 1.2.4&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pre-Releases sind kleiner als das Release:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1.2.0-alpha &amp;lt; 1.2.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1.2.0-rc.1 &amp;lt; 1.2.0&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Was gilt als „API“? ==&lt;br /&gt;
In SemVer ist die Definition deiner &amp;#039;&amp;#039;&amp;#039;öffentlichen API&amp;#039;&amp;#039;&amp;#039; zentral. Als API zählt alles, worauf Nutzer/andere Systeme sich verlassen:&lt;br /&gt;
&lt;br /&gt;
* Öffentliche Funktionen/Klassen/Methoden&lt;br /&gt;
* CLI-Parameter und Exit-Codes&lt;br /&gt;
* REST-/GraphQL-Endpunkte, Request/Response-Schemas&lt;br /&gt;
* Events, Message-Formate, Daten*&lt;/div&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
</feed>