Skip to content

Releases: pex-tool/pex

pex 2.1.155

24 Dec 04:34
v2.1.155
4eb5c9a
Compare
Choose a tag to compare

2.1.155

This release brings support for --pip-version 23.3.2 along with
optimizations that reduce built PEX size for both --include-tools and
--venv PEXes (which includes the Pex PEX) as well as reduce PEX build
time for --pre-install-wheels PEXes (the default) and PEX cold first
boot time for --no-pre-install-wheels PEXes that use more than one
parallel install job.

  • Add support for Pip 23.3.2. (#2307)
  • Remove Pip.spawn_install_wheel & optimize. (#2305)
  • Since we no longer use wheel code, remove it. (#2302)

pex 2.1.154

14 Dec 02:31
v2.1.154
efe709f
Compare
Choose a tag to compare

2.1.154

This release brings three new features:

  1. When creating PEXes without specifying an explicit
    --python-shebang, an appropriate shebang is chosen correctly in
    more cases than previously and a warning is emitted when the shebang
    chosen cannot be guaranteed to be correct. The common case this
    helps select the appropriate shebang for is PEXes built using
    --platform or --complete-platform.
  2. PEXes can now be created with --no-pre-install-wheels to cut down
    PEX build times with a tradeoff of roughly 10% greater boot overhead
    upon the 1st execution of the PEX file. For PEXes with very large
    dependency sets (machine learning provides common cases), the build
    time savings can be dramatic.
  3. PEXes can now be told to install dependencies at runtime on 1st
    execution using parallel processes using --max-install-jobs at PEX
    build time or by setting the PEX_MAX_INSTALL_JOBS environment
    variable at runtime.

The last two features come with complicated tradeoffs and are turned off
by default as a result. If you think they might help some of your use
cases, there is more detail in the command line help for
--no-pre-install-wheels and --max-install-jobs as well as in the
pex --help-variables output for PEX_MAX_INSTALL_JOBS. You can also
find a detailed performance analysis in #2292 for the extreme cases of
very small and very large PEXes. In the end though, experimenting is
probably your best bet.

  • Use appropriate shebang for multi-platform PEXes. (#2296)
  • Add support for --no-pre-install-wheels and --max-install-jobs. (#2298)

pex 2.1.153

16 Nov 21:21
v2.1.153
d7ee142
Compare
Choose a tag to compare

2.1.153

This release fixes Pex runtime sys.path scrubbing to do less work and
thus avoid errors parsing system installed distributions with bad
metadata.

  • Remove Pex runtime scrubbing dist discovery. (#2290)

pex 2.1.152

10 Nov 18:06
v2.1.152
db5b510
Compare
Choose a tag to compare

2.1.152

This release fixes the computation of the hash of the code within a PEX
when nested within directories, a bug introduced in 2.1.149.

  • Exclude pyc dirs, not include, when hashing code (#2286)

pex 2.1.151

07 Nov 18:52
v2.1.151
93500d1
Compare
Choose a tag to compare

2.1.151

This release brings support for a new --exclude <req> PEX build option
that allows eliding selected resolved distributions from the final PEX.
This is an advanced feature that will, in general, lead to broken PEXes
out of the box; so read up on the --exclude command line help to make
sure you understand the consequences.

This release also brings a fix for --inject-env that ensures the
specified environment variables are always injected to the PEX at
runtime regardless of the PEX entry point exercised.

  • Implement support for --exclude <req>. (#2281)
  • Relocate environment variable injection to before the interpreter is run (#2260)

pex 2.1.150

04 Nov 22:17
v2.1.150
d1b0632
Compare
Choose a tag to compare

2.1.150

This release brings support for --pip-version 23.3.1.

  • Add support for Pip 23.3.1. (#2276)

pex 2.1.149

03 Nov 03:27
v2.1.149
f37d82b
Compare
Choose a tag to compare

2.1.149

Fix --style universal lock handing of none ABI wheels with a
specific Python minor version expressed in their wheel tag. There are
not many of these in the wild, but a user discovered the case of
python-forge 18.6.0 which supplies 1 file on PyPI:
python_forge-18.6.0-py35-none-any.whl.

  • Fix universal lock handling of the none ABI. (#2270)

pex 2.1.148

02 Oct 04:57
v2.1.148
b6ede65
Compare
Choose a tag to compare

2.1.148

Add support to the Pex for checking if built PEXes are valid Python
zipapps. Currently, Python zipapps must reside in 32 bit zip files due
to limitations of the stdlib zipimport module's zipimporter; so this
check amounts to a check that the built PEX zip does not use ZIP64
extensions. The check is controlled with a new
--check {none,warn,error} option, defaulting to warn.

  • Add --check support for zipapps. (#2253)

pex 2.1.147

18 Sep 07:48
v2.1.147
8136666
Compare
Choose a tag to compare

2.1.147

Add support for --use-pip-config to allow the Pip Pex calls to read
PIP_* env vars and Pip configuration files. This can be particularly
useful for picking up custom index configuration (including auth).

  • Add support for --use-pip-config. (#2243)

pex 2.1.146

17 Sep 04:49
v2.1.146
355d20c
Compare
Choose a tag to compare

2.1.146

This release brings a fix by new contributor @yjabri for the __pex__
import hook that gets it working properly for --venv mode PEXes.

  • Fix non executable venv sys path bug (#2236)