Was gebaut ist
Eine Version ist ein benannter Stand, auf den man sich beziehen kann und der sich nicht still ändert. SnapSite versioniert vier Dinge: Daten, die Ontologie, Regeln und Software. Jede Aussage, jede Prüfung und jede Auslieferung nennt die Version, auf die sie sich bezieht.
Vier Dinge mit Version
Begriff · Ontologie
Die gemeinsame Beschreibung einer Organisation: Objekttypen mit Eigenschaften, Beziehungen, Regeln und Handlungen, als Daten mit Version, Herkunft und Recht.
Daten haben Stände, die zu einem Stichtag und einem Wissensstand abrufbar sind. Die Ontologie hat Versionen wie Code, mit verträglichen und unverträglichen Änderungen. Regeln haben Fassungen, die nie überschrieben werden. Software hat Versionen, die als Paket ausgeliefert werden, jede mit einem Digest.
Alle vier folgen demselben Gedanken: Was einmal gewirkt hat, wird nicht gelöscht, sondern abgelöst.
Wie man sich bezieht
Ein Name allein genügt nicht, denn Namen wie die jüngste Version zeigen morgen auf etwas anderes. Eine Version heißt deshalb nach dem Prüfwert ihres Inhalts: bei Software der Digest des Manifests, bei Ontologie und Regeln eine Nummer mit Prüfwert. Wer sich auf eine Version bezieht, bekommt genau diese Bytes oder einen Fehler.
Zweige und Rücknahme
Änderungen entstehen auf Zweigen und werden nach Vergleich und Freigabe zusammengeführt. Die Hauptlinie ist ein Zeiger auf einen Stand. Eine Rücknahme setzt den Zeiger auf den vorigen Stand und ist ein Eintrag im Verlauf, kein Eingriff in Daten.
Versionen in Aussagen
Begriff · Nachweis
Der signierte Datensatz einer Prüfung: Handlung, Zustand, Regeln, Ergebnis und Voraussetzungen, mit Prüfwert, Signatur und Zeitstempel. Er lässt sich ohne Zugang zum System nachrechnen.
Abfragen, Handlungen und Rechte nennen die Version der Ontologie, gegen die sie geschrieben sind. Ein Nachweis nennt die Fassung der Regeln, ein Rollout den Digest. Darum lässt sich später beantworten, wonach damals entschieden wurde.
Wovon sie sich unterscheidet
Eine Version ist keine Zeit: Gültigkeitszeit und Erfassungszeit sagen, wann etwas galt und wann es bekannt war, eine Version sagt, welcher Stand von Regeln, Ontologie oder Software dabei benutzt wurde. Sie ist auch kein Commit, denn ein Commit beschreibt einen Quellstand, eine Version einen Stand, der geprüft und benannt ist.
Grenze
- Grenze
- Die Versionierung ist Bauweise. Gebaut sind der Prototyp von Freigabe und Protokoll und ein Demonstrator von KALKÜL; ausgelieferte Versionen und eine Ontologie als laufendes System bestehen nicht.
Fragen
- Darf eine Version geändert werden?
- Nein. Eine Änderung ergibt eine neue Version. Die alte bleibt lesbar, solange Nutzer sie nennen.
- Wie viele Versionen stehen gleichzeitig in Betrieb?
- So viele, wie die Kanäle und Linien vorsehen. Welche Umgebung auf welchem Stand läuft, ist abfragbar.
Quellen
- Semantic Versioning 2.0.0Gedanke der Hauptversion für unverträgliche Änderungen.
- OCI Image Format SpecificationOpen Container Initiative. Adressierung von Images über den Digest.