A tool for generating .pex (Python EXecutable) files, lock files and venvs.
APACHE-2.0 License
Bot releases are hidden (Show)
Published by jsirois over 4 years ago
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.
Published by jsirois over 4 years ago
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.
PEX_*
env stripping and allow turning off. (#932)--runtime-pex-root
option. (#780)Requires-Python
in PEXEnvironment
. (#923)Published by benjyw over 4 years ago
This is a hotfix release that fixes a bug in the code that exposes vendored dists.
Published by jsirois over 4 years ago
Pip.spawn_install_wheel
overwrite
arg. (#907)Published by jsirois over 4 years ago
This release fixes the hermeticity of pip resolver executions when the
resolver is called via the Pex API in an environment with PYTHONPATH
set.
bdist_pex
tests to explicit cmdclass. (#897)Published by benjyw over 4 years ago
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.
Published by benjyw over 4 years ago
This release fixes a bug in which interpreter discovery failed
when running from a zipped pex.
Published by benjyw over 4 years ago
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.
tox -epackage
to create pex supporting 3.8. (#843)Published by jsirois almost 5 years ago
This release restores and improves support for building and running
multiplatform pexes. Foreign linux*
platform builds now include
manylinux2014
compatible wheels by default and foreign CPython pexes now
resolve abi3
wheels correctly. In addition, error messages at both buildtime
and runtime related to resolution of dependencies are more informative.
Pex 2.1.0 should be considered the first Pex 2-series release that fully
replaces and improves upon Pex 1-series functionality.
pkg_resources
finders monkey-patching. (#827)Published by jsirois almost 5 years ago
This release fixes a regression in handling explicitly requested --index
or
--find-links
http (insecure) repos. In addition, performance of the pex 2.x
resolver is brought in line with the 1.x resolver in all cases and improved in
most cases.
Unify PEX buildtime and runtime wheel caches. #821
PR #821 <https://github.com/pantsbuild/pex/pull/821>
_
Parallelize resolve. (#819)
PR #819 <https://github.com/pantsbuild/pex/pull/819>
_
Use the resolve cache to skip installs. (#815)
PR #815 <https://github.com/pantsbuild/pex/pull/815>
_
Implicitly trust explicitly requested repos. (#813)
PR #813 <https://github.com/pantsbuild/pex/pull/813>
_
Published by jsirois almost 5 years ago
This is a hotfix release that fixes a bug exposed when Pex was asked to use an
interpreter with a non-canonical path as well as fixes for 'current' platform
handling in the resolver API.
iter_compatible_interpreters
path biasing. (#798)Published by jsirois almost 5 years ago
This is a htofix release that fixes a bug when specifying a custom index
(-i
/--index
/--index-url
) via the CLI.
Published by jsirois almost 5 years ago
Pex 2.0.0 is cut on the advent of a large, mostly internal change for typical
use cases: it now uses vendored pip to perform resolves and wheel builds. This
fixes a large number of compatibility and correctness bugs as well as gaining
feature support from pip including handling manylinux2010 and manylinux2014 as
well as VCS requirements and support for PEP-517 & PEP-518 builds.
API changes to be wary of:
--interpreter-cache-dir
CLI option was removed.--cache-ttl
CLI option and cache_ttl
resolver API argument werefetchers
with a list of indexes
and a listfind_links
repos.context
which is now automaticallyprecedence
which is now pip default precedence:--no-wheel
CLI option oruse_wheel=False
API argument.--platform
CLI option and platform
resolver API argument now must--platform=macosx-10.13-x86_64-cp-36-m
.--manylinux
CLI option and use_manylinux
resolver API argument--platform
CLIplatform
resolver API argument; e.g.:--platform=manylinux2010-x86_64-cp-36-m
.In addition, Pex 2.0.0 now builds reproduceable pexes by default; ie:
This finishes off the effort tracked by #716.
Changes in this release:
Published by jsirois about 5 years ago
This release adds the --intransitive
option to support pre-resolved requirements
lists and allows for python binaries built under Gentoo naming conventions.
Published by jsirois about 5 years ago
This release brings a consistency fix to requirement resolution and an
isolation fix that scrubs all non-stdlib PYTHONPATH entries by default,
only pre-pending or appending them to the sys.path
if the
corresponding --inherit-path=(prefer|fallback)
is used.
PYTHONPATH
in --inherit-path
logic. (#765)Published by jsirois about 5 years ago
This is a hotfix release for the bug detailed in #756 that was
introduced by #752 in python 3.7 interpreters.
__file__
of None
. (#757)Published by jsirois about 5 years ago
sys.path
scrubbing of pex extras modules. (#752)Published by jsirois over 5 years ago
setup.py
project extras. (#739)Published by illicitonion over 5 years ago
We now support reproducible builds when creating a pex via pex -o foo.pex
, meaning that if
you were to run the command again with the same inputs, the two generated pexes would be
byte-for-byte identical. To enable reproducible builds when building a pex, use the flags
--no-use-system-time --no-compile
, which will use a deterministic timestamp and not include
.pyc
files in the Pex.
In Pex 1.7.0, we will default to reproducible builds.
--no-use-system-time
flag to use a deterministic timestamp in built PEX (#722)--no-compile
flag to not include .pyc in built pex due to its non-determinism (#718)PexInfo
is isolated from os.environ
. (#711)Published by jsirois over 5 years ago
This is the first release including only a single PEX pex, which
supports execution under all interpreters pex supports.