------
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.
---
3.5
---
* Issue #195: Follow symbolic links in find_packages (restoring behavior
broken in 3.4).
* Issue #197: On Python 3.1, PKG-INFO is now saved in a UTF-8 encoding instead
of ``sys.getpreferredencoding`` to match the behavior on Python 2.6-3.4.
* Issue #192: Preferred bootstrap location is now
https://bootstrap.pypa.io/ez_setup.py (mirrored from former location).
-----
3.4.4
-----
* Issue #184: Correct failure where find_package over-matched packages
when directory traversal isn't short-circuited.
-----
3.4.3
-----
* Issue #183: Really fix test command with Python 3.1.
-----
3.4.2
-----
* Issue #183: Fix additional regression in test command on Python 3.1.
-----
3.4.1
-----
* Issue #180: Fix regression in test command not caught by py.test-run tests.
---
3.4
---
* Issue #176: Add parameter to the test command to support a custom test
runner: --test-runner or -r.
* Issue #177: Now assume most common invocation to install command on
platforms/environments without stack support (issuing a warning). Setuptools
now installs naturally on IronPython. Behavior on CPython should be
unchanged.
---
3.3
---
* Add ``include`` parameter to ``setuptools.find_packages()``.
---
3.2
---
* Pull Request #39: Add support for C++ targets from Cython ``.pyx`` files.
* Issue #162: Update dependency on certifi to 1.0.1.
* Issue #164: Update dependency on wincertstore to 0.2.
---
3.1
---
* Issue #161: Restore Features functionality to allow backward compatibility
(for Features) until the uses of that functionality is sufficiently removed.
-----
3.0.2
-----
* Correct typo in previous bugfix.
-----
3.0.1
-----
* Issue #157: Restore support for Python 2.6 in bootstrap script where
``zipfile.ZipFile`` does not yet have support for context managers.
---
3.0
---
* Issue #125: Prevent Subversion support from creating a ~/.subversion
directory just for checking the presence of a Subversion repository.
* Issue #12: Namespace packages are now imported lazily. That is, the mere
declaration of a namespace package in an egg on ``sys.path`` no longer
causes it to be imported when ``pkg_resources`` is imported. Note that this
change means that all of a namespace package's ``__init__.py`` files must
include a ``declare_namespace()`` call in order to ensure that they will be
handled properly at runtime. In 2.x it was possible to get away without
including the declaration, but only at the cost of forcing namespace
packages to be imported early, which 3.0 no longer does.
* Issue #148: When building (bdist_egg), setuptools no longer adds
``__init__.py`` files to namespace packages. Any packages that rely on this
behavior will need to create ``__init__.py`` files and include the
``declare_namespace()``.
* Issue #7: Setuptools itself is now distributed as a zip archive in addition to
tar archive. ez_setup.py now uses zip archive. This approach avoids the potential
security vulnerabilities presented by use of tar archives in ez_setup.py.
It also leverages the security features added to ZipFile.extract in Python 2.7.4.
* Issue #65: Removed deprecated Features functionality.
* Pull Request #28: Remove backport of ``_bytecode_filenames`` which is
available in Python 2.6 and later, but also has better compatibility with
Python 3 environments.
* Issue #156: Fix spelling of __PYVENV_LAUNCHER__ variable.
---
2.2
---
* Issue #141: Restored fix for allowing setup_requires dependencies to
override installed dependencies during setup.
* Issue #128: Fixed issue where only the first dependency link was honored
in a distribution where multiple dependency links were supplied.
---
2.1
---
* Issue #129: Suppress inspection of '*.whl' files when searching for files
in a zip-imported file.
* Issue #131: Fix RuntimeError when constructing an egg fetcher.
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
-----
2.0.2
-----
* Fix NameError during installation with Python implementations (e.g. Jython)
not containing parser module.
* Fix NameError in ``sdist:re_finder``.
-----
2.0.1
-----
* Issue #124: Fixed error in list detection in upload_docs.
---
2.0
---
* Issue #121: Exempt lib2to3 pickled grammars from DirectorySandbox.
* Issue #41: Dropped support for Python 2.4 and Python 2.5. Clients requiring
setuptools for those versions of Python should use setuptools 1.x.
* Removed ``setuptools.command.easy_install.HAS_USER_SITE``. Clients
expecting this boolean variable should use ``site.ENABLE_USER_SITE``
instead.
* Removed ``pkg_resources.ImpWrapper``. Clients that expected this class
should use ``pkgutil.ImpImporter`` instead.
-----
1.4.2
-----
* Issue #116: Correct TypeError when reading a local package index on Python
3.
-----
1.4.1
-----
* Issue #114: Use ``sys.getfilesystemencoding`` for decoding config in
``bdist_wininst`` distributions.
* Issue #105 and Issue #113: Establish a more robust technique for
determining the terminal encoding::
1. Try ``getpreferredencoding``
2. If that returns US_ASCII or None, try the encoding from
``getdefaultlocale``. If that encoding was a "fallback" because Python
could not figure it out from the environment or OS, encoding remains
unresolved.
3. If the encoding is resolved, then make sure Python actually implements
the encoding.
4. On the event of an error or unknown codec, revert to fallbacks
(UTF-8 on Darwin, ASCII on everything else).
5. On the encoding is 'mac-roman' on Darwin, use UTF-8 as 'mac-roman' was
a bug on older Python releases.
On a side note, it would seem that the encoding only matters for when SVN
does not yet support ``--xml`` and when getting repository and svn version
numbers. The ``--xml`` technique should yield UTF-8 according to some
messages on the SVN mailing lists. So if the version numbers are always
7-bit ASCII clean, it may be best to only support the file parsing methods
for legacy SVN releases and support for SVN without the subprocess command
would simple go away as support for the older SVNs does.
---
1.4
---
* Issue #27: ``easy_install`` will now use credentials from .pypirc if
present for connecting to the package index.
* Pull Request #21: Omit unwanted newlines in ``package_index._encode_auth``
when the username/password pair length indicates wrapping.
-----
1.3.2
-----
* Issue #99: Fix filename encoding issues in SVN support.
-----
1.3.1
-----
* Remove exuberant warning in SVN support when SVN is not used.
---
1.2
---
* Issue #26: Add support for SVN 1.7. Special thanks to Philip Thiem for the
contribution.
* Issue #94: Wheels are now distributed with every release.
* Setuptools "natural" launcher support, introduced in 1.0, is now officially
supported.
-----
1.1.7
-----
* Fixed behavior of NameError handling in 'script template (dev).py' (script
launcher for 'develop' installs).
* ``ez_setup.py`` now ensures partial downloads are cleaned up following
a failed download.
* Distribute #363 and Issue #55: Skip an sdist test that fails on locales
other than UTF-8.
-----
1.1.4
-----
* Issue #77: Fix error in upload command (Python 2.4).
-----
1.1.3
-----
* Fix NameError in previous patch.
-----
1.1.2
-----
* Issue #69: Correct issue where 404 errors are returned for URLs with
fragments in them (such as #egg=).
-----
1.1.1
-----
* Issue #75: Add ``--insecure`` option to ez_setup.py to accommodate
environments where a trusted SSL connection cannot be validated.
* Issue #76: Fix AttributeError in upload command with Python 2.4.
---
1.1
---
* Issue #71 (Distribute Issue #333): EasyInstall now puts less emphasis on the
condition when a host is blocked via ``--allow-hosts``.
* Issue #72: Restored Python 2.4 compatibility in ``ez_setup.py``.
---
1.0
---
* Issue #60: On Windows, Setuptools supports deferring to another launcher,
such as Vinay Sajip's `pylauncher <https://bitbucket.org/pypa/pylauncher>`_
(included with Python 3.3) to launch console and GUI scripts and not install
its own launcher executables. This experimental functionality is currently
only enabled if the ``SETUPTOOLS_LAUNCHER`` environment variable is set to
"natural". In the future, this behavior may become default, but only after
it has matured and seen substantial adoption. The ``SETUPTOOLS_LAUNCHER``
also accepts "executable" to force the default behavior of creating launcher
executables.
* Issue #63: Bootstrap script (ez_setup.py) now prefers Powershell, curl, or
wget for retrieving the Setuptools tarball for improved security of the
install. The script will still fall back to a simple ``urlopen`` on
platforms that do not have these tools.
* Issue #65: Deprecated the ``Features`` functionality.
* Issue #52: In ``VerifyingHTTPSConn``, handle a tunnelled (proxied)
connection.
Backward-Incompatible Changes
=============================
This release includes a couple of backward-incompatible changes, but most if
not all users will find 1.0 a drop-in replacement for 0.9.
* Issue #50: Normalized API of environment marker support. Specifically,
removed line number and filename from SyntaxErrors when returned from
`pkg_resources.invalid_marker`. Any clients depending on the specific
string representation of exceptions returned by that function may need to
be updated to account for this change.
* Issue #50: SyntaxErrors generated by `pkg_resources.invalid_marker` are
normalized for cross-implementation consistency.
* Removed ``--ignore-conflicts-at-my-risk`` and ``--delete-conflicting``
options to easy_install. These options have been deprecated since 0.6a11.
-----
0.9.8
-----
* Issue #53: Fix NameErrors in `_vcs_split_rev_from_url`.
-----
0.9.7
-----
* Issue #49: Correct AttributeError on PyPy where a hashlib.HASH object does
not have a `.name` attribute.
* Issue #34: Documentation now refers to bootstrap script in code repository
referenced by bookmark.
* Add underscore-separated keys to environment markers (markerlib).
-----
0.9.6
-----
* Issue #44: Test failure on Python 2.4 when MD5 hash doesn't have a `.name`
attribute.
-----
0.9.5
-----
* Python #17980: Fix security vulnerability in SSL certificate validation.
-----
0.9.4
-----
* Issue #43: Fix issue (introduced in 0.9.1) with version resolution when
upgrading over other releases of Setuptools.
-----
0.9.3
-----
* Issue #42: Fix new ``AttributeError`` introduced in last fix.
-----
0.9.2
-----
* Issue #42: Fix regression where blank checksums would trigger an
``AttributeError``.
-----
0.9.1
-----
* Distribute #386: Allow other positional and keyword arguments to os.open.
* Corrected dependency on certifi mis-referenced in 0.9.