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.
-----
0.7.7
-----
* Distribute #375: Repair AttributeError created in last release (redo).
* Issue #30: Added test for get_cache_path.
-----
0.7.6
-----
* Distribute #375: Repair AttributeError created in last release.
-----
0.7.5
-----
* Issue #21: Restore Python 2.4 compatibility in ``test_easy_install``.
* Distribute #375: Merged additional warning from Distribute 0.6.46.
* Now honor the environment variable
``SETUPTOOLS_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT`` in addition to the now
deprecated ``DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT``.
-----
0.7.4
-----
* Issue #20: Fix comparison of parsed SVN version on Python 3.
-----
0.7.3
-----
* Issue #1: Disable installation of Windows-specific files on non-Windows systems.
* Use new sysconfig module with Python 2.7 or >=3.2.
-----
0.7.2
-----
* Issue #14: Use markerlib when the `parser` module is not available.
* Issue #10: ``ez_setup.py`` now uses HTTPS to download setuptools from PyPI.
-----
0.7.1
-----
* Fix NameError (Issue #3) again - broken in bad merge.
---
0.7
---
* Merged Setuptools and Distribute. See docs/merge.txt for details.
Added several features that were slated for setuptools 0.6c12:
* Index URL now defaults to HTTPS.
* Added experimental environment marker support. Now clients may designate a
PEP-426 environment marker for "extra" dependencies. Setuptools uses this
feature in ``setup.py`` for optional SSL and certificate validation support
on older platforms. Based on Distutils-SIG discussions, the syntax is
somewhat tentative. There should probably be a PEP with a firmer spec before
the feature should be considered suitable for use.
* Added support for SSL certificate validation when installing packages from
an HTTPS service.
-----
0.7b4
-----
* Issue #3: Fixed NameError in SSL support.
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
0.6c11
* Fix "bdist_wininst upload" trying to upload same file twice
0.6c10
* Fix for the Python 2.6.3 build_ext API change
* Ensure C libraries (as opposed to extensions) are also built when doing bdist_egg
* Support for SVN 1.6
for a zip header anywhere but byte offset 0 makes normal unzip
report an error after extraction, so add a '|| true' workaround to
the workaround... and a comment as to what is going on so the next
person poking here doesn't have quite such a wtf moment...
Fixes build on at least NetBSD 5.0
patches to add it). Drop pax from the default USE_TOOLS list.
Make bsdtar the default for those places that wanted gtar to extract
long links etc, as bsdtar can be built of the tree.