Skip to content

Releases: pex-tool/pex

pex 2.8.1

08 Jul 16:21
v2.8.1
0674b79
Compare
Choose a tag to compare

2.8.1

This release fixes the bdist_pex distutils command to use the
--project option introduced by #2455 in the 2.8.0 release. This
change produces the same results for existing invocations of
python setup.py bdist_pex but allows new uses passing locked project
requirements (either hashed requirement files or Pex lock files) via
--pex-args.

  • Fix bdist_pex to use --project. (#2457)

pex 2.8.0

07 Jul 14:27
v2.8.0
1d21164
Compare
Choose a tag to compare

2.8.0

This release adds a new --override option to resolves that ultimately
use an --index or --find-links. This allows you to override
transitive dependencies when you have determined they are too narrow and
that expanding their range is safe to do. The new --overrides and the
existing --excludes can now also be specified when creating or syncing
a lock file to seal these dependency modifications into the lock.

This release also adds a new --project option to pex and
pex3 lock {create,sync} that improves the ergonomics of locking a
local Python project and then creating PEX executables for that project
using its locked requirements.

In addition, this release fixes the bdist_pex distutils command that
ships with Pex to work when run under tox and Python 3.12 by improving
Pex venv creation robustness when creating venvs that include Pip.

  • Add support for --override. (#2431)
  • Support --project locking and PEX building. (#2455)
  • Improve venv creation robustness when adding Pip. (#2454)

pex 2.7.0

02 Jul 22:51
v2.7.0
52ce99f
Compare
Choose a tag to compare

2.7.0

This release adds support for Pip 24.1.1.

  • Add support for --pip-version 24.1.1. (#2451)

pex 2.6.3

02 Jul 19:07
v2.6.3
38c3fd9
Compare
Choose a tag to compare

2.6.3

There are no changes to Pex code or released artifacts over 2.6.1 or
2.6.2, just a further fix to the GitHub Releases release process which
#2442 broke and #2444 only partially fixed.

  • Fix GitHub Releases deployment. (#2448)

pex 2.6.0

24 Jun 19:19
v2.6.0
0860a90
Compare
Choose a tag to compare

2.6.0

This release adds support for PEP-723 script metadata in --exes. For such
a script with metadata describing its dependencies or Python version
requirements, running the script is as simple as
pex --exe <script> -- <script args> and building a PEX encapsulating
it as simple as pex --exe <script> --output <PEX file>.

  • Add support for PEP-723 script metadata to --exe. (#2436)

pex 2.5.0

23 Jun 17:52
v2.5.0
f2742e7
Compare
Choose a tag to compare

2.5.0

This release brings support for Python 3.13 and --pip-version 24.1,
which is the first Pip version to support it.

  • Support --pip-version 24.1 and Python 3.13. (#2435)

pex 2.4.1

22 Jun 08:23
v2.4.1
f628a95
Compare
Choose a tag to compare

2.4.1

This release fixes pex --only-binary X --lock ... to work with lock
files also created with --only-binary X. The known case here is a
--style universal lock created with --only-binary X to achieve a
partially wheel-only universal lock.

  • Fix pex --only-binary X --lock .... (#2433)

pex 2.4.0

12 Jun 04:09
v2.4.0
2f35cec
Compare
Choose a tag to compare

2.4.0

This release brings new support for preserving arguments passed to the
Python interpreter (like -u or -W ignore) either via running a PEX
via Python from the command line like python -u my.pex or via a
shebang with embedded Python arguments like #!/usr/bin/python -u.

In addition, PEXes can now be built with --inject-python-args similar
to the existing --inject-args but sealing in arguments to pass to
Python instead. When both explicitly passed Python interpreter arguments
and injected Python interpreter arguments are specified, the injected
arguments appear first on the synthesized command line and the
explicitly passed arguments appear last so that the explicit arguments
can trump (which is how Python handles this).

Several bugs existing in the --exclude implementation since its
introduction are now fixed and the feature is greatly improved to act on
excludes eagerly, never traversing them in the resolve process; thus
avoiding downloads associated with them as well as potentially failing
metadata extraction & wheel builds for ill-behaved sdists.

Finally, a bug was fixed in pex3 lock export for lock files containing
either locked VCS requirements or locked local project directories.
Previously, these were exported with a <project name>==<version>
requirement, which lost fidelity with the input requirement. Now they
are exported with their original requirement form. Further, since the
--hash of these styles of locked requirement are unuseable outside
Pex, a new --format option of pip-no-hashes is introduced for the
adventurous.

  • Implement support for preserving and injecting Python args. (#2427)
  • Fix --exclude. (#2409)
  • Fix pex3 lock export handling of exotic reqs. (#2423)

pex 2.3.3

08 Jun 02:45
v2.3.3
1811be0
Compare
Choose a tag to compare

2.3.3

This release fixes pex3 lock create support for --pip-versions
23.3.1 and newer. Previously, when locking using indexes that serve
artifacts via re-directs, the resulting lock file would contain the
final re-directed URL instead of the originating index artifact URL.
This could lead to issues when the indexes re-direction scheme changed
or else if authentication parameters in the original index URL were
stripped in the Pip logs.

  • Fix artifact URL recording for pip>=23.3. (#2421)

pex 2.3.2

05 Jun 23:40
v2.3.2
1a02d54
Compare
Choose a tag to compare

2.3.2

This release fixes a regression for users of gevent monkey patching. The
fix in #2356 released in Pex 2.1.163 lead to these users receiving
spurious warnings from the gevent monkey patch system about ssl being
patched too late.

  • Delay import of ssl in pex.fetcher. (#2417)