Skip to content

Make O2R packing deterministic and contained - #244

Open
mckinlee wants to merge 1 commit into
HarbourMasters:mainfrom
mckinlee:township/deterministic-standalone-pack
Open

Make O2R packing deterministic and contained#244
mckinlee wants to merge 1 commit into
HarbourMasters:mainfrom
mckinlee:township/deterministic-standalone-pack

Conversation

@mckinlee

@mckinlee mckinlee commented Aug 2, 2026

Copy link
Copy Markdown

Summary

  • write standalone O2R entries in stable root-relative order with valid fixed ZIP timestamps
  • reject symlink escapes and output archives resolved inside their own input tree
  • report pack failures cleanly and run one source-free determinism check per hosted platform

Testing

  • configured and built the full standalone MSVC x64 Release target with BUILD_UI=OFF
  • ran test/pack/validate_deterministic_o2r.py against the built executable (SHA-256 5e4452e3a189491044bf36ffadb0f235a49828f38bd6c15ac49e8bd92d1ad266)
  • verified stable bytes after mtime changes, sorted root-relative entries, DOS-epoch timestamps, contained-output refusal, symlink escape rejection, invalid-type diagnostics, and preservation of an existing validation directory
  • passed clang-format 14 dry-run, workflow YAML parsing, and git diff --check

Sort and contain packed archive paths, use fixed valid ZIP metadata, and report standalone failures cleanly.

Validate deterministic output and failure handling with source-free fixtures.
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