ci: run the suite on Windows and macOS - #126
Merged
Merged
Conversation
Nothing in this project had ever executed on Windows. CI ran ubuntu-latest only, so the first Windows signal we ever received was a conda-forge build failing on a UnicodeEncodeError that had been reachable from pip installs the whole time. Adds Windows and macOS at the supported floor and ceiling, leaving ubuntu to cover the versions between, and makes the existing steps platform-neutral: the wheel glob and workspace path were both Unix-only. Also asserts the CLI survives a non-UTF-8 console, which is the specific regression that motivated this.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adding Windows to CI surfaced four failures, none of which had ever been visible. doctor crashed on a workspace it could not stat. Windows reports an unresolvable path, a symlink loop among them, as ERROR_CANT_RESOLVE_FILENAME with no matching errno, so it fell through the ELOOP and ENOENT branches and the bare re-raise took down the command whose entire job is describing a broken workspace. It now matches on the winerror as well, and any other OSError is reported as a failed check rather than raised. The other three were platform assumptions in the tests, not product defects: - An unknown ~user stays literal on POSIX but expands to a path under the users directory on Windows. Both are reasonable; the assertion now checks the name reaches the report either way. - The manifest echoes a bad exercise path with the platform separator, so the expected message is now separator-agnostic. - The UTF-8 verify test set PYTHONIOENCODING on the child but let the parent decode with its own locale, which is not UTF-8 on Windows, so a correct ✓ arrived mojibaked. The parent now decodes as UTF-8 too.
An unknown ~user stays literal on POSIX, so doctor reports the path as unresolvable. Windows expands it to a path under the users directory, which is merely missing, so doctor takes the does-not-exist branch instead. Both are correct. Assert what holds either way -- a reported workspace failure naming the user, and no traceback -- rather than pinning one platform's message.
abhiksark
added a commit
to xjcway123/pythonlings
that referenced
this pull request
Aug 21, 2026
Brings in the Windows and macOS CI matrix (abhiksark#126) so this TUI change is exercised on Windows before merge, plus the ASCII-locale CLI fix (abhiksark#125).
This was referenced Aug 21, 2026
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.
Nothing in this project had ever executed on Windows. CI ran
ubuntu-latestonly, so the first Windows signal we ever received was the conda-forge build failing on aUnicodeEncodeError— a bug that had been reachable from ordinary pip installs the whole time (#73, fixed in #125).Adds Windows and macOS at the supported floor and ceiling, leaving ubuntu to cover the versions in between:
Two existing steps were Unix-only and had to be made portable: the
dist/*.whlglob and the hardcoded/tmp/pythonlings-workspacepath. The job now pinsshell: bashon all platforms and usesrunner.temp.fail-fast: false, so one platform failing does not hide the others.Also adds an explicit non-UTF-8 console check. The new
_run_asciiintegration tests from #125 already forcePYTHONIOENCODING=asciiinside pytest, but this exercises the real console path on the platform where it actually bit.This is expected to surface further Windows-specific issues — that is the point of merging it.