diff options
author | rosetintedcheeks | 2024-04-09 14:46:26 -0400 |
---|---|---|
committer | rosetintedcheeks | 2024-04-09 15:06:31 -0400 |
commit | 7ff9ebce4ba7edc9060bf20cbc5186e8b94128aa (patch) | |
tree | 294bb5961ae8856800e285bd630f30245599ce86 /CHANGES.rst | |
parent | 5a029a311f99f6ff674e558a9407a5b6c8a73c51 (diff) | |
download | aur-7ff9ebce4ba7edc9060bf20cbc5186e8b94128aa.tar.gz |
Update to 2.3.0
Diffstat (limited to 'CHANGES.rst')
-rw-r--r-- | CHANGES.rst | 3566 |
1 files changed, 0 insertions, 3566 deletions
diff --git a/CHANGES.rst b/CHANGES.rst deleted file mode 100644 index 112d072a069c..000000000000 --- a/CHANGES.rst +++ /dev/null @@ -1,3566 +0,0 @@ -Release Notes -============= - -2.1.126 -------- - -This release fixes a long standing (> 4 years old!) concurrency bug -when building the same sdist for the 1st time and racing another Pex -process doing the same sdist build. - -* Guard against racing sdist builds. (#2080) - `PR #2080 <https://github.com/pantsbuild/pex/pull/2080>`_ - -2.1.125 -------- - -This release makes ``--platform`` and ``--complete-platform`` resolves -and locks as permissive as possible. If such a resolve or lock only has -an sdist available for a certain project, that sdist will now be used if -it builds to a wheel compatible with the specified foreign platform(s). - -* Attempt "cross-builds" of sdists for foreign platforms. (#2075) - `PR #2075 <https://github.com/pantsbuild/pex/pull/2075>`_ - -2.1.124 -------- - -This release adds support for specifying ``--non-hermetic-venv-scripts`` -when building a ``--venv`` PEX. This can be useful when integrating with -frameworks that do setup via ``PYTHONPATH`` manipulation. - -Support for Pip 23.0.1 and setuptools 67.4.0 is added via -``--pip-version 23.0.1``. - -Additionally, more work towards hardening Pex against rare concurrency -issues in its atomic directory handling is included. - -* Introduce ``--non-hermetic-venv-scripts``. (#2068) - `PR #2068 <https://github.com/pantsbuild/pex/pull/2068>`_ - -* Wrap inter-process locks in in-process locks. (#2070) - `PR #2070 <https://github.com/pantsbuild/pex/pull/2070>`_ - -* Add support for Pip 23.0.1. (#2072) - `PR #2072 <https://github.com/pantsbuild/pex/pull/2072>`_ - -2.1.123 -------- - -This release fixes a few ``pex3 lock create`` bugs. - -There was a regression introduced in Pex 2.1.122 where projects that -used a PEP-518 ``[build-system] requires`` but specified no -corresponding ``build-backend`` would fail to lock. - -There were also two long standing issues handling more exotic direct -reference URL requirements. Source archives with names not following the -standard Python sdist naming scheme of -``<project name>-<version>.{zip,tar.gz}`` would cause a lock error. An -important class of these is provided by GitHub's magic source archive -download URLs. Also, although local projects addressed with Pip -proprietary support for pure local path requirements would lock, the -same local projects addressed via -``<project name> @ file://<local project path>`` would also cause a lock -error. Both of these cases are now fixed and can be locked successfully. - -When locking with an ``--interpreter-constraint``, any resolve -traversing wheels using the ``pypyXY`` or ``cpythonXY`` python tags -would cause the lock to error. Wheels with this form of python tag are -now handled correctly. - -* Handle ``[build-system]`` with no build-backend. (#2064) - `PR #2064 <https://github.com/pantsbuild/pex/pull/2064>`_ - -* Handle locking all direct reference URL forms. (#2060) - `PR #2060 <https://github.com/pantsbuild/pex/pull/2060>`_ - -* Fix python tag handling in IC locks. (#2061) - `PR #2061 <https://github.com/pantsbuild/pex/pull/2061>`_ - -2.1.122 -------- - -This release fixes posix file locks used by Pex internally and enhances -lock creation to support locking sdist-only C extension projects that -do not build on the current platform. Pex is also updated to support -``--pip-version 22.3.1`` and ``--pip-version 23.0``, bringing it up to -date with the latest Pip's available. - -* Support the latest Pip releases: 22.3.1 & 23.0 (#2056) - `PR #2056 <https://github.com/pantsbuild/pex/pull/2056>`_ - -* Lock sdists with ``prepare-metadata-for-build-wheel``. (#2053) - `PR #2053 <https://github.com/pantsbuild/pex/pull/2053>`_ - -* Fix ``execute_parallel`` "leaking" a thread. (#2052) - `PR #2052 <https://github.com/pantsbuild/pex/pull/2052>`_ - -2.1.121 -------- - -This release fixes two bugs brought to light trying to interoperate with -Poetry projects. - -* Support space separated markers in URL reqs. (#2039) - `PR #2039 <https://github.com/pantsbuild/pex/pull/2039>`_ - -* Handle file:// URL deps in distributions. (#2041) - `PR #2041 <https://github.com/pantsbuild/pex/pull/2041>`_ - -2.1.120 -------- - -This release completes the ``--complete-platform`` fix started in -Pex 2.1.116 by #1991. That fix did not work in all cases but now does. - -PEXes run in interpreter mode now support command history when the -underlying interpreter being used to run the PEX does; use the -``PEX_INTERPRETER_HISTORY`` bool env var to turn this on. - -Additionally, PEXes built with the combination -``--layout loose --venv --no-venv-site-packages-copies`` are fixed to -be robust to moves of the source loose PEX directory. - -* Fix loose --venv PEXes to be robust to moves. (#2033) - `PR #2033 <https://github.com/pantsbuild/pex/pull/2033>`_ - -* Fix interpreter resolution when using --complete-platform with --resolve-local-platforms (#2031) - `PR #2031 <https://github.com/pantsbuild/pex/pull/2031>`_ - -* Support REPL command history. (#2018) - `PR #2018 <https://github.com/pantsbuild/pex/pull/2018>`_ - -2.1.119 -------- - -This release brings two new features. The venv pex tool now just warns when -using ``--compile`` and there is a ``*.pyc`` compile error instead of failing -to create the venv. Also, a new ``PEX_DISABLE_VARIABLES`` env var knob is added -to turn off reading all ``PEX_*`` env vars from the environment. - -* Ignore compile error for PEX_TOOLS=1 (#2002) - `PR #2002 <https://github.com/pantsbuild/pex/pull/2002>`_ - -* Add PEX_DISABLE_VARIABLES to lock down a PEX run. (#2014) - `PR #2014 <https://github.com/pantsbuild/pex/pull/2014>`_ - -2.1.118 -------- - -This is a very tardy hotfix release for a regression introduced in Pex -2.1.91 by #1785 that replaced sys.argv[0] with its fully resolved path. -This prevented introspecting the actual file path used to launch the PEX -which broke BusyBox-alike use cases. - -There is also a new ``--non-hermetic-scripts`` option accepted by the -``venv`` tool to allow running console scripts with ``PYTHONPATH`` -adjustments to the ``sys.path``. - -* Remove un-needed realpathing of ``sys.argv[0]``. (#2007) - `PR #2007 <https://github.com/pantsbuild/pex/pull/2007>`_ - -* Add ``--non-hermetic-scripts`` option to ``venv`` tool. (#2010) - `PR #2010 <https://github.com/pantsbuild/pex/pull/2010>`_ - -2.1.117 -------- - -This release fixes a bug introduced in Pex 2.1.109 where the released -Pex PEX could not be executed by PyPy interpreters. More generally, any -PEX created with interpreter constraints that did not specify the Python -implementation, e.g.: ``==3.8.*``, were interpreted as being CPython -specific, i.e.: ``CPython==3.8.*``. This is now fixed, but if the -intention of a constraint like ``==3.8.*`` was in fact to restrict to -CPython only, interpreter constraints need to say so now and use -``CPython==3.8.*`` explicitly. - -* Fix interpreter constraint parsing. (#1998) - `PR #1998 <https://github.com/pantsbuild/pex/pull/1998>`_ - -2.1.116 -------- - -This release fixes a bug in ``--resolve-local-platforms`` when -``--complete-platform`` was used. - -* Check for --complete-platforms match when --resolve-local-platforms (#1991) - `PR #1991 <https://github.com/pantsbuild/pex/pull/1991>`_ - -2.1.115 -------- - -This release brings some attention to the ``pex3 lock export`` -subcommand to make it more useful when inter-operating with -``pip-tools``. - -* Sort requirements based on normalized project name when exporting (#1992) - `PR #1992 <https://github.com/pantsbuild/pex/pull/1992>`_ - -* Use raw version when exporting (#1990) - `PR #1990 <https://github.com/pantsbuild/pex/pull/1990>`_ - -2.1.114 -------- - -This release brings two fixes for ``--venv`` mode PEXes. - -* Only insert "" to head of sys.path if a venv PEX runs in interpreter mode (#1984) - `PR #1984 <https://github.com/pantsbuild/pex/pull/1984>`_ - -* Map pex python path interpreter to realpath when creating venv dir hash. (#1972) - `PR #1972 <https://github.com/pantsbuild/pex/pull/1972>`_ - -2.1.113 -------- - -This is a hotfix release that fixes errors installing wheels when there -is high parallelism in execution of Pex processes. These issues were a -regression introduced by #1961 included in the 2.1.112 release. - -* Restore AtomicDirectory non-locked good behavior. (#1974) - `PR #1974 <https://github.com/pantsbuild/pex/pull/1974>`_ - -2.1.112 -------- - -This release brings support for the latest Pip release and includes -some internal changes to help debug intermittent issues some users are -seeing that implicate what may be file locking related bugs. - -* Add support for ``--pip-version 22.3``. (#1953) - `PR #1953 <https://github.com/pantsbuild/pex/pull/1953>`_ - -2.1.111 -------- - -This release fixes resolving requirements from a lock using arbitrary -equality (``===``). - -In addition, you can now "inject" runtime environment variables and -arguments into PEX files such that, when run, the PEX runtime ensures -those environment variables and command line arguments are passed to -the PEXed application. See `PEX Recipes -<https://pex.readthedocs.io/en/latest/recipes.html -#uvicorn-and-other-customizable-application-servers>`_ for more -information. - -* Fix lock resolution to handle arbitrary equality. (#1951) - `PR #1951 <https://github.com/pantsbuild/pex/pull/1951>`_ - -* Support injecting args and env vars in a PEX. (#1948) - `PR #1948 <https://github.com/pantsbuild/pex/pull/1948>`_ - -2.1.110 -------- - -This release fixes Pex runtime ``sys.path`` scrubbing for cases where -Pex is not the main entry point. An important example of this is in -Lambdex where the AWS Lambda Python runtime packages (``boto3`` and -``botocore``) are leaked into the PEX runtime ``sys.path``. - -* Fix ``sys.path`` scrubbing. (#1946) - `PR #1946 <https://github.com/pantsbuild/pex/pull/1946>`_ - -2.1.109 -------- - -This release brings musllinux wheel support and a fix for a regression -introduced in Pex 2.1.105 by #1902 that caused ``PEX_PATH=`` (an -exported ``PEX_PATH`` with an empty string value) to raise an error in -almost all use cases. - -* Vendor latest packaging; support musllinux wheels. (#1937) - `PR #1937 <https://github.com/pantsbuild/pex/pull/1937>`_ - -* Don't treat ``PEX_PATH=`` as ``.`` like other PATHS. (#1938) - `PR #1938 <https://github.com/pantsbuild/pex/pull/1938>`_ - -2.1.108 -------- - -This release fixes a latent PEX boot performance bug triggered by -requirements with large extras sets. - -* Fix slow PEX boot time when there are many extras. (#1929) - `PR #1929 <https://github.com/pantsbuild/pex/pull/1929>`_ - -2.1.107 -------- - -This release fixes an issue handling credentials in git+ssh VCS urls -when creating locks. - -* Fix locks for git+ssh with credentials. (#1923) - `PR #1923 <https://github.com/pantsbuild/pex/pull/1923>`_ - -2.1.106 -------- - -This release fixes a long standing bug in handling direct reference -requirements with a local version component. - -* Unquote path component of parsed url requirements (#1920) - `PR #1920 <https://github.com/pantsbuild/pex/pull/1920>`_ - -2.1.105 -------- - -This is a fix release which addresses issues related to build time -work_dir creation, virtualenv, and sh_boot support. - -In the unlikely event of a UUID collision in atomic workdir creation, -pex could overwrite an existing directory and cause a corrupt state. -When building a shell bootable ``--sh-boot`` pex the -``--runtime-pex-root`` was not always respected based on the condition -of the build environment, and the value of the PEX_ROOT. - -* Fail on atomic_directory work_dir collision. (#1905) - `PR #1905 <https://github.com/pantsbuild/pex/pull/1905>`_ - -* Use raw_pex_root when constructing sh_boot pexes. (#1906) - `PR #1906 <https://github.com/pantsbuild/pex/pull/1906>`_ - -* Add support for offline downloads (#1898) - `PR #1898 <https://github.com/pantsbuild/pex/pull/1898>`_ - -2.1.104 -------- - -This release brings a long-awaited upgrade of the Pip Pex uses, but -behind a ``--pip-version 22.2.2`` flag you must opt in to. Pex will then -use that version of Pip if it can (your Pex operations target Python -``>=3.7``) and warn and fall back to the older vendored Pip (20.3.4) if -it can't. To turn the need to fallback to older Pip from a warning into -a hard error you can also specify ``--no-allow-pip-version-fallback``. - -The ``pex3 lock update`` command now gains the ability to update just -the index and find links repos the lock's artifacts originate from by -using a combination of ``--no-pypi``, ``--index`` & ``--find-links`` -along with ``--pin`` to ensure the project versions stay pinned as they -are in the lockfile and just the repos they are downloaded from is -altered. Consult the CLI ``--help`` for -``--fingerprint-mismatch {ignore,warn,error}`` to gain more control over -repo migration behavior. - -There are several bug fixes as well dealing with somewhat esoteric -corner cases involving changing a PEX ``--layout`` from one form to -another and building artifacts using certain interpreters on macOS 11.0 -(aka: 10.16). - -* Add support for Pip 22.2.2. (#1893) - `PR #1893 <https://github.com/pantsbuild/pex/pull/1893>`_ - -* Make lock update sensitive to artifacts. (#1887) - `PR #1887 <https://github.com/pantsbuild/pex/pull/1887>`_ - -* Ensure locally built wheel is consumable locally. (#1886) - `PR #1886 <https://github.com/pantsbuild/pex/pull/1886>`_ - -* Ensure ``--output`` always overwrites destination. (#1883) - `PR #1883 <https://github.com/pantsbuild/pex/pull/1883>`_ - -2.1.103 -------- - -This release fixes things such that pex lockfiles can be created and -updated using the Pex PEX when local projects are involved. - -* Fix ``pex3 lock ...`` when run from the Pex PEX. (#1874) - `PR #1874 <https://github.com/pantsbuild/pex/pull/1874>`_ - -2.1.102 -------- - -This is a hotfix release that fixes a further corner missed by #1863 in -the Pex 2.1.101 release whereby Pex would fail to install -platform-specific packages on Red Hat based OSes. - -In addition, an old but only newly discovered bug in -``--inherit-path={prefer,fallback}`` handling is fixed. Previously only -using ``PEX_INHERIT_PATH={prefer,fallback}`` at runtime worked properly. - -In the process of fixing the old ``--inherit-path={prefer,fallback}`` -bug, also fix another old bug handling modern virtualenv venvs under -Python 2.7 during zipapp execution mode PEX boots. - -* Fix wheel installs: account for purelib & platlib. (#1867) - `PR #1867 <https://github.com/pantsbuild/pex/pull/1867>`_ - -* Fix ``--inhert-path`` handling. (#1871) - `PR #1871 <https://github.com/pantsbuild/pex/pull/1871>`_ - -* Error using pex + virtualenv >=20.0.0 + python 2.7 (#992) - `Issue #992 <https://github.com/pantsbuild/pex/issues/992>`_ - `PR #1871 <https://github.com/pantsbuild/pex/pull/1871>`_ - -2.1.101 -------- - -This release fixes a corner-case revealed by python-certifi-win32 1.6.1 -that was not previously handled when installing certain distributions. - -* Make wheel install ``site-packages`` detection robust. (#1863) - `PR #1863 <https://github.com/pantsbuild/pex/pull/1863>`_ - -2.1.100 -------- - -This release fixes a hole in the lock creation ``--target-system`` -feature added in #1823 in Pex 2.1.95. - -* Fix lock creation ``--target-system`` handling. (#1858) - `PR #1858 <https://github.com/pantsbuild/pex/pull/1858>`_ - -2.1.99 ------- - -This release fixes a concurrency bug in the ``pex --lock ...`` artifact -downloading. - -* Fix ``pex --lock ...`` concurrent download errors. (#1854) - `PR #1854 <https://github.com/pantsbuild/pex/pull/1854>`_ - -2.1.98 ------- - -This releases fixes regressions in foreign ``--platform`` handling and -artifact downloading introduced by #1787 in Pex 2.1.91 and #1811 in -2.1.93. - -In addition, PEXes can now be used as ``sys.path`` entries. Once on the -``sys.path``, via ``PYTHONPATH`` or other means, the code in the PEX can -be made importable by first importing ``__pex__`` either as its own -stand-alone import statement; e.g.: ``import __pex__; import psutil`` or -as a prefix of the code to import from the PEX; e.g.: -``from __pex__ import psutil``. - -* Tags should be patched for --platform. (#1846) - `PR #1846 <https://github.com/pantsbuild/pex/pull/1846>`_ - -* Add support for importing from PEXes. (#1845) - `PR #1845 <https://github.com/pantsbuild/pex/pull/1845>`_ - -* Fix artifact downloads for foreign platforms. #1851 - `PR #1851 <https://github.com/pantsbuild/pex/pull/1851>`_ - -2.1.97 ------- - -This release patches a hole left by #1828 in the Pex 2.1.95 release -whereby, although you could run a PEX under a too-long PEX_ROOT you -could not build a PEX under a tool-long PEX_ROOT. - -* Avoid ENOEXEC for Pex internal --venvs. (#1843) - `PR #1843 <https://github.com/pantsbuild/pex/pull/1843>`_ - -2.1.96 ------- - -This is a hotfix release that fixes ``--venv`` mode -``PEX_EXTRA_SYS_PATH`` propogation introduced in Pex 2.1.95 to only -apply to ``sys.executable`` and not other Pythons. - -* Fix ``--venv`` ``PEX PEX_EXTRA_SYS_PATH`` propagation. (#1837) - `PR #1837 <https://github.com/pantsbuild/pex/pull/1837>`_ - -2.1.95 ------- - -This release brings two new ``pex3 lock`` features for -``--style universal`` locks. - -By default, universal locks are created to target all operating systems. -This can cause problems when you only target a subset of operating -systems and a lock transitive dependency that is conditional on an OS -you do not target is not lockable. The new -``--target-system {linux,mac,windows}`` option allows you to restrict -the set of targeted OSes to work around this sort of issue. Since PEX -files currently only support running on Linux and Mac, specifying -``--target-system linux --target-system mac`` is a safe way to -pre-emptively avoid these sorts of locking issues when creating a -universal lock. - -Previously you could not specify the ``--platform``\s or -``--complete-platform``\s you would be using later to build PEXes with -when creating a universal lock. You now can, and Pex will verify the -universal lock can support all the specified platforms. - -As is usual there are also several bug fixes including properly -propagating ``PEX_EXTRA_SYS_PATH`` additions to forked Python processes, -fixing ``pex3 lock export`` to only attempt to export for the selected -target and avoiding too long shebang errors for ``--venv`` mode PEXes in -a robust way. - -* Fix ``PEX_EXTRA_SYS_PATH`` propagation. (#1832) - `PR #1832 <https://github.com/pantsbuild/pex/pull/1832>`_ - -* Fix ``pex3 lock export``: re-use ``--lock`` resolver. (#1831) - `PR #1831 <https://github.com/pantsbuild/pex/pull/1831>`_ - -* Avoid ENOEXEC for ``--venv`` shebangs. (#1828) - `PR #1828 <https://github.com/pantsbuild/pex/pull/1828>`_ - -* Check lock can resolve platforms at creation time. (#1824) - `PR #1824 <https://github.com/pantsbuild/pex/pull/1824>`_ - -* Support restricting universal lock target os. (#1823) - `PR #1823 <https://github.com/pantsbuild/pex/pull/1823>`_ - -2.1.94 ------- - -This is a hotfix release that fixes a regression introduced in Pex -2.1.93 downloading certain sdists when using ``pex --lock ...``. - -* Fix ``pex --lock ...`` handling of sdists. (#1818) - `PR #1818 <https://github.com/pantsbuild/pex/pull/1818>`_ - -2.1.93 ------- - -This release brings several new features in addition to bug fixes. - -When creating a PEX the entry point can now be any local python script -by passing ``--exe path/to/python-script``. - -The ``pex3 lock update`` command now supports a ``-dry-dun check`` mode -that exits non-zero to indicate that a lock needs updating and the -``-p / --project`` targeted update arguments can now be new projects to -attempt to add to the lock. - -On the bug fix front, traditional zipapp mode PEX files now properly -scrub ``sys.displayhook`` and ``sys.excepthook`` and their teardown -sequence has now been simplified fixing logging to stderr late in -teardown. - -Finally, ``pex3 lock create`` now logs when requirement resolution is -taking a long time to provide some sense of progress and suggest -generic remedies and ``pex --lock`` now properly handles -authentication. - -* Support adding new requirements in a lock update. (#1797) - `PR #1797 <https://github.com/pantsbuild/pex/pull/1797>`_ - -* Add ``pex3 lock update --dry-run check`` mode. (#1799) - `PR #1799 <https://github.com/pantsbuild/pex/pull/1799>`_ - -* Universal locks no longer record a ``platform_tag``. (#1800) - `PR #1800 <https://github.com/pantsbuild/pex/pull/1800>`_ - -* Support python script file executable. (#1807) - `PR #1807 <https://github.com/pantsbuild/pex/pull/1807>`_ - -* Fix PEX scrubbing to account for sys.excepthook. (#1810) - `PR #1810 <https://github.com/pantsbuild/pex/pull/1810>`_ - -* Simplify ``PEX`` teardown / leave stderr in tact. (#1813) - `PR #1813 <https://github.com/pantsbuild/pex/pull/1813>`_ - -* Surface pip download logging. (#1808) - `PR #1808 <https://github.com/pantsbuild/pex/pull/1808>`_ - -* Use pip download instead or URLFetcher. (#1811) - `PR #1811 <https://github.com/pantsbuild/pex/pull/1811>`_ - -2.1.92 ------- - -This release adds support for locking local projects. - -* Add support for local project locking. #1792 - `PR #1792 <https://github.com/pantsbuild/pex/pull/1792>`_ - -2.1.91 ------- - -This release fixes ``--sh-boot`` mode PEXes to have an argv0 and -exported ``PEX`` environment variable consistent with standard Python -boot PEXes; namely the absolute path of the originally invoked PEX. - -* Fix ``--sh-boot`` argv0. (#1785) - `PR #1785 <https://github.com/pantsbuild/pex/pull/1785>`_ - -2.1.90 ------- - -This release fixes Pex handling of sdists to be atomic and also fixes -lock files to be emitted ending with a newline. In addition, many typos -in Pex documentation were fixed in a contribution by Kian-Meng Ang. - -* Ensure Pip cache operations are atomic. (#1778) - `PR #1778 <https://github.com/pantsbuild/pex/pull/1778>`_ - -* Ensure that lockfiles end in newlines. (#1774) - `PR #1770 <https://github.com/pantsbuild/pex/pull/1774>`_ - -* Fix typos (#1773) - `PR #1773 <https://github.com/pantsbuild/pex/pull/1773>`_ - -2.1.89 ------- - -This release brings official support for CPython 3.11 and PyPy 3.9 as -well as long needed robust runtime interpreter selection. - -* Select PEX runtime interpreter robustly. (#1770) - `PR #1770 <https://github.com/pantsbuild/pex/pull/1770>`_ - -* Upgrade PyPy checking to latest. (#1767) - `PR #1767 <https://github.com/pantsbuild/pex/pull/1767>`_ - -* Add 3.11 support. (#1766) - `PR #1766 <https://github.com/pantsbuild/pex/pull/1766>`_ - -2.1.88 ------- - -This release is a hotfix for 2.1.86 that handles unparseable -``~/.netrc`` files gracefully. - -* Just warn when ``~/.netrc`` can't be loaded. (#1763) - `PR #1763 <https://github.com/pantsbuild/pex/pull/1763>`_ - -2.1.87 ------- - -This release fixes ``pex3 lock create`` to handle relative ``--tmpdir``. - -* Fix lock save detection to be more robust. (#1760) - `PR #1760 <https://github.com/pantsbuild/pex/pull/1760>`_ - -2.1.86 ------- - -This release fixes an oversight in lock file use against secured custom -indexes and find links repos. Previously credentials were passed during -the lock creation process via either ``~/.netrc`` or via embedded -credentials in the custom indexes and find links URLs Pex was configured -with. But, at lock use time, these credentials were not used. Now -``~/.netrc`` entries are always used and embedded credentials passed via -custom URLS at lock creation time can be passed in the same manner at -lock use time. - -* Support credentials in URLFetcher. (#1754) - `PR #1754 <https://github.com/pantsbuild/pex/pull/1754>`_ - -2.1.85 ------- - -This PyCon US 2022 release brings full support for Python interpreter -emulation when a PEX is run in interpreter mode (without an entry point -or else when forced via ``PEX_INTERPRETER=1``). - -A special thank you to Loren Arthur for contributing the fix in the -Pantsbuild sprint at PyCon. - -* PEX interpreters should support all underlying Python interpreter options. (#1745) - `Issue #1745 <https://github.com/pantsbuild/pex/issues/1745>`_ - `PR #1746 <https://github.com/pantsbuild/pex/pull/1746>`_ - `PR #1748 <https://github.com/pantsbuild/pex/pull/1748>`_ - -2.1.84 ------- - -This release fixes a bug creating a PEX from a ``--lock`` when -pre-release versions are involved. - -* Fix ``--lock`` handling of pre-release versions. (#1742) - `PR #1742 <https://github.com/pantsbuild/pex/pull/1742>`_ - -2.1.83 ------- - -This releases fixes a bug creating ``--style universal`` locks with -``--interpreter-constraint`` configured when the ambient interpreter -does not match the constraints and the resolved lock includes sdist -primary artifacts. - -* Fix universal lock creation for ICs. (#1738) - `PR #1738 <https://github.com/pantsbuild/pex/pull/1738>`_ - -2.1.82 ------- - -This is a hotfix release for a regression in prerelease version handling -introduced in the 2.1.81 release by #1727. - -* Fix prerelease handling when checking resolves. (#1732) - `PR #1732 <https://github.com/pantsbuild/pex/pull/1732>`_ - -2.1.81 ------- - -This release brings a fix to Pex resolve checking for distributions -built by setuptools whose ``Requires-Dist`` metadata does not match a -distibutions project name exactly (i.e.: no PEP-503 ``[._-]`` -normalization was performed). - -* Fix Pex resolve checking. (#1727) - `PR #1727 <https://github.com/pantsbuild/pex/pull/1727>`_ - -2.1.80 ------- - -This release brings another fix for pathologically slow cases of lock -creation as well as a new ``--sh-boot`` feature for creating PEXes that -boot via ``/bin/sh`` for more resilience across systems with differing -Python installations as well as offering lower boot latency. - -* Support booting via ``/bin/sh`` with ``--sh-boot``. (#1721) - `PR #1721 <https://github.com/pantsbuild/pex/pull/1721>`_ - -* Fix more pathologic lock creation slowness. (#1723) - `PR #1723 <https://github.com/pantsbuild/pex/pull/1723>`_ - -2.1.79 ------- - -This release fixes ``--lock`` resolving for certain cases where extras -are involved as well as introducing support for generating and consuming -portable ``--find-links`` locks using ``-path-mapping``. - -* Fix ``--lock`` resolver extras handling. (#1719) - `PR #1719 <https://github.com/pantsbuild/pex/pull/1719>`_ - -* Support canonicalizing absolute paths in locks. (#1716) - `PR #1712 <https://github.com/pantsbuild/pex/pull/1716>`_ - -2.1.78 ------- - -This release fixes missing artifacts in non-``strict`` locks. - -* Don't clear lock link database during analysis. (#1712) - `PR #1712 <https://github.com/pantsbuild/pex/pull/1712>`_ - -2.1.77 ------- - -This release fixes pathologically slow cases of lock creation as well as -introducing support for ``--no-compression`` to allow picking the the -time-space tradeoff you want for your PEX zips. - -* Fix pathologic lock creation slowness. (#1707) - `PR #1707 <https://github.com/pantsbuild/pex/pull/1707>`_ - -* Support uncompressed PEXes. (#1705) - `PR #1705 <https://github.com/pantsbuild/pex/pull/1705>`_ - -2.1.76 ------- - -This release finalizes spurious deadlock handling in ``--lock`` resolves -worked around in #1694 in Pex 2.1.75. - -* Fix lock_resolver to use BSD file locks. (#1702) - `PR #1702 <https://github.com/pantsbuild/pex/pull/1702>`_ - -2.1.75 ------- - -This release fixes a deadlock when building PEXes in parallel -via the new ``--lock`` flag. - -* Avoid deadlock error when run in parallel. (#1694) - `PR #1694 <https://github.com/pantsbuild/pex/pull/1694>`_ - -2.1.74 ------- - -This release fixes multiplatform ``--lock`` resolves for sdists that are -built to multiple platform specific wheels and it also introduces -support for VCS requirements in locks. - -* Add support for locking VCS requirements. (#1687) - `PR #1684 <https://github.com/pantsbuild/pex/pull/1687>`_ - -* Fix ``--lock`` for multiplatform via sdists. (#1689) - `PR #1684 <https://github.com/pantsbuild/pex/pull/1689>`_ - -2.1.73 ------- - -This is a hotfix for various PEX issues: - -#. ``--requirements-pex`` handling was broken by #1661 in the 2.1.71 - release and is now fixed. -#. Creating ``universal`` locks now works using any interpreter when the - resolver version is the ``pip-2020-resolver``. -#. Building PEXes with ``--lock`` resolves that contain wheels with - build tags in their names now works. - -* Fix ``--requirements-pex``. (#1684) - `PR #1684 <https://github.com/pantsbuild/pex/pull/1684>`_ - -* Fix universal locks for the ``pip-2020-resolver``. (#1682) - `PR #1682 <https://github.com/pantsbuild/pex/pull/1682>`_ - -* Fix ``--lock`` resolve wheel tag parsing. (#1678) - `PR #1678 <https://github.com/pantsbuild/pex/pull/1678>`_ - -2.1.72 ------- - -This release fixes an old bug with ``--venv`` PEXes initially executed -with either ``PEX_MODULE`` or ``PEX_SCRIPT`` active in the environment. - -* Fix venv creation to ignore ambient PEX env vars. (#1669) - `PR #1669 <https://github.com/pantsbuild/pex/pull/1669>`_ - -2.1.71 ------- - -This release fixes the instability introduced in 2.1.68 by switching to -a more robust means of determining venv layouts. Along the way it -upgrades Pex internals to cache all artifacts with strong hashes ( -previously sha1 was used). It's strongly recommended to upgrade or use -the exclude ``!=2.1.68,!=2.1.69,!=2.1.70`` when depending on an open -ended Pex version range. - -* Switch Pex installed wheels to ``--prefix`` scheme. (#1661) - `PR #1661 <https://github.com/pantsbuild/pex/pull/1661>`_ - -2.1.70 ------- - -This is another hotfix release for 2.1.68 that fixes a bug in -``*.data/*`` file handling for installed wheels which is outlined in -`PEP 427 -<https://www.python.org/dev/peps/pep-0427/#installing-a-wheel-distribution-1-0-py32-none-any-whl>`_ - -* Handle ``*.data/*`` RECORD entries not existing. (#1644) - `PR #1644 <https://github.com/pantsbuild/pex/pull/1644>`_ - -2.1.69 ------- - -This is a hotfix release for a regression introduced in 2.1.68 for a -narrow class of ``--venv`` ``--no-venv-site-packages-copies`` mode -PEXes with special contents on the ``PEX_PATH``. - -* Fix venv creation for duplicate symlinked dists. (#1639) - `PR #1639 <https://github.com/pantsbuild/pex/pull/1639>`_ - -2.1.68 ------- - -This release brings a fix for installation of additional data files in -PEX venvs (More on additional data files `here -<https://setuptools.pypa.io/en/latest/deprecated/distutils/setupscript.html?highlight=data_files#installing-additional-files>`_) -as well as a new venv install ``--scope`` that can be used to create fully -optimized container images with PEXed applications (See how to use this feature `here -<https://pex.readthedocs.io/en/latest/recipes.html#pex-app-in-a-container>`_). - -* Support splitting venv creation into deps & srcs. (#1634) - `PR #1634 <https://github.com/pantsbuild/pex/pull/1634>`_ - -* Fix handling of data files when creating venvs. (#1632) - `PR #1632 <https://github.com/pantsbuild/pex/pull/1632>`_ - -2.1.67 ------- - -This release brings support for ``--platform`` arguments with a -3-component PYVER portion. This supports working around -``python_full_version`` environment marker evaluation failures for -``--platform`` resolves by changing, for example, a platform of -``linux_x86_64-cp-38-cp38`` to ``linux_x86_64-cp-3.8.10-cp38``. This is -likely a simpler way to work around these issues than using the -``--complete-platform`` facility introduced in 2.1.66 by #1609. - -* Expand ``--platform`` syntax: support full versions. (#1614) - `PR #1614 <https://github.com/pantsbuild/pex/pull/1614>`_ - -2.1.66 ------- - -This release brings a new ``--complete-platform`` Pex CLI option that -can be used instead of ``--platform`` when more detailed foreign -platform specification is needed to satisfy a resolve (most commonly, -when ``python_full_version`` environment markers are in-play). This, -paired with the new ``pex3 interpreter inspect`` command that can be -used to generate complete platform data on the foreign platform machine -being targeted, should allow all foreign platform PEX builds to succeed -exactly as they would if run on that foreign platform as long as -pre-built wheels are available for that foreign platform. - -Additionally, PEXes now know how to set a useable process name when the -PEX contains the `setproctitle` distribution. See -`here <https://pex.readthedocs.io/en/v2.1.66/recipes.html#long-running-pex-applications-and-daemons>`_ -for more information. - -* Add support for ``--complete-platform``. (#1609) - `PR #1609 <https://github.com/pantsbuild/pex/pull/1609>`_ - -* Introduce ``pex3 interpreter inspect``. (#1607) - `PR #1607 <https://github.com/pantsbuild/pex/pull/1607>`_ - -* Use setproctitle to sanitize ``ps`` info. (#1605) - `PR #1605 <https://github.com/pantsbuild/pex/pull/1605>`_ - -* Respect ``PEX_ROOT`` in ``PEXEnvironment.mount``. (#1599) - `PR #1599 <https://github.com/pantsbuild/pex/pull/1599>`_ - -2.1.65 ------- - -This release really brings support for mac universal2 wheels. The fix -provided by 2.1.64 was partial; universal2 wheels could be resolved at -build time, but not at runtime. - -* Upgrade vendored packaging to 20.9. (#1591) - `PR #1591 <https://github.com/pantsbuild/pex/pull/1591>`_ - -2.1.64 ------- - -This release brings support for mac universal2 wheels. - -* Update vendored Pip to 386a54f0. (#1589) - `PR #1589 <https://github.com/pantsbuild/pex/pull/1589>`_ - -2.1.63 ------- - -This release fixes spurious collision warnings & errors when building -venvs from PEXes that contain multiple distributions contributing to the -same namespace package. - -* Allow for duplicate files in venv population. (#1572) - `PR #1572 <https://github.com/pantsbuild/pex/pull/1572>`_ - -2.1.62 ------- - -This release exposes three Pip options as Pex options to allow building -PEXes for more of the Python distribution ecosystem: - -#. ``--prefer-binary``: To prefer older wheels to newer sdists in a - resolve which can help avoid problematic builds. -#. ``--[no]-use-pep517``: To control how sdists are built: always using - PEP-517, always using setup.py or the default, always using whichever - is appropriate. -#. ``--no-build-isolation``: To allow distributions installed in the - environment to be seen during builds of sdists. This allows working - around distributions with undeclared build dependencies by - pre-installing them in the environment before running Pex. - -* Expose more Pip options. (#1561) - `PR #1561 <https://github.com/pantsbuild/pex/pull/1561>`_ - -2.1.61 ------- - -This release fixes a regression in Pex ``--venv`` mode compatibility -with distributions that are members of a namespace package that was -introduced by #1532 in the 2.1.57 release. - -* Merge packages for ``--venv-site-packages-copies``. (#1557) - `PR #1557 <https://github.com/pantsbuild/pex/pull/1557>`_ - -2.1.60 ------- - -This release fixes a bug that prevented creating PEXes when duplicate -compatible requirements were specified using the pip-2020-resolver. - -* Fix Pex to be duplicate requirement agnostic. (#1551) - `PR #1551 <https://github.com/pantsbuild/pex/pull/1551>`_ - -2.1.59 ------- - -This release adds the boolean option ``--venv-site-packages-copies`` to -control whether ``--venv`` execution mode PEXes create their venv with -copies (hardlinks when possible) or symlinks. It also fixes a bug that -prevented Python 3.10 interpreters from being discovered when -``--interpreter-constraint`` was used. - -* Add knob for --venv site-packages symlinking. (#1543) - `PR #1543 <https://github.com/pantsbuild/pex/pull/1543>`_ - -* Fix Pex to identify Python 3.10 interpreters. (#1545) - `PR #1545 <https://github.com/pantsbuild/pex/pull/1545>`_ - -2.1.58 ------- - -This release fixes a bug handling relative ``--cert`` paths. - -* Always pass absolute cert path to Pip. (#1538) - `PR #1538 <https://github.com/pantsbuild/pex/pull/1538>`_ - -2.1.57 ------- - -This release brings a few performance improvements and a new `venv` -pex-tools ``--remove`` feature that is useful for creating optimized -container images from PEX files. - -* Do not re-hash installed wheels. (#1534) - `PR #1534 <https://github.com/pantsbuild/pex/pull/1534>`_ - -* Improve space efficiency of ``--venv`` mode. (#1532) - `PR #1532 <https://github.com/pantsbuild/pex/pull/1532>`_ - -* Add venv ``--remove {pex,all}`` option. (#1525) - `PR #1525 <https://github.com/pantsbuild/pex/pull/1525>`_ - -2.1.56 ------- - -* Fix wheel install hermeticity. (#1521) - `PR #1521 <https://github.com/pantsbuild/pex/pull/1521>`_ - -2.1.55 ------- - -This release brings official support for Python 3.10 as well as fixing -https://pex.readthedocs.io doc generation and fixing help for -``pex-tools`` / ``PEX_TOOLS=1 ./my.pex`` pex tools invocations that have -too few arguments. - -* Add official support for Python 3.10 (#1512) - `PR #1512 <https://github.com/pantsbuild/pex/pull/1512>`_ - -* Always register global options. (#1511) - `PR #1511 <https://github.com/pantsbuild/pex/pull/1511>`_ - -* Fix RTD generation by pinning docutils low. (#1509) - `PR #1509 <https://github.com/pantsbuild/pex/pull/1509>`_ - -2.1.54 ------- - -This release fixes a bug in ``--venv`` creation that could mask deeper -errors populating PEX venvs. - -* Fix ``--venv`` mode short link creation. (#1505) - `PR #1505 <https://github.com/pantsbuild/pex/pull/1505>`_ - -2.1.53 ------- - -This release fixes a bug identifying certain interpreters on macOS -Monterey. - -Additionally, Pex has two new features: - -#. It now exposes the ``PEX`` environment variable inside running PEXes - to allow application code to both detect it's running from a PEX and - determine where that PEX is located. -#. It now supports a ``--prompt`` option in the ``venv`` tool to allow - for customization of the venv activation prompt. - -* Guard against fake interpreters. (#1500) - `PR #1500 <https://github.com/pantsbuild/pex/pull/1500>`_ - -* Add support for setting custom venv prompts. (#1499) - `PR #1499 <https://github.com/pantsbuild/pex/pull/1499>`_ - -* Introduce the ``PEX`` env var. (#1495) - `PR #1495 <https://github.com/pantsbuild/pex/pull/1495>`_ - -2.1.52 ------- - -This release makes a wider array of distributions resolvable for -``--platform`` resolves by inferring the ``platform_machine`` -environment marker corresponding to the requested ``--platform``. - -* Populate ``platform_machine`` in ``--platform`` resolve. (#1489) - `PR #1489 <https://github.com/pantsbuild/pex/pull/1489>`_ - -2.1.51 ------- - -This release fixes both PEX creation and ``--venv`` creation to handle -distributions that contain scripts with non-ascii characters in them -when running in environments with a default encoding that does not -contain those characters under PyPy3, Python 3.5 and Python 3.6. - -* Fix non-ascii script shebang re-writing. (#1480) - `PR #1480 <https://github.com/pantsbuild/pex/pull/1480>`_ - -2.1.50 ------- - -This is another hotfix of the 2.1.48 release's ``--layout`` feature that -fixes identification of ``--layout zipapp`` PEXes that have had their -execute mode bit turned off. A notable example is the Pex PEX when -downloaded from https://github.com/pantsbuild/pex/releases. - -* Fix zipapp layout identification. (#1448) - `PR #1448 <https://github.com/pantsbuild/pex/pull/1448>`_ - -2.1.49 ------- - -This is a hotfix release that fixes the new ``--layout {zipapp,packed}`` -modes for PEX files with no user code & just third party dependencies -when executed against a ``$PEX_ROOT`` where similar PEXes built with the -old ``--not-zip-safe`` option were were run in the past. - -* Avoid re-using old ~/.pex/code/ caches. (#1444) - `PR #1444 <https://github.com/pantsbuild/pex/pull/1444>`_ - -2.1.48 ------- - -This releases introduces the ``--layout`` flag for selecting amongst the -traditional zipapp layout as a single PEX zip file and two new directory -tree based formats that may be useful for more sophisticated deployment -sceanrios. - -The ``--unzip`` / ``PEX_UNZIP`` toggles for PEX runtime execution are -now the default and deprecated as explicit options as a result. You can -still select the venv runtime execution mode via the -``--venv`` / ``PEX_VENV`` toggles though. - -* Remove zipapp execution mode & introduce ``--layout``. (#1438) - `PR #1438 <https://github.com/pantsbuild/pex/pull/1438>`_ - -2.1.47 ------- - -This is a hotfix release that fixes a regression for ``--venv`` mode -PEXes introduced in #1410. These PEXes were not creating new venvs when -the PEX was unconstrained and executed with any other interpreter than -the interpreter the venv was first created with. - -* Fix ``--venv`` mode venv dir hash. (#1428) - `PR #1428 <https://github.com/pantsbuild/pex/pull/1428>`_ - -* Clarify PEX_PYTHON & PEX_PYTHON_PATH interaction. (#1427) - `PR #1427 <https://github.com/pantsbuild/pex/pull/1427>`_ - -2.1.46 ------- - -This release improves PEX file build reproducibility and requirement -parsing of environment markers in Pip's proprietary URL format. - -Also, the `-c` / `--script` / `--console-script` argument now supports -non-Python distribution scripts. - -Finally, new contributor @blag improved the README. - -* Fix Pip proprietary URL env marker handling. (#1417) - `PR #1417 <https://github.com/pantsbuild/pex/pull/1417>`_ - -* Un-reify installed wheel script shebangs. (#1410) - `PR #1410 <https://github.com/pantsbuild/pex/pull/1410>`_ - -* Support deterministic repository extract tool. (#1411) - `PR #1411 <https://github.com/pantsbuild/pex/pull/1411>`_ - -* Improve examples and add example subsection titles (#1409) - `PR #1409 <https://github.com/pantsbuild/pex/pull/1409>`_ - -* support any scripts specified in `setup(scripts=...)` from setup.py. (#1381) - `PR #1381 <https://github.com/pantsbuild/pex/pull/1381>`_ - -2.1.45 ------- - -This is a hotfix release that fixes the ``--bdist-all`` handling in the -``bdist_pex`` distutils command that regressed in 2.1.43 to only create -a bdist for the first discovered entry point. - -* Fix --bdist-all handling multiple console_scripts (#1396) - `PR #1396 <https://github.com/pantsbuild/pex/pull/1396>`_ - -2.1.44 ------- - -This is a hotfix release that fixes env var collisions (introduced in -the Pex 2.1.43 release by -`PR #1367 <https://github.com/pantsbuild/pex/pull/1367>`_) that could -occur when invoking Pex with environment variables like ``PEX_ROOT`` -defined. - -* Fix Pip handling of internal env vars. (#1388) - `PR #1388 <https://github.com/pantsbuild/pex/pull/1388>`_ - -2.1.43 ------- - -* Fix dist-info metadata discovery. (#1376) - `PR #1376 <https://github.com/pantsbuild/pex/pull/1376>`_ - -* Fix ``--platform`` resolve handling of env markers. (#1367) - `PR #1367 <https://github.com/pantsbuild/pex/pull/1367>`_ - -* Fix ``--no-manylinux``. (#1365) - `PR #1365 <https://github.com/pantsbuild/pex/pull/1365>`_ - -* Allow ``--platform`` resolves for current interpreter. (#1364) - `PR #1364 <https://github.com/pantsbuild/pex/pull/1364>`_ - -* Do not suppress pex output in bidst_pex (#1358) - `PR #1358 <https://github.com/pantsbuild/pex/pull/1358>`_ - -* Warn for PEX env vars unsupported by venv. (#1354) - `PR #1354 <https://github.com/pantsbuild/pex/pull/1354>`_ - -* Fix execution modes. (#1353) - `PR #1353 <https://github.com/pantsbuild/pex/pull/1353>`_ - -* Fix Pex emitting warnings about its Pip PEX venv. (#1351) - `PR #1351 <https://github.com/pantsbuild/pex/pull/1351>`_ - -* Support more verbose output for interpreter info. (#1347) - `PR #1347 <https://github.com/pantsbuild/pex/pull/1347>`_ - -* Fix typo in recipes.rst (#1342) - `PR #1342 <https://github.com/pantsbuild/pex/pull/1342>`_ - -2.1.42 ------- - -This release brings a bugfix for macOS interpreters when the -MACOSX_DEPLOYMENT_TARGET sysconfig variable is numeric as well as a fix -that improves Pip execution environment isolation. - -* Fix MACOSX_DEPLOYMENT_TARGET handling. (#1338) - `PR #1338 <https://github.com/pantsbuild/pex/pull/1338>`_ - -* Better isolate Pip. (#1339) - `PR #1339 <https://github.com/pantsbuild/pex/pull/1339>`_ - -2.1.41 ------- - -This release brings a hotfix from @kaos for interpreter identification -on macOS 11. - -* Update interpreter.py (#1332) - `PR #1332 <https://github.com/pantsbuild/pex/pull/1332>`_ - -2.1.40 ------- - -This release brings proper support for pyenv shim interpreter -identification as well as a bug fix for venv mode. - -* Fix Pex venv mode to respect ``--strip-pex-env``. (#1329) - `PR #1329 <https://github.com/pantsbuild/pex/pull/1329>`_ - -* Fix pyenv shim identification. (#1325) - `PR #1325 <https://github.com/pantsbuild/pex/pull/1325>`_ - -2.1.39 ------- - -A hotfix that fixes a bug present since 2.1.25 that results in infinite -recursion in PEX runtime resolves when handling dependency cycles. - -* Guard against cyclic dependency graphs. (#1317) - `PR #1317 <https://github.com/pantsbuild/pex/pull/1317>`_ - -2.1.38 ------- - -A hotfix that finishes work started in 2.1.37 by #1304 to align Pip -based resolve results with ``--pex-repository`` based resolve results -for requirements with '.' in their names as allowed by PEP-503. - -* Fix PEX direct requirements metadata. (#1312) - `PR #1312 <https://github.com/pantsbuild/pex/pull/1312>`_ - -2.1.37 ------- - -* Fix Pex isolation to avoid temporary pyc files. (#1308) - `PR #1308 <https://github.com/pantsbuild/pex/pull/1308>`_ - -* Fix --pex-repository requirement canonicalization. (#1304) - `PR #1304 <https://github.com/pantsbuild/pex/pull/1304>`_ - -* Spruce up ``pex`` and ``pex-tools`` CLIs with uniform ``-V`` / - ``--version`` support and default value display in help. (#1301) - `PR #1301 <https://github.com/pantsbuild/pex/pull/1301>`_ - -2.1.36 ------- - -This release brings a fix for building sdists with certain macOS -interpreters when creating a PEX file that would then fail to resolve -on PEX startup. - -* Add support for ``--seed verbose``. (#1299) - `PR #1299 <https://github.com/pantsbuild/pex/pull/1299>`_ - -* Fix bytecode compilation race in PEXBuilder.build. (#1298) - `PR #1298 <https://github.com/pantsbuild/pex/pull/1298>`_ - -* Fix wheel building for certain macOS system interpreters. (#1296) - `PR #1296 <https://github.com/pantsbuild/pex/pull/1296>`_ - -2.1.35 ------- - -This release hardens a few aspects of `--venv` mode PEXes. An infinite -re-exec loop in venv `pex` scripts is fixed and the `activate` family -of scripts in the venv is fixed. - -* Improve resolve error information. (#1287) - `PR #1287 <https://github.com/pantsbuild/pex/pull/1287>`_ - -* Ensure venv pex does not enter a re-exec loop. (#1286) - `PR #1286 <https://github.com/pantsbuild/pex/pull/1286>`_ - -* Expose Pex tools via a pex-tools console script. (#1279) - `PR #1279 <https://github.com/pantsbuild/pex/pull/1279>`_ - -* Fix auto-created `--venv` core scripts. (#1278) - `PR #1278 <https://github.com/pantsbuild/pex/pull/1278>`_ - -2.1.34 ------- - -Beyond bugfixes for a few important edge cases, this release includes -new support for @argfiles on the command line from @jjhelmus. These -can be useful to overcome command line length limitations. See: -https://docs.python.org/3/library/argparse.html#fromfile-prefix-chars. - -* Allow cli arguments to be specified in a file (#1273) - `PR #1273 <https://github.com/pantsbuild/pex/pull/1273>`_ - -* Fix module entrypoints. (#1274) - `PR #1274 <https://github.com/pantsbuild/pex/pull/1274>`_ - -* Guard against concurrent re-imports. (#1270) - `PR #1270 <https://github.com/pantsbuild/pex/pull/1270>`_ - -* Ensure Pip logs to stderr. (#1268) - `PR #1268 <https://github.com/pantsbuild/pex/pull/1268>`_ - -2.1.33 ------- - -* Support console scripts found in the PEX_PATH. (#1265) - `PR #1265 <https://github.com/pantsbuild/pex/pull/1265>`_ - -* Fix Requires metadata handling. (#1262) - `PR #1262 <https://github.com/pantsbuild/pex/pull/1262>`_ - -* Fix PEX file reproducibility. (#1259) - `PR #1259 <https://github.com/pantsbuild/pex/pull/1259>`_ - -* Fix venv script shebang rewriting. (#1260) - `PR #1260 <https://github.com/pantsbuild/pex/pull/1260>`_ - -* Introduce the repository PEX_TOOL. (#1256) - `PR #1256 <https://github.com/pantsbuild/pex/pull/1256>`_ - -2.1.32 ------- - -This is a hotfix release that fixes ``--venv`` mode shebangs being too long for some Linux -environments. - -* Guard against too long ``--venv`` mode shebangs. (#1254) - `PR #1254 <https://github.com/pantsbuild/pex/pull/1254>`_ - -2.1.31 ------- - -This release primarily hardens Pex venvs fixing several bugs. - -* Fix Pex isolation. (#1250) - `PR #1250 <https://github.com/pantsbuild/pex/pull/1250>`_ - -* Support pre-compiling a venv. (#1246) - `PR #1246 <https://github.com/pantsbuild/pex/pull/1246>`_ - -* Support venv relocation. (#1247) - `PR #1247 <https://github.com/pantsbuild/pex/pull/1247>`_ - -* Fix `--runtime-pex-root` leak in pex bootstrap. (#1244) - `PR #1244 <https://github.com/pantsbuild/pex/pull/1244>`_ - -* Support venvs that can outlive their base python. (#1245) - `PR #1245 <https://github.com/pantsbuild/pex/pull/1245>`_ - -* Harden Pex interpreter identification. (#1248) - `PR #1248 <https://github.com/pantsbuild/pex/pull/1248>`_ - -* The `pex` venv script handles entrypoints like PEX. (#1242) - `PR #1242 <https://github.com/pantsbuild/pex/pull/1242>`_ - -* Ensure PEX files aren't symlinked in venv. (#1240) - `PR #1240 <https://github.com/pantsbuild/pex/pull/1240>`_ - -* Fix venv pex script for use with multiprocessing. (#1238) - `PR #1238 <https://github.com/pantsbuild/pex/pull/1238>`_ - -2.1.30 ------- - -This release fixes another bug in --venv mode when PEX_PATH is exported in the environment. - -* Fix --venv mode to respect PEX_PATH. (#1227) - `PR #1227 <https://github.com/pantsbuild/pex/pull/1227>`_ - -2.1.29 ------- - -This release fixes bugs in `--unzip` and `--venv` mode PEX file execution and upgrades to the last -release of Pip to support Python 2.7. - -* Fix PyPy3 `--venv` mode. (#1221) - `PR #1221 <https://github.com/pantsbuild/pex/pull/1221>`_ - -* Make `PexInfo.pex_hash` calculation more robust. (#1219) - `PR #1219 <https://github.com/pantsbuild/pex/pull/1219>`_ - -* Upgrade to Pip 20.3.4 patched. (#1205) - `PR #1205 <https://github.com/pantsbuild/pex/pull/1205>`_ - -2.1.28 ------- - -This is another hotfix release to fix incorrect resolve post-processing failing otherwise correct -resolves. - -* Pex resolver fails to evaluate markers when post-processing resolves to identify which dists - satisfy direct requirements. (#1196) - `PR #1196 <https://github.com/pantsbuild/pex/pull/1196>_` - -2.1.27 ------- - -This is another hotfix release to fix a regression in Pex ``--sources-directory`` handling of -relative paths. - -* Support relative paths in `Chroot.symlink`. (#1194) - `PR #1194 <https://github.com/pantsbuild/pex/pull/1194>_` - -2.1.26 ------- - -This is a hotfix release that fixes requirement parsing when there is a local file in the CWD with -the same name as the project name of a remote requirement to be resolved. - -* Requirement parsing handles local non-dist files. (#1190) - `PR #1190 <https://github.com/pantsbuild/pex/pull/1190>`_ - -2.1.25 ------- - -This release brings support for a ``--venv`` execution mode to complement ``--unzip`` and standard -unadorned PEX zip file execution modes. The ``--venv`` execution mode will first install the PEX -file into a virtual environment under ``${PEX_ROOT}/venvs`` and then re-execute itself from there. -This mode of execution allows you to ship your PEXed application as a single zipfile that -automatically installs itself in a venv and runs from there to eliminate all PEX startup overhead -on subsequent runs and work like a "normal" application. - -There is also support for a new resolution mode when building PEX files that allows you to use the -results of a previous resolve by specifying it as a ``-pex-repository`` to resolve from. If you have -many applications sharing a requirements.txt / constraints.txt, this can drastically speed up -resolves. - -* Improve PEX repository error for local projects. (#1184) - `PR #1184 <https://github.com/pantsbuild/pex/pull/1184>`_ - -* Use symlinks to add dists in the Pex CLI. (#1185) - `PR #1185 <https://github.com/pantsbuild/pex/pull/1185>`_ - -* Suppress ``pip debug`` warning. (#1183) - `PR #1183 <https://github.com/pantsbuild/pex/pull/1183>`_ - -* Support resolving from a PEX file repository. (#1182) - `PR #1182 <https://github.com/pantsbuild/pex/pull/1182>`_ - -* PEXEnvironment for a DistributionTarget. (#1178) - `PR #1178 <https://github.com/pantsbuild/pex/pull/1178>`_ - -* Fix plumbing of 2020-resolver to Pip. (#1180) - `PR #1180 <https://github.com/pantsbuild/pex/pull/1180>`_ - -* Platform can report supported_tags. (#1177) - `PR #1177 <https://github.com/pantsbuild/pex/pull/1177>`_ - -* Record original requirements in PEX-INFO. (#1171) - `PR #1171 <https://github.com/pantsbuild/pex/pull/1171>`_ - -* Tighten requirements parsing. (#1170) - `PR #1170 <https://github.com/pantsbuild/pex/pull/1170>`_ - -* Type BuildAndInstallRequest. (#1169) - `PR #1169 <https://github.com/pantsbuild/pex/pull/1169>`_ - -* Type AtomicDirectory. (#1168) - `PR #1168 <https://github.com/pantsbuild/pex/pull/1168>`_ - -* Type SpawnedJob. (#1167) - `PR #1167 <https://github.com/pantsbuild/pex/pull/1167>`_ - -* Refresh and type OrderedSet. (#1166) - `PR #1166 <https://github.com/pantsbuild/pex/pull/1166>`_ - -* PEXEnvironment recursive runtime resolve. (#1165) - `PR #1165 <https://github.com/pantsbuild/pex/pull/1165>`_ - -* Add support for -r / --constraints URL to the CLI. (#1163) - `PR #1163 <https://github.com/pantsbuild/pex/pull/1163>`_ - -* Surface Pip dependency conflict information. (#1162) - `Issue #9420 <https://github.com/pypa/pip/issues/9420>`_ - `PR #1162 <https://github.com/pantsbuild/pex/pull/1162>`_ - -* Add support for parsing extras and specifiers. (#1161) - `PR #1161 <https://github.com/pantsbuild/pex/pull/1161>`_ - -* Support project_name_and_version metadata. (#1160) - `PR #1160 <https://github.com/pantsbuild/pex/pull/1160>`_ - -* docs: fix simple typo, orignal -> original (#1156) - `PR #1156 <https://github.com/pantsbuild/pex/pull/1156>`_ - -* Support a --venv mode similar to --unzip mode. (#1153) - `PR #1153 <https://github.com/pantsbuild/pex/pull/1153>`_ - -* Remove redundant dep edge label info. (#1152) - `PR #1152 <https://github.com/pantsbuild/pex/pull/1152>`_ - -* Remove our reliance on packaging's LegacyVersion. (#1151) - `PR #1151 <https://github.com/pantsbuild/pex/pull/1151>`_ - -* Implement PEX_INTERPRETER special mode support. (#1149) - `PR #1149 <https://github.com/pantsbuild/pex/pull/1149>`_ - -* Fix PexInfo.copy. (#1148) - `PR #1148 <https://github.com/pantsbuild/pex/pull/1148>`_ - -2.1.24 ------- - -This release upgrades Pip to 20.3.3 + a patch to fix Pex resolves using -the ``pip-legacy-resolver`` and ``--constraints``. The Pex package is -also fixed to install for Python 3.9.1+. - -* Upgrade to a patched Pip 20.3.3. (#1143) - `Issue #9283 <https://github.com/pypa/pip/issues/9283>`_ - `PR #1143 <https://github.com/pantsbuild/pex/pull/1143>`_ - -* Fix python requirement to include full 3.9 series. (#1142) - `PR #1142 <https://github.com/pantsbuild/pex/pull/1142>`_ - -2.1.23 ------- - -This release upgrades Pex to the latest Pip which includes support for -the new 2020-resolver (see: -https://pip.pypa.io/en/stable/user_guide/#resolver-changes-2020) as well -as support for macOS BigSur. Although this release defaults to the -legacy resolver behavior, the next release will deprecate the legacy -resolver and support for the legacy resolver will later be removed to -allow continuing Pip upgrades going forward. To switch to the new -resolver, use: `--resolver-version pip-2020-resolver`. - -* Upgrade Pex to Pip 20.3.1. (#1133) - `PR #1133 <https://github.com/pantsbuild/pex/pull/1133>`_ - -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) - `PR #1132 <https://github.com/pantsbuild/pex/pull/1132>`_ - -* Add a venv tool. (#1128) - `PR #1128 <https://github.com/pantsbuild/pex/pull/1128>`_ - -* Remove long deprecated support for _pex module. (#1135) - `PR #1135 <https://github.com/pantsbuild/pex/pull/1135>`_ - -* Add an interpreter tool. (#1131) - `PR #1131 <https://github.com/pantsbuild/pex/pull/1131>`_ - -* Escape venvs unless PEX_INHERIT_PATH is requested. (#1130) - `PR #1130 <https://github.com/pantsbuild/pex/pull/1130>`_ - -* Improve `PythonInterpreter` venv support. (#1129) - `PR #1129 <https://github.com/pantsbuild/pex/pull/1129>`_ - -* Add support for PEX runtime tools & an info tool. (#1127) - `PR #1127 <https://github.com/pantsbuild/pex/pull/1127>`_ - -* Exclusive atomic_directory always unlocks. (#1126) - `PR #1126 <https://github.com/pantsbuild/pex/pull/1126>`_ - -* Fix `PythonInterpreter` binary normalization. (#1125) - `PR #1125 <https://github.com/pantsbuild/pex/pull/1125>`_ - -* Add a `requires_dists` function. (#1122) - `PR #1122 <https://github.com/pantsbuild/pex/pull/1122>`_ - -* Add an `is_exe` helper. (#1123) - `PR #1123 <https://github.com/pantsbuild/pex/pull/1123>`_ - -* Fix req parsing for local archives & projects. (#1121) - `PR #1121 <https://github.com/pantsbuild/pex/pull/1121>`_ - -* Improve PEXEnvironment constructor ergonomics. (#1120) - `PR #1120 <https://github.com/pantsbuild/pex/pull/1120>`_ - -* Fix `safe_open` for single element relative paths. (#1118) - `PR #1118 <https://github.com/pantsbuild/pex/pull/1118>`_ - -* Add URLFetcher IT. (#1116) - `PR #1116 <https://github.com/pantsbuild/pex/pull/1116>`_ - -* Implement full featured requirment parsing. (#1114) - `PR #1114 <https://github.com/pantsbuild/pex/pull/1114>`_ - -* Fix `--help-variables` docs. (#1113) - `PR #1113 <https://github.com/pantsbuild/pex/pull/1113>`_ - -* Switch from optparse to argparse. (#1083) - `PR #1083 <https://github.com/pantsbuild/pex/pull/1083>`_ - -2.1.21 ------- - -* Fix ``iter_compatible_interpreters`` with ``path``. (#1110) - `PR #1110 <https://github.com/pantsbuild/pex/pull/1110>`_ - -* Fix ``Requires-Python`` environment marker mapping. (#1105) - `PR #1105 <https://github.com/pantsbuild/pex/pull/1105>`_ - -* Fix spurious ``InstalledDistribution`` env markers. (#1104) - `PR #1104 <https://github.com/pantsbuild/pex/pull/1104>`_ - -* Deprecate ``-R``/``--resources-directory``. (#1103) - `PR #1103 <https://github.com/pantsbuild/pex/pull/1103>`_ - -* Fix ResourceWarning for unclosed ``/dev/null``. (#1102) - `PR #1102 <https://github.com/pantsbuild/pex/pull/1102>`_ - -* Fix runtime vendoring bytecode compilation races. (#1099) - `PR #1099 <https://github.com/pantsbuild/pex/pull/1099>`_ - -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) - `PR #1088 <https://github.com/pantsbuild/pex/pull/1088>`_ - -* Fix ``--pex-python`` when it's the same as the current interpreter. (#1087) - `PR #1087 <https://github.com/pantsbuild/pex/pull/1087>`_ - -* Fix `dir_hash` vs. bytecode compilation races. (#1080) - `PR #1080 <https://github.com/pantsbuild/pex/pull/1080>`_ - -* Fix readthedocs doc generation. (#1081) - `PR #1081 <https://github.com/pantsbuild/pex/pull/1081>`_ - -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) - `PR #1077 <https://github.com/pantsbuild/pex/pull/1077>`_ - -* Remove ``--use-first-matching-interpreter`` misfeature. (#1076) - `PR #1076 <https://github.com/pantsbuild/pex/pull/1076>`_ - -* Encapsulate ``--inherit-path`` handling. (#1072) - `PR #1072 <https://github.com/pantsbuild/pex/pull/1072>`_ - -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) - `PR #1068 <https://github.com/pantsbuild/pex/pull/1068>`_ - -* Honor ``sys.executable`` unless macOS Framework. (#1065) - `PR #1065 <https://github.com/pantsbuild/pex/pull/1065>`_ - -* Add Python 3.9 support. (#1064) - `PR #1064 <https://github.com/pantsbuild/pex/pull/1064>`_ - -* Fix handling of ``--cert`` and ``--client-cert``. (#1063) - `PR #1063 <https://github.com/pantsbuild/pex/pull/1063>`_ - -* Add atomic_directory exclusive mode. (#1062) - `PR #1062 <https://github.com/pantsbuild/pex/pull/1062>`_ - -* Fix ``--cert`` for PEP-518 builds. (#1060) - `PR #1060 <https://github.com/pantsbuild/pex/pull/1060>`_ - -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) - `PR #1056 <https://github.com/pantsbuild/pex/pull/1056>`_ - -* Fix resource leak in Pex self-isolation. (#1052) - `PR #1052 <https://github.com/pantsbuild/pex/pull/1052>`_ - -* Fix use of `iter_compatible_interpreters`. (#1048) - `PR #1048 <https://github.com/pantsbuild/pex/pull/1048>`_ - -* Do not rely on `sys.executable` being accurate. (#1049) - `PR #1049 <https://github.com/pantsbuild/pex/pull/1049>`_ - -* slightly demystify the relationship between platforms and interpreters in the library API and CLI (#1047) - `PR #1047 <https://github.com/pantsbuild/pex/pull/1047>`_ - -* Path filter for PythonInterpreter.iter_candidates. (#1046) - `PR #1046 <https://github.com/pantsbuild/pex/pull/1046>`_ - -* Add type hints to `util.py` and `tracer.py` (#1044) - `PR #1044 <https://github.com/pantsbuild/pex/pull/1044>`_ - -* Add type hints to variables.py and platforms.py (#1042) - `PR #1042 <https://github.com/pantsbuild/pex/pull/1042>`_ - -* Add type hints to the remaining tests (#1040) - `PR #1040 <https://github.com/pantsbuild/pex/pull/1040>`_ - -* Add type hints to most tests (#1036) - `PR #1036 <https://github.com/pantsbuild/pex/pull/1036>`_ - -* Use MyPy via type comments (#1032) - `PR #1032 <https://github.com/pantsbuild/pex/pull/1032>`_ - -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) - `PR #1028 <https://github.com/pantsbuild/pex/pull/1028>`_ - -* Scrub direct sys.path manipulations by .pth files. (#1026) - `PR #1026 <https://github.com/pantsbuild/pex/pull/1026>`_ - -* PEX zips now contain directory entries. (#1022) - `PR #1022 <https://github.com/pantsbuild/pex/pull/1022>`_ - -* Fix UnsatisfiableInterpreterConstraintsError. (#1024) - `PR #1024 <https://github.com/pantsbuild/pex/pull/1024>`_ - -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) - `PR #1014 <https://github.com/pantsbuild/pex/pull/1014>`_ - -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) - `PR #1008 <https://github.com/pantsbuild/pex/pull/1008>`_ - -* Autoformat with Black. (#1006) - `PR #1006 <https://github.com/pantsbuild/pex/pull/1006>`_ - -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) - `PR #1000 <https://github.com/pantsbuild/pex/pull/1000>`_ - -* Improve --platform help. (#1002) - `PR #1002 <https://github.com/pantsbuild/pex/pull/1002>`_ - -* Improve and fix --platform help. (#1001) - `PR #1001 <https://github.com/pantsbuild/pex/pull/1001>`_ - -* Ensure pip download dir is uncontended. (#998) - `PR #998 <https://github.com/pantsbuild/pex/pull/998>`_ - -2.1.12 ------- - -A patch release to deploy the PEX_EXTRA_SYS_PATH feature. - -* A PEX_EXTRA_SYS_PATH runtime variable. (#989) - `PR #989 <https://github.com/pantsbuild/pex/pull/989>`_ - -* Fix typos (#986) - `PR #986 <https://github.com/pantsbuild/pex/pull/986>`_ - -* Update link to avoid a redirect (#982) - `PR #982 <https://github.com/pantsbuild/pex/pull/982>`_ - -2.1.11 ------- - -A patch release to fix a symlink issue in remote execution environments. - -* use relative paths within wheel cache (#979) - `PR #979 <https://github.com/pantsbuild/pex/pull/979>`_ - -* Fix Tox not finding Python 3.8 on OSX. (#976) - `PR #976 <https://github.com/pantsbuild/pex/pull/976>`_ - -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: `Issue #94 <https://github.com/pantsbuild/pex/issues/94>`_) - -* Expose Pip network configuration. (#974) - `PR #974 <https://github.com/pantsbuild/pex/pull/974>`_ - -* Restore handling for bad wheel filenames to ``.can_add()`` (#973) - `PR #973 <https://github.com/pantsbuild/pex/pull/973>`_ - -* Fix wheel filename parsing in PEXEnvironment.can_add (#965) - `PR #965 <https://github.com/pantsbuild/pex/pull/965>`_ - -* Split Pex resolve API. (#970) - `PR #970 <https://github.com/pantsbuild/pex/pull/970>`_ - -* Add a ``--local`` mode for packaging the Pex PEX. (#971) - `PR #971 <https://github.com/pantsbuild/pex/pull/971>`_ - -* Constrain the virtualenv version used by tox. (#968) - `PR #968 <https://github.com/pantsbuild/pex/pull/968>`_ - -* Improve Pex packaging. (#961) - `PR #961 <https://github.com/pantsbuild/pex/pull/961>`_ - -* Make the interpreter cache deterministic. (#960) - `PR #960 <https://github.com/pantsbuild/pex/pull/960>`_ - -* Fix deprecation warning for ``rU`` mode (#956) - `PR #956 <https://github.com/pantsbuild/pex/pull/956>`_ - -* Fix runtime resolve error message generation. (#955) - `PR #955 <https://github.com/pantsbuild/pex/pull/955>`_ - -* Kill dead code. (#954) - `PR #954 <https://github.com/pantsbuild/pex/pull/954>`_ - -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) - `PR #948 <https://github.com/pantsbuild/pex/pull/948>`_ - - -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](https://github.com/pantsbuild/pex/releases/download/v2.1.8/pex). - -* Better support unzip mode PEXes. (#941) - `PR #941 <https://github.com/pantsbuild/pex/pull/941>`_ - -* Support an unzip toggle for PEXes. (#939) - `PR #939 <https://github.com/pantsbuild/pex/pull/939>`_ - -* Ensure the interpreter path is a file (#938) - `PR #938 <https://github.com/pantsbuild/pex/pull/938>`_ - -* Cache pip.pex. (#937) - `PR #937 <https://github.com/pantsbuild/pex/pull/937>`_ - -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](https://github.com/pantsbuild/pex/releases/download/v2.1.7/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) - `PR #929 <https://github.com/pantsbuild/pex/pull/929>`_ - -* Fix `PEX_*` env stripping and allow turning off. (#932) - `PR #932 <https://github.com/pantsbuild/pex/pull/932>`_ - -* Remove second urllib import from compatibility (#931) - `PR #931 <https://github.com/pantsbuild/pex/pull/931>`_ - -* Adding `--runtime-pex-root` option. (#780) - `PR #780 <https://github.com/pantsbuild/pex/pull/780>`_ - -* Improve interpreter not found error messages. (#928) - `PR #928 <https://github.com/pantsbuild/pex/pull/928>`_ - -* Add detail in interpreter selection error message. (#927) - `PR #927 <https://github.com/pantsbuild/pex/pull/927>`_ - -* Respect `Requires-Python` in `PEXEnvironment`. (#923) - `PR #923 <https://github.com/pantsbuild/pex/pull/923>`_ - -* Pin our tox version in CI for stability. (#924) - `PR #924 <https://github.com/pantsbuild/pex/pull/924>`_ - -2.1.6 ------ - -* Don't delete the root __init__.py when devendoring. (#915) - `PR #915 <https://github.com/pantsbuild/pex/pull/915>`_ - -* Remove unused Interpreter.clear_cache. (#911) - `PR #911 <https://github.com/pantsbuild/pex/pull/911>`_ - -2.1.5 ------ - -* Silence pip warnings about Python 2.7. (#908) - `PR #908 <https://github.com/pantsbuild/pex/pull/908>`_ - -* Kill `Pip.spawn_install_wheel` `overwrite` arg. (#907) - `PR #907 <https://github.com/pantsbuild/pex/pull/907>`_ - -* Show pex-root from env as default in help output (#901) - `PR #901 <https://github.com/pantsbuild/pex/pull/901>`_ - -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) - `PR #900 <https://github.com/pantsbuild/pex/pull/900>`_ - -* Fix Pex resolver API PYTHONPATH hermeticity. (#895) - `PR #895 <https://github.com/pantsbuild/pex/pull/895>`_ - -* Fixup resolve debug rendering. (#894) - `PR #894 <https://github.com/pantsbuild/pex/pull/894>`_ - -* Convert `bdist_pex` tests to explicit cmdclass. (#897) - `PR #897 <https://github.com/pantsbuild/pex/pull/897>`_ - -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) - `PR #890 <https://github.com/pantsbuild/pex/pull/890>`_ - -* Add a clear_cache() method to PythonInterpreter. (#885) - `PR #885 <https://github.com/pantsbuild/pex/pull/885>`_ - -* Error eagerly if an interpreter binary doesn't exist. (#886) - `PR #886 <https://github.com/pantsbuild/pex/pull/886>`_ - -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) - `PR #881 <https://github.com/pantsbuild/pex/pull/881>`_ - -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) - `PR #879 <https://github.com/pantsbuild/pex/pull/879>`_ - -* [resolver] Fix issue with wheel when using --index-url option (#865) - `PR #865 <https://github.com/pantsbuild/pex/pull/865>`_ - -* Fix the resolve check in the presence of platform constraints. (#877) - `PR #877 <https://github.com/pantsbuild/pex/pull/877>`_ - -* Check expected pex invocation failure reason in tests. (#874) - `PR #874 <https://github.com/pantsbuild/pex/pull/874>`_ - -* Improve hermeticity of vendoring. (#873) - `PR #873 <https://github.com/pantsbuild/pex/pull/873>`_ - -* Temporarily skip a couple of tests, to get CI green. (#876) - `PR #876 <https://github.com/pantsbuild/pex/pull/876>`_ - -* Respect env markers when checking resolves. (#861) - `PR #861 <https://github.com/pantsbuild/pex/pull/861>`_ - -* Ensure Pex PEX contraints match pex wheel / sdist. (#863) - `PR #863 <https://github.com/pantsbuild/pex/pull/863>`_ - -* Delete unused pex/package.py. (#862) - `PR #862 <https://github.com/pantsbuild/pex/pull/862>`_ - -* Introduce an interpreter cache. (#856) - `PR #856 <https://github.com/pantsbuild/pex/pull/856>`_ - -* Re-enable pyenv interpreter tests under pypy. (#859) - `PR #859 <https://github.com/pantsbuild/pex/pull/859>`_ - -* Harden PythonInterpreter against pyenv shims. (#860) - `PR #860 <https://github.com/pantsbuild/pex/pull/860>`_ - -* Parallelize interpreter discovery. (#842) - `PR #842 <https://github.com/pantsbuild/pex/pull/842>`_ - -* Explain hard link EPERM copy fallback. (#855) - `PR #855 <https://github.com/pantsbuild/pex/pull/855>`_ - -* Handle EPERM when Linking (#852) - `PR #852 <https://github.com/pantsbuild/pex/pull/852>`_ - -* Pin transitive dependencies of vendored code. (#854) - `PR #854 <https://github.com/pantsbuild/pex/pull/854>`_ - -* Kill empty setup.py. (#849) - `PR #849 <https://github.com/pantsbuild/pex/pull/849>`_ - -* Fix `tox -epackage` to create pex supporting 3.8. (#843) - `PR #843 <https://github.com/pantsbuild/pex/pull/843>`_ - -* Fix Pex to handle empty ns package metadata. (#841) - `PR #841 <https://github.com/pantsbuild/pex/pull/841>`_ - - -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) - `PR #835 <https://github.com/pantsbuild/pex/pull/835>`_ - -* Use pypa/packaging. (#831) - `PR #831 <https://github.com/pantsbuild/pex/pull/831>`_ - -* Upgrade vendored setuptools to 42.0.2. (#832) - `PR #832 <https://github.com/pantsbuild/pex/pull/832>`_ - `PR #1830 <https://github.com/pypa/setuptools/pull/1830>`_ - -* De-vendor pex just once per version. (#833) - `PR #833 <https://github.com/pantsbuild/pex/pull/833>`_ - -* Support VCS urls for vendoring. (#834) - `PR #834 <https://github.com/pantsbuild/pex/pull/834>`_ - -* Support python 3.8 in CI. (#829) - `PR #829 <https://github.com/pantsbuild/pex/pull/829>`_ - -* Fix pex resolution to respect --ignore-errors. (#828) - `PR #828 <https://github.com/pantsbuild/pex/pull/828>`_ - -* Kill `pkg_resources` finders monkey-patching. (#827) - `PR #827 <https://github.com/pantsbuild/pex/pull/827>`_ - -* Use flit to distribute pex. (#826) - `PR #826 <https://github.com/pantsbuild/pex/pull/826>`_ - -* Cleanup extras_require. (#825) - `PR #825 <https://github.com/pantsbuild/pex/pull/825>`_ - -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>`_ - -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) - `PR #801 <https://github.com/pantsbuild/pex/pull/801>`_ - -* Add a test of pypi index rendering. (#799) - `PR #799 <https://github.com/pantsbuild/pex/pull/799>`_ - -* Fix `iter_compatible_interpreters` path biasing. (#798) - `PR #798 <https://github.com/pantsbuild/pex/pull/798>`_ - -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) - `PR #795 <https://github.com/pantsbuild/pex/pull/795>`_ - -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 -`Issue #716 <https://github.com/pantsbuild/pex/pull/718>`_ - -Changes in this release: - -* Pex defaults to reproduceable builds. (#791) - `PR #791 <https://github.com/pantsbuild/pex/pull/791>`_ - -* Use pip for resolving and building distributions. (#788) - `PR #788 <https://github.com/pantsbuild/pex/pull/788>`_ - -* Bias selecting the current interpreter. (#783) - `PR #783 <https://github.com/pantsbuild/pex/pull/783>`_ - -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) - `PR #775 <https://github.com/pantsbuild/pex/pull/775>`_ - -* PythonInterpreter: support python binary names with single letter suffixes (#769) - `PR #769 <https://github.com/pantsbuild/pex/pull/769>`_ - -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) - `PR #762 <https://github.com/pantsbuild/pex/pull/762>`_ - -* Include `PYTHONPATH` in `--inherit-path` logic. (#765) - `PR #765 <https://github.com/pantsbuild/pex/pull/765>`_ - -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) - `Issue #756 <https://github.com/pantsbuild/pex/issues/756>`_ - `PR #757 <https://github.com/pantsbuild/pex/pull/757>`_ - -1.6.9 ------ - -* Fix `sys.path` scrubbing of pex extras modules. (#752) - `PR #752 <https://github.com/pantsbuild/pex/pull/752>`_ - -* Fix pkg resource early import (#750) - `PR #750 <https://github.com/pantsbuild/pex/pull/750>`_ - -1.6.8 ------ - -* Fixup pex re-exec during bootstrap. (#741) - `PR #741 <https://github.com/pantsbuild/pex/pull/741>`_ - -* Fix resolution of `setup.py` project extras. (#739) - `PR #739 <https://github.com/pantsbuild/pex/pull/739>`_ - -* Tighten up namespace declaration logic. (#732) - `PR #732 <https://github.com/pantsbuild/pex/pull/732>`_ - -* Fixup import sorting. (#731) - `PR #731 <https://github.com/pantsbuild/pex/pull/731>`_ - -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) - `PR #730 <https://github.com/pantsbuild/pex/pull/730>`_ - -* Fix reproducible builds sdist test by properly requiring building the wheel (#727) - `PR #727 <https://github.com/pantsbuild/pex/pull/727>`_ - -* Fix reproducible build test improperly using the -c flag and add a new test for -c flag (#725) - `PR #725 <https://github.com/pantsbuild/pex/pull/725>`_ - -* Fix PexInfo requirements using a non-deterministic data structure (#723) - `PR #723 <https://github.com/pantsbuild/pex/pull/723>`_ - -* Add new `--no-use-system-time` flag to use a deterministic timestamp in built PEX (#722) - `PR #722 <https://github.com/pantsbuild/pex/pull/722>`_ - -* Add timeout when using requests. (#726) - `PR #726 <https://github.com/pantsbuild/pex/pull/726>`_ - -* Refactor reproducible build tests to assert that the original pex command succeeded (#724) - `PR #724 <https://github.com/pantsbuild/pex/pull/724>`_ - -* Introduce new `--no-compile` flag to not include .pyc in built pex due to its non-determinism (#718) - `PR #718 <https://github.com/pantsbuild/pex/pull/718>`_ - -* Document how Pex developers can run specific tests and run Pex from source (#720) - `PR #720 <https://github.com/pantsbuild/pex/pull/720>`_ - -* Remove unused bdist_pex.py helper function (#719) - `PR #719 <https://github.com/pantsbuild/pex/pull/719>`_ - -* Add failing acceptance tests for reproducible Pex builds (#717) - `PR #717 <https://github.com/pantsbuild/pex/pull/717>`_ - -* Make a copy of globals() before updating it. (#715) - `PR #715 <https://github.com/pantsbuild/pex/pull/715>`_ - -* Make sure `PexInfo` is isolated from `os.environ`. (#711) - `PR #711 <https://github.com/pantsbuild/pex/pull/711>`_ - -* Fix import sorting. (#712) - `PR #712 <https://github.com/pantsbuild/pex/pull/712>`_ - -* When iterating over Zipfiles, always use the Unix file separator to fix a Windows issue (#638) - `PR #638 <https://github.com/pantsbuild/pex/pull/638>`_ - -* Fix pex file looses the executable permissions of binary files (#703) - `PR #703 <https://github.com/pantsbuild/pex/pull/703>`_ - -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) - `PR #701 <https://github.com/pantsbuild/pex/pull/701>`_ - -* Switch releases to a single multi-pex. (#698) - `PR #698 <https://github.com/pantsbuild/pex/pull/698>`_ - -1.6.5 ------ - -This release fixes long-broken resolution of abi3 wheels. - -* Use all compatible versions when calculating tags. (#692) - `PR #692 <https://github.com/pantsbuild/pex/pull/692>`_ - -1.6.4 ------ - -This release un-breaks `lambdex <https://github.com/wickman/lambdex>`_. - -* Restore ``pex.pex_bootstrapper.is_compressed`` API. (#685) - `PR #685 <https://github.com/pantsbuild/pex/pull/685>`_ - -* Add the version of pex used to build a pex to build_properties. (#687) - `PR #687 <https://github.com/pantsbuild/pex/pull/687>`_ - -* Honor interpreter constraints even when PEX_PYTHON and PEX_PYTHON_PATH not set (#668) - `PR #668 <https://github.com/pantsbuild/pex/pull/668>`_ - -1.6.3 ------ - -This release changes the behavior of the ``--interpreter-constraint`` option. -Previously, interpreter constraints were ANDed, which made it impossible to -express constraints like '>=2.7,<3' OR '>=3.6,<4'; ie: either python 2.7 or -else any python 3 release at or above 3.6. Now interpreter constraints are -ORed, which is likely a breaking change if you have scripts that pass multiple -interpreter constraints. To transition, use the native ``,`` AND operator in -your constraint expression, as used in the example above. - -* Provide control over pex warning behavior. (#680) - `PR #680 <https://github.com/pantsbuild/pex/pull/680>`_ - -* OR interpreter constraints when multiple given (#678) - `Issue #655 <https://github.com/pantsbuild/pex/issues/655>`_ - `PR #678 <https://github.com/pantsbuild/pex/pull/678>`_ - -* Pin isort version in CI (#679) - `PR #679 <https://github.com/pantsbuild/pex/pull/679>`_ - -* Honor PEX_IGNORE_RCFILES in to_python_interpreter() (#673) - `PR #673 <https://github.com/pantsbuild/pex/pull/673>`_ - -* Make `run_pex_command` more robust. (#670) - `PR #670 <https://github.com/pantsbuild/pex/pull/670>`_ - -1.6.2 ------ - -* Support de-vendoring for installs. (#666) - `PR #666 <https://github.com/pantsbuild/pex/pull/666>`_ - -* Add User-Agent header when resolving via urllib (#663) - `PR #663 <https://github.com/pantsbuild/pex/pull/663>`_ - -* Fix interpreter finding (#662) - `PR #662 <https://github.com/pantsbuild/pex/pull/662>`_ - -* Add recipe to use PEX with requests module and proxies. (#659) - `PR #659 <https://github.com/pantsbuild/pex/pull/659>`_ - -* Allow pex to be invoked using runpy (python -m pex). (#637) - `PR #637 <https://github.com/pantsbuild/pex/pull/637>`_ - -1.6.1 ------ - -* Make tox -evendor idempotent. (#651) - `PR #651 <https://github.com/pantsbuild/pex/pull/651>`_ - -* Fix invalid regex and escape sequences causing DeprecationWarning (#646) - `PR #646 <https://github.com/pantsbuild/pex/pull/646>`_ - -* Follow PEP 425 suggestions on distribution preference. (#640) - `PR #640 <https://github.com/pantsbuild/pex/pull/640>`_ - -* Setup interpreter extras in InstallerBase. (#635) - `PR #635 <https://github.com/pantsbuild/pex/pull/635>`_ - -* Ensure bootstrap demotion is complete. (#634) - `PR #634 <https://github.com/pantsbuild/pex/pull/634>`_ - -1.6.0 ------ - -* Fix pex force local to handle PEP 420. (#613) - `PR #613 <https://github.com/pantsbuild/pex/pull/613>`_ - -* Vendor ``setuptools`` and ``wheel``. (#624) - `PR #624 <https://github.com/pantsbuild/pex/pull/624>`_ - -1.5.3 ------ - -* Fixup PEXEnvironment extras resolution. (#617) - `PR #617 <https://github.com/pantsbuild/pex/pull/617>`_ - -* Repair unhandled AttributeError during pex bootstrapping. (#599) - `PR #599 <https://github.com/pantsbuild/pex/pull/599>`_ - -1.5.2 ------ - -This release brings an exit code fix for pexes run via entrypoint as well as a fix for finding -scripts when building pexes from wheels with dashes in their distribution name. - -* Update PyPI default URL to pypi.org (#610) - `PR #610 <https://github.com/pantsbuild/pex/pull/610>`_ - -* Pex exits with correct code when using entrypoint (#605) - `PR #605 <https://github.com/pantsbuild/pex/pull/605>`_ - -* Fix \*_custom_setuptools_useable ITs. (#606) - `PR #606 <https://github.com/pantsbuild/pex/pull/606>`_ - -* Update pyenv if neccesary (#586) - `PR #586 <https://github.com/pantsbuild/pex/pull/586>`_ - -* Fix script search in wheels. (#600) - `PR #600 <https://github.com/pantsbuild/pex/pull/600>`_ - -* Small Docstring Fix (#595) - `PR #595 <https://github.com/pantsbuild/pex/pull/595>`_ - -1.5.1 ------ - -This release brings a fix to handle top-level requirements with environment markers, fully -completing environment marker support. - -* Filter top-level requirements against env markers. (#592) - `PR #592 <https://github.com/pantsbuild/pex/pull/592>`_ - -1.5.0 ------ - -This release fixes pexes such that they fully support environment markers, the canonical use case -being a python 2/3 pex that needs to conditionally load one or more python 2 backport libs when -running under a python 2 interpreter only. - -* Revert "Revert "Support environment markers during pex activation. (#582)"" - `PR #582 <https://github.com/pantsbuild/pex/pull/582>`_ - -1.4.9 ------ - -This is a hotfix release for 1.4.8 that fixes a regression in interpreter setup that could lead to -resolved distributions failing to build or install. - -* Cleanup `PexInfo` and `PythonInterpreter`. (#581) - `PR #581 <https://github.com/pantsbuild/pex/pull/581>`_ - -* Fix resolve regressions introduced by the 1.4.8. (#580) - `PR #580 <https://github.com/pantsbuild/pex/pull/580>`_ - -* Narrow the env marker test. (#578) - `PR #578 <https://github.com/pantsbuild/pex/pull/578>`_ - -* Documentation for #569 (#574) - `PR #574 <https://github.com/pantsbuild/pex/pull/574>`_ - -1.4.8 ------ - -This release adds support for `-c` and `-m` pexfile runtime options that emulate the behavior of the -same arguments to `python` as well a fix for handling the non-standard platform reported by -setuptools for Apple system interpreters in addition to several other bug fixes. - -* Fix PEXBuilder.clone. (#575) - `PR #575 <https://github.com/pantsbuild/pex/pull/575>`_ - -* Fix PEXEnvironment platform determination. (#568) - `PR #568 <https://github.com/pantsbuild/pex/pull/568>`_ - -* Apply more pinning to jupyter in IT. (#573) - `PR #573 <https://github.com/pantsbuild/pex/pull/573>`_ - -* Minimize interpreter bootstrapping in tests. (#571) - `PR #571 <https://github.com/pantsbuild/pex/pull/571>`_ - -* Introduce 3.7 to CI and release. (#567) - `PR #567 <https://github.com/pantsbuild/pex/pull/567>`_ - -* Add OSX shards. (#565) - `PR #565 <https://github.com/pantsbuild/pex/pull/565>`_ - -* Add support for `-m` and `-c` in interpreter mode. (#563) - `PR #563 <https://github.com/pantsbuild/pex/pull/563>`_ - -* Ignore concurrent-rename failures. (#558) - `PR #558 <https://github.com/pantsbuild/pex/pull/558>`_ - -* Fixup test_jupyter_appnope_env_markers. (#562) - `PR #562 <https://github.com/pantsbuild/pex/pull/562>`_ - -1.4.7 ------ - -This is a hotfix release for a regression in setuptools compatibility introduced by #542. - -* Fixup `PEX.demote_bootstrap`: fully unimport. (#554) - `PR #554 <https://github.com/pantsbuild/pex/pull/554>`_ - -1.4.6 ------ - -This release opens up setuptools support for more modern versions that support breaking changes in -`setup` used in the wild. - -* Fix for super() usage on "old style class" ZipFile (#546) - `PR #546 <https://github.com/pantsbuild/pex/pull/546>`_ - -* Cleanup bootstrap dependencies before handoff. (#542) - `PR #542 <https://github.com/pantsbuild/pex/pull/542>`_ - -* Support -c for plat spec dists in multiplat pexes. (#545) - `PR #545 <https://github.com/pantsbuild/pex/pull/545>`_ - -* Support `-` when running as an interpreter. (#543) - `PR #543 <https://github.com/pantsbuild/pex/pull/543>`_ - -* Expand the range of supported setuptools. (#541) - `PR #541 <https://github.com/pantsbuild/pex/pull/541>`_ - -* Preserve perms of files copied to pex chroots. (#540) - `PR #540 <https://github.com/pantsbuild/pex/pull/540>`_ - -* Add more badges to README. (#535) - `PR #535 <https://github.com/pantsbuild/pex/pull/535>`_ - -* Fixup CHANGES PR links for 1.4.5. - -1.4.5 ------ - -This release adds support for validating pex entrypoints at build time in addition to several bugfixes. - -* Fix PEX environment setup. (#531) - `#531 <https://github.com/pantsbuild/pex/pull/531>`_ - -* Fix installers to be insensitive to extras iteration order. (#532) - `#532 <https://github.com/pantsbuild/pex/pull/532>`_ - -* Validate entry point at build time (#521) - `#521 <https://github.com/pantsbuild/pex/pull/521>`_ - -* Fix pex extraction perms. (#528) - `#528 <https://github.com/pantsbuild/pex/pull/528>`_ - -* Simplify `.travis.yml`. (#524) - `#524 <https://github.com/pantsbuild/pex/pull/524>`_ - -* Fix `PythonInterpreter` caching and ergonomics. (#518) - `#518 <https://github.com/pantsbuild/pex/pull/518>`_ - -* Add missing git dep. (#519) - `#519 <https://github.com/pantsbuild/pex/pull/519>`_ - -* Introduce a controlled env for pex testing. (#517) - `#517 <https://github.com/pantsbuild/pex/pull/517>`_ - -* Bump wheel version to latest. (#515) - `#515 <https://github.com/pantsbuild/pex/pull/515>`_ - -* Invoke test runner at a more granular level for pypy shard. (#513) - `#513 <https://github.com/pantsbuild/pex/pull/513>`_ - -1.4.4 ------ - -This release adds support for including sources and resources directly in a produced pex - without the need to use pants. - -* Add resource / source bundling to pex cli (#507) - `#507 <https://github.com/pantsbuild/pex/pull/507>`_ - -1.4.3 ------ - -Another bugfix release for the 1.4.x series. - -* Repair environmental marker platform setting. (#500) - `#500 <https://github.com/pantsbuild/pex/pull/500>`_ - -* Broaden abi selection for non-specified abi types. (#503) - `#503 <https://github.com/pantsbuild/pex/pull/503>`_ - -1.4.2 ------ - -This release repairs a tag matching regression for .egg dists that inadvertently went out in 1.4.1. - -* Improve tag generation for EggPackage. (#493) - `#493 <https://github.com/pantsbuild/pex/pull/493>`_ - -1.4.1 ------ - -A bugfix release for 1.4.x. - -* Repair abi prefixing for PyPy. (#483) - `#483 <https://github.com/pantsbuild/pex/pull/483>`_ - -* Repair .egg resolution for platform specific eggs. (#486) - `#486 <https://github.com/pantsbuild/pex/pull/486>`_ - -* Eliminate the python3.3 shard. (#488) - `#488 <https://github.com/pantsbuild/pex/pull/488>`_ - -1.4.0 ------ - -This release includes full Manylinux support, improvements to wheel resolution (including first class platform/abi tag targeting) and a handful of other improvements and bugfixes. Enjoy! - -Special thanks to Dan Blanchard (@dan-blanchard) for seeding the initial PR for Manylinux support and wheel resolution improvements. - -* Complete manylinux support in pex. (#480) - `#480 <https://github.com/pantsbuild/pex/pull/480>`_ - -* Add manylinux wheel support and fix a few bugs along the way (#316) - `#316 <https://github.com/pantsbuild/pex/pull/316>`_ - -* Skip failing tests on pypy shard. (#478) - `#478 <https://github.com/pantsbuild/pex/pull/478>`_ - -* Bump travis image to Trusty. (#476) - `#476 <https://github.com/pantsbuild/pex/pull/476>`_ - -* Mock PATH for problematic interpreter selection test in CI (#474) - `#474 <https://github.com/pantsbuild/pex/pull/474>`_ - -* Skip two failing integration tests. (#472) - `#472 <https://github.com/pantsbuild/pex/pull/472>`_ - -* Better error handling for missing setuptools. (#471) - `#471 <https://github.com/pantsbuild/pex/pull/471>`_ - -* Add tracebacks to IntegResults. (#469) - `#469 <https://github.com/pantsbuild/pex/pull/469>`_ - -* Fix failing tests in master (#466) - `#466 <https://github.com/pantsbuild/pex/pull/466>`_ - -* Repair isort-check failure in master. (#465) - `#465 <https://github.com/pantsbuild/pex/pull/465>`_ - -* Repair style issues in master. (#464) - `#464 <https://github.com/pantsbuild/pex/pull/464>`_ - -* Fixup PATH handling in travis.yml. (#462) - `#462 <https://github.com/pantsbuild/pex/pull/462>`_ - -1.3.2 ------ - -* Add blacklist handling for skipping requirements in pex resolver #457 - `#457 <https://github.com/pantsbuild/pex/pull/457>`_ - -1.3.1 ------ - -This is a bugfix release for a regression that inadvertently went out in 1.3.0. - -* scrub path when not inheriting (#449) - `#449 <https://github.com/pantsbuild/pex/pull/449>`_ - -* Fix up inherits_path tests to use new values (#450) - `#450 <https://github.com/pantsbuild/pex/pull/450>`_ - -1.3.0 ------ - -* inherit_path allows 'prefer', 'fallback', 'false' (#444) - `#444 <https://github.com/pantsbuild/pex/pull/444>`_ - -1.2.16 ------- - -* Change PEX re-exec variable from ENV to os.environ (#441) - `#441 <https://github.com/pantsbuild/pex/pull/441>`_ - -1.2.15 ------- - -* Bugfix for entry point targeting + integration test (#435) - `#435 <https://github.com/pantsbuild/pex/pull/435>`_ - -1.2.14 ------- - -* Add interpreter constraints option and use constraints to search for compatible interpreters at exec time (#427) - `#427 <https://github.com/pantsbuild/pex/pull/427>`_ - -1.2.13 ------- - -* Fix handling of pre-release option. (#424) - `#424 <https://github.com/pantsbuild/pex/pull/424>`_ - -* Patch sys module using pex_path from PEX-INFO metadata (#421) - `#421 <https://github.com/pantsbuild/pex/pull/421>`_ - -1.2.12 ------- - -* Create --pex-path argument for pex cli and load pex path into pex-info metadata (#417) - `#417 <https://github.com/pantsbuild/pex/pull/417>`_ - -1.2.11 ------- - -* Leverage `subprocess32` when available. (#411) - `#411 <https://github.com/pantsbuild/pex/pull/411>`_ - -* Kill support for python 2.6. (#408) - `#405 <https://github.com/pantsbuild/pex/issues/405>`_ - `#408 <https://github.com/pantsbuild/pex/pull/408>`_ - -1.2.10 ------- - -* Allow passing a preamble file to the CLI (#400) - `#400 <https://github.com/pantsbuild/pex/pull/400>`_ - -1.2.9 ------ - -* Add first-class support for multi-interpreter and multi-platform pex construction. (#394) - `#394 <https://github.com/pantsbuild/pex/pull/394>`_ - -1.2.8 ------ - -* Minimum setuptools version should be 20.3 (#391) - `#391 <https://github.com/pantsbuild/pex/pull/391>`_ - -* Improve wheel support in pex. (#388) - `#388 <https://github.com/pantsbuild/pex/pull/388>`_ - -1.2.7 ------ - -* Sort keys in PEX-INFO file so the output is deterministic. (#384) - `#384 <https://github.com/pantsbuild/pex/pull/384>`_ - -* Pass platform for SourceTranslator (#386) - `#386 <https://github.com/pantsbuild/pex/pull/386>`_ - -1.2.6 ------ - -* Fix for Ambiguous Resolvable bug in transitive dependency resolution (#367) - `#367 <https://github.com/pantsbuild/pex/pull/367>`_ - -1.2.5 ------ - -This release follows-up on 1.2.0 fixing bugs in the pre-release resolving code paths. - -* Resolving pre-release when explicitly requested (#372) - `#374 <https://github.com/pantsbuild/pex/pull/374>`_ - -* Pass allow_prerelease to other iterators (Static, Caching) (#373) - `#373 <https://github.com/pantsbuild/pex/pull/373>`_ - -1.2.4 ------ - -* Fix bug in cached dependency resolution with exact resolvable. (#365) - `#365 <https://github.com/pantsbuild/pex/pull/365>`_ - -* Treat .pth injected paths as extras. (#370) - `#370 <https://github.com/pantsbuild/pex/pull/370>`_ - -1.2.3 ------ - -* Follow redirects on HTTP requests (#361) - `#361 <https://github.com/pantsbuild/pex/pull/361>`_ - -* Fix corner case in cached dependency resolution (#362) - `#362 <https://github.com/pantsbuild/pex/pull/362>`_ - -1.2.2 ------ - -* Fix CacheControl import. (#357) - `#357 <https://github.com/pantsbuild/pex/pull/357>`_ - -1.2.1 ------ - -This release is a quick fix for a bootstrapping bug that inadvertently went out in 1.2.0 (Issue -#354). - -* Ensure `packaging` dependency is self-contained. (#355) - `#355 <https://github.com/pantsbuild/pex/pull/355>`_ - `Fixes #354 <https://github.com/pantsbuild/pex/issues/354>`_ - -1.2.0 ------ - -This release changes pex requirement resolution behavior. Only stable requirements are resolved by -default now. The previous behavior that included pre-releases can be retained by passing `--pre` on -the pex command line or passing `allow_prereleases=True` via the API. - -* Upgrade dependencies to modern version ranges. (#352) - `#352 <https://github.com/pantsbuild/pex/pull/352>`_ - -* Add support for controlling prerelease resolution. (#350) - `#350 <https://github.com/pantsbuild/pex/pull/350>`_ - `Fixes #28 <https://github.com/pantsbuild/pex/issues/28>`_ - -1.1.20 ------- - -* Add dummy flush method for clean interpreter exit with python3.6 (#343) - `#343 <https://github.com/pantsbuild/pex/pull/343>`_ - -1.1.19 ------- - -* Implement --constraints in pex (#335) - `#335 <https://github.com/pantsbuild/pex/pull/335>`_ - -* Make sure namespace packages (e.g. virtualenvwrapper) don't break pex (#338) - `#338 <https://github.com/pantsbuild/pex/pull/338>`_ - -1.1.18 ------- - -* Expose a PEX instance's path. (#332) - `#332 <https://github.com/pantsbuild/pex/pull/332>`_ - -* Check for scripts directory in get_script_from_egg (#328) - `#328 <https://github.com/pantsbuild/pex/pull/328>`_ - -1.1.17 ------- - -* Make PEX_PATH unify pex sources, as well as requirements. (#329) - `#329 <https://github.com/pantsbuild/pex/pull/329>`_ - -1.1.16 ------- - -* Adjust FileFinder import to work with Python 3.6. (#318) - `#318 <https://github.com/pantsbuild/pex/pull/318>`_ - -* Kill zipmanifest monkeypatching. (#322) - `#322 <https://github.com/pantsbuild/pex/pull/322>`_ - -* Bump setuptools range to latest. (#323) - `#323 <https://github.com/pantsbuild/pex/pull/323>`_ - -1.1.15 ------- - -* Fix #309 by deduplicating output of the distribution finder. (#310) - `#310 <https://github.com/pantsbuild/pex/pull/310>`_ - -* Update wheel dependency to >0.26.0. (#304) - `#304 <https://github.com/pantsbuild/pex/pull/304>`_ - -1.1.14 ------- - -* Repair Executor error handling for other classes of IOError/OSError. (#292) - `#292 <https://github.com/pantsbuild/pex/pull/292>`_ - -* Fix bdist_pex --pex-args. (#285) - `#285 <https://github.com/pantsbuild/pex/pull/285>`_ - -* Inherit user site with --inherit-path. (#284) - `#284 <https://github.com/pantsbuild/pex/pull/284>`_ - -1.1.13 ------- - -* Repair passing of stdio kwargs to PEX.run(). (#288) - `#288 <https://github.com/pantsbuild/pex/pull/288>`_ - -1.1.12 ------- - -* Fix bdist_pex interpreter cache directory. (#286) - `#286 <https://github.com/pantsbuild/pex/pull/286>`_ - -* Normalize and edify subprocess execution. (#255) - `#255 <https://github.com/pantsbuild/pex/pull/255>`_ - -* Don't ignore exit codes when using setuptools entry points. (#280) - `#280 <https://github.com/pantsbuild/pex/pull/280>`_ - `Fixes #137 <https://github.com/pantsbuild/pex/issues/137>`_ - -1.1.11 ------- - -* Update cache dir when bdist_pex.run is called directly. - `#278 <https://github.com/pantsbuild/pex/pull/278>`_ - `Fixes #274 <https://github.com/pantsbuild/pex/issues/274>`_ - -1.1.10 ------- - -* Improve failure modes for os.rename() as used in distribution caching. - `#271 <https://github.com/pantsbuild/pex/pull/271>`_ - `Fixes #265 <https://github.com/pantsbuild/pex/issues/265>`_ - -1.1.9 ------ - -* Bugfix: Open setup.py in binary mode. - `#264 <https://github.com/pantsbuild/pex/pull/264>`_ - `Fixes #263 <https://github.com/pantsbuild/pex/issues/263>`_ - -1.1.8 ------ - -* Bugfix: Repair a regression in `--disable-cache`. - `#261 <https://github.com/pantsbuild/pex/pull/261>`_ - `Fixes #260 <https://github.com/pantsbuild/pex/issues/260>`_ - -1.1.7 ------ - -* Add README and supported python versions to PyPI description. - `#258 <https://github.com/pantsbuild/pex/pull/258>`_ - -* Use `open` with utf-8 support. - `#231 <https://github.com/pantsbuild/pex/pull/231>`_ - -* Add `--pex-root` option. - `#206 <https://github.com/pantsbuild/pex/pull/206>`_ - -1.1.6 ------ - -This release is a quick fix for a regression that inadvertently went out in 1.1.5 (Issue #243). - -* Fix the ``bdist_pex`` ``setuptools`` command to work for python2. - `#246 <https://github.com/pantsbuild/pex/pull/246>`_ - `Fixes #243 <https://github.com/pantsbuild/pex/issues/243>`_ - -* Upgrade pex dependencies on ``setuptools`` and ``wheel``. - `#244 <https://github.com/pantsbuild/pex/pull/244>`_ - `Fixes #238 <https://github.com/pantsbuild/pex/issues/238>`_ - -1.1.5 ------ - -* Fix ``PEXBuilder.clone`` and thus ``bdist_pex --pex-args`` for ``--python`` and ``--python-shebang``. - `#234 <https://github.com/pantsbuild/pex/pull/234>`_ - `Fixes #233 <https://github.com/pantsbuild/pex/issues/233>`_ - -* Fix old ``pkg_resources`` egg version normalization. - `#227 <https://github.com/pantsbuild/pex/pull/227>`_ - `Fixes #226 <https://github.com/pantsbuild/pex/issues/226>`_ - -* Fix the ``inherit_path`` handling. - `#224 <https://github.com/pantsbuild/pex/pull/224>`_ - -* Fix handling of bad distribution script names when used as the pex entrypoint. - `#221 <https://github.com/pantsbuild/pex/issues/221>`_ - `Fixes #220 <https://github.com/pantsbuild/pex/issues/220>`_ - -1.1.4 ------ - -This release is a quick fix for a regression that inadvertently went out in 1.1.3 (Issue #216). - -* Add a test for the regression in ``FixedEggMetadata._zipinfo_name`` and revert the breaking commit. - `Fixes #216 <https://github.com/pantsbuild/pex/issues/216>`_ - -1.1.3 ------ - -This release includes an initial body of work towards Windows support, ABI tag support for CPython 2.x and a fix for version number normalization. - -* Add python 2.x abi tag support. - `#214 <https://github.com/pantsbuild/pex/pull/214>`_ - `Fixes #213 <https://github.com/pantsbuild/pex/issues/213>`_ - -* Add .idea to .gitignore. - `#205 <https://github.com/pantsbuild/pex/pull/205>`_ - -* Don't normalize version numbers as names. - `#204 <https://github.com/pantsbuild/pex/pull/204>`_ - -* More fixes for windows. - `#202 <https://github.com/pantsbuild/pex/pull/202>`_ - -* Fixes to get pex to work on windows. - `#198 <https://github.com/pantsbuild/pex/pull/198>`_ - -1.1.2 ------ - -* Bump setuptools & wheel version pinning. - `#194 <https://github.com/pantsbuild/pex/pull/194>`_ - -* Unescape html in PageParser.href_match_to_url. - `#191 <https://github.com/pantsbuild/pex/pull/191>`_ - -* Memoize calls to Crawler.crawl() for performance win in find-links based resolution. - `#187 <https://github.com/pantsbuild/pex/pull/187>`_ - -1.1.1 ------ - -* Fix infinite recursion when ``PEX_PYTHON`` points at a symlink. - `#182 <https://github.com/pantsbuild/pex/pull/182>`_ - -* Add ``/etc/pexrc`` to the list of pexrc locations to check. - `#183 <https://github.com/pantsbuild/pex/pull/183>`_ - -* Improve error messaging for platform constrained Untranslateable errors. - `#179 <https://github.com/pantsbuild/pex/pull/179>`_ - -1.1.0 ------ - -* Add support for ``.pexrc`` files for influencing the pex environment. See the notes `here - <https://github.com/pantsbuild/pex/blob/master/docs/buildingpex.rst#tailoring-pex-execution-at-build-time>`_. - `#128 <https://github.com/pantsbuild/pex/pull/128>`_. - -* Bug fix: PEX_PROFILE_FILENAME and PEX_PROFILE_SORT were not respected. - `#154 <https://github.com/pantsbuild/pex/issues/154>`_. - -* Adds the ``bdist_pex`` command to setuptools. - `#99 <https://github.com/pantsbuild/pex/issues/99>`_. - -* Bug fix: We did not normalize package names in ``ResolvableSet``, so it was possible to depend on - ``sphinx`` and ``Sphinx-1.4a0.tar.gz`` and get two versions build and included into the pex. - `#147 <https://github.com/pantsbuild/pex/issues/147>`_. - -* Adds a pex-identifying User-Agent. `#101 <https://github.com/pantsbuild/pex/issues/101>`_. - -1.0.3 ------ - -* Bug fix: Accommodate OSX ``Python`` python binaries. Previously the OSX python distributions shipped - with OSX, XCode and available via https://www.python.org/downloads/ could fail to be detected using - the ``PythonInterpreter`` class. - Fixes `#144 <https://github.com/pantsbuild/pex/issues/144>`_. - -* Bug fix: PEX_SCRIPT failed when the script was from a not-zip-safe egg. - Original PR `#139 <https://github.com/pantsbuild/pex/pull/139>`_. - -* Bug fix: ``sys.exit`` called without arguments would cause `None` to be printed on stderr since pex 1.0.1. - `#143 <https://github.com/pantsbuild/pex/pull/143>`_. - -1.0.2 ------ - -* Bug fix: PEX-INFO values were overridden by environment ``Variables`` with default values that were - not explicitly set in the environment. - Fixes `#135 <https://github.com/pantsbuild/pex/issues/135>`_. - -* Bug fix: Since `69649c1 <https://github.com/pantsbuild/pex/commit/69649c1>`_ we have been unpatching - the side-effects of ``sys.modules`` after ``PEX.execute``. This takes all modules imported during - the PEX lifecycle and sets all their attributes to ``None``. Unfortunately, ``sys.excepthook``, - ``atexit`` and ``__del__`` may still try to operate using these tainted modules, causing exceptions - on interpreter teardown. This reverts just the ``sys`` unpatching so that the abovementioned - teardown hooks behave more predictably. - Fixes `#141 <https://github.com/pantsbuild/pex/issues/141>`_. - -1.0.1 ------ - -* Allow PEXBuilder to optionally copy files into the PEX environment instead of hard-linking them. - -* Allow PEXBuilder to optionally skip precompilation of .py files into .pyc files. - -* Bug fix: PEXBuilder did not respect the target interpreter when compiling source to bytecode. - Fixes `#127 <https://github.com/pantsbuild/pex/issues/127>`_. - -* Bug fix: Fix complex resolutions when using a cache. - Fixes: `#120 <https://github.com/pantsbuild/pex/issues/120>`_. - -1.0.0 ------ - -The 1.0.0 release of pex introduces a few breaking changes: ``pex -r`` now takes requirements.txt files -instead of requirement specs, ``pex -s`` has now been removed since source specs are accepted as arguments, -and ``pex -p`` has been removed in favor of its alias ``pex -o``. - -The pex *command line interface* now adheres to semver insofar as backwards incompatible CLI -changes will invoke a major version change. Any backwards incompatible changes to the PEX -environment variable semantics will also result in a major version change. The pex *API* adheres -to semver insofar as backwards incompatible API changes will invoke minor version changes. - -For users of the PEX API, it is recommended to add minor version ranges, e.g. ``pex>=1.0,<1.1``. -For users of the PEX CLI, major version ranges such as ``pex>=1,<2`` should be sufficient. - -* BREAKING CHANGE: Removes the ``-s`` option in favor of specifying directories directly as - arguments to the pex command line. - -* BREAKING CHANGE: ``pex -r`` now takes requirements.txt filenames and *not* requirement - specs. Requirement specs are now passed as arguments to the pex tool. Use ``--`` to escape - command line arguments passed to interpreters spawned by pex. Implements - `#5 <https://github.com/pantsbuild/pex/issues/5>`_. - -* Adds a number of flag aliases to be more compatible with pip command lines: ``--no-index``, - ``-f``, ``--find-links``, ``--index-url``, ``--no-use-wheel``. Removes ``-p`` in favor of - ``-o`` exclusively. - -* Adds ``--python-shebang`` option to the pex tool in order to set the ``#!`` shebang to an exact - path. `#53 <https://github.com/pantsbuild/pex/issues/53>`_. - -* Adds support for ``PEX_PYTHON`` environment variable which will cause the pex file to reinvoke - itself using the interpreter specified, e.g. ``PEX_PYTHON=python3.4`` or - ``PEX_PYTHON=/exact/path/to/interpreter``. `#27 <https://github.com/pantsbuild/pex/issues/27>`_. - -* Adds support for ``PEX_PATH`` environment variable which allows merging of PEX environments at - runtime. This can be used to inject plugins or entry_points or modules from one PEX into - another without explicitly building them together. `#30 <https://github.com/pantsbuild/pex/issues/30>`_. - -* Consolidates documentation of ``PEX_`` environment variables and adds the ``--help-variables`` option - to the pex client. Partially addresses `#13 <https://github.com/pantsbuild/pex/issues/13>`_. - -* Adds helper method to dump a package subdirectory onto disk from within a zipped PEX file. This - can be useful for applications that know they're running within a PEX and would prefer some - static assets dumped to disk instead of running as an unzipped PEX file. - `#12 <https://github.com/pantsbuild/pex/pull/12>`_. - -* Now supports extras for static URLs and installable directories. - `#65 <https://github.com/pantsbuild/pex/issues/65>`_. - -* Adds ``-m`` and ``--entry-point`` alias to the existing ``-e`` option for entry points in - the pex tool to evoke the similarity to ``python -m``. - -* Adds console script support via ``-c/--script/--console-script`` and ``PEX_SCRIPT``. This allows - you to reference the named entry point instead of the exact ``module:name`` pair. Also supports - scripts defined in the ``scripts`` section of setup.py. - `#59 <https://github.com/pantsbuild/pex/issues/59>`_. - -* Adds more debugging information when encountering unresolvable requirements. - `#79 <https://github.com/pantsbuild/pex/issues/79>`_. - -* Bug fix: ``PEX_COVERAGE`` and ``PEX_PROFILE`` did not function correctly when SystemExit was raised. - Fixes `#81 <https://github.com/pantsbuild/pex/issues/81>`_. - -* Bug fix: Fixes caching in the PEX tool since we don't cache the source distributions of installable - directories. `#24 <https://github.com/pantsbuild/pex/issues/24>`_. - -0.9.0 ------ - -This is the last release before the 1.0.0 development branch is started. - -* Change the setuptools range to >=2.2,<16 by handling EntryPoint changes as well as - being flexible on whether ``pkg_resources`` is a package or a module. Fixes - `#55 <https://github.com/pantsbuild/pex/issues/55>`_ and - `#34 <https://github.com/pantsbuild/pex/issues/34>`_. - -* Adds option groups to the pex tool to make the help output slightly more readable. - -* Bug fix: Make ``pip install pex`` work better by removing ``extras_requires`` on the - ``console_script`` entry point. Fixes `#48 <https://github.com/pantsbuild/pex/issues/48>`_ - -* New feature: Adds an interpreter cache to the ``pex`` tool. If the user does not explicitly - disable the wheel feature and attempts to build a pex with wheels but does not have the wheel - package installed, pex will download it in order to make the feature work. - Implements `#47 <https://github.com/pantsbuild/pex/issues/47>`_ in order to - fix `#48 <https://github.com/pantsbuild/pex/issues/48>`_ - -0.8.6 ------ - -* Bug fix: Honor installed sys.excepthook in pex teardown. - `RB #1733 <https://rbcommons.com/s/twitter/r/1733>`_ - -* Bug fix: ``UrllibContext`` used ``replace`` as a keyword argument for ``bytes.decode`` - but this only works on Python 3. `Pull Request #46 <https://github.com/pantsbuild/pex/pull/46>`_ - -0.8.5 ------ - -* Bug fix: Fixup string formatting in pex/bin/pex.py to support Python 2.6 - `Pull Request #40 <https://github.com/pantsbuild/pex/pull/40>`_ - -0.8.4 ------ - -* Performance improvement: Speed up the best-case scenario of dependency resolution. - `RB #1685 <https://rbcommons.com/s/twitter/r/1685>`_ - -* Bug fix: Change from ``uuid4().get_hex()`` to ``uuid4().hex`` to maintain Python3 - compatibility of pex.common. - `Pull Request #39 <https://github.com/pantsbuild/pex/pull/39>`_ - -* Bug fix: Actually cache the results of translation. Previously bdist translations - would be created in a temporary directory even if a cache location was specified. - `RB #1666 <https://rbcommons.com/s/twitter/r/1666>`_ - -* Bug fix: Support all potential abi tag permutations when determining platform - compatibility. - `Pull Request #33 <https://github.com/pantsbuild/pex/pull/33>`_ - -0.8.3 ------ - -* Performance improvement: Don't always write packages to disk if they've already been - cached. This can significantly speed up launching PEX files with a large - number of non-zip-safe dependencies. - `RB #1642 <https://rbcommons.com/s/twitter/r/1642>`_ - -0.8.2 ------ - -* Bug fix: Allow pex 0.8.x to parse pex files produced by earlier versions of - pex and twitter.common.python. - -* Pin pex to setuptools prior to 9.x until we have a chance to make changes - related to PEP440 and the change of pkg_resources.py to a package. - -0.8.1 ------ - -* Bug fix: Fix issue where it'd be possible to ``os.path.getmtime`` on a remote ``Link`` object - `Issue #29 <https://github.com/pantsbuild/pex/issues/29>`_ - -0.8.0 ------ - -* *API change*: Decouple translation from package iteration. This removes - the Obtainer construct entirely, which likely means if you're using PEX as - a library, you will need to change your code if you were doing anything - nontrivial. This adds a couple new options to ``resolve`` but simplifies - the story around how to cache packages. - `RB #785 <https://rbcommons.com/s/twitter/r/785/>`_ - -* Refactor http handling in pex to allow for alternate http implementations. Adds support - for `requests <https://github.com/kennethreitz/requests>`_, - improving both performance and security. For more information, read the commit notes at - `91c7f32 <https://github.com/pantsbuild/pex/commit/91c7f324085c18af714d35947b603a5f60aeb682>`_. - `RB #778 <https://rbcommons.com/s/twitter/r/778/>`_ - -* Improvements to API documentation throughout. - -* Renamed ``Tracer`` to ``TraceLogger`` to prevent nondeterministic isort ordering. - -* Refactor tox.ini to increase the number of environment combinations and improve coverage. - -* Adds HTTP retry support for the RequestsContext. - `RB #1303 <https://rbcommons.com/s/twitter/r/1303/>`_ - -* Make pex --version correct. - `Issue #19 <https://github.com/pantsbuild/pex/issues/19>`_ - -* Bug fix: Fix over-aggressive sys.modules scrubbing for namespace packages. Under - certain circumstances, namespace packages in site-packages could conflict with packages - within a PEX, causing them to fail importing. - `RB #1378 <https://rbcommons.com/s/twitter/r/1378/>`_ - -* Bug fix: Replace uses of ``os.unsetenv(...)`` with ``del os.environ[...]`` - `Pull Request #11 <https://github.com/pantsbuild/pex/pull/11>`_ - -* Bug fix: Scrub sys.path and sys.modules based upon both supplied path and - realpath of files and directories. Newer versions of virtualenv on Linux symlink site-packages - which caused those packages to not be removed from sys.path correctly. - `Issue #21 <https://github.com/pantsbuild/pex/issues/21>`_ - -* Bug fix: The pex -s option was not correctly pulling in transitive dependencies. - `Issue #22 <https://github.com/pantsbuild/pex/issues/22>`_ - -* Bug fix: Adds ``content`` method to HTTP contexts that does HTML content decoding, fixing - an encoding issue only experienced when using Python 3. - `Issue #10 <https://github.com/pantsbuild/pex/issues/10>`_ - -0.7.0 ------ - -* Rename ``twitter.common.python`` to ``pex`` and split out from the - `twitter/commons <http://github.com/twitter/commons>`_ repo. - -0.6.0 ------ - -* Change the interpretation of ``-i`` (and of PyPIFetcher's pypi_base) - to match pip's ``-i``. This is useful for compatibility with devpi. - -0.5.10 ------- - -* Ensures that .egg/.whl distributions on disk have their mtime updated - even though we no longer overwrite them. This gives them a new time - lease against their ttl. - - Without this change, once a distribution aged past the ttl it would - never be used again, and builds would re-create the same distributions - in tmpdirs over and over again. - -0.5.9 ------ - -* Fixes an issue where SourceTranslator would overwrite .egg/.whl - distributions already on disk. Instead it should always check to see if - a copy already exists and reuse if there. - - This ordinarily should not be a problem but the zipimporter caches - metadata by filename instead of stat/sha, so if the underlying contents - changed a runtime error would be thrown due to seemingly corrupt zip file - offsets. `RB #684 <https://rbcommons.com/s/twitter/r/684/>`_ - -0.5.8 ------ - -* Adds ``-i/--index`` option to the pex tool. - -0.5.7 ------ - -* Adds ``twitter.common.python.pex_bootstrap`` ``bootstrap_pex_env`` function in - order to initialize a PEX environment from within a python interpreter. - (Patch contributed by @kwlzn) - -* Adds stdin=,stdout=,stderr= keyword parameters to the ``PEX.run`` function. - (Patch from @benjy) - -0.5.6 ------ - -* The crawler now defaults to not follow links for security reasons. - (Before the default behavior was to implicitly ``--follow-links`` for all - requirements.) `RB #293 <https://rbcommons.com/s/twitter/r/293/>`_ - -0.5.5 ------ - -* Improves scrubbing of site-packages from PEX environments. - `RB #289 <https://rbcommons.com/s/twitter/r/289/>`_ - -0.5.1 - 0.5.4 -------------- - -* Silences exceptions reported during interpreter teardown (the exceptions - resulting from incorrect atexit handler behavior) introduced by 0.4.3 - `RB #253 <https://rbcommons.com/s/twitter/r/253/>`_ - `RB #249 <https://rbcommons.com/s/twitter/r/249/>`_ - -* Adds ``__hash__`` to ``Link`` so that Packages are hashed correctly in - ``twitter.common.python.resolver`` ``resolve`` - -0.5.0 ------ - -* Adds wheel support to ``twitter.common.python`` - `RB #94 <https://rbcommons.com/s/twitter/r/94/>`_ - `RB #154 <https://rbcommons.com/s/twitter/r/154/>`_ - `RB #148 <https://rbcommons.com/s/twitter/r/148/>`_ - -0.4.3 ------ - -* Adds ``twitter.common.python.finders`` which are additional finders for - setuptools including: - - find eggs within a .zip - - find wheels within a directory - - find wheels within a .zip - `RB #86 <https://rbcommons.com/s/twitter/r/86/>`_ - -* Adds a new Package abstraction by refactoring Link into Link and Package. - `RB #92 <https://rbcommons.com/s/twitter/r/92/>`_ - -* Adds support for PEP425 tagging necessary for wheel support. - `RB #87 <https://rbcommons.com/s/twitter/r/87/>`_ - -* Improves python environment isolation by correctly scrubbing namespace - packages injected into module ``__path__`` attributes by nspkg pth files. - `RB #116 <https://rbcommons.com/s/twitter/r/116/>`_ - -* Adds ``twitter.common.python.resolver`` ``resolve`` method that handles - transitive dependency resolution better. This means that if the - requirement ``futures==2.1.2`` and an unqualified ``futures>=2`` is pulled in - transitively, our resolver will correctly resolve futures 2.1.2 instead - of reporting a VersionConflict if any version newer than 2.1.2 is - available. `RB #129 <https://rbcommons.com/s/twitter/r/129/>`_ - -* Factors all ``twitter.common.python`` test helpers into - ``twitter.common.python.testing`` - `RB #91 <https://rbcommons.com/s/twitter/r/91/>`_ - -* Bug fix: Fix ``OrderedSet`` atexit exceptions - `RB #147 <https://rbcommons.com/s/twitter/r/147/>`_ - -* Bug fix: Fix cross-device symlinking (patch from @benjy) - -* Bug fix: Raise a ``RuntimeError`` if we fail to write ``pkg_resources`` into a .pex - `RB #115 <https://rbcommons.com/s/twitter/r/115/>`_ - -0.4.2 ------ - -* Upgrade to ``setuptools>=1`` - -0.4.1 ------ - -* ``twitter.common.python`` is no longer a namespace package - -0.4.0 ------ - -* Kill the egg distiller. We now delegate .egg generation to bdist_egg. - `RB #55 <https://rbcommons.com/s/twitter/r/55/>`_ - -0.3.1 ------ - -* Short-circuit resolving a distribution if a local exact match is found. - `RB #47 <https://rbcommons.com/s/twitter/r/47/>`_ - -* Correctly patch the global ``pkg_resources`` ``WorkingSet`` for the lifetime - of the Python interpreter. `RB #52 <https://rbcommons.com/s/twitter/r/52/>`_ - -* Fixes a performance regression in setuptools ``build_zipmanifest`` - `Setuptools Issue #154 <https://bitbucket.org/pypa/setuptools/issue/154/build_zipmanifest-results-should-be>`_ - `RB #53 <https://rbcommons.com/s/twitter/r/53/>`_ - -0.3.0 ------ - -* Plumb through the ``--zip-safe``, ``--always-write-cache``, ``--ignore-errors`` - and ``--inherit-path`` flags to the pex tool. - -* Delete the unused ``PythonDirWrapper`` code. - -* Split ``PEXEnvironment`` resolution into ``twitter.common.python.environment`` - and deconflate ``WorkingSet``/``Environment`` state. - -* Removes the monkeypatched zipimporter in favor of keeping all eggs - unzipped within PEX files. Refactors the PEX dependency cache in - ``util.py`` - -* Adds interpreter detection for Jython and PyPy. - -* Dependency translation errors should be made uniform. - (Patch from @johnsirois) - -* Adds ``PEX_PROFILE_ENTRIES`` to limit the number of entries reported when - ``PEX_PROFILE`` is enabled. (Patch from @rgs_) - -* Bug fix: Several fixes to error handling in ``twitter.common.python.http`` - (From Marc Abramowitz) - -* Bug fix: PEX should not always assume that ``$PATH`` was available. - (Patch from @jamesbroadhead) - -* Bug fix: Filename should be part of the .pex cache key or else multiple - identical versions will incorrectly resolve (Patch from @tc) - -* Bug fix: Executed entry points shouldn't be forced to run in an - environment with ``__future__`` imports enabled. (Patch from - @lawson_patrick) - -* Bug fix: Detect versionless egg links and fail fast. (Patch from - @johnsirois.) - -* Bug fix: Handle setuptools>=2.1 correctly in the zipimport monkeypatch - (Patch from @johnsirois.) - -0.2.3 ------ - -* Bug fix: Fix handling of Fetchers with ``file://`` urls. - -0.2.2 ------ - -* Adds the pex tool as a standalone tool. - -0.2.1 ------ - -* Bug fix: Bootstrapped ``twitter.common.python`` should declare ``twitter.common`` - as a namespace package. - -0.2.0 ------ - -* Make ``twitter.common.python`` fully standalone by consolidating - external dependencies within ``twitter.common.python.common``. - -0.1.0 ------ - -* Initial published version of ``twitter.common.python``. |