Files changed: - kb/concepts/INDEX.md - kb/concepts/KB Stack Versioning.md - kb/entities/INDEX.md - kb/entities/projects/Chemenu.md - kb/entities/tools/wikitool.md - kb/index.md - kb/log.md - kb/sources/INDEX.md - kb/sources/Source - Version Part Nomenclature and Breaking Change Gate Session 2026-09-02.md - raw/notes/Conversation Transcript - Version Part Nomenclature and Breaking Change Gate Session 2026-09-02.md
3.7 KiB
type, source_type, author, raw_files, source_language, date, tags, entities, concepts, summary
| type | source_type | author | raw_files | source_language | date | tags | entities | concepts | summary | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| types/source.md | notes | Torben Nehmer |
|
de | 2026-09-02 |
|
|
Sitzung, die die Versionsstelle als Kompatibilitaets- statt Migrationsfrage praezisiert und einen Freigabe-Ablauf fuer Breaking Changes in stack-dev einfuehrt |
Source: Version Part Nomenclature and Breaking Change Gate Session 2026-09-02
Autor: Torben Nehmer
Datum: 2026-09-02
Raw-Dateien: raw/notes/Conversation Transcript - Version Part Nomenclature and Breaking Change Gate Session 2026-09-02.md
Typ: Notes
Zusammenfassung
Umsetzung von Gitea-Issue #26: Die Doku des Stacks führte für die Wahl der Versionsstelle zwei
Fragen zusammen, die nicht dieselbe sind - ob der Korpus migriert werden muss, und ob der
Wechsel ein Drop-in-Ersatz ist. Nur version bump --help unterschied korrekt; die drei
prosaischen Stellen (stack-dev, version.py-Docstring, INSTALL.md) beschrieben MAJOR als
Migrationsfrage. Der 2.0.0-Rebranding-Bump hatte genau daran zuerst 1.9.0 statt --major
angesetzt.
Der Nutzer schärfte die Regel während der Sitzung zu einem konkreten zweiseitigen Test nach: "die neue version ist kein drop-in replacement. Sobald irgendwie Hand angelegt werden muss, sei es durch den user oder durch ein Migrationsscript, ist es ein major version change. selbiges gilt, wenn ein update nicht rückgängig gemacht werden kann [...] in allen Fällen muss bei einem Major version change ein 'Breaking Change' vermerkt werden. breaking changes sind damit teuer. passe stack-dev so an, dass in diesen Fällen zwingend der user informiert, Alternativen aufgezeigt und eine freigabe eingeholt wird." Zwei Auswahlentscheidungen davor: Durchsetzung im Code statt reiner Prosa (weil Prosa bereits einmal gedriftet war), und die Freigabe als "Decision point" statt als Gate-Sprache, um die drei echten code-erzwungenen Gates nicht zu verwässern.
Kernaussagen
- Kompatibilität (Drop-in-Ersatz, vorwärts wie rückwärts) und Inhaltsmigration sind zwei
unabhängige Fragen; MAJOR beantwortet die erste,
--no-migration/ein Migrationsdokument die zweite. - Ein Grenzübertritt kann
kb/völlig unangetastet lassen und trotzdem MAJOR sein - Katalog: Update-Pfad, Release-Artefaktname, Paket-Import-Name, ein umbenanntes Kommando/Flag/Envvar, die Shape einer maschinengelesenen Datei. - Ein Breaking Change ist teuer (jede bestehende Instanz zahlt einmal, von Hand) und deshalb genehmigungspflichtig: Bruch, Handarbeit je Instanz und Alternativen (Shim, aufschieben und bündeln, aufspalten mit Deprecation-Fenster) vorlegen, dann Freigabe abwarten.
- Reine Prosa-Regeln drifted - deshalb wurde
--breakingals Pflichtflag samt zweiter, von der Migrationsprüfung unabhängigerdocs verify-Prüfung eingeführt, nicht nur eine Textänderung.
Aufgaben
Keine offenen Aufgaben aus dieser Sitzung - Issue #26 wurde in derselben Sitzung geschlossen,
mit Verweis auf Commit 31662dc (2.5.0).
Nicht übernommen
- Die vollständige Katalog-Tabelle und der
2.0.0-Fallbeispiel-Text ausinstructions/dev/version-parts.mdwerden hier nicht wiederholt - die Datei ist die autoritative Quelle (Instruktions-Layer,manual-artig durch dieinstructions/dev/-Grenze), diese Source-Seite fasst nur zusammen, was zur Entscheidung führte. - Der genaue Wortlaut der Tool-Fehlermeldungen (
version bump-Refusals) steht im Transkript selbst; hier nur die Regel dahinter.