Skip to content

Releases: pex-tool/pex

pex 2.16.2

16 Aug 03:22
v2.16.2
27044bd
Compare
Choose a tag to compare

2.16.2

This release brings a slew of small fixes across the code base.

When creating locks for foreign platforms,
pex3 lock {create,update,sync} now allows locking sdists that use
PEP-517 build backends that do not support the
prepare_metadata_for_build_wheel hook and whose product is a wheel not
compatible with the foreign platform. This is decidedly a corner case,
but one encountered with the mesonpy build backend which seems to have
traction in the scientific computing world in particular.

The recent re-vamp of the PEX REPL is now fixed to respect common
conventions for controlling terminal output via the NO_COLOR,
FORCE_COLOR and TERM environment variables.

The examples in the buildingpex docs had bit-rotted. They have
been refreshed and now all work.

Finally, both the Pex CLI and PEX files support the ambient OS standards
for user cache directories. Instead of using ~/.pex as the default
PEX_ROOT cache location, the default is now ~/.cache/pex on Linux (
but respecting XDG_CACHE_HOME when set) and ~/Library/Caches/pex on
Mac.

  • Lock sdists in more cases for foreign platforms. (#2508)
  • Respect NO_COLOR, FORCE_COLOR & TERM=dumb. (#2507)
  • Fix buildingpex.rst examples. (#2506)
  • Respect OS user cache location conventions. (#2505)

pex 2.16.1

12 Aug 01:39
v2.16.1
6d7fd71
Compare
Choose a tag to compare

2.16.1

This release fixes the PEX repl for Python Standalone Builds
Linux CPython PEX scies. These PEXes ship using a version of libedit
for readline support that does not support naive use of ansi terminal
escape sequences for prompt colorization.

  • Fix PEX repl prompt for Linux PBS libedit. (#2503)

pex 2.16.0

09 Aug 06:43
v2.16.0
0f4dc43
Compare
Choose a tag to compare

2.16.0

This release adds support for --venv-system-site-packages when
creating a --venv PEX and --system-site-packages when creating a
venv using the pex-tools / PEX_TOOLS=1 venv command or when using
the pex3 venv create command. Although this breaks PEX hermeticity, it
can be the most efficient way to ship partial PEX venvs created with
--excludes to machines that have the excluded dependencies already
installed in the site packages of a compatible system interpreter.

  • Support --system-site-packages when creating venvs. (#2500)

pex 2.15.0

08 Aug 23:55
v2.15.0
20df244
Compare
Choose a tag to compare

2.15.0

This release enhances the REPL your PEX drops into when it either
doesn't have an entry point or you force interpreter mode with the
PEX_INTERPRETER environment variable. There is now clear indication
you are running in a PEX hermetic environment and a pex command
added to the REPL that you can use to find out more details about the
current PEX environment.

  • Add PEX info to the PEX repl. (#2496)

pex 2.14.1

04 Aug 00:56
v2.14.1
9e86b93
Compare
Choose a tag to compare

2.14.1

This release fixes --inject-env when used in combination with a
--scie-busybox so that the injected environment variable can be
overridden at runtime like it can form a traditional PEX.

In addition, running a PEX with the Python interpreter -i flag or
PYTHONINSPECT=x in the environment causes the PEX to enter the
Python REPL after evaluating the entry point, if any.

  • Allow --inject-env overrides for --scie-busybox. (#2490)
  • Fix PEXes for -i / PYTHONINSPECT=x. (#2491)

pex 2.14.0

02 Aug 14:48
v2.14.0
af74814
Compare
Choose a tag to compare

2.14.0

This release brings support for creating PEX scies for PEXes targeting
PyPy. In addition, for PEX scies targeting CPython, you can now
specify --scie-pbs-stripped to select a stripped version of the
Python Standalone Builds CPython distribution embedded in your
scie to save transfer bandwidth and disk space at the cost of losing
Python debug symbols.

Finally, support is added for --scie-busybox to turn your PEX into a
multi-entrypoint BusyBox-like scie. This support is
documented in depth at https://docs.pex-tool.org/scie.html

  • Support --scie for PyPy & support stripped CPython. (#2488)
  • Add support for --scie-busybox. (#2468)

pex 2.13.1

31 Jul 07:24
v2.13.1
d6aad2e
Compare
Choose a tag to compare

2.13.1

This release fixes the --scie option to support building a Pex PEX
scie with something like pex pex -c pex --venv --scie eager -o pex.
Previously, due to the output filename of pex colliding with fixed
internal scie lift manifest file names, this would fail.

  • Handle all output file names when building scies. (#2484)

pex 2.13.0

29 Jul 16:55
v2.13.0
e6f35a6
Compare
Choose a tag to compare

2.13.0

This release improves error message detail when there are failures in
Pex sub-processes. In particular, errors that occur in pip download
when building a PEX or creating a lock file now give more clear
indication of what went wrong.

Additionally, this release adds support for --pip-version 24.2.

  • Add more context for Job errors. (#2479)
  • Add support for --pip-version 24.2. (#2481)

pex 2.12.1

25 Jul 22:49
v2.12.1
9ddabde
Compare
Choose a tag to compare

2.12.1

This release refreshes the root CA cert bundle used by
--pip-version vendored (which is the default Pip Pex uses for
Python <3.12) from certifi 2019.9.11's cacert.pem to
certifi 2024.7.4's
cacert.pem. This refresh addresses at least CVE-2023-37920 and was spearheaded by
a contribution from Nash Kaminski in
pex-tool/pip#12. Thank you, Nash!

  • Update vendored Pip's CA cert bundle. (#2476)

pex 2.12.0

24 Jul 05:00
v2.12.0
9bf28ed
Compare
Choose a tag to compare

2.12.0

This release adds support for passing --site-packages-copies to both
pex3 venv create ... and PEX_TOOLS=1 ./my.pex venv .... This is
similar to pex --venv --venv-site-packages-copies ... except that
instead of preferring hard links, a copy is always performed. This is
useful to disassociate venvs you create using Pex from Pex's underlying
PEX_ROOT cache.

This release also adds partial support for statically linked CPython. If
the statically linked CPython is <3.12, the default Pip (
--pip-version vendored) used by Pex will work. All newer Pips will not
though, until Pip 24.2 is released with the fix in
pypa/pip#12716 and Pex releases with support for
--pip-version 24.2.

  • Add --site-packages-copies for external venvs. (#2470)
  • Support statically linked CPython. (#2472)