SH3012: The final package holds what the game's disclosure part doesn't allow
Class: operation, exit code 1.
export read the final package back, after every copy its target makes, and
held it to the disclosure part of shuyi.ron. Something in it, or beside it,
isn't allowed: a file of the game or of a pack the part doesn't name, a path it
forbids, one of its canaries, or a file beside the package that this export
didn't make. The package, its archive and its debug file were removed, and for
the web the files in web.dist. exposure-report.json stays, and lists what
it held. The message names each file and where it came from. A canary is named
by its place in the part, never by its text.
How to fix it. For each line of the message:
- A file or a pack's file that isn't meant to ship yet: take it out of what is
built (out of the folder
web.musicnames, the filesGameTools::audioanswers, or what the game bakes). - One that is meant to ship: add its whole path to
allowed_filesorallowed_pack_entries. - A canary or a forbidden path in a program: find what embeds it (an
include_dir!of a whole folder, aninclude_str!), and keep that out of this build. - A file beside the package: it would go along with an upload of the folder.
Delete it, or export into a folder of its own with
--out. A package left by an older version counts. - A pack that doesn't read: bake it again. A program that embeds a pack keeps it
whole, or it can't be listed:
wasm-optcan split one in a.wasm, so a web build ships its pack as a file instead.
Then export again.
For example:
export: error[SH3012]: the package breaks shuyi.ron's `disclosure`, and was removed (exposure-report.json lists all it held):
music/future.ogg (web.music: music/future.ogg) isn't in disclosure.allowed_files