Releases: pex-tool/pex
pex 2.1.10
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
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
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.
pex 2.1.7
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
inPEXEnvironment
. (#923) - Pin our tox version in CI for stability. (#924)
pex 2.1.6
pex 2.1.5
pex 2.1.4
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.
pex 2.1.3
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.
pex 2.1.2
pex 2.1.1
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)