Repository navigation
feat: the submission check reads the plugin-release layout - #17
Open
thesprockee wants to merge 2 commits into
Open
thesprockee wants to merge 2 commits into
thesprockee wants to merge 2 commits into
Conversation
release-signer's docs/plugin-release.md replaces the loose DLL with a zip (DLL, LICENSE, optional NOTICE and settings, inner SHA256SUMS), an echo-mod.json without sha256/size and a SHA256SUMS. When echo-mod.json names a "package", the check now requires exactly those three assets, matching sums at both levels, a flat zip of allowed names (no links, no case or device-name collisions, size caps), unpacks the DLL for the template's DLL checks and the load test, and attests all three assets. A release without "package" is read as before, until the first mod ships in the new shape. Closes #16 Co-Authored-By: Andrew Bates <a@sprock.io>
…ests check Refs #16 Co-Authored-By: Andrew Bates <a@sprock.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #16. Asked for by Spritz after release-signer #25 (
docs/plugin-release.md) replaced the loose-DLL release with a zip.What
When a release's
echo-mod.jsonnames a"package",scripts/inspect_submission.pyreads the plugin-release layout (spec §4); otherwise it reads the older one exactly as before, until the first mod ships in the new shape.scripts/package_layout.py(new, stdlib only): exactly the three assets<id>-v<ver>-windows.zip,echo-mod.json,SHA256SUMS; the manifest haspackage= the zip, asourceobject and nosha256/size; the top-level sums match the zip andecho-mod.jsonand name nothing else; the zip is flat, holds only the DLL,LICENSE, optionalNOTICE, the settings file when declared andSHA256SUMS; no links, special or encrypted entries, no case or Windows-device-name collisions, size caps (DLL 16 MiB); the inner sums cover every entry. Only the DLL is unpacked, towork/unpacked/, for the template's DLL checks and the load test.inspect_submission.py: picks the layout (release_layout), runs the template's manifest checks plus tag/prerelease checks, attests all three assets in the new layout, and recordslayout,packageand the DLL'ssha256/sizein the facts (VirusTotal looks up the DLL, as before).report_submission.pyshowslayoutandpackage.tests/test_package_layout.py(24 tests) builds a fixture release in the new shape; each rule has a negative control..github/workflows/package-layout-tests.ymlruns them on PRs.Not shown
No mod has shipped in the new shape, so the real path (download, attestation, load test of an unpacked DLL) has not run end to end; only the layout rules and the glue are tested, with a stub of the template's
check_mod. The template's owncheck_publishedstill expects the old layout; the new path does not call it. A fork's draft/unsigned-vs-signed difference doesn't matter here: this check looks at the author's repo, whose release is unsigned and attested.One thing to settle: the new template's
release.ymlcreates a draft. This check lists published releases only (if not r.get("draft")), and a draft in the author's repo is invisible to it, so the author has to publish their own draft before submitting. The README (#15) does not say so yet.Commands run
Mutants (one line changed, tests run, file restored from a saved copy):
Gates from #14 on this branch: title and commits
ok: true.Co-Authored-By: Andrew Bates a@sprock.io