-
-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Windows Support #2658
Comments
Since Python 3.9 is now the current last supported release from CPython (see: https://devguide.python.org/versions/#python-release-cycle), I'll be starting there. |
Known major issues:
|
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 5, 2025
Working: + `py -mpex cowsay -ccowsay -- -t Moo!` + `py -mpex cowsay -ccowsay --venv -- -t Moo!` + `py -mpex cowsay -ccowsay -ocowsay.pex` + `py -mpex cowsay -ccowsay --venv -ocowsay.pex` + `py -mpex cowsay` + `py -mpex.cli cache {prune,purge}` Next up: + Figure out tox on Windows. + Set up failing CI. Work towards pex-tool#2658
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 5, 2025
Working: + `py -mpex cowsay -ccowsay -- -t Moo!` + `py -mpex cowsay -ccowsay --venv -- -t Moo!` + `py -mpex cowsay -ccowsay -ocowsay.pex` + `py -mpex cowsay -ccowsay --venv -ocowsay.pex` + `py -mpex cowsay` + `py -mpex.cli cache {prune,purge}` Next up: + Figure out tox on Windows. + Set up failing CI. Work towards pex-tool#2658
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 6, 2025
Although Pex still does not support Windows, this is work towards pex-tool#2658. In particular, support is added for: + Shared and exclusive file locks. + Versions os os.link, os.symlink and os.rename that either work with Windows or work with most modern Windows setups. + Executable file detection that works for Windows. + Partial support for Windows venvs by accomodating its Scripts dir and console script style (.exe stubs). Informal testing shows the following work: + `py -mpex cowsay` + `py -mpex cowsay -ccowsay {,--venv} -- -t Moo!` + `py -mpex cowsay -ccowsay {,--venv} -ocowsay.pex` + `py -mpex cowsay -ccowsay -ocowsay.pex --scie {eager,lazy}` + `py -mpex.cli cache {prune,purge}` Important non-working things include: + The developer system: `tox ...` needs work most fundamentally. + Venv scripts / venv scies: Need support for Windows .exe stub scripts.
jsirois
added a commit
that referenced
this issue
Feb 6, 2025
Although Pex still does not support Windows, this is work towards #2658. In particular, support is added for: + Shared and exclusive file locks. + Versions of `os.link`, `os.symlink` and `os.rename` that either work with Windows or work with most modern Windows setups. + Executable file detection that works for Windows. + Partial support for Windows venvs by accommodating its `Scripts` dir and console script style (`.exe` stubs). Informal testing shows the following work: + `py -mpex cowsay` + `py -mpex cowsay -ccowsay {,--venv} -- -t Moo!` + `py -mpex cowsay -ccowsay {,--venv} -ocowsay.pex` + `py -mpex cowsay -ccowsay -ocowsay.pex --scie {eager,lazy}` + `py -mpex.cli cache {prune,purge}` Important non-working things include: + The developer system: `tox ...` needs work most fundamentally. + Venv scripts / venv scies: Need support for Windows `.exe` stub scripts.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 6, 2025
Re-jigger tox and git to support Windows development / CI. As part of this, fix `pex.pyenv` to work with `pyenv-win`. More work towards pex-tool#2658.
Merged
jsirois
added a commit
that referenced
this issue
Feb 7, 2025
Re-jigger configuration for tox and git to support Windows dev / CI. As part of this, fix `pex.pyenv` to work with `pyenv-win`. More work towards #2658. CF: tox-dev/tox#3136 (comment)
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 7, 2025
Use the stubs generated by the uv project for this. The lineage extends back to distutils through the Posy project. The API is setup and manually tested to produce working windows scripts and the packaging system is updated to embed these stubs in the Pex PEX, wheel and scies. Actually using the API to create scripts when creating venvs on Windows is still left to do. Work towards pex-tool#2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 8, 2025
This is work towards pex-tool#2658 which will need to tackle falling back from symlinks when there are insufficient permissions to create them.
jsirois
added a commit
that referenced
this issue
Feb 8, 2025
This is work towards #2658 which will need to tackle falling back from symlinks when there are insufficient permissions to create them.
jsirois
added a commit
that referenced
this issue
Feb 8, 2025
Use the stubs generated by the uv project for this. The lineage extends back to distutils through the Posy project. The API is setup and manually tested to produce working Windows scripts and the packaging system is updated to embed these stubs in the Pex PEX, wheel and scies. Actually using the API to create scripts when creating venvs on Windows is still left to do. Work towards #2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 9, 2025
More work towards pex-tool#2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 9, 2025
More work towards pex-tool#2658.
jsirois
added a commit
that referenced
this issue
Feb 9, 2025
This should allow highlighting Windows test status during the bring-up period. More work towards #2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 9, 2025
More work towards pex-tool#2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 24, 2025
Windows is currently extremely slow; help it out. More work towards pex-tool#2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 24, 2025
A bit hacky, but this seems to work well. Hack tracked in pex-tool#2699. More work towards pex-tool#2658.
jsirois
added a commit
that referenced
this issue
Feb 24, 2025
Windows is currently extremely slow; help it out. More work towards #2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 24, 2025
More work towards pex-tool#2658.
jsirois
added a commit
that referenced
this issue
Feb 24, 2025
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 25, 2025
More work towards pex-tool#2658.
jsirois
added a commit
that referenced
this issue
Feb 25, 2025
Windows will serve from 0.0.0.0 but does not like connecting to 0.0.0.0 as a TCP client. More work towards #2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 25, 2025
More work towards pex-tool#2658.
Ok, the basic machinery is now solid: https://github.com/pex-tool/pex/runs/37826704273 Currently at 740 passed, 849 failed and 148 skipped. |
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 26, 2025
More work towards pex-tool#2658.
745 passed, 844 failed and 148 skipped |
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 27, 2025
More work towards pex-tool#2658.
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 27, 2025
More work towards pex-tool#2658.
745 passed, 802 failed and 190 skipped |
jsirois
added a commit
to jsirois/pex
that referenced
this issue
Feb 27, 2025
More work towards pex-tool#2658.
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
This tracks the second major effort at bringing Windows support to Pex - the 1st being in 2022. Notes will go here, issues may be broken out for actual issues.
The big change from the 1st effort will be to do this incrementally with a dedicated red CI shard that has diagnostics to quantify the redness. Hopefully watching the redness go from ~100% to 0% will be the difference that helps get this over the line.
The text was updated successfully, but these errors were encountered: