mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 10:19:47 -04:00
d6529481d4
Mods under active development had nowhere to live: a package was either in the catalog and therefore in every release, or not built at all. Widescreen is the immediate case -- it engages, but it is unvalidated as gameplay and FF7's pre-rendered field backdrops still cull at the 4:3 bound, so it is not something to put in front of players yet. A package now declares its own maturity with channel = "developer". It still ships with ordinary local builds and local exports, so it can be tested exactly as a player would see it, and release packaging drops it. The exclusion defaults from $CI -- on under any CI provider, off locally. That is deliberate: a per-workflow opt-in is precisely the shape that left 21 of 23 ports shipping no mods at all, so this must not need 23 release workflows edited to take effect. --exclude-dev-mods / --include-dev-mods and EXCLUDE_DEV_MODS=0|1 override in either direction, and Studio's `build export --exclude-dev-mods` reproduces what a release contains. Applied in all three packagers (setup-host, Windows, macOS). Each prunes the whole PACKAGE directory and then asserts no developer manifest survived -- including the SOURCE catalog under mods/preloaded, since the setup-host zip rebuilds on the player's machine and would otherwise re-stage the package the release just removed. A manifest is never rewritten during packaging: editing a package while packaging it would change content meant to be verifiable, which is why the marker is package-level rather than per-feature. Verified by packaging: local keeps 5 catalogs, CI=true drops to 4 with no ff7.enhancements entry anywhere in the zip, and EXCLUDE_DEV_MODS=0 under CI=true restores it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0194TYJAqgyG9a9PJe9uUcgQ