[Fix] Make development checks portable to Windows - #19
Merged
Yunaik merged 1 commit intoSep 27, 2026
Merged
Conversation
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.
Why
The native Windows core checks fail on valid CLI output and a correctly closed static server. The smoke script compares CRLF output as if it were LF, the lifecycle tests expect closed-port connections to raise
ConnectionRefusedErrorinstead of timing out, and the invalid-home test assumes/dev/nullis a special file.How
Normalize the captured agent list before comparing it. Check the owned listening socket's closed descriptor directly, while retaining a real connection check during the session. Create a temporary regular file as the parent of an invalid
S1A_HOME, which works on both Windows and Unix.What
Keep Bash scripts and Git hooks at LF with
.gitattributes. Add a Windows / Python 3.11 core CI job alongside the existing Linux / Python 3.11 and 3.13 jobs, select Bash for the smoke step, and document the Windows check commands.Verification
On native Windows with CPython 3.11.16 and the locked core + dev dependencies:
pytest -q: 482 passed, 41 skipped, with 66 subtests passed.scripts/smoke.sh: passed in Git Bash using native Windows Python, including its real CRLF output.ruff format --check .,ruff check .,ty check,uv lock --check --offline, anduv build --offline: passed.server_closemakes both revised lifecycle tests fail, confirming that they still catch an unreleased socket.core.autocrlf=true.