pex

A tool for generating .pex (Python EXecutable) files, lock files and venvs.

APACHE-2.0 License

Downloads
2.5M
Stars
2.4K

Bot releases are hidden (Show)

pex - pex 2.1.8

Published by jsirois over 4 years ago


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 - pex 2.1.7

Published by jsirois over 4 years ago


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 - pex 2.1.6

Published by benjyw over 4 years ago


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 - pex 2.1.5

Published by jsirois over 4 years ago


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 - pex 2.1.4

Published by jsirois over 4 years ago


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 - pex 2.1.3

Published by benjyw over 4 years ago


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 - pex 2.1.2

Published by benjyw over 4 years ago


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 - pex 2.1.1

Published by benjyw over 4 years ago


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)
pex - pex 2.1.0

Published by jsirois almost 5 years ago


2.1.0

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.

  • Fix pex resolving for foreign platforms. (#835)
  • Use pypa/packaging. (#831)
  • Upgrade vendored setuptools to 42.0.2. (#832)
  • De-vendor pex just once per version. (#833)
  • Support VCS urls for vendoring. (#834)
  • Support python 3.8 in CI. (#829)
  • Fix pex resolution to respect --ignore-errors. (#828)
  • Kill pkg_resources finders monkey-patching. (#827)
  • Use flit to distribute pex. (#826)
  • Cleanup extras_require. (#825)
pex - pex 2.0.3

Published by jsirois almost 5 years ago


2.0.3

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>_

pex - pex 2.0.2

Published by jsirois almost 5 years ago


2.0.2

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.

  • Fix current platform handling. (#801)
  • Add a test of pypi index rendering. (#799)
  • Fix iter_compatible_interpreters path biasing. (#798)
pex - pex 2.0.1

Published by jsirois almost 5 years ago


2.0.1

This is a htofix release that fixes a bug when specifying a custom index
(-i/--index/--index-url) via the CLI.

  • Fix #794 issue by add missing return statement in str (#795)
pex - pex 2.0.0

Published by jsirois almost 5 years ago


2.0.0

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:

  • The egg distribution format is no longer supported.
  • The deprecated --interpreter-cache-dir CLI option was removed.
  • The --cache-ttl CLI option and cache_ttl resolver API argument were
    removed.
  • The resolver API replaced fetchers with a list of indexes and a list
    of find_links repos.
  • The resolver API removed (http) context which is now automatically
    handled.
  • The resolver API removed precedence which is now pip default precedence:
    wheels when available and not ruled out via the --no-wheel CLI option or
    use_wheel=False API argument.
  • The --platform CLI option and platform resolver API argument now must
    be full platform strings that include platform, implementation, version and
    abi; e.g.: --platform=macosx-10.13-x86_64-cp-36-m.
  • The --manylinux CLI option and use_manylinux resolver API argument
    were removed. Instead, to resolve manylinux wheels for a foreign platform,
    specify the manylinux platform to target with an explicit --platform CLI
    flag or platform 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:

  • Python modules embedded in the pex are not pre-compiled (pass --compile if
    you want this).
  • The timestamps for Pex file zip entries default to midnight on
    January 1, 1980 (pass --use-system-time to change this).

This finishes off the effort tracked by #716.

Changes in this release:

  • Pex defaults to reproduceable builds. (#791)
  • Use pip for resolving and building distributions. (#788)
  • Bias selecting the current interpreter. (#783)
pex - pex 1.6.12

Published by jsirois about 5 years ago


1.6.12

This release adds the --intransitive option to support pre-resolved requirements
lists and allows for python binaries built under Gentoo naming conventions.

  • Add an --intransitive option. (#775)
  • PythonInterpreter: support python binary names with single letter suffixes (#769)
pex - pex 1.6.11

Published by jsirois about 5 years ago


1.6.11

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.

  • Avoid reordering of equivalent packages from multiple fetchers (#762)
  • Include PYTHONPATH in --inherit-path logic. (#765)
pex - pex 1.6.10

Published by jsirois about 5 years ago


1.6.10

This is a hotfix release for the bug detailed in #756 that was
introduced by #752 in python 3.7 interpreters.

  • Guard against modules with a __file__ of None. (#757)
pex - pex 1.6.9

Published by jsirois about 5 years ago


1.6.9

  • Fix sys.path scrubbing of pex extras modules. (#752)
  • Fix pkg resource early import (#750)
pex - pex 1.6.8

Published by jsirois over 5 years ago


1.6.8

  • Fixup pex re-exec during bootstrap. (#741)
  • Fix resolution of setup.py project extras. (#739)
  • Tighten up namespace declaration logic. (#732)
  • Fixup import sorting. (#731
pex - pex 1.6.7

Published by illicitonion over 5 years ago


1.6.7

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.

  • add delayed pkg_resources import fix from #713, with an integration test (#730)
  • Fix reproducible builds sdist test by properly requiring building the wheel (#727)
  • Fix reproducible build test improperly using the -c flag and add a new test for -c flag (#725)
  • Fix PexInfo requirements using a non-deterministic data structure (#723)
  • Add new --no-use-system-time flag to use a deterministic timestamp in built PEX (#722)
  • Add timeout when using requests. (#726)
  • Refactor reproducible build tests to assert that the original pex command succeeded (#724)
  • Introduce new --no-compile flag to not include .pyc in built pex due to its non-determinism (#718)
  • Document how Pex developers can run specific tests and run Pex from source (#720)
  • Remove unused bdist_pex.py helper function (#719)
  • Add failing acceptance tests for reproducible Pex builds (#717)
  • Make a copy of globals() before updating it. (#715)
  • Make sure PexInfo is isolated from os.environ. (#711)
  • Fix import sorting. (#712)
  • When iterating over Zipfiles, always use the Unix file separator to fix a Windows issue (#638)
  • Fix pex file looses the executable permissions of binary files (#703)
pex - pex 1.6.6

Published by jsirois over 5 years ago


1.6.6

This is the first release including only a single PEX pex, which
supports execution under all interpreters pex supports.

  • Fix pex bootstrap interpreter selection. (#701)
  • Switch releases to a single multi-pex. (#698)