v32.1.0
-------
* #891: In 'test' command on test failure, raise DistutilsError,
suppression invocation of subsequent commands.
v32.0.0
-------
* #890: Revert #849. ``global-exclude .foo`` will not match all
``*.foo`` files any more. Package authors must add an explicit
wildcard, such as ``global-exclude *.foo``, to match all
``.foo`` files. See #886, #849.
v31.0.1
-------
* #885: Fix regression where 'pkg_resources._rebuild_mod_path'
would fail when a namespace package's '__path__' was not
a list with a sort attribute.
v31.0.0
-------
* #250: Install '-nspkg.pth' files for packages installed
with 'setup.py develop'. These .pth files allow
namespace packages installed by pip or develop to
co-mingle. This change required the removal of the
change for #805 and pip #1924, introduced in 28.3.0 and implicated
in #870, but means that namespace packages not in a
site packages directory will no longer work on Python
earlier than 3.5, whereas before they would work on
Python not earlier than 3.3.
v30.4.0
-------
* #879: For declarative config:
- read_configuration() now accepts ignore_option_errors argument. This allows scraping tools to read metadata without a need to download entire packages. E.g. we can gather some stats right from GitHub repos just by downloading setup.cfg.
- packages find: directive now supports fine tuning from a subsection. The same arguments as for find() are accepted.
v30.3.0
-------
* #394 via #862: Added support for `declarative package
config in a setup.cfg file
<http://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files>`_.
v30.2.1
-------
* #850: In test command, invoke unittest.main with
indication not to exit the process.
v30.2.0
-------
* #854: Bump to vendored Packaging 16.8.
v30.1.0
-------
* #846: Also trap 'socket.error' when opening URLs in
package_index.
* #849: Manifest processing now matches the filename
pattern anywhere in the filename and not just at the
start. Restores behavior found prior to 28.5.0.
v30.0.0
-------
* #864: Drop support for Python 3.2. Systems requiring
Python 3.2 support must use 'setuptools < 30'.
* #825: Suppress warnings for single files.
* #830 via #843: Once again restored inclusion of data
files to sdists, but now trap TypeError caused by
techniques employed rjsmin and similar.
v29.0.1
-------
* #861: Re-release of v29.0.1 with the executable script
launchers bundled. Now, launchers are included by default
and users that want to disable this behavior must set the
environment variable
'SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES' to
a false value like "false" or "0".
v29.0.0
-------
* #841: Drop special exception for packages invoking
win32com during the build/install process. See
Distribute #118 for history.
v28.8.0
-------
* #629: Per the discussion, refine the sorting to use version
value order for more accurate detection of the latest
available version when scanning for packages. See also
#829.
* #837: Rely on the config var "SO" for Python 3.3.0 only
when determining the ext filename.
v28.7.1
-------
* #827: Update PyPI root for dependency links.
* #833: Backed out changes from #830 as the implementation
seems to have problems in some cases.
v28.7.0
-------
* #832: Moved much of the namespace package handling
functionality into a separate module for re-use in something
like #789.
* #830: ``sdist`` command no longer suppresses the inclusion
of data files, re-aligning with the expectation of distutils
and addressing #274 and #521.
v28.6.1
-------
* #816: Fix manifest file list order in tests.
v28.6.0
-------
* #629: When scanning for packages, ``pkg_resources`` now
ignores empty egg-info directories and gives precedence to
packages whose versions are lexicographically greatest,
a rough approximation for preferring the latest available
version.
v28.5.0
-------
* #810: Tests are now invoked with tox and not setup.py test.
* #249 and #450 via #764: Avoid scanning the whole tree
when building the manifest.
v28.4.0
-------
* #732: Now extras with a hyphen are honored per PEP 426.
* #811: Update to pyparsing 2.1.10.
* Updated ``setuptools.command.sdist`` to re-use most of
the functionality directly from ``distutils.command.sdist``
for the ``add_defaults`` method with strategic overrides.
See #750 for rationale.
* #760 via #762: Look for certificate bundle where SUSE
Linux typically presents it. Use ``certifi.where()`` to locate
the bundle.
v28.3.0
#809: In find_packages(), restore support for excluding a parent
package without excluding a child package.
#805: Disable -nspkg.pth behavior on Python 3.3+ where PEP-420
functionality is adequate. Fixes pip #1924.
v28.1.0
-------
* #803: Bump certifi to 2016.9.26.
v28.0.0
-------
* #733: Do not search excluded directories for packages.
This introduced a backwards incompatible change in ``find_packages()``
so that ``find_packages(exclude=['foo']) == []``, excluding subpackages of ``foo``.
Previously, ``find_packages(exclude=['foo']) == ['foo.bar']``,
even though the parent ``foo`` package was excluded.
* #795: Bump certifi.
* #719: Suppress decoding errors and instead log a warning
when metadata cannot be decoded.
v27.3.1
-------
* #790: In MSVC monkeypatching, explicitly patch each
function by name in the target module instead of inferring
the module from the function's ``__module__``. Improves
compatibility with other packages that might have previously
patched distutils functions (i.e. NumPy).
v27.3.0
-------
* #794: In test command, add installed eggs to PYTHONPATH
when invoking tests so that subprocesses will also have the
dependencies available. Fixes `tox 330
<https://github.com/tox-dev/tox/issues/330>`_.
* #795: Update vendored pyparsing 2.1.9.
v27.2.0
-------
* #520 and #513: Suppress ValueErrors in fixup_namespace_packages
when lookup fails.
* Nicer, more consistent interfaces for msvc monkeypatching.
v27.1.2
-------
* #779 via #781: Fix circular import.
v27.1.1
-------
* #778: Fix MSVC monkeypatching.
v27.1.0
-------
* Introduce the (private) ``monkey`` module to encapsulate
the distutils monkeypatching behavior.
v27.0.0
-------
* Now use Warehouse by default for
``upload``, patching ``distutils.config.PyPIRCCommand`` to
affect default behavior.
Any config in .pypirc should be updated to replace
https://pypi.python.org/pypi/
with
https://upload.pypi.org/legacy/
Similarly, any passwords stored in the keyring should be
updated to use this new value for "system".
The ``upload_docs`` command will continue to use the python.org
site, but the command is now deprecated. Users are urged to use
Read The Docs instead.
* #776: Use EXT_SUFFIX for py_limited_api renaming.
* #774 and #775: Use LegacyVersion from packaging when
detecting numpy versions.
v26.1.1
-------
* Re-release of 26.1.0 with pytest pinned to allow for automated
deployement and thus proper packaging environment variables,
fixing issues with missing executable launchers.
v26.1.0
-------
* #763: ``pkg_resources.get_default_cache`` now defers to the
`appdirs project <https://pypi.org/project/appdirs>`_ to
resolve the cache directory. Adds a vendored dependency on
appdirs to pkg_resources.
v26.0.0
-------
* #748: By default, sdists are now produced in gzipped tarfile
format by default on all platforms, adding forward compatibility
for the same behavior in Python 3.6 (See Python #27819).
* #459 via #736: On Windows with script launchers,
sys.argv[0] now reflects
the name of the entry point, consistent with the behavior in
distlib and pip wrappers.
* #752 via #753: When indicating ``py_limited_api`` to Extension,
it must be passed as a keyword argument.
v25.4.0
-------
* Add Extension(py_limited_api=True). When set to a truthy value,
that extension gets a filename apropriate for code using Py_LIMITED_API.
When used correctly this allows a single compiled extension to work on
all future versions of CPython 3.
The py_limited_api argument only controls the filename. To be
compatible with multiple versions of Python 3, the C extension
will also need to set -DPy_LIMITED_API=... and be modified to use
only the functions in the limited API.
v25.2.0
-------
* #612 via #730: Add a LICENSE file which needs to be provided by the terms of
the MIT license.
v25.1.6
-------
* #725
v25.1.5
-------
* #720
* #723
v25.1.4
-------
* #717
* #713
* #707 via #715
v25.1.3
-------
* #714 and #704: Revert fix as it breaks other components
downstream that can't handle unicode. See #709, #710,
and #712.
v25.1.2
-------
* #704: Fix errors when installing a zip sdist that contained
files named with non-ascii characters on Windows would
crash the install when it attempted to clean up the build.
* #646: MSVC compatibility - catch errors properly in
RegistryInfo.lookup.
* #702: Prevent UnboundLocalError when initial working_set
is empty.
v25.1.1
-------
* #686: Fix issue in sys.path ordering by pkg_resources when
rewrite technique is "raw".
* #699: Fix typo in msvc support.
v25.1.0
-------
* #609: Setuptools will now try to download a distribution from
the next possible download location if the first download fails.
This means you can now specify multiple links as ``dependency_links``
and all links will be tried until a working download link is encountered.
v25.0.2
-------
* #688: Fix AttributeError in setup.py when invoked not from
the current directory.
v25.0.1
-------
* Cleanup of setup.py script.
* Fixed documentation builders by allowing setup.py
to be imported without having bootstrapped the
metadata.
* More style cleanup. See #677, #678, #679, #681, #685.
v25.0.0
-------
* #674: Default ``sys.path`` manipulation by easy-install.pth
is now "raw", meaning that when writing easy-install.pth
during any install operation, the ``sys.path`` will not be
rewritten, giving preference to easy_installed packages.
To retain the old behavior when using any easy_install
operation (including ``setup.py install`` when setuptools is
present), set the environment variable:
SETUPTOOLS_SYS_PATH_TECHNIQUE=rewrite
This project hopes that that few if any environments find it
necessary to retain the old behavior, and intends to drop
support for it altogether in a future release. Please report
any relevant concerns in the ticket for this change.
v24.3.1
-------
* #398: Fix shebang handling on Windows in script
headers where spaces in ``sys.executable`` would
produce an improperly-formatted shebang header,
introduced in 12.0 with the fix for #188.
* #663, #670: More style updates.
v24.3.0
-------
* #516: Disable ``os.link`` to avoid hard linking
in ``sdist.make_distribution``, avoiding errors on
systems that support hard links but not on the
file system in which the build is occurring.
v24.2.1
-------
* #667: Update Metadata-Version to 1.2 when
``python_requires`` is supplied.
v24.2.0
-------
* #631: Add support for ``python_requires`` keyword.
v24.1.1
-------
* More style updates. See #660, #661, #641.
v24.1.0
-------
* #659: ``setup.py`` now will fail fast and with a helpful
error message when the necessary metadata is missing.
* More style updates. See #656, #635, #640,
#644, #650, #652, and #655.
v24.0.3
-------
* Updated style in much of the codebase to match
community expectations. See #632, #633, #634,
#637, #639, #638, #642, #648.
v24.0.2
-------
* If MSVC++14 is needed ``setuptools.msvc`` now redirect
user to Visual C++ Build Tools web page.
v24.0.1
-------
* #625 and #626: Fixes on ``setuptools.msvc`` mainly
for Python 2 and Linux.
v24.0.0
-------
* Pull Request #174: Add more aggressive support for
Windows SDK in msvc9compiler patch.
* Renamed ``setuptools.msvc9_support`` to
``setuptools.msvc``.
v23.2.1
-------
Re-release of v23.2.0, which was missing the intended
commits.
* #623: Remove used of deprecated 'U' flag when reading
manifests.
v23.0.0
-------
* #611: Removed ARM executables for CLI and GUI script
launchers on Windows. If this was a feature you cared
about, please comment in the ticket.
* #604: Removed docs building support. The project
now relies on documentation hosted at
https://setuptools.readthedocs.io/.
v22.0.5
-------
* #604: Restore repository for upload_docs command
to restore publishing of docs during release.
v22.0.4
-------
* #589: Upload releases to pypi.io using the upload
hostname and legacy path.
v22.0.3
-------
* #589: Releases are now uploaded to pypi.io (Warehouse)
even when releases are made on Twine via Travis.
v22.0.2
-------
* #589: Releases are now uploaded to pypi.io (Warehouse).
v22.0.1
-------
* #190: On Python 2, if unicode is passed for packages to
``build_py`` command, it will be handled just as with
text on Python 3.
v22.0.0
-------
Intended to be v21.3.0, but jaraco accidentally released as
a major bump.
* #598: Setuptools now lists itself first in the User-Agent
for web requests, better following the guidelines in
`RFC 7231
<https://tools.ietf.org/html/rfc7231#section-5.5.3>`_.
v21.2.2
-------
* Minor fixes to changelog and docs.
v21.2.1
-------
* #261: Exclude directories when resolving globs in
package_data.
v21.2.0
-------
* #539: In the easy_install get_site_dirs, honor all
paths found in ``site.getsitepackages``.
v21.1.0
-------
* #572: In build_ext, now always import ``_CONFIG_VARS``
from ``distutils`` rather than from ``sysconfig``
to allow ``distutils.sysconfig.customize_compiler``
configure the OS X compiler for ``-dynamiclib``.
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.