Skip to content

feat(release): add independent manual-release asset integrity gate - #146

Merged
sanskarIN merged 5 commits into
mainfrom
test/release-asset-integrity-validator
Nov 2, 2026
Merged

sanskarIN merged 5 commits into
mainfrom
test/release-asset-integrity-validator

Conversation

@sanskarIN

Copy link
Copy Markdown
Owner

Purpose

Add a cross-platform, offline integrity gate for the complete extracted manual GitHub Release upload set. Protects against partial uploads, stale version files, corrupted packages, unsafe archive paths, and mismatched SPDX metadata.

Implementation

  • packaging/verify_release_assets.py: validates four expected filenames and strict SHA256SUMS.txt contents, independently hashes payloads with streaming reads, CRC-checks portable ZIP, checks for unsafe ZIP/TAR entries, verifies portable executable, SPDX 2.3 project version, and corresponding-source archive inventory.
  • packaging/tests/test_verify_release_assets.py: 11 network-free positive/negative regression tests, automatically included in existing packaging unittest discovery.
  • docs/releases/asset-verification.md and manual release guide update with exact usage and limitations.

Evidence

  • Ran 11 local tests successfully (python -m unittest discover -s packaging/tests -p test_verify_release_assets.py -v) with synthetic archives. CI should run the full packaging suite and lint.
  • Does not publish a release or weaken the physical Windows/audio/video QA gate.

Release freeze

Do not merge into main before completing or deliberately revalidating v1.4.0. The tested candidate remains eb64133409b9f43a89dcebeffee623c18a9b8182; merging changes the source SHA and requires fresh tests and assets. This improvement can be merged after stable publication or accompanied by a full new release-candidate validation.

@sanskarIN
sanskarIN merged commit 7cc72f4 into main Nov 2, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant