9
* Bug fix: Honor installed sys.excepthook in pex teardown.
10
`RB #1733 <https://rbcommons.com/s/twitter/r/1733>`_
12
* Bug fix: ``UrllibContext`` used ``replace`` as a keyword argument for ``bytes.decode``
13
but this only works on Python 3. `Pull Request #46 <https://github.com/pantsbuild/pex/pull/46>`_
19
* Bug fix: Fixup string formatting in pex/bin/pex.py to support Python 2.6
20
`Pull Request #40 <https://github.com/pantsbuild/pex/pull/40>`_
26
* Performance improvement: Speed up the best-case scenario of dependency resolution.
27
`RB #1685 <https://rbcommons.com/s/twitter/r/1685>`_
29
* Bug fix: Change from ``uuid4().get_hex()`` to ``uuid4().hex`` to maintain Python3
30
compatibility of pex.common.
31
`Pull Request #39 <https://github.com/pantsbuild/pex/pull/39>`_
33
* Bug fix: Actually cache the results of translation. Previously bdist translations
34
would be created in a temporary directory even if a cache location was specified.
35
`RB #1666 <https://rbcommons.com/s/twitter/r/1666>`_
37
* Bug fix: Support all potential abi tag permutations when determining platform
39
`Pull Request #33 <https://github.com/pantsbuild/pex/pull/33>`_
45
* Performance improvement: Don't always write packages to disk if they've already been
46
cached. This can significantly speed up launching PEX files with a large
47
number of non-zip-safe dependencies.
48
`RB #1642 <https://rbcommons.com/s/twitter/r/1642>`_
54
* Bug fix: Allow pex 0.8.x to parse pex files produced by earlier versions of
55
pex and twitter.common.python.
57
* Pin pex to setuptools prior to 9.x until we have a chance to make changes
58
related to PEP440 and the change of pkg_resources.py to a package.
64
* Bug fix: Fix issue where it'd be possible to ``os.path.getmtime`` on a remote ``Link`` object
65
`Issue #29 <https://github.com/pantsbuild/pex/issues/29>`_
71
* *API change*: Decouple translation from package iteration. This removes
72
the Obtainer construct entirely, which likely means if you're using PEX as
73
a library, you will need to change your code if you were doing anything
74
nontrivial. This adds a couple new options to ``resolve`` but simplifies
75
the story around how to cache packages.
76
`RB #785 <https://rbcommons.com/s/twitter/r/785/>`_
78
* Refactor http handling in pex to allow for alternate http implementations. Adds support
79
for `requests <https://github.com/kennethreitz/requests>`_,
80
improving both performance and security. For more information, read the commit notes at
81
`91c7f32 <https://github.com/pantsbuild/pex/commit/91c7f324085c18af714d35947b603a5f60aeb682>`_.
82
`RB #778 <https://rbcommons.com/s/twitter/r/778/>`_
84
* Improvements to API documentation throughout.
86
* Renamed ``Tracer`` to ``TraceLogger`` to prevent nondeterministic isort ordering.
88
* Refactor tox.ini to increase the number of environment combinations and improve coverage.
90
* Adds HTTP retry support for the RequestsContext.
91
`RB #1303 <https://rbcommons.com/s/twitter/r/1303/>`_
93
* Make pex --version correct.
94
`Issue #19 <https://github.com/pantsbuild/pex/issues/19>`_
96
* Bug fix: Fix over-aggressive sys.modules scrubbing for namespace packages. Under
97
certain circumstances, namespace packages in site-packages could conflict with packages
98
within a PEX, causing them to fail importing.
99
`RB #1378 <https://rbcommons.com/s/twitter/r/1378/>`_
101
* Bug fix: Replace uses of ``os.unsetenv(...)`` with ``del os.environ[...]``
102
`Pull Request #11 <https://github.com/pantsbuild/pex/pull/11>`_
104
* Bug fix: Scrub sys.path and sys.modules based upon both supplied path and
105
realpath of files and directories. Newer versions of virtualenv on Linux symlink site-packages
106
which caused those packages to not be removed from sys.path correctly.
107
`Issue #21 <https://github.com/pantsbuild/pex/issues/21>`_
109
* Bug fix: The pex -s option was not correctly pulling in transitive dependencies.
110
`Issue #22 <https://github.com/pantsbuild/pex/issues/22>`_
112
* Bug fix: Adds ``content`` method to HTTP contexts that does HTML content decoding, fixing
113
an encoding issue only experienced when using Python 3.
114
`Issue #10 <https://github.com/pantsbuild/pex/issues/10>`_
120
* Rename ``twitter.common.python`` to ``pex`` and split out from the
121
`twitter/commons <http://github.com/twitter/commons>`_ repo.
127
* Change the interpretation of ``-i`` (and of PyPIFetcher's pypi_base)
128
to match pip's ``-i``. This is useful for compatibility with devpi.
134
* Ensures that .egg/.whl distributions on disk have their mtime updated
135
even though we no longer overwrite them. This gives them a new time
136
lease against their ttl.
138
Without this change, once a distribution aged past the ttl it would
139
never be used again, and builds would re-create the same distributions
140
in tmpdirs over and over again.
146
* Fixes an issue where SourceTranslator would overwrite .egg/.whl
147
distributions already on disk. Instead it should always check to see if
148
a copy already exists and reuse if there.
150
This ordinarily should not be a problem but the zipimporter caches
151
metadata by filename instead of stat/sha, so if the underlying contents
152
changed a runtime error would be thrown due to seemingly corrupt zip file
153
offsets. `RB #684 <https://rbcommons.com/s/twitter/r/684/>`_
159
* Adds ``-i/--index`` option to the pex tool.
165
* Adds ``twitter.common.python.pex_bootstrap`` ``bootstrap_pex_env`` function in
166
order to initialize a PEX environment from within a python interpreter.
167
(Patch contributed by @kwlzn)
169
* Adds stdin=,stdout=,stderr= keyword parameters to the ``PEX.run`` function.
176
* The crawler now defaults to not follow links for security reasons.
177
(Before the default behavior was to implicitly ``--follow-links`` for all
178
requirements.) `RB #293 <https://rbcommons.com/s/twitter/r/293/>`_
184
* Improves scrubbing of site-packages from PEX environments.
185
`RB #289 <https://rbcommons.com/s/twitter/r/289/>`_
191
* Silences exceptions reported during interpreter teardown (the exceptions
192
resulting from incorrect atexit handler behavior) introduced by 0.4.3
193
`RB #253 <https://rbcommons.com/s/twitter/r/253/>`_
194
`RB #249 <https://rbcommons.com/s/twitter/r/249/>`_
196
* Adds ``__hash__`` to ``Link`` so that Packages are hashed correctly in
197
``twitter.common.python.resolver`` ``resolve``
203
* Adds wheel support to ``twitter.common.python``
204
`RB #94 <https://rbcommons.com/s/twitter/r/94/>`_
205
`RB #154 <https://rbcommons.com/s/twitter/r/154/>`_
206
`RB #148 <https://rbcommons.com/s/twitter/r/148/>`_
212
* Adds ``twitter.common.python.finders`` which are additional finders for
213
setuptools including:
214
- find eggs within a .zip
215
- find wheels within a directory
216
- find wheels within a .zip
217
`RB #86 <https://rbcommons.com/s/twitter/r/86/>`_
219
* Adds a new Package abstraction by refactoring Link into Link and Package.
220
`RB #92 <https://rbcommons.com/s/twitter/r/92/>`_
222
* Adds support for PEP425 tagging necessary for wheel support.
223
`RB #87 <https://rbcommons.com/s/twitter/r/87/>`_
225
* Improves python environment isolation by correctly scrubbing namespace
226
packages injected into module ``__path__`` attributes by nspkg pth files.
227
`RB #116 <https://rbcommons.com/s/twitter/r/116/>`_
229
* Adds ``twitter.common.python.resolver`` ``resolve`` method that handles
230
transitive dependency resolution better. This means that if the
231
requirement ``futures==2.1.2`` and an unqualified ``futures>=2`` is pulled in
232
transitively, our resolver will correctly resolve futures 2.1.2 instead
233
of reporting a VersionConflict if any version newer than 2.1.2 is
234
available. `RB #129 <https://rbcommons.com/s/twitter/r/129/>`_
236
* Factors all ``twitter.common.python`` test helpers into
237
``twitter.common.python.testing``
238
`RB #91 <https://rbcommons.com/s/twitter/r/91/>`_
240
* Bug fix: Fix ``OrderedSet`` atexit exceptions
241
`RB #147 <https://rbcommons.com/s/twitter/r/147/>`_
243
* Bug fix: Fix cross-device symlinking (patch from @benjy)
245
* Bug fix: Raise a ``RuntimeError`` if we fail to write ``pkg_resources`` into a .pex
246
`RB #115 <https://rbcommons.com/s/twitter/r/115/>`_
252
* Upgrade to ``setuptools>=1``
258
* ``twitter.common.python`` is no longer a namespace package
264
* Kill the egg distiller. We now delegate .egg generation to bdist_egg.
265
`RB #55 <https://rbcommons.com/s/twitter/r/55/>`_
271
* Short-circuit resolving a distribution if a local exact match is found.
272
`RB #47 <https://rbcommons.com/s/twitter/r/47/>`_
274
* Correctly patch the global ``pkg_resources`` ``WorkingSet`` for the lifetime
275
of the Python interpreter. `RB #52 <https://rbcommons.com/s/twitter/r/52/>`_
277
* Fixes a performance regression in setuptools ``build_zipmanifest``
278
`Setuptools Issue #154 <https://bitbucket.org/pypa/setuptools/issue/154/build_zipmanifest-results-should-be>`_
279
`RB #53 <https://rbcommons.com/s/twitter/r/53/>`_
285
* Plumb through the ``--zip-safe``, ``--always-write-cache``, ``--ignore-errors``
286
and ``--inherit-path`` flags to the pex tool.
288
* Delete the unused ``PythonDirWrapper`` code.
290
* Split ``PEXEnvironment`` resolution into ``twitter.common.python.environment``
291
and deconflate ``WorkingSet``/``Environment`` state.
293
* Removes the monkeypatched zipimporter in favor of keeping all eggs
294
unzipped within PEX files. Refactors the PEX dependency cache in
297
* Adds interpreter detection for Jython and PyPy.
299
* Dependency translation errors should be made uniform.
300
(Patch from @johnsirois)
302
* Adds ``PEX_PROFILE_ENTRIES`` to limit the number of entries reported when
303
``PEX_PROFILE`` is enabled. (Patch from @rgs_)
305
* Bug fix: Several fixes to error handling in ``twitter.common.python.http``
306
(From Marc Abramowitz)
308
* Bug fix: PEX should not always assume that ``$PATH`` was available.
309
(Patch from @jamesbroadhead)
311
* Bug fix: Filename should be part of the .pex cache key or else multiple
312
identical versions will incorrectly resolve (Patch from @tc)
314
* Bug fix: Executed entry points shouldn't be forced to run in an
315
environment with ``__future__`` imports enabled. (Patch from
318
* Bug fix: Detect versionless egg links and fail fast. (Patch from
321
* Bug fix: Handle setuptools>=2.1 correctly in the zipimport monkeypatch
322
(Patch from @johnsirois.)
328
* Bug fix: Fix handling of Fetchers with ``file://`` urls.
334
* Adds the pex tool as a standalone tool.
340
* Bug fix: Bootstrapped ``twitter.common.python`` should declare ``twitter.common``
341
as a namespace package.
347
* Make ``twitter.common.python`` fully standalone by consolidating
348
external dependencies within ``twitter.common.python.common``.
354
* Initial published version of ``twitter.common.python``.