Releases: pex-tool/pex
pex 2.20.0
2.20.0
This release adds the --pip-log
alias for the existing
--preserve-pip-download-log
option as well as the ability to specify
the log file path. So, to debug a resolve, you can now specify
--pip-log log.txt
and Pex will deposit the Pip resolve log to
log.txt
in the current directory for easy tailing or post-resolve
inspection. In addition, the log file itself is more useful in some
cases. When you specify any abbreviated --platform
targets, those
targets calculated wheel compatibility tags are included in the Pip
log. Also, when multiple targets are specified, their log outputs are
now merged at the end of the resolve in a serialized fashion with
prefixes on each log line indicating which target the log line
corresponds to.
In addition, a race in Pex's PEP-517 implementation that could (rarely)
lead to spurious metadata generation errors or sdist creation errors is
fixed.
- Fix intermittent PEP-517 failures. (#2540)
- Plumb
--pip-version
to Platform tag calculation. (#2538) - Add the ability to specify the
--pip-log
path. (#2536)
file | sha256 | size |
---|---|---|
pex | b9637600b512e19bb8ded10cecd7afbf4126d4a1dc8b93aa63e29a9b9d0acf79 | 4311728 |
pex-linux-aarch64 | af3c3049d9f8bb94f4d3e67eb4f2c6a4d16aede34569f9367adf99c495649a6a | 24052664 |
pex-linux-x86_64 | 5186406f5e93ef00139a989235d7467df5ced4e4edf389cd7903b04eea50ec0d | 27668910 |
pex-macos-aarch64 | 81ed55d4fe7d8ca9ff0ba55f9443e650df283afa7b4b87be2337caecdaa1951a | 21523908 |
pex-macos-x86_64 | 12a3745d7f80ba679d2763af90b722810cd372cb545bfdc364454b2c241a0798 | 22038122 |
pex 2.19.1
2.19.1
This release fixes a regression introduced by #2512 in the 2.19.0
release when building PEXes using abbreviated --platform
targets.
Instead of failing certain builds that used to succeed, Pex now warns
that the resulting PEX may fail at runtime and that
--complete-platform
should be used instead.
- Only warn when
--platform
resolves fail tag checks. (#2533)
file | sha256 | size |
---|---|---|
pex | 86ef2ac38d36aba203dc5b9819b77c3e25fb8588b01c9d15f66b1c94bdbc989b | 4310578 |
pex-linux-aarch64 | bfe9e3fc43b93a2cf07aafe7573cd047fa182d8d8bf5a01922db6aace845fcc6 | 24051503 |
pex-linux-x86_64 | 427b1fcbccdafa8c07a81a4e6085802e66de49efb82eba035a9a66a846992bc5 | 27667757 |
pex-macos-aarch64 | 0d61f5f6dade67a303fe0f85f55f6bb5a90652bfc8ea62f38ec3fe8d19a06771 | 21522752 |
pex-macos-x86_64 | 368b2c86902f3e56572913101498986c3b8ee5337d0c0f66b36596f600a43f42 | 22036967 |
pex 2.19.0
2.19.0
This release adds support for a new --pre-resolved-dists
resolver as
an alternative to the existing Pip resolver, --lock
resolver and
--pex-repository
resolvers. Using --pre-resolved-dists dists/dir/
behaves much like --no-pypi --find-links dists/dir/
except that it is
roughly 3x faster.
- Support
--pre-resolved-dists
resolver. (#2512)
file | sha256 | size |
---|---|---|
pex | 1b56d778fcf3b9504838277a7a20d6676b9f947aaa4759873830af2e78bf33ab | 4310167 |
pex-linux-aarch64 | e61d4fd3d9ad237fdb4de3eae3ab8b4ccd6dcb9927aa3fa6670f6ed41e859563 | 24051094 |
pex-linux-x86_64 | 46c9b66cfff839cae952ec5daa3fa2e98e2d5c095e630a33d10bb050f21b2280 | 27667352 |
pex-macos-aarch64 | e8751e169c57b4610cd4f21b345c12977e829e5621c438aaebea691e7f6395ea | 21522348 |
pex-macos-x86_64 | 4f30267de92e407e0a5454155d4dd06f62809197ec341d4083e81e194fcb1f63 | 22036558 |
pex 2.18.1
2.18.1
This release fixes --scie-name-style platform-parent-dir
introduced in
#2523. Previously the target platform name also leaked into scies
targeting foreign platforms despite using this option.
- Fix
--scie-name-style platform-parent-dir
. (#2526)
file | sha256 | size |
---|---|---|
pex | 235e2af0106a933f66c6281c56859b964a7eea45f2ce107364acc39f9d7241ad | 4306261 |
pex-linux-aarch64 | 84d30ea29bf4c46dbeb8f7eda297f9001ff287bdc1218f27dfe413a2c502bbaf | 24047200 |
pex-linux-x86_64 | 6964d2d564372c7378e13c2d8042d109fefd5021f76c5663304ab6f7ff7a9329 | 27663445 |
pex-macos-aarch64 | 83d34f66c618c961d4b341992abd1725b739c1ccfb82cff0bf44a2e524431ad1 | 21518443 |
pex-macos-x86_64 | c0043174cc1c15b1696b3e0c31661b0e3a5706283510ef32078de94dd2409b46 | 22032653 |
pex 2.18.0
2.18.0
This release adds support for pex3 cache {dir,info,purge}
for
inspecting and managing the Pex cache. Notably, the pex3 cache purge
command is safe in the face of concurrent PEX runs, waiting for in
flight PEX runs to complete and blocking new runs from starting once the
purge is in progress. N.B.: when using pex3 cache purge
it is best to
install Pex with the 'management' extra; e.g.:
pip install pex[management]
. Alternatively, one of the new Pex scie
binary releases can be used.
In order to release a Pex binary that can support the new pex3
cache
management commands first class, a set of enhancements to project
locking and scie generation were added. When using --project
you can
now specify extras; e.g.: --project ./the/project-dir[extra1,extra2]
.
When creating a Pex scie, you can now better control the output files
using --scie-only
to ensure no PEX file is emitted and
--scie-name-style
to control how the scie target platform name is
mixed into the scie output file name. Additionally, you can request one
or more shasum-compatible checksum files be emitted for each scie with
--scie-hash-alg
.
On the locking front, an obscure bug locking project releases that
contain artifacts that mis-report their version number via their file
name has been fixed.
Finally, the vendored Pip has had its own vendored CA cert bundle
upgraded from that in certifi 2024.7.4 to that in certifi 2024.8.30.
- Fix locking of sdists rejected by Pip. (#2524)
- Add
--scie-only
&--scie-name-style
. (#2523) - Support
--project
extras. (#2522) - Support shasum file gen via
--scie-hash-alg
. (#2520) - Update vendored Pip's CA cert bundle. (#2517)
- Introduce
pex3 cache {dir,info,purge}
. (#2513)
file | sha256 | size |
---|---|---|
pex | e5bc91c05b0e685a46348d4295c06507da66ba25452d0d2e13f0955e2b02a7c8 | 4306224 |
pex-linux-aarch64 | a4bfa9e79adf5449b17ba76689a0ff491bd51dfe32864ceb9406aa52a67500e5 | 24047159 |
pex-linux-x86_64 | 214e126ea430fca238ea4803d4087066e2c7e905469c0ba9445735e573fde90c | 27663407 |
pex-macos-aarch64 | 2693fe1221df2a7845094dd2c76698a322396977f6fcdeb19af52d3888bf35f9 | 21518404 |
pex-macos-x86_64 | f6dc8fe4d49561158d9deed155bede78762d802084298465e37ac7316464b9d6 | 22032619 |
pex 2.17.0
2.17.0
This release brings support for overriding the versions of setuptools
and wheel Pex bootstraps for non-vendored Pip versions (the modern ones
you select with --pip-version
) using the existing
--extra-pip-requirement
option introduced in the 2.10.0 release.
- Support custom setuptools & wheel versions. (#2514)
pex 2.16.2
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.
pex 2.16.1
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
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
--exclude
s 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
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)