Skip to content

fix(ci): make replacement provenance and LFS trees reproducible - #37

Merged
zoeyrose merged 3 commits into
mainfrom
fix/36-lfs-provenance
Aug 24, 2026
Merged

zoeyrose merged 3 commits into
mainfrom
fix/36-lfs-provenance

Conversation

@zoeyrose

Copy link
Copy Markdown
Member

Closes #36

Summary

Make replacement provenance and LFS-backed source-tree validation reproducible
from clean CI checkouts, preserving the existing source ledger and Classic
release gates.

Implementation / behavior

  • Validate disconnected replacement predecessors from an immutable,
    commit-bound source archive when the local Git object graph does not contain
    the recorded commit.
  • Compare hydrated LFS payloads with their canonical pointer OID and size while
    retaining exact Git tree, mode, index, clean-worktree, and source-stability
    checks for non-LFS files.
  • Add focused regression coverage for missing historical objects, malformed or
    mismatched LFS pointers, hydrated payloads, and ordinary Git blobs.
  • Keep the existing pinned workflows, deterministic fixture builds, playtest
    tree, Semantic Release, Classic archive, and checksum contracts fail-closed.

Validation

  • tools/validate.sh
  • python3 -m unittest discover -s tests -v
  • python3 -m compileall -q tools tests
  • bash -n tools/build-release-assets.sh tools/package-release.sh tools/validate.sh
  • git diff --check
  • GitHub Actions check and Semantic Release workflows on the final head

Limitations / follow-up

Published release coordinates remain owned by Semantic Release; this change
does not create tags, releases, or Classic runtime consumer updates.

@zoeyrose zoeyrose moved this to Review in Atrinik work Aug 24, 2026
@zoeyrose
zoeyrose marked this pull request as ready for review August 24, 2026 03:28
@zoeyrose
zoeyrose merged commit d0561bf into main Aug 24, 2026
9 checks passed
@zoeyrose
zoeyrose deleted the fix/36-lfs-provenance branch August 24, 2026 04:06
@github-project-automation github-project-automation Bot moved this from Review to Done in Atrinik work Aug 24, 2026
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

fix(ci): make replacement provenance and LFS trees reproducible

1 participant