stack: Upgrade-Pfad bekommt eine eigene manual-Instruktion, INSTALL.md verweist darauf (#108)
CI / verify (push) Successful in 48s
Release / release (push) Successful in 36s

Files changed:
- CHANGES.md
- INSTALL.md
- VERSION
- instructions/session-setup.md
- instructions/upgrade-instance.md
- tools/CONTRACT.md
- tools/chemenu/commands/dist_cmd.py
- tools/chemenu/tests/test_dist_upgrade.py
This commit is contained in:
torben committed 2026-09-16 14:04:16 +02:00
1 parent f3c80747a5
commit 504149c7c4
8 files changed
+359 -69

No files matched your search

+7 -2
View File
@@ -1045,8 +1045,13 @@ def run_upgrade(
summary += (
f" {len(migration_chain)} migration(s) now outstanding - run `wikitool migrate status`."
)
# One pointer rather than a second copy of the order: the steps after the
# swap live in instructions/upgrade-instance.md, which ships with every
# instance. Naming the resume *command* rather than a step number keeps this
# line correct when that file's numbering moves.
summary += (
" Nothing was committed. Now run, in order: `wikitool instructions sync`, `doctor`, "
"`docs verify`, `instructions verify`, `lint` - then restart the agent session."
" Nothing was committed and nothing is verified yet."
" `instructions/upgrade-instance.md` carries the order for everything that follows"
" and resumes at `wikitool instructions sync`."
)
success(summary)
+18
View File
@@ -192,6 +192,24 @@ def test_unchanged_and_new_files_are_written_silently(instance, tmp_path):
assert stamp["files"]["types/entity.md"] == _digest("new\n")
def test_closing_report_points_at_the_upgrade_instruction(instance, tmp_path, capsys):
"""Everything after the swap has exactly one written order, and it is not
this line: the report names the instruction that carries it and the command
the run resumes at, rather than a second copy of the list that drifts
(AGENTS.md invariant 8). A run that reads only this output must still be
able to find the rest."""
release = _release(
tmp_path, "release", "1.1.0",
{"AGENTS.md": "core\n", "tools/wikitool": "#!/bin/sh\n"},
)
dist_cmd.run_upgrade(release)
out = " ".join(capsys.readouterr().out.split()) # rich wraps; rejoin first
assert "instructions/upgrade-instance.md" in out
assert "instructions sync" in out
@pytest.mark.parametrize("preserved", [".wikitool-kb.json", "CHANGES.md", "kb/log.md", "raw/notes/.gitkeep"])
def test_seeded_once_paths_are_never_written_even_if_the_release_stamp_lists_them(
instance, tmp_path, preserved