refactor: split the pack builder into its layers

generate_pack.py held six responsibilities in 4744 lines. Five move out
in dependency order, so nothing above reaches back down: destinations,
core extras, resolution with its storage tiers, the notes shipped inside
a pack, and the pack verifier. generate_pack.py keeps the build and the
command line, and re-exports the rest.

Two things the move surfaced. The offline switch was a module global the
command line assigned, which a re-export would have copied and frozen at
False; it is set through a call now and not re-exported. And a facade
placed after the entry point binds too late: importing the module worked,
running it did not, so the manifest run died on a name the tests never
exercised because tests import.

Verified against the previous revision on frozen inputs: every generated
artefact is identical, save the catalogue that embeds hashes of files
carrying a build timestamp.
This commit is contained in:
Abdessamad Derraz committed 2026-08-12 12:20:17 +02:00
1 parent b5fd643ccf
commit c31ce0b693
7 files changed
+1872 -1754

No files matched your search

+47 -1754
View File
File diff suppressed because it is too large. Load diff