Testsuite nicht mehr ausliefern, und dist upgrade räumt weggefallene Dateien verlässlich ab #113

Closed
opened 2026-09-17 19:45:10 +00:00 by torben · 4 comments
Owner

Ergebnis

Erledigt am 2026-10-03. Ausgeliefert im 8.0.0-Kandidaten als 8.0.0-beta.33; die Bump war --minor.

Commit Inhalt CI
0d3499a Code, Tests, Doku-Abgleich 521, 522 grün
bd12831 Abschlussphase: docs/ownership-and-templates.md 523 grün

Seitdem gilt:

  • dist export liefert tools/chemenu/tests/, tools/pytest.ini und tools/.coveragerc nicht mehr aus. Der Ausschluss geht per exaktem Pfad (TOOLS_DEV_ONLY).
  • dist upgrade entscheidet eine nicht mehr ausgelieferte Datei im selben Lauf, der sie verschwinden sieht:
    • unverändert seit der Installation: Sie wird gelöscht, samt leer gewordener Verzeichnisse.
    • geändert seit der Installation: Das Upgrade blockiert, bis --take-release (löscht sie) oder --keep-local (sie gehört ab dann der Instanz) entscheidet.
    • --prune wird akzeptiert und bewirkt nichts.

Verifiziert:

  • Lokal:
    • volle Suite: 2175 passed, 3 skipped, auch unter env -i mit leerem HOME
    • docs verify und instructions verify grün
    • ein echter Export ohne Suite und ohne Konfiguration
  • Upgrade von Ende zu Ende: Der Export von dd565d2 (8.0.0-beta.32, mit Suite und __pycache__) wurde mit dem neuen Code auf den neuen Export gehoben. Gelöscht wurden genau die 78 nicht mehr ausgelieferten Dateien und die 4 leer gewordenen Verzeichnisse.
  • CI: Läufe 521 und 522 sind grün, einschließlich des Replays von setup-instance.md gegen den frischen Export.

Abweichung vom Entwurf:

  • tools/README.md § Tests steht in dist:strip-Markern.
  • tools/CONTRACT.md § Tests ist dagegen umformuliert statt gestrippt: Suite und Konfiguration liegen nur im Ursprungs-Repo. Grund: test_the_commands_region_survives_dist_export_unchanged verlangt, dass die Datei byte-gleich ausgeliefert wird.
  • Der Link auf README.md#tests ist dort entfallen, weil er in einer Instanz ins Leere zeigen würde.

Abschlussphase:

  • docs/ownership-and-templates.md § „The consequence in practice“ trägt jetzt die Begründung für die Lösch-Seite. Vorher stand sie nur hier im Issue: Eine weggefallene Datei muss im Lauf entschieden werden, der sie verschwinden sieht, weil der nächste Stamp sie nicht mehr kennt.
  • INSTALL.md wurde gegen die geänderte instructions/upgrade-instance.md gegengelesen. Ergebnis: kein Widerspruch. INSTALL beschreibt removed/--prune nicht und verweist für die Details auf den Record.
  • Weitere geprüfte Dokumente: README.md, INSTALL-MCP.md, DEVELOPMENT.md, docs/version-model.md. Keines trifft eine Aussage über die Suite in einer Instanz oder über weggefallene Dateien.

Problem (wie vorgefunden)

1. Die Testsuite wurde ausgeliefert, obwohl sie in einer Instanz nicht lief

dist export kopierte tools/ ganz, bis auf Build-Ausgabe. Damit landeten in jeder Instanz alle 76 getrackten Dateien unter tools/chemenu/tests/, dazu tools/pytest.ini und tools/.coveragerc. Das war etwa ein Viertel der 280 exportierten Dateien.

Geprüft auf dd565d2 mit einem frischen Export, darin pytest -q: 257 failed, 1905 passed, 5 skipped. Die Suite liest die types/, kb/CONVENTIONS.md und Collections des Ursprungs-Repos. In einer Instanz liegen dort Templates oder eigene Festlegungen.

Außerdem:

  • Kein Laufzeit-Modul importierte chemenu.tests.
  • Kein CI-Schritt führte die Suite in einem Export aus.
  • pytest steht nicht in requirements.txt.

2. dist upgrade vergaß eine weggefallene Datei nach einem Lauf

removed-Pfade wurden nur mit --prune gelöscht, und nur, wenn sie unverändert waren. Danach schrieb der Lauf einen Stamp ohne diese Pfade, und ab dem nächsten Upgrade waren die Dateien endgültig verwaist.

Wie schlimm das ist, hängt vom Ort ab:

  • Unter instructions/ und types/ schädlich: Beide werden per Glob gelesen. Ein verwaister Skill wird weiter publiziert, ein verwaister Type-Spec bleibt ein Typ.
  • Unter tools/chemenu/ nur Ballast.

Leer gewordene Verzeichnisse blieben stehen.

Ausgelieferte Pfade, die in einem Release-Tag standen und in HEAD fehlen. Ermittelt über git ls-tree aller Tags, ohne instructions/dev/ und Tests:

Pfad zuletzt ausgeliefert
tools/chemenu/sections.py v3.0.0
instructions/claude-code-model-selection.md v4.7.4
tools/chemenu/commands/confidence_decay.py v4.7.4
instructions/private-instance.md v7.0.0, entfällt mit 8.0.0
tools/chemenu/commands/upstream_cmd.py v7.0.0, entfällt mit 8.0.0

Die Reihenfolgefalle

dist upgrade läuft mit dem Code der installierten Version. Das Upgrade in das Release mit diesem Paket führt also noch der alte Code aus. Deshalb sagt das Changeset dem Betreiber zwei Dinge:

  • Dieses eine Upgrade muss mit --prune laufen.
  • Für Dateien, die schon liegen geblieben sind, gibt es einen fertigen git rm-Befehl. Er nennt Tests, Konfiguration, beide 8.0.0-Waisen und die drei Altpfade.

Entscheidungen (Betreiber, 2026-10-03)

  • D1: Testsuite und Testkonfiguration werden nicht mehr ausgeliefert. Verworfen: die Suite instanzfest machen.
  • D2: Unveränderte weggefallene Dateien werden standardmäßig gelöscht. --prune wird akzeptiert und bewirkt nichts; einen Opt-out gibt es nicht. Verworfen: Opt-in plus Pflicht in der Instruction.
  • D3: Eine geänderte weggefallene Datei blockiert wie jede lokale Änderung. --take-release löscht sie, --keep-local macht sie zur Datei der Instanz. Verworfen: einmal warnen und behalten.
  • D4: Leer gewordene Verzeichnisse werden mit entfernt. Als leer gilt ein Verzeichnis, in dem höchstens noch __pycache__/*.pyc liegt. Entfernt wird nie bis zur Instanz-Wurzel selbst.
  • D5: Für Waisen früherer Upgrades gibt es keinen Code. Draußen läuft genau eine Instanz; der Release-Text nennt die Altpfade.

Invarianten (eingehalten, je durch Test belegt)

Wann eine Datei gelöscht wird. Es müssen alle drei Bedingungen zutreffen:

  • (a) Sie steht im alten Stamp mit Digest.
  • (b) Sie fehlt im neuen Stamp.
  • (c) Sie trägt beim Lauf genau diesen Digest.

Ausnahme: Ein ausdrückliches --take-release löscht sie auch ohne (c).

Was nie gelöscht wird:

  • instanzeigene Seeds
  • Dateien, die in keinem Stamp stehen

Wann ein Verzeichnis entfernt wird. Nur wenn darin nichts mehr liegt außer __pycache__/*.pyc. Das wird beim Löschen erneut geprüft, und rmdir verweigert ein nicht leeres Verzeichnis.

Was nie etwas löscht: --dry-run und jede Weigerung.

Akzeptanzkriterien

  • Der Plan von dist export enthält keinen Pfad unter tools/chemenu/tests/, keine tools/pytest.ini und keine tools/.coveragerc. Belegt durch test_plan_excludes_the_test_suite_and_its_configuration_by_exact_path und den echten Export.
  • pytest -q läuft im Ursprungs-Repo unverändert grün.
  • Ohne Flags wird eine unveränderte weggefallene Datei gelöscht, samt Verzeichnis, wenn darin nur __pycache__/*.pyc zurückbleibt.
  • Eine geänderte weggefallene Datei:
    • ohne Antwort: Der Lauf bricht ab und löscht nichts.
    • mit --keep-local: Sie bleibt.
    • mit --take-release: Sie ist weg.
  • Eine Datei, die in keinem der beiden Stamps steht, überlebt jedes Upgrade.
  • --prune wird akzeptiert und ändert nichts.
  • --dry-run meldet, was gelöscht würde, und lässt den Baum byte-gleich.
  • Das CHANGES.md-Changeset (8.0.0-beta.33) nennt --prune für den einen Sprung und den git rm-Befehl. Es sagt auch, dass das Aufräumen danach automatisch geschieht.
  • Kein ausgeliefertes Dokument gibt die Suite oder ihre Konfiguration als vorhanden aus (siehe „Abweichung“).
  • docs verify, instructions verify und CI sind grün (521, 522, 523).

Betroffene Dateien

  • tools/chemenu/commands/dist_cmd.py: Export-Ausschluss, Klassifikation retired/retired_modified, Verzeichnis-Aufräumen, Bericht, Weigerungstext und die Records.
  • Tests: tools/chemenu/tests/test_dist_cmd.py, tools/chemenu/tests/test_dist_upgrade.py.
  • Instruction: instructions/upgrade-instance.md, Schritte 5 und 6.
  • Weitere Doku:
    • tools/README.md
    • tools/CONTRACT.md
    • tools/requirements-mcp.txt
    • instructions/mcp-read-server.md
    • EVALS.md
    • CHANGES.md
    • docs/ownership-and-templates.md

Versionsteil

--minor. Der 8.0.0-Kandidat hatte die Kompatibilitätsgrenze schon überschritten.

Für sich genommen ist das Paket drop-in:

  • Vorwärts: Kein Flag fällt weg. Gelöscht wird nur, was das Release nicht mehr ausliefert.
  • Rückwärts: Das Stamp-Format bleibt gleich.
  • D3: Die Weigerung erklärt sich selbst und greift erst ab dem Upgrade nach der Installation.
## Ergebnis **Erledigt am 2026-10-03.** Ausgeliefert im 8.0.0-Kandidaten als `8.0.0-beta.33`; die Bump war `--minor`. | Commit | Inhalt | CI | |---|---|---| | `0d3499a` | Code, Tests, Doku-Abgleich | [521](https://gitea.nehmer.net/torben/chemenu/actions/runs/521), [522](https://gitea.nehmer.net/torben/chemenu/actions/runs/522) grün | | `bd12831` | Abschlussphase: `docs/ownership-and-templates.md` | [523](https://gitea.nehmer.net/torben/chemenu/actions/runs/523) grün | Seitdem gilt: - **`dist export`** liefert `tools/chemenu/tests/`, `tools/pytest.ini` und `tools/.coveragerc` nicht mehr aus. Der Ausschluss geht per exaktem Pfad (`TOOLS_DEV_ONLY`). - **`dist upgrade`** entscheidet eine nicht mehr ausgelieferte Datei im selben Lauf, der sie verschwinden sieht: - unverändert seit der Installation: Sie wird gelöscht, samt leer gewordener Verzeichnisse. - geändert seit der Installation: Das Upgrade blockiert, bis `--take-release` (löscht sie) oder `--keep-local` (sie gehört ab dann der Instanz) entscheidet. - `--prune` wird akzeptiert und bewirkt nichts. Verifiziert: - **Lokal:** - volle Suite: 2175 passed, 3 skipped, auch unter `env -i` mit leerem `HOME` - `docs verify` und `instructions verify` grün - ein echter Export ohne Suite und ohne Konfiguration - **Upgrade von Ende zu Ende:** Der Export von `dd565d2` (8.0.0-beta.32, mit Suite und `__pycache__`) wurde mit dem neuen Code auf den neuen Export gehoben. Gelöscht wurden genau die 78 nicht mehr ausgelieferten Dateien und die 4 leer gewordenen Verzeichnisse. - **CI:** Läufe 521 und 522 sind grün, einschließlich des Replays von `setup-instance.md` gegen den frischen Export. **Abweichung vom Entwurf:** - `tools/README.md` § Tests steht in `dist:strip`-Markern. - `tools/CONTRACT.md` § Tests ist dagegen **umformuliert statt gestrippt**: Suite und Konfiguration liegen nur im Ursprungs-Repo. Grund: `test_the_commands_region_survives_dist_export_unchanged` verlangt, dass die Datei byte-gleich ausgeliefert wird. - Der Link auf `README.md#tests` ist dort entfallen, weil er in einer Instanz ins Leere zeigen würde. **Abschlussphase:** - `docs/ownership-and-templates.md` § „The consequence in practice“ trägt jetzt die Begründung für die Lösch-Seite. Vorher stand sie nur hier im Issue: Eine weggefallene Datei muss im Lauf entschieden werden, der sie verschwinden sieht, weil der nächste Stamp sie nicht mehr kennt. - `INSTALL.md` wurde gegen die geänderte `instructions/upgrade-instance.md` gegengelesen. Ergebnis: kein Widerspruch. INSTALL beschreibt `removed`/`--prune` nicht und verweist für die Details auf den Record. - Weitere geprüfte Dokumente: `README.md`, `INSTALL-MCP.md`, `DEVELOPMENT.md`, `docs/version-model.md`. Keines trifft eine Aussage über die Suite in einer Instanz oder über weggefallene Dateien. ## Problem (wie vorgefunden) ### 1. Die Testsuite wurde ausgeliefert, obwohl sie in einer Instanz nicht lief `dist export` kopierte `tools/` ganz, bis auf Build-Ausgabe. Damit landeten in jeder Instanz alle 76 getrackten Dateien unter `tools/chemenu/tests/`, dazu `tools/pytest.ini` und `tools/.coveragerc`. Das war etwa ein Viertel der 280 exportierten Dateien. Geprüft auf `dd565d2` mit einem frischen Export, darin `pytest -q`: **257 failed, 1905 passed, 5 skipped.** Die Suite liest die `types/`, `kb/CONVENTIONS.md` und Collections des Ursprungs-Repos. In einer Instanz liegen dort Templates oder eigene Festlegungen. Außerdem: - Kein Laufzeit-Modul importierte `chemenu.tests`. - Kein CI-Schritt führte die Suite in einem Export aus. - `pytest` steht nicht in `requirements.txt`. ### 2. `dist upgrade` vergaß eine weggefallene Datei nach einem Lauf `removed`-Pfade wurden nur mit `--prune` gelöscht, und nur, wenn sie unverändert waren. Danach schrieb der Lauf einen Stamp ohne diese Pfade, und ab dem nächsten Upgrade waren die Dateien endgültig verwaist. Wie schlimm das ist, hängt vom Ort ab: - **Unter `instructions/` und `types/` schädlich:** Beide werden per Glob gelesen. Ein verwaister Skill wird weiter publiziert, ein verwaister Type-Spec bleibt ein Typ. - **Unter `tools/chemenu/` nur Ballast.** Leer gewordene Verzeichnisse blieben stehen. **Ausgelieferte Pfade, die in einem Release-Tag standen und in `HEAD` fehlen.** Ermittelt über `git ls-tree` aller Tags, ohne `instructions/dev/` und Tests: | Pfad | zuletzt ausgeliefert | |---|---| | `tools/chemenu/sections.py` | v3.0.0 | | `instructions/claude-code-model-selection.md` | v4.7.4 | | `tools/chemenu/commands/confidence_decay.py` | v4.7.4 | | `instructions/private-instance.md` | v7.0.0, entfällt mit 8.0.0 | | `tools/chemenu/commands/upstream_cmd.py` | v7.0.0, entfällt mit 8.0.0 | ### Die Reihenfolgefalle `dist upgrade` läuft mit dem Code der *installierten* Version. Das Upgrade in das Release mit diesem Paket führt also noch der alte Code aus. Deshalb sagt das Changeset dem Betreiber zwei Dinge: - Dieses eine Upgrade muss mit `--prune` laufen. - Für Dateien, die schon liegen geblieben sind, gibt es einen fertigen `git rm`-Befehl. Er nennt Tests, Konfiguration, beide 8.0.0-Waisen und die drei Altpfade. ## Entscheidungen (Betreiber, 2026-10-03) - **D1: Testsuite und Testkonfiguration werden nicht mehr ausgeliefert.** *Verworfen:* die Suite instanzfest machen. - **D2: Unveränderte weggefallene Dateien werden standardmäßig gelöscht.** `--prune` wird akzeptiert und bewirkt nichts; einen Opt-out gibt es nicht. *Verworfen:* Opt-in plus Pflicht in der Instruction. - **D3: Eine geänderte weggefallene Datei blockiert wie jede lokale Änderung.** `--take-release` löscht sie, `--keep-local` macht sie zur Datei der Instanz. *Verworfen:* einmal warnen und behalten. - **D4: Leer gewordene Verzeichnisse werden mit entfernt.** Als leer gilt ein Verzeichnis, in dem höchstens noch `__pycache__/*.pyc` liegt. Entfernt wird nie bis zur Instanz-Wurzel selbst. - **D5: Für Waisen früherer Upgrades gibt es keinen Code.** Draußen läuft genau eine Instanz; der Release-Text nennt die Altpfade. ## Invarianten (eingehalten, je durch Test belegt) **Wann eine Datei gelöscht wird.** Es müssen alle drei Bedingungen zutreffen: - (a) Sie steht im alten Stamp mit Digest. - (b) Sie fehlt im neuen Stamp. - (c) Sie trägt beim Lauf genau diesen Digest. Ausnahme: Ein ausdrückliches `--take-release` löscht sie auch ohne (c). **Was nie gelöscht wird:** - instanzeigene Seeds - Dateien, die in keinem Stamp stehen **Wann ein Verzeichnis entfernt wird.** Nur wenn darin nichts mehr liegt außer `__pycache__/*.pyc`. Das wird beim Löschen erneut geprüft, und `rmdir` verweigert ein nicht leeres Verzeichnis. **Was nie etwas löscht:** `--dry-run` und jede Weigerung. ## Akzeptanzkriterien - [x] Der Plan von `dist export` enthält keinen Pfad unter `tools/chemenu/tests/`, keine `tools/pytest.ini` und keine `tools/.coveragerc`. Belegt durch `test_plan_excludes_the_test_suite_and_its_configuration_by_exact_path` und den echten Export. - [x] `pytest -q` läuft im Ursprungs-Repo unverändert grün. - [x] Ohne Flags wird eine unveränderte weggefallene Datei gelöscht, samt Verzeichnis, wenn darin nur `__pycache__/*.pyc` zurückbleibt. - [x] Eine geänderte weggefallene Datei: - ohne Antwort: Der Lauf bricht ab und löscht nichts. - mit `--keep-local`: Sie bleibt. - mit `--take-release`: Sie ist weg. - [x] Eine Datei, die in keinem der beiden Stamps steht, überlebt jedes Upgrade. - [x] `--prune` wird akzeptiert und ändert nichts. - [x] `--dry-run` meldet, was gelöscht würde, und lässt den Baum byte-gleich. - [x] Das `CHANGES.md`-Changeset (8.0.0-beta.33) nennt `--prune` für den einen Sprung und den `git rm`-Befehl. Es sagt auch, dass das Aufräumen danach automatisch geschieht. - [x] Kein ausgeliefertes Dokument gibt die Suite oder ihre Konfiguration als vorhanden aus (siehe „Abweichung“). - [x] `docs verify`, `instructions verify` und CI sind grün (521, 522, 523). ## Betroffene Dateien - **`tools/chemenu/commands/dist_cmd.py`:** Export-Ausschluss, Klassifikation `retired`/`retired_modified`, Verzeichnis-Aufräumen, Bericht, Weigerungstext und die Records. - **Tests:** `tools/chemenu/tests/test_dist_cmd.py`, `tools/chemenu/tests/test_dist_upgrade.py`. - **Instruction:** `instructions/upgrade-instance.md`, Schritte 5 und 6. - **Weitere Doku:** - `tools/README.md` - `tools/CONTRACT.md` - `tools/requirements-mcp.txt` - `instructions/mcp-read-server.md` - `EVALS.md` - `CHANGES.md` - `docs/ownership-and-templates.md` ## Versionsteil **`--minor`.** Der 8.0.0-Kandidat hatte die Kompatibilitätsgrenze schon überschritten. Für sich genommen ist das Paket drop-in: - **Vorwärts:** Kein Flag fällt weg. Gelöscht wird nur, was das Release nicht mehr ausliefert. - **Rückwärts:** Das Stamp-Format bleibt gleich. - **D3:** Die Weigerung erklärt sich selbst und greift erst ab dem Upgrade nach der Installation.
torben added the status/incoming label 2026-09-17 19:45:10 +00:00
Author
Owner

Ausarbeitung des Stubs. Ursprünglicher Text, wörtlich:

brauchen wir die python tests in der distribution

die ganzen test...py werden ausgeliefert
macht das sinn?
wollen/brauchen wir das?

In der Sitzung dazugekommen (Betreiber, 2026-10-03): „Zusammen mit der Frage, wie wir bei einem Update nicht mehr nötige Dateien loswerden."

Changelog: Stub gegen den Baum geprüft und zum Arbeitspaket ausgearbeitet. Belege: ein frischer dist export trägt 76 Dateien unter tools/chemenu/tests/, und darin schlagen 257 Tests fehl. Zweite Frage aufgenommen: dist upgrade vergisst eine nicht mehr ausgelieferte Datei nach genau einem Lauf. Entscheidungen D1–D5 sind offen, deshalb kind/decision. status/incoming entfernt.

**Ausarbeitung des Stubs.** Ursprünglicher Text, wörtlich: > **brauchen wir die python tests in der distribution** > > die ganzen test...py werden ausgeliefert > macht das sinn? > wollen/brauchen wir das? In der Sitzung dazugekommen (Betreiber, 2026-10-03): *„Zusammen mit der Frage, wie wir bei einem Update nicht mehr nötige Dateien loswerden."* **Changelog:** Stub gegen den Baum geprüft und zum Arbeitspaket ausgearbeitet. Belege: ein frischer `dist export` trägt 76 Dateien unter `tools/chemenu/tests/`, und darin schlagen 257 Tests fehl. Zweite Frage aufgenommen: `dist upgrade` vergisst eine nicht mehr ausgelieferte Datei nach genau einem Lauf. Entscheidungen D1–D5 sind offen, deshalb `kind/decision`. `status/incoming` entfernt.
torben changed title from brauchen wir die python tests in der distribution to Testsuite nicht mehr ausliefern, und `dist upgrade` räumt weggefallene Dateien verlässlich ab 2026-10-03 17:14:56 +00:00
torben added prio/plannedsize/Marea/distributionkind/decision and removed status/incoming labels 2026-10-03 17:14:56 +00:00
torben added kind/build and removed kind/decision labels 2026-10-03 17:49:07 +00:00
Author
Owner

Changelog: D1–D4 wie empfohlen entschieden. D5 ist entschieden: kein Code, weil draußen genau eine Instanz läuft, der Release-Text nennt die Altpfade. Korrigiert: private-instance.md und upstream_cmd.py sind nicht in 7.0.0 entfallen, sondern entfallen mit dem laufenden 8.0.0-Kandidaten. Die Waisenliste ist jetzt vollständig, ermittelt aus allen Release-Tags gegen HEAD. Der Versionsteil nennt den 8.0.0-Kandidaten, der die Grenze bereits überschritten hat. kind/decision → kind/build.

**Changelog:** D1–D4 wie empfohlen entschieden. D5 ist entschieden: kein Code, weil draußen genau eine Instanz läuft, der Release-Text nennt die Altpfade. Korrigiert: `private-instance.md` und `upstream_cmd.py` sind nicht in 7.0.0 entfallen, sondern entfallen mit dem laufenden 8.0.0-Kandidaten. Die Waisenliste ist jetzt vollständig, ermittelt aus allen Release-Tags gegen `HEAD`. Der Versionsteil nennt den 8.0.0-Kandidaten, der die Grenze bereits überschritten hat. `kind/decision` → `kind/build`.
Author
Owner

Changelog: Gebaut und publiziert als 8.0.0-beta.33, Commit 0d3499a. CI-Läufe 521 und 522 sind grün, alle Kriterien abgehakt. Neu im Body ist ein Abschnitt „Stand“ mit den lokalen Prüfungen und dem Upgrade-Test von Ende zu Ende. Abweichung: tools/CONTRACT.md § Tests wurde umformuliert, nicht gestrippt, weil die Datei byte-gleich ausgeliefert werden muss. Offen ist nur noch die Abschlussphase.

**Changelog:** Gebaut und publiziert als `8.0.0-beta.33`, Commit `0d3499a`. CI-Läufe 521 und 522 sind grün, alle Kriterien abgehakt. Neu im Body ist ein Abschnitt „Stand“ mit den lokalen Prüfungen und dem Upgrade-Test von Ende zu Ende. Abweichung: `tools/CONTRACT.md` § Tests wurde umformuliert, nicht gestrippt, weil die Datei byte-gleich ausgeliefert werden muss. Offen ist nur noch die Abschlussphase.
Author
Owner

Changelog: Body in Endfassung, das Problem steht jetzt in der Vergangenheit. In der Abschlussphase kam docs/ownership-and-templates.md dazu, mit der Begründung für die Lösch-Seite (bd12831, CI 523 grün). Der Abgleich von INSTALL.md mit upgrade-instance.md ergab keinen Widerspruch. Geschlossen.

**Changelog:** Body in Endfassung, das Problem steht jetzt in der Vergangenheit. In der Abschlussphase kam `docs/ownership-and-templates.md` dazu, mit der Begründung für die Lösch-Seite (`bd12831`, CI 523 grün). Der Abgleich von INSTALL.md mit upgrade-instance.md ergab keinen Widerspruch. Geschlossen.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#113