docs(tools): README describes the asset mode as it is - own folder, retry, rollback (#197)
CI / verify (push) Successful in 6m31s
CI / pwsh (push) Successful in 2m24s
Release / release (push) Successful in 34s

tools/README.md still said the asset unpacks into <script folder>/chemenu and
refuses an existing target, which stopped being true before #197; it now also
describes the retry and the rollback #197 added.

Files changed:
- CHANGES.md
- VERSION
- tools/README.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-07 16:19:56 +02:00
1 parent 5c9be38aa8
commit 49f8939bfd
3 files changed
+11 -6

No files matched your search

+8 -4
View File
@@ -38,10 +38,14 @@ placeholder lines of the copy (`RELEASE_ARCHIVE_URL`/`RELEASE_CHECKSUM_URL` in t
`$ReleaseArchiveUrl`/`$ReleaseChecksumUrl` in the PowerShell one; the tree copy leaves them
empty). With no `prerequisites.txt` beside it, the script is in *asset mode*: it downloads the
tarball and its `.sha256`, refuses on a mismatch, reads the folder limit out of the archive,
unpacks into `<script folder>/chemenu` (`--into <path>` to choose, an existing target is refused),
and runs the tree copy of itself, passing `--set` and its exit code through. `--archive <tarball>`
takes a local tarball instead of a download (its `.sha256` has to lie next to it); that is also
how the tests drive it.
unpacks into the folder it lies in (`--into <path>` to choose; a target holding anything but the
script and a `.git` is refused), and runs the tree copy of itself, passing `--set` and its exit
code through. It unpacks into a `.chemenu-unpack.<pid>` folder inside the target and then moves
each top-level entry up; a move that fails is retried for about 30 seconds, each time from a
fresh copy of the entry out of the archive, and one that still fails makes the script take back
everything it moved before it exits 1. `--archive <tarball>` takes a local tarball instead of a
download (its `.sha256` has to lie next to it); that is also how the tests drive it, and
`CHEMENU_PREFLIGHT_MOVE_FAIL` stands in for a move that fails.
`tools/wikitool` refuses to start (exit 42) until the preflight has written a
*complete* `.wikitool-tools.json` and the venv exists. Past that, every `git`