Skip to content

Replication-package exporter for the migrations paper - #82

Merged
MaxGhenis merged 1 commit into
mainfrom
replication-export
Aug 17, 2026
Merged

MaxGhenis merged 1 commit into
mainfrom
replication-export

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Decision from today: the migrations paper stays in this repo (its committed artifacts and value-lock tests are the reproducibility spine), and journals get a scoped citation object cut at submission time instead of the monorepo.

scripts/export_replication_package.py --ref <tag> [--verify]:

  • Extracts exactly the files the paper's reproduction section names — manuscript, figures + generator, estimation scripts, frozen protocols, committed artifacts, registry/audit files, value-lock tests, pinned environment — from the ref via git archive, so nothing from the working tree leaks in.
  • Generates a REPLICATION_README (pinned commit, how to run the locks, raw-data acquisition per the paper's data-availability statement) and a MANIFEST.json of per-file SHA-256 hashes.
  • Produces a deterministic zip: same ref, byte-identical output (zip entry mtimes come from the commit's own timestamp).
  • Fails loudly if any inventoried file is missing at the ref, so upstream renames break the export instead of silently shrinking the package.
  • --verify runs the value-lock tests inside the exported package.

Tests lock the inventory's existence, manifest hash integrity, zip contents, and byte determinism. Run against v20260817: 28 passed, 2 skipped inside the package (matplotlib-guarded figure tests, as in CI); package + zip land under dist/ (gitignored).

README gains a short section pointing at the exporter.

🤖 Generated with Claude Code

The paper develops in this repo (its artifacts, generators, and
value-lock tests live here); journals get a scoped citation object.
scripts/export_replication_package.py cuts one from any pinned ref via
git archive: manuscript + figures + generator, estimation scripts,
frozen protocols, committed artifacts, registry and audit files, the
value-lock tests, and the pinned environment, with a generated
REPLICATION_README, a SHA-256 MANIFEST, and a deterministic zip (same
ref, same bytes; entry mtimes from the commit timestamp). --verify
runs the value-lock tests inside the exported package. The export
fails loudly if any inventoried file goes missing at the ref, and
tests lock the inventory, manifest integrity, and determinism.

Verified at v20260817: 28 passed, 2 skipped inside the package
(figure-regeneration tests skip without matplotlib, as in CI).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis merged commit e1c08ec into main Aug 17, 2026
1 check passed
@MaxGhenis
MaxGhenis deleted the replication-export branch August 17, 2026 16:05
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