Expand description
manifest gen: walk <data>/<game>/packages/<directory>/**/*.zip, hash
every zip, merge its sidecar, and collect what the publisher should fix.
The result depends on the zips and sidecars alone, never on the previous manifest, so deleting a sidecar key removes the value and replicas agree.
Structs§
- Found
Files 🔒 - The zips and sidecars under one access directory, keyed by package
name.
Functions§
- collect 🔒
- Depth-first in name order, which keeps a regenerated manifest byte-stable.
- generate
- A zip outside an access directory or with a broken sidecar is withheld as an
error rather than published with silently wrong metadata; the rest publishes.
A game publishes nothing without a valid
schema.toml, and a package in a category its schema does not declare is skipped. - generate_
with generate, comparing each game’s schema withbundledinstead of this release’s own, so tests’ fixture schemas need not match the repository’s.- is_zip 🔒
- join_
name 🔒 - Joins with
/on every host: a name is a protocol string, not a filesystem path. - package_
entry 🔒 - Metadata from the sidecar alone, with a version derived from the bytes when it names none; size, hash and mtime always come from the zip.
- read_
dir_ 🔒sorted - scan_
access_ 🔒directory - scan_
game 🔒 - url_
clean 🔒 - Does every byte pass through a URL unescaped,
/included?