test: make suite portable on Windows#154
Merged
alphacrack merged 2 commits intoJul 19, 2026
Merged
Conversation
innovationty
marked this pull request as ready for review
July 18, 2026 14:29
alphacrack
reviewed
Jul 19, 2026
alphacrack
left a comment
Owner
There was a problem hiding this comment.
Thanks @innovationty — this is a model first PR for this repo.
What I checked, so you know the bar you cleared:
- Skip vs. weaken: the
skipifgates only onos.name == "nt"and theS_IXUSR/S_IXOTHassertions are untouched, so POSIX still asserts the real product behavior (distill.write_commands_sh'schmod(0o755)). Exactly what #144 asked for. - Encoding fixes: every bare
read_text/write_texton generated artifacts intest_tutorial.pynow pinsencoding="utf-8", matching what the writers intutorial.pyproduce — fixed rather than skipped, which is the right call for this class. - Ran your exact head locally (macOS): 361 passed — identical to main, so the POSIX path is unaffected.
ruff,mypy, and the coverage gate (85.99% ≥ 80%) pass too. - The
Regression (#144, reported in #82)docstring follows the house convention, and your Windows before/after numbers line up exactly with the failure split predicted in the issue — GBK verification is a nicer stress test than the cp1252 case I wrote up.
CI shows no checks only because first-time contributions need a maintainer to approve the workflow run — the maintainer will kick that off; expect green.
If you're interested in a follow-up, the windows-latest CI lane mentioned in #144 is the natural next step (comment there first — it's a runner-cost decision). Either way: a tight, well-validated diff. Thank you.
alphacrack
approved these changes
Jul 19, 2026
alphacrack
added a commit
that referenced
this pull request
Jul 19, 2026
* release: v0.7.0 — the GitHub Action wedge The milestone release: a composite Action that verifies the README in CI and fails the build when it breaks (#157), report exit codes as the verdict (#158), report --markdown job summaries (#159), and per-run badge.json (#156). Windows-portable suite (#154, first-time contributor) and the hermetic docker-socket test fix (#155). Ships docs/whats-new-0.7.0.md: a step-by-step walkthrough of every user-facing change since 0.6.0, each command executed against the committed example run before publishing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: whats-new step 1 installs from the checkout (not on PyPI yet, #19) Guide mode executes every step verbatim in the sandbox; 'pip install -U readme2demo' would fail there (or fetch a name-squatted package). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: action.yml description under Marketplace's 125-char limit The Marketplace publish validator rejects descriptions >=125 chars; ours was ~170. Same claim, fewer words. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Skips the POSIX executable-bit assertion on Windows, where NTFS cannot
represent that behavior, while leaving both assertions unchanged on POSIX.
Generated tutorial fixtures and artifacts are now read and written explicitly
as UTF-8 instead of relying on the Windows locale.
Why
On this Windows checkout, the baseline had 11 failures: one synthesized
executable-bit failure and ten GBK/UTF-8 decode failures. The test-only fix
keeps the product code and POSIX behavior untouched.
Validation
11 failed, 350 passed360 passed, 1 skippedon Windows; the skip is the POSIX-only permission checkpython -m ruff check src/ tests/No Docker, API keys, source files, sandbox flags, or prompts were involved.
Fixes #144