v21.0.0
02 May 2016
Removed ez_setup.py from Setuptools sdist. The bootstrap script
will be maintained in its own branch and should be generally
be retrieved from its canonical location at
https://bootstrap.pypa.io/ez_setup.py.
v20.10.0
25 Apr 2016
#553: egg_info section is now generated in a deterministic
order, matching the order generated by earlier versions of
Python. Except on Python 2.6, order is preserved when existing
settings are present.
#556: Update to Packaging 16.7, restoring support for deprecated
python_implmentation marker.
#555: Upload command now prompts for a password when uploading
to PyPI (or other repository) if no password is present in
.pypirc or in the keyring.
v20.9.0
-------
* #548: Update certify version to 2016.2.28
* #545: Safely handle deletion of non-zip eggs in rotate
command.
v20.8.1
-------
* Issue #544: Fix issue with extra environment marker
processing in WorkingSet due to refactor in v20.7.0.
v20.8.0
-------
* Issue #543: Re-release so that latest release doesn't
cause déjà vu with distribute and setuptools 0.7 in
older environments.
v20.7.0
-------
* Refactored extra enviroment marker processing
in WorkingSet.
* Issue #533: Fixed intermittent test failures.
* Issue #536: In msvc9_support, trap additional exceptions
that might occur when importing
``distutils.msvc9compiler`` in mingw environments.
* Issue #537: Provide better context when package
metadata fails to decode in UTF-8.
v20.6.8
-------
* Issue #523: Restored support for environment markers,
now honoring 'extra' environment markers.
v20.6.7
-------
* Issue #523: Disabled support for environment markers
introduced in v20.5.
v20.6.6
-------
* Issue #503: Restore support for PEP 345 environment
markers by updating to Packaging 16.6.
v20.6.0
-------
* New release process that relies on
`bumpversion <https://github.com/peritus/bumpversion>`_
and Travis CI for continuous deployment.
* Project versioning semantics now follow
`semver <https://semver.org>`_ precisely.
The 'v' prefix on version numbers now also allows
version numbers to be referenced in the changelog,
e.g. https://pythonhosted.org/setuptools/history.html#v20-6-0.
20.5
----
* BB Pull Request #185: Add support for environment markers
in requirements in install_requires, setup_requires,
tests_require as well as adding a test for the existing
extra_requires machinery.
20.4
----
* Issue #422: Moved hosting to
`Github <https://github.com/pypa/setuptools>`_
from `Bitbucket <https://bitbucket.org/pypa/setuptools>`_.
Issues have been migrated, though all issues and comments
are attributed to bb-migration. So if you have a particular
issue or issues to which you've been subscribed, you will
want to "watch" the equivalent issue in Github.
The Bitbucket project will be retained for the indefinite
future, but Github now hosts the canonical project repository.
20.3.1
------
* Issue #519: Remove import hook when reloading the
``pkg_resources`` module.
* BB Pull Request #184: Update documentation in ``pkg_resources``
around new ``Requirement`` implementation.
20.3
----
* BB Pull Request #179: ``pkg_resources.Requirement`` objects are
now a subclass of ``packaging.requirements.Requirement``,
allowing any environment markers and url (if any) to be
affiliated with the requirement
* BB Pull Request #179: Restore use of RequirementParseError
exception unintentionally dropped in 20.2.
20.2.2
------
* Issue #502: Correct regression in parsing of multiple
version specifiers separated by commas and spaces.
20.2.1
------
* Issue #499: Restore compatiblity for legacy versions
by bumping to packaging 16.4.
20.2
----
* Changelog now includes release dates and links to PEPs.
* Pull Request #173: Replace dual PEP 345 _markerlib implementation
and PEP 426 implementation of environment marker support from
packaging 16.1 and PEP 508. Fixes Issue #122.
See also Pull Request #175, Pull Request #168, and
Pull Request #164. Additionally:
- ``Requirement.parse`` no longer retains the order of extras.
- ``parse_requirements`` now requires that all versions be
PEP-440 compliant, as revealed in #499. Packages released
with invalid local versions should be re-released using
the proper local version syntax, e.g. ``mypkg-1.0+myorg.1``.
20.1.1
------
* Update ``upload_docs`` command to also honor keyring
for password resolution.
20.1
----
* Added support for using passwords from keyring in the upload
command. See `the upload docs
<http://pythonhosted.org/setuptools/setuptools.html#upload-upload-source-and-or-egg-distributions-to-pypi>`_
for details.
20.0
----
* Issue #118: Once again omit the package metadata (egg-info)
from the list of outputs in ``--record``. This version of setuptools
can no longer be used to upgrade pip earlier than 6.0.
19.7
----
* `Off-project PR <https://github.com/jaraco/setuptools/pull/32>`_:
For FreeBSD, also honor root certificates from ca_root_nss.
19.6.2
------
* Issue #491: Correct regression incurred in 19.4 where
a double-namespace package installed using pip would
cause a TypeError.
19.6.1
------
* Restore compatibility for PyPy 3 compatibility lost in
19.4.1 addressing Issue #487.
* ``setuptools.launch`` shim now loads scripts in a new
namespace, avoiding getting relative imports from
the setuptools package on Python 2.
19.6
----
* Added a new entry script ``setuptools.launch``,
implementing the shim found in
``pip.util.setuptools_build``. Use this command to launch
distutils-only packages under setuptools in the same way that
pip does, causing the setuptools monkeypatching of distutils
to be invoked prior to invoking a script. Useful for debugging
or otherwise installing a distutils-only package under
setuptools when pip isn't available or otherwise does not
expose the desired functionality. For example::
$ python -m setuptools.launch setup.py develop
* Issue #488: Fix dual manifestation of Extension class in
extension packages installed as dependencies when Cython
is present.
19.5
----
* Issue #486: Correct TypeError when getfilesystemencoding
returns None.
* Issue #139: Clarified the license as MIT.
* Pull Request #169: Removed special handling of command
spec in scripts for Jython.
19.4.1
------
* Issue #487: Use direct invocation of ``importlib.machinery``
in ``pkg_resources`` to avoid missing detection on relevant
platforms.
19.4
----
* Issue #341: Correct error in path handling of package data
files in ``build_py`` command when package is empty.
* Distribute #323, Issue #141, Issue #207, and
Pull Request #167: Another implementation of
``pkg_resources.WorkingSet`` and ``pkg_resources.Distribution``
that supports replacing an extant package with a new one,
allowing for setup_requires dependencies to supersede installed
packages for the session.
----
19.3
----
* Issue #229: Implement new technique for readily incorporating
dependencies conditionally from vendored copies or primary
locations. Adds a new dependency on six.
----
19.2
----
* Pull Request #163: Add get_command_list method to Distribution.
* Pull Request #162: Add missing whitespace to multiline string
literals.
------
19.1.1
------
* Issue #476: Cast version to string (using default encoding)
to avoid creating Unicode types on Python 2 clients.
* Issue #477: In Powershell downloader, use explicit rendering
of strings, rather than rely on ``repr``, which can be
incorrect (especially on Python 2).
----
19.1
----
* Issue #215: The bootstrap script ``ez_setup.py`` now
automatically detects
the latest version of setuptools (using PyPI JSON API) rather
than hard-coding a particular value.
* Issue #475: Fix incorrect usage in _translate_metadata2.
----
19.0
----
* Issue #442: Use RawConfigParser for parsing .pypirc file.
Interpolated values are no longer honored in .pypirc files.
------
18.8.1
------
* Issue #440: Prevent infinite recursion when a SandboxViolation
or other UnpickleableException occurs in a sandbox context
with setuptools hidden. Fixes regression introduced in Setuptools
12.0.
----
18.8
----
* Deprecated ``egg_info.get_pkg_info_revision``.
* Issue #471: Don't rely on repr for an HTML attribute value in
package_index.
* Issue #419: Avoid errors in FileMetadata when the metadata directory
is broken.
* Issue #472: Remove deprecated use of 'U' in mode parameter
when opening files.
----
18.7
----
* Update dependency on certify.
* Pull Request #160: Improve detection of gui script in
``easy_install._adjust_header``.
* Made ``test.test_args`` a non-data property; alternate fix
for the issue reported in Pull Request #155.
* Issue #453: In ``ez_setup`` bootstrap module, unload all
``pkg_resources`` modules following download.
* Pull Request #158: Honor `PEP-488
<https://www.python.org/dev/peps/pep-0488/>`_ when excluding
files for namespace packages.
* Issue #419 and Pull Request #144: Add experimental support for
reading the version info from distutils-installed metadata rather
than using the version in the filename.
------
18.6.1
------
* Issue #464: Correct regression in invocation of superclass on old-style
class on Python 2.
----
18.6
----
* Issue #439: When installing entry_point scripts under development,
omit the version number of the package, allowing any version of the
package to be used.
----
18.5
----
* In preparation for dropping support for Python 3.2, a warning is
now logged when pkg_resources is imported on Python 3.2 or earlier
Python 3 versions.
* `Add support for python_platform_implementation environment marker
<https://github.com/jaraco/setuptools/pull/28>`_.
* `Fix dictionary mutation during iteration
<https://github.com/jaraco/setuptools/pull/29>`_.
Issues found with existing distfiles:
distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
distfiles/fortran-utils-1.1.tar.gz
distfiles/ivykis-0.39.tar.gz
distfiles/enum-1.11.tar.gz
distfiles/pvs-3.2-libraries.tgz
distfiles/pvs-3.2-linux.tgz
distfiles/pvs-3.2-solaris.tgz
distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
------
18.3.1
------
* Issue #425: Correct regression in setuptools.findall.
----
18.3
----
* Setuptools now allows disabling of the manipulation of the sys.path
during the processing of the easy-install.pth file. To do so, set
the environment variable ``SETUPTOOLS_SYS_PATH_TECHNIQUE`` to
anything but "rewrite" (consider "raw"). During any install operation
with manipulation disabled, setuptools packages will be appended to
sys.path naturally.
Future versions may change the default behavior to disable
manipulation. If so, the default behavior can be retained by setting
the variable to "rewrite".
* Issue #257: ``easy_install --version`` now shows more detail
about the installation location and Python version.
------
18.0.1
------
* Issue #401: Fix failure in test suite.
----
18.0
----
* Dropped support for builds with Pyrex. Only Cython is supported.
* Issue #288: Detect Cython later in the build process, after
``setup_requires`` dependencies are resolved.
Projects backed by Cython can now be readily built
with a ``setup_requires`` dependency. For example::
ext = setuptools.Extension('mylib', ['src/CythonStuff.pyx', 'src/CStuff.c'])
setuptools.setup(
...
ext_modules=[ext],
setup_requires=['cython'],
)
For compatibility with older versions of setuptools, packagers should
still include ``src/CythonMod.c`` in the source distributions or
require that Cython be present before building source distributions.
However, for systems with this build of setuptools, Cython will be
downloaded on demand.
* Issue #396: Fixed test failure on OS X.
* Pull Request #136: Remove excessive quoting from shebang headers
for Jython.
------
17.1.1
------
* Backed out unintended changes to pkg_resources, restoring removal of
deprecated imp module (`ref
<f572ec9563 (comment-1881283)>`_).
----
17.1
----
* Issue #380: Add support for range operators on environment
marker evaluation.
17.0
----
* Issue #378: Do not use internal importlib._bootstrap module.
* Issue #390: Disallow console scripts with path separators in
the name. Removes unintended functionality and brings behavior
into parity with pip.
15.2
----
* Issue #373: Provisionally expose
``pkg_resources._initialize_master_working_set``, allowing for
imperative re-initialization of the master working set.
----
15.0
----
* Pull Request #126: DistributionNotFound message now lists the package or
packages that required it. E.g.::
pkg_resources.DistributionNotFound: The 'colorama>=0.3.1' distribution was not found and is required by smlib.log.
Note that zc.buildout once dependended on the string rendering of this
message to determine the package that was not found. This expectation
has since been changed, but older versions of buildout may experience
problems. See Buildout #242 for details.
------
14.3.1
------
* Issue #307: Removed PEP-440 warning during parsing of versions
in ``pkg_resources.Distribution``.
* Issue #364: Replace deprecated usage with recommended usage of
``EntryPoint.load``.
----
14.3
----
* Issue #254: When creating temporary egg cache on Unix, use mode 755
for creating the directory to avoid the subsequent warning if
the directory is group writable.
14.2
----
* Issue #137: Update ``Distribution.hashcmp`` so that Distributions with
None for pyversion or platform can be compared against Distributions
defining those attributes.
------
14.1.1
------
* Issue #360: Removed undesirable behavior from test runs, preventing
write tests and installation to system site packages.
----
14.1
----
* Pull Request #125: Add ``__ne__`` to Requirement class.
* Various refactoring of easy_install.
----
14.0
----
* Bootstrap script now accepts ``--to-dir`` to customize save directory or
allow for re-use of existing repository of setuptools versions. See
Pull Request #112 for background.
* Issue #285: ``easy_install`` no longer will default to installing
packages to the "user site packages" directory if it is itself installed
there. Instead, the user must pass ``--user`` in all cases to install
packages to the user site packages.
This behavior now matches that of "pip install". To configure
an environment to always install to the user site packages, consider
using the "install-dir" and "scripts-dir" parameters to easy_install
through an appropriate distutils config file.
------
13.0.2
------
* Issue #359: Include pytest.ini in the sdist so invocation of py.test on the
sdist honors the pytest configuration.
------
13.0.1
------
Re-release of 13.0. Intermittent connectivity issues caused the release
process to fail and PyPI uploads no longer accept files for 13.0.
----
13.0
----
* Issue #356: Back out Pull Request #119 as it requires Setuptools 10 or later
as the source during an upgrade.
* Removed build_py class from setup.py. According to 892f439d216e, this
functionality was added to support upgrades from old Distribute versions,
0.6.5 and 0.6.6.
----
12.4
----
* Pull Request #119: Restore writing of ``setup_requires`` to metadata
(previously added in 8.4 and removed in 9.0).
12.3
----
* Documentation is now linked using the rst.linker package.
* Fix ``setuptools.command.easy_install.extract_wininst_cfg()``
with Python 2.6 and 2.7.
* Issue #354. Added documentation on building setuptools
documentation.
----
12.2
----
* Issue #345: Unload all modules under pkg_resources during
``ez_setup.use_setuptools()``.
* Issue #336: Removed deprecation from ``ez_setup.use_setuptools``,
as it is clearly still used by buildout's bootstrap. ``ez_setup``
remains deprecated for use by individual packages.
* Simplified implementation of ``ez_setup.use_setuptools``.
------
12.0.4
------
* Issue #335: Fix script header generation on Windows.
------
12.0.3
------
* Fixed incorrect class attribute in ``install_scripts``. Tests would be nice.
------
12.0.2
------
* Issue #331: Fixed ``install_scripts`` command on Windows systems corrupting
the header.
------
12.0.1
------
* Restore ``setuptools.command.easy_install.sys_executable`` for pbr
compatibility. For the future, tools should construct a CommandSpec
explicitly.
----
12.0
----
* Issue #188: Setuptools now support multiple entities in the value for
``build.executable``, such that an executable of "/usr/bin/env my-python" may
be specified. This means that systems with a specified executable whose name
has spaces in the path must be updated to escape or quote that value.
* Deprecated ``easy_install.ScriptWriter.get_writer``, replaced by ``.best()``
with slightly different semantics (no force_windows flag).
------
11.3.1
------
* Issue #327: Formalize and restore support for any printable character in an
entry point name.
----
11.3
----
* Expose ``EntryPoint.resolve`` in place of EntryPoint._load, implementing the
simple, non-requiring load. Deprecated all uses of ``EntryPoint._load``
except for calling with no parameters, which is just a shortcut for
``ep.require(); ep.resolve();``.
Apps currently invoking ``ep.load(require=False)`` should instead do the
following if wanting to avoid the deprecating warning::
getattr(ep, "resolve", lambda: ep.load(require=False))()
----
11.2
----
* Pip #2326: Report deprecation warning at stacklevel 2 for easier diagnosis.
----
11.1
----
* Issue #281: Since Setuptools 6.1 (Issue #268), a ValueError would be raised
in certain cases where VersionConflict was raised with two arguments, which
occurred in ``pkg_resources.WorkingSet.find``. This release adds support
for indicating the dependent packages while maintaining support for
a VersionConflict when no dependent package context is known. New unit tests
now capture the expected interface.
----
11.0
----
* Interop #3: Upgrade to Packaging 15.0; updates to PEP 440 so that >1.7 does
not exclude 1.7.1 but does exclude 1.7.0 and 1.7.0.post1.
------
10.2.1
------
* Issue #323: Fix regression in entry point name parsing.
----
10.2
----
* Deprecated use of EntryPoint.load(require=False).
* Substantial refactoring of all unit tests. Tests are now much leaner and
re-use a lot of fixtures and contexts for better clarity of purpose.
----
10.1
----
* Issue #320: Added a compatibility implementation of
``sdist._default_revctrl``
so that systems relying on that interface do not fail (namely, Ubuntu 12.04
and similar Debian releases).
------
10.0.1
------
* Issue #319: Fixed issue installing pure distutils packages.
----
10.0
----
* Issue #313: Removed built-in support for subversion. Projects wishing to
retain support for subversion will need to use a third party library. The
extant implementation is being ported to `setuptools_svn
<https://pypi.python.org/pypi/setuptools_svn>`_.
* Issue #315: Updated setuptools to hide its own loaded modules during
installation of another package. This change will enable setuptools to
upgrade (or downgrade) itself even when its own metadata and implementation
change.
---
9.1
---
* Prefer vendored packaging library `as recommended
<170657b68f (commitcomment-9109448)>`_.
-----
9.0.1
-----
* Issue #312: Restored presence of pkg_resources API tests (doctest) to sdist.
---
9.0
---
* Issue #314: Disabled support for ``setup_requires`` metadata to avoid issue
where Setuptools was unable to upgrade over earlier versions.
---
8.4
---
* Pull Request #106: Now write ``setup_requires`` metadata.
---
8.3
---
* Issue #311: Decoupled pkg_resources from setuptools once again.
``pkg_resources`` is now a package instead of a module.
-----
8.2.1
-----
* Issue #306: Suppress warnings about Version format except in select scenarios
(such as installation).
---
8.2
---
* Pull Request #85: Search egg-base when adding egg-info to manifest.
---
8.1
---
* Upgrade ``packaging`` to 14.5, giving preference to "rc" as designator for
release candidates over "c".
* PEP-440 warnings are now raised as their own class,
``pkg_resources.PEP440Warning``, instead of RuntimeWarning.
* Disabled warnings on empty versions.
-----
8.0.4
-----
* Upgrade ``packaging`` to 14.4, fixing an error where there is a
different result for if 2.0.5 is contained within >2.0dev and >2.0.dev even
though normalization rules should have made them equal.
* Issue #296: Add warning when a version is parsed as legacy. This warning will
make it easier for developers to recognize deprecated version numbers.
-----
8.0.3
-----
* Issue #296: Restored support for ``__hash__`` on parse_version results.
-----
8.0.2
-----
* Issue #296: Restored support for ``__getitem__`` and sort operations on
parse_version result.
-----
8.0.1
-----
* Issue #296: Restore support for iteration over parse_version result, but
deprecated that usage with a warning. Fixes failure with buildout.
---
8.0
---
* Implement `PEP 440 <http://legacy.python.org/dev/peps/pep-0440/>`_ within
pkg_resources and setuptools. This change
deprecates some version numbers such that they will no longer be installable
without using the ``===`` escape hatch. See `the changes to test_resources
<dcd552da64 (chg-setuptools)/tests/test_resources.py>`_
for specific examples of version numbers and specifiers that are no longer
supported. Setuptools now "vendors" the `packaging
<https://github.com/pypa/packaging>`_ library.
7.0
---
* Issue #80, Issue #209: Eggs that are downloaded for ``setup_requires``,
``test_requires``, etc. are now placed in a ``./.eggs`` directory instead of
directly in the current directory. This choice of location means the files
can be readily managed (removed, ignored). Additionally,
later phases or invocations of setuptools will not detect the package as
already installed and ignore it for permanent install (See #209).
This change is indicated as backward-incompatible as installations that
depend on the installation in the current directory will need to account for
the new location. Systems that ignore ``*.egg`` will probably need to be
adapted to ignore ``.eggs``. The files will need to be manually moved or
will be retrieved again. Most use cases will require no attention.
-----
6.0.2
-----
* Issue #262: Fixed regression in pip install due to egg-info directories
being omitted. Re-opens Issue #118.
-----
6.0.1
-----
* Issue #259: Fixed regression with namespace package handling on ``single
version, externally managed`` installs.
---
6.0
---
* Issue #100: When building a distribution, Setuptools will no longer match
default files using platform-dependent case sensitivity, but rather will
only match the files if their case matches exactly. As a result, on Windows
and other case-insensitive file systems, files with names such as
'readme.txt' or 'README.TXT' will be omitted from the distribution and a
warning will be issued indicating that 'README.txt' was not found. Other
filenames affected are:
- README.rst
- README
- setup.cfg
- setup.py (or the script name)
- test/test*.py
Any users producing distributions with filenames that match those above
case-insensitively, but not case-sensitively, should rename those files in
their repository for better portability.
* Pull Request #72: When using ``single_version_externally_managed``, the
exclusion list now includes Python 3.2 ``__pycache__`` entries.
* Pull Request #76 and Pull Request #78: lines in top_level.txt are now
ordered deterministically.
* Issue #118: The egg-info directory is now no longer included in the list
of outputs.
* Issue #258: Setuptools now patches distutils msvc9compiler to
recognize the specially-packaged compiler package for easy extension module
support on Python 2.6, 2.7, and 3.2.
---
5.8
---
* Issue #237: ``pkg_resources`` now uses explicit detection of Python 2 vs.
Python 3, supporting environments where builtins have been patched to make
Python 3 look more like Python 2.
---
5.7
---
* Issue #240: Based on real-world performance measures against 5.4, zip
manifests are now cached in all circumstances. The
``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` environment variable is no longer
relevant. The observed "memory increase" referenced in the 5.4 release
notes and detailed in Issue #154 was likely not an increase over the status
quo, but rather only an increase over not storing the zip info at all.
---
5.6
---
* Issue #242: Use absolute imports in svn_utils to avoid issues if the
installing package adds an xml module to the path.
-----
5.5.1
-----
* Issue #239: Fix typo in 5.5 such that fix did not take.
---
5.5
---
* Issue #239: Setuptools now includes the setup_requires directive on
Distribution objects and validates the syntax just like install_requires
and tests_require directives.
-----
5.4.1
-----
* Python #7776: (ssl_support) Correct usage of host for validation when
tunneling for HTTPS.
---
5.4
---
* Issue #154: ``pkg_resources`` will now cache the zip manifests rather than
re-processing the same file from disk multiple times, but only if the
environment variable ``PKG_RESOURCES_CACHE_ZIP_MANIFESTS`` is set. Clients
that package many modules in the same zip file will see some improvement
in startup time by enabling this feature. This feature is not enabled by
default because it causes a substantial increase in memory usage.
---
5.3
---
* Issue #185: Make svn tagging work on the new style SVN metadata.
Thanks cazabon!
* Prune revision control directories (e.g .svn) from base path
as well as sub-directories.
---
5.2
---
* Added a `Developer Guide
<https://pythonhosted.org/setuptools/developer-guide.html>`_ to the official
documentation.
* Some code refactoring and cleanup was done with no intended behavioral
changes.
* During install_egg_info, the generated lines for namespace package .pth
files are now processed even during a dry run.
---
5.1
---
* Issue #202: Implemented more robust cache invalidation for the ZipImporter,
building on the work in Issue #168. Special thanks to Jurko Gospodnetic and
PJE.
-----
5.0.2
-----
* Issue #220: Restored script templates.
-----
5.0.1
-----
* Renamed script templates to end with .tmpl now that they no longer need
to be processed by 2to3. Fixes spurious syntax errors during build/install.
---
5.0
---
* Issue #218: Re-release of 3.8.1 to signal that it supersedes 4.x.
---------------
3.7.1 and 4.0.1
---------------
* Issue #213: Use legacy StringIO behavior for compatibility under pbr.
---
4.0
---
* Issue #210: ``setup.py develop`` now copies scripts in binary mode rather
than text mode, matching the behavior of the ``install`` command.
---
3.8
---
* Extend Issue #197 workaround to include all Python 3 versions prior to
3.2.2.
---
3.7
---
* Issue #193: Improved handling of Unicode filenames when building manifests.