Skip to content

Releases: pex-tool/pex

pex 2.1.22

14 Dec 22:48
v2.1.22
0d242bf
Compare
Choose a tag to compare

2.1.22

This release fixes a deadlock that could be experienced when building
PEX files in highly concurrent environments in addition to fixing
pex --help-variables output.

A new suite of PEX tools is now available in Pex itself and any PEXes
built with the new --include-tools option. Use
PEX_TOOLS=1 pex --help to find out more about the available tools and
their usage.

Finally, the long deprecated exposure of the Pex APIs through _pex has
been removed. To use the Pex APIs you must include pex as a dependency
in your PEX file.

  • Add a dependency graph tool. (#1132)
  • Add a venv tool. (#1128)
  • Remove long deprecated support for _pex module. (#1135)
  • Add an interpreter tool. (#1131)
  • Escape venvs unless PEX_INHERIT_PATH is requested. (#1130)
  • Improve PythonInterpreter venv support. (#1129)
  • Add support for PEX runtime tools & an info tool. (#1127)
  • Exclusive atomic_directory always unlocks. (#1126)
  • Fix PythonInterpreter binary normalization. (#1125)
  • Add a requires_dists function. (#1122)
  • Add an is_exe helper. (#1123)
  • Fix req parsing for local archives & projects. (#1121)
  • Improve PEXEnvironment constructor ergonomics. (#1120)
  • Fix safe_open for single element relative paths. (#1118)
  • Add URLFetcher IT. (#1116)
  • Implement full featured requirment parsing. (#1114)
  • Fix --help-variables docs. (#1113)
  • Switch from optparse to argparse. (#1083)

pex 2.1.21

10 Nov 23:55
v2.1.21
b7a4e7f
Compare
Choose a tag to compare

2.1.21

  • Fix iter_compatible_interpreters with path. (#1110)
  • Fix Requires-Python environment marker mapping. (#1105)
  • Fix spurious InstalledDistribution env markers. (#1104)
  • Deprecate -R/--resources-directory. (#1103)
  • Fix ResourceWarning for unclosed /dev/null. (#1102)
  • Fix runtime vendoring bytecode compilation races. (#1099)

pex 2.1.20

22 Oct 00:05
v2.1.20
0cfe165
Compare
Choose a tag to compare

2.1.20

This release improves interpreter discovery to prefer more recent patch versions, e.g. preferring
Python 3.6.10 over 3.6.8.

We recently regained access to the docsite, and https://pex.readthedocs.io/en/latest/ is now
up-to-date.

  • Prefer more recent patch versions in interpreter discovery. (#1088)

  • Fix --pex-python when it's the same as the current interpreter. (#1087)

  • Fix dir_hash vs. bytecode compilation races. (#1080)

  • Fix readthedocs doc generation. (#1081)

pex 2.1.19

15 Oct 13:33
v2.1.19
d70512c
Compare
Choose a tag to compare

2.1.19

This release adds the --python-path option, which allows controlling the
interpreter search paths when building a PEX.

The release also removes --use-first-matching-interpreter, which was a misfeature. If you want to use
fewer interpreters when building a PEX, use more precise values for --interpreter-constraint and/or
--python-path, or use --python or --platform.

  • Add --python-path to change interpreter search paths when building a PEX. (#1077)
  • Remove --use-first-matching-interpreter misfeature. (#1076)
  • Encapsulate --inherit-path handling. (#1072)

pex 2.1.18

09 Oct 22:16
v2.1.18
46bec79
Compare
Choose a tag to compare

2.1.18

This release brings official support for Python 3.9 and adds a new --tmpdir option to explicitly
control the TMPDIR used by Pex and its subprocesses. The latter is useful when building PEXes in
space-constrained environments in the face of large distributions.

The release also fixes --cert and --client-cert so that they work with PEP-518 builds in
addition to fixing bytecode compilation races in highly parallel environments.

  • Add a --tmpdir option to the Pex CLI. (#1068)
  • Honor sys.executable unless macOS Framework. (#1065)
  • Add Python 3.9 support. (#1064)
  • Fix handling of --cert and --client-cert. (#1063)
  • Add atomic_directory exclusive mode. (#1062)
  • Fix --cert for PEP-518 builds. (#1060)

pex 2.1.17

03 Oct 20:29
v2.1.17
0a29161
Compare
Choose a tag to compare

2.1.17

This release fixes a bug in --resolve-local-platforms handling that made it unusable in 2.1.16
(#1043) as well as fixing a long standing file handle leak (#1050) and a bug when running under
macOS framework builds of Python (#1009).

  • Fix --unzip performance regression. (#1056)
  • Fix resource leak in Pex self-isolation. (#1052)
  • Fix use of iter_compatible_interpreters. (#1048)
  • Do not rely on sys.executable being accurate. (#1049)
  • slightly demystify the relationship between platforms and interpreters in the library API and CLI (#1047)
  • Path filter for PythonInterpreter.iter_candidates. (#1046)
  • Add type hints to util.py and tracer.py (#1044)
  • Add type hints to variables.py and platforms.py (#1042)
  • Add type hints to the remaining tests (#1040)
  • Add type hints to most tests (#1036)
  • Use MyPy via type comments (#1032)

pex 2.1.16

15 Sep 01:11
v2.1.16
2783d30
Compare
Choose a tag to compare

2.1.16

This release fixes a bug in sys.path scrubbing / hermeticity (#1025) and a bug in the -D / --sources-directory and -R / --resources-directory options whereby PEP-420 implicit (namespace) packages were not respected (#1021).

  • Improve UnsatisfiableInterpreterConstraintsError. (#1028)
  • Scrub direct sys.path manipulations by .pth files. (#1026)
  • PEX zips now contain directory entries. (#1022)
  • Fix UnsatisfiableInterpreterConstraintsError. (#1024)

pex 2.1.15

28 Jul 20:00
v2.1.15
436dc55
Compare
Choose a tag to compare

2.1.15

A patch release to fix an issue with the --use-first-matching-interpreter flag.

  • Fix --use-first-matching-interpreter at runtime. (#1014)

pex 2.1.14

23 Jul 20:29
v2.1.14
62ed386
Compare
Choose a tag to compare

2.1.14

This release adds the --use-first-matching-interpreter flag, which
can speed up performance when building a Pex at the expense of being
compatible with fewer interpreters at runtime.

  • Add --use-first-matching-interpreter. (#1008)
  • Autoformat with Black. (#1006)

pex 2.1.13

11 Jul 00:17
v2.1.13
dc32545
Compare
Choose a tag to compare

2.1.13

The focus of this release is better support of the --platform CLI
arg. Platforms are now better documented and can optionally be resolved
to local interpreters when possible via --resolve-local-platforms to
better support creation of multiplatform PEXes.

  • Add support for resolving --platform locally. (#1000)
  • Improve --platform help. (#1002)
  • Improve and fix --platform help. (#1001)
  • Ensure pip download dir is uncontended. (#998)