Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Windows support in key critical areas. #2663

Merged
merged 3 commits into from
Feb 6, 2025

Conversation

jsirois
Copy link
Member

@jsirois jsirois commented 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.

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 jsirois merged commit 5b06cce into pex-tool:main Feb 6, 2025
23 checks passed
@jsirois jsirois deleted the issues-2658/checkpoint/1 branch February 6, 2025 22:28
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.

1 participant