Skip to content

Publish Windows research exports without hard links - #6189

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
josecarlosgonzalezroque-design:fix/windows-export-publication
Oct 29, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
josecarlosgonzalezroque-design:fix/windows-export-publication

Conversation

@josecarlosgonzalezroque-design

Copy link
Copy Markdown
Contributor

Change and mathematical scope

The committed-package exporter finishes a valid archive but fails at os.link in Windows environments that deny hard-link creation. Use a same-directory, non-overwriting os.rename on Windows and retain the POSIX link path. Cleanup handles the staging name being consumed by a successful rename.

Archive bytes, source selection, receipts and integrity checks are preserved. Five new regressions cover unavailable hard links, complete publication, a competing file or directory, publication errors and archive-close failure. This is a tooling repair with no mathematical or kappa claim.

Task and overlap

Started from canonical main 3f0152a32eeebac0df11946dbd50cabe5a7f7839; the pre-submission fetch returned the same commit. Task portable-replay, priority revision 8, seed 1c87352aa1fd006e0873d0e6c0a015b1, scope key 831cc1a3c8f9ff01b197. Scope is refined to one reproduced export-publication failure.

The evidence note records exact source hashes, handoff/overlap checks and their partial coverage. Related #4579 repairs Windows fixtures; #5389 adds historical-input exports. This repair changes the final publication operation. #6165 and #5973 concern different JSON/stdout encoding boundaries.

Validation

Native Windows 11 build 26300 / CPython 3.12.10 / Git 2.53.0.windows.3:

python -W error -B -m unittest discover -s tests -p 'test_research_export*.py' -v
python -O -W error -B -m unittest discover -s tests -p 'test_research_export*.py' -v
python -B scripts/research_selected_baseline.py
git diff --check

Both suites pass 42 tests, zero skips, within the restricted environment. The original suite had 12 failures at hard-link publication there; its direct-replay test passes outside the restriction. A separate real-Git comparison outside the restriction gives identical old/new archive bytes and receipts. Unsafe publication mutations are rejected. The selected binding-only baseline and diff check pass.

Published tree 93bfbc9c458990e1ba768898e8098396e9e34cf5 exactly matches the tested local tree. POSIX execution, other filesystems and scientific cold replays are unclaimed; hosted CI is separate.

Credit

Credit Tekalign, Mihir Srivastava, roger-sato, Ali Romman, Douglas Colkitt and the retained exporter/replay lineage. Prepared for josecarlosgonzalezroque-design with substantial OpenAI Codex assistance, one agent, Apache-2.0.

Open next questions

Corroborate the same suite on POSIX and another Windows interpreter. The evidence note gives the first step and platform limits.

@Mister-Meeseeks
Mister-Meeseeks merged commit 8c6b69f into CrocSwap:main Oct 29, 2026
2 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.

2 participants