fix(catalog): preflight package versions
Full catalog generation previously prepared each game sequentially, so a version mismatch late in the catalog could surface only after earlier packages had already been extracted and hashed. Validate every selected version.ini against game.db before starting manifest preparation, while retaining the per-package validation during preparation to detect later input changes. Document the ordering and cover it with a regression where an earlier archive would fail if archive processing began before a later version mismatch. Test Plan: - `just fmt` -- passed - `just test` -- passed - `just clippy` -- passed - `git diff --cached --check` -- passed
This commit is contained in:
@@ -111,11 +111,12 @@ Generate the complete production manifest set:
|
||||
just catalog-generate-production /srv/lanspread/packages
|
||||
```
|
||||
|
||||
The publisher independently reads and hashes each selected package twice before
|
||||
publication. Under a durable publication marker, it atomically replaces each
|
||||
manifest and writes the complete content index last. Interruption leaves the
|
||||
marker in place so later checks and builds fail closed instead of accepting a
|
||||
mixed generation.
|
||||
The publisher first checks every selected package's `version.ini` against
|
||||
`game.db`, then independently reads and hashes each selected package twice
|
||||
before publication. Under a durable publication marker, it atomically replaces
|
||||
each manifest and writes the complete content index last. Interruption leaves
|
||||
the marker in place so later checks and builds fail closed instead of accepting
|
||||
a mixed generation.
|
||||
|
||||
Verify the published database/index/manifest set without rereading the package
|
||||
corpus:
|
||||
|
||||
Reference in New Issue
Block a user