Es hört sich so an, als würden Sie normale Konventionen umgehen, nur um Prozess-Overhead / Audits zu vermeiden. Das ... kommt mir besorgniserregend vor.
Effektiv macht eine zusätzliche Versionsnummer (Ihre minderjährigen PCI digit) etwas absichtlich , um Ihre Funktion / Minor - Versionsnummern zu bewegen , was Sie tun sichern einen Platz, um nicht mehr ausgelöst , Ihre internen Kriterien Prüfung.
Um Ihre Frage zur semantischen Versionierung zu beantworten, heißt es in der Spezifikation zur semantischen Versionierung :
Wenn Sie eine Versionsnummer MAJOR.MINOR.PATCH haben, erhöhen Sie Folgendes:
- MAJOR-Version, wenn Sie inkompatible API-Änderungen vornehmen,
- MINOR-Version, wenn Sie Funktionen abwärtskompatibel hinzufügen, und
- PATCH-Version, wenn Sie abwärtskompatible Fehlerbehebungen vornehmen.
- Zusätzliche Labels für Vorabversionen und Build-Metadaten sind als Erweiterung des MAJOR.MINOR.PATCH-Formats verfügbar .
Betonung meiner.
Die Frage ist also, ob Sie das vierte Zeichen für Vorabversions- / Build-Metadaten verwenden. Oder handelt es sich im Grunde genommen um eine andere Versionsangabe, die Sie veröffentlichen?
Wenn "Ja", dann erlaubt die Spezifikation der semantischen Versionierung dies. Wenn "nein", folgen Sie der semantischen Versionierung technisch nicht.
Und als übergeordnete und fragwürdigere Nebenfrage, spielt es überhaupt eine Rolle?
Ob Sie sich strikt daran halten wollen oder nicht, müssen Sie und Ihr Team entscheiden. Der Zweck der semantischen Versionierung besteht darin, die API-Kompatibilität zu verbessern:
Fehlerkorrekturen, die sich nicht auf die API auswirken, erhöhen die Patch-Version, abwärtskompatible API-Ergänzungen / -Änderungen erhöhen die Nebenversion und abwärts inkompatible API-Änderungen erhöhen die Hauptversion.
Ich nenne dieses System "Semantic Versioning". In diesem Schema geben die Versionsnummern und die Art und Weise, wie sie sich ändern, Auskunft über den zugrunde liegenden Code und darüber, was von einer Version zur nächsten geändert wurde.
Mit diesem System wird klarer, wenn die Versionsverwaltung nachgeschaltete Benutzer der API betrifft.
Solange Ihre API ähnlich klar ist, ist es keine große Sache, wie Sie sich entscheiden. Semantische Versionierung ist einfach unkompliziert, zum Beispiel, wenn ich 3.4.2 verwende und ein Upgrade auf 3.4.10 durchführen muss. Ich weiß, dass ich das tun kann, ohne etwas zu beschädigen. Wenn die neue Version 3.5.1 ist, weiß ich, dass sie abwärtskompatibel ist. Und ich weiß, dass Version 4.0.1 eine bahnbrechende Änderung sein würde.
Das ist alles ein Teil dessen, was die Versionsnummern bedeuten.
@enderland Ja im Grunde. MAJOR (PCI) .MINOR (PCI) .FEATURE.HOTFIX + BUILD. Grundsätzlich dürfen wir nur die 3. und 4. Komponente ändern, ohne dass PCI (und anschließend die PCI-Overlords im Unternehmen) involviert sind. Für mich scheint dies ein wenig erfunden zu sein. Ich bin nicht sicher, ob sie in der Art und Weise gerechtfertigt sind, wie sie die Versionsnummer verwalten, aber ich weiß nicht genug über PCI und den Prüfprozess, um etwas anderes zu sagen.
Ok, das ist in Ordnung. Sie haben ein System, das für Sie arbeitet und Ihren Bedürfnissen entspricht. Darum geht es bei der Versionierung.
Wenn Ihre API privat ist (nur intern ausgerichtet), spielt es keine Rolle, wie Sie die Version verwenden, solange dies für Sie und alle Benutzer sinnvoll ist. Wenn Sie viele andere Benutzer Ihrer API haben, die wissen möchten, was diese Version bedeutet, ist die Versionsverwaltung in einem Standardformat von Bedeutung.
Ein willkürliches Versionssystem wird Leute verwirren, die an andere Systeme wie die semantische Versionierung gewöhnt sind. Aber wenn niemand Ihr Versionsverwaltungssystem wirklich benutzt, außer den Leuten, die es erstellen - ist das eigentlich egal.