Skip to content

Releases: pex-tool/pex

pex 2.1.10

12 May 00:49
v2.1.10
a2b9aa4
Compare
Choose a tag to compare

2.1.10

This release focuses on the resolver API and resolution performance. Pex 2 resolving using Pip is
now at least at performance parity with Pex 1 in all studied cases and most often is 5% to 10%
faster.

As part of the resolution performance work, Pip networking configuration is now exposed via Pex CLI
options and the NetworkConfiguration API type / new resolver.resolve API parameter.

With network configuration now wired up, the PEX_HTTP_RETRIES and PEX_HTTP_TIMEOUT env var
support in Pex 1 that was never wired into Pex 2 is now dropped in favor of passing --retries
and --timeout via the CLI (See: #94)

  • Expose Pip network configuration. (#974)
  • Restore handling for bad wheel filenames to .can_add() (#973)
  • Fix wheel filename parsing in PEXEnvironment.can_add (#965)
  • Split Pex resolve API. (#970)
  • Add a --local mode for packaging the Pex PEX. (#971)
  • Constrain the virtualenv version used by tox. (#968)
  • Improve Pex packaging. (#961)
  • Make the interpreter cache deterministic. (#960)
  • Fix deprecation warning for rU mode (#956)
  • Fix runtime resolve error message generation. (#955)
  • Kill dead code. (#954)

pex 2.1.9

08 Apr 00:57
v2.1.9
2f048d8
Compare
Choose a tag to compare

2.1.9

This release introduces the ability to copy requirements from an existing PEX into a new one.

This can greatly speed up repeatedly creating a PEX when no requirements have changed.
A build tool (such as Pants) can create a "requirements PEX" that contains just a static
set of requirements, and build a final PEX on top of that, without having to re-run pip
to resolve requirements.

  • Support for copying requirements from an existing pex. (#948)

pex 2.1.8

02 Apr 03:01
v2.1.8
eded8b3
Compare
Choose a tag to compare

2.1.8

This release brings enhanced performance when using the Pex CLI or API to resolve requirements and
improved performance for many PEXed applications when specifying the --unzip option. PEXes built
with --unzip will first unzip themselves into the Pex cache if not unzipped there already and
then re-execute themselves from there. This can improve startup latency. Pex itself now uses this
mode in our PEX release.

  • Better support unzip mode PEXes. (#941)
  • Support an unzip toggle for PEXes. (#939)
  • Ensure the interpreter path is a file (#938)
  • Cache pip.pex. (#937)

pex 2.1.7

25 Mar 20:55
v2.1.7
e9109e2
Compare
Choose a tag to compare

2.1.7

This release brings more robust control of the Pex cache (PEX_ROOT).

The --cache-dir setting is deprecated in favor of build time control of the cache location with
--pex-root and new support for control of the cache's runtime location with --runtime-pex-root
is added. As in the past, the PEX_ROOT environment variable can still be used to control the
cache's runtime location.

Unlike in the past, the Pex PEX
we release can now also be controlled via the PEX_ROOT environment variable. Consult the CLI help
for --no-strip-pex-env to find out more.

  • Sanitize PEX_ROOT handling. (#929)
  • Fix PEX_* env stripping and allow turning off. (#932)
  • Remove second urllib import from compatibility (#931)
  • Adding --runtime-pex-root option. (#780)
  • Improve interpreter not found error messages. (#928)
  • Add detail in interpreter selection error message. (#927)
  • Respect Requires-Python in PEXEnvironment. (#923)
  • Pin our tox version in CI for stability. (#924)

pex 2.1.6

06 Mar 19:08
a07954a
Compare
Choose a tag to compare

2.1.6

This is a hotfix release that fixes a bug in the code that exposes vendored dists.

  • Don't delete the root init.py when devendoring. (#915)
  • Remove unused Interpreter.clear_cache. (#911)

pex 2.1.5

27 Feb 03:11
v2.1.5
4bd825a
Compare
Choose a tag to compare

2.1.5

  • Silence pip warnings about Python 2.7. (#908)
  • Kill Pip.spawn_install_wheel overwrite arg. (#907)
  • Show pex-root from env as default in help output (#901)

pex 2.1.4

20 Feb 16:14
v2.1.4
fad5f75
Compare
Choose a tag to compare

2.1.4

This release fixes the hermeticity of pip resolver executions when the
resolver is called via the Pex API in an environment with PYTHONPATH
set.

  • readme: adding a TOC (#900)
  • Fix Pex resolver API PYTHONPATH hermeticity. (#895)
  • Fixup resolve debug rendering. (#894)
  • Convert bdist_pex tests to explicit cmdclass. (#897)

pex 2.1.3

17 Feb 03:31
v2.1.3
eebb8dd
Compare
Choose a tag to compare

2.1.3

This release fixes a performance regression in which pip
would re-tokenize --find-links pages unnecessarily.
The parsed pages are now cached in a pip patch that has
also been submitted upstream.

  • Revendor pip (#890)
  • Add a clear_cache() method to PythonInterpreter. (#885)
  • Error eagerly if an interpreter binary doesn't exist. (#886)

pex 2.1.2

12 Feb 15:23
v2.1.2
918794d
Compare
Choose a tag to compare

2.1.2

This release fixes a bug in which interpreter discovery failed
when running from a zipped pex.

  • Use pkg_resources when isolating a pex code chroot. (#881)

pex 2.1.1

10 Feb 00:44
v2.1.1
0113805
Compare
Choose a tag to compare

2.1.1

This release significantly improves performance and correctness of
interpreter discovery, particularly when pyenv is involved.
It also provides a workaround for EPERM issues when hard linking
across devices, by falling back to copying.
Resolve error checking also now accounts for environment markers.

  • Revert "Fix the resolve check in the presence of platform constraints. (#877)" (#879)
  • [resolver] Fix issue with wheel when using --index-url option (#865)
  • Fix the resolve check in the presence of platform constraints. (#877)
  • Check expected pex invocation failure reason in tests. (#874)
  • Improve hermeticity of vendoring. (#873)
  • Temporarily skip a couple of tests, to get CI green. (#876)
  • Respect env markers when checking resolves. (#861)
  • Ensure Pex PEX contraints match pex wheel / sdist. (#863)
  • Delete unused pex/package.py. (#862)
  • Introduce an interpreter cache. (#856)
  • Re-enable pyenv interpreter tests under pypy. (#859)
  • Harden PythonInterpreter against pyenv shims. (#860)
  • Parallelize interpreter discovery. (#842)
  • Explain hard link EPERM copy fallback. (#855)
  • Handle EPERM when Linking (#852)
  • Pin transitive dependencies of vendored code. (#854)
  • Kill empty setup.py. (#849)
  • Fix tox -epackage to create pex supporting 3.8. (#843)
  • Fix Pex to handle empty ns package metadata. (#841)