*#2143:SetuptoolsadoptsdistutilsfromthePython3.9standardlibraryandnolongerdependsondistutilsinthestandardlibrary.Whenimporting``setuptools``or``setuptools.distutils_patch``,Setuptoolswillexposeitsbundledversionasatop-level``distutils``package(andunloadanypreviously-importedtop-leveldistutilspackage),retainingtheexpectationthat``distutils``' objects are actually Setuptools objects.
To avoid getting any legacy behavior from the standard library, projects are advised to always "import setuptools" prior to importing anything from distutils. This behavior happens by default when using ``pip install`` or ``pep517.build``. Workflows that rely on ``setup.py (anything)`` will need to first ensure setuptools is imported. One way to achieve this behavior without modifying code is to invoke Python thus: ``python -c "import setuptools; exec(open('setup.py').read())" (anything)``.
...
...
@@ -185,12 +293,20 @@ v48.0.0
v47.3.2
-------
Misc
^^^^
* #2071: Replaced references to the deprecated imp package with references to importlib
v47.3.1
-------
Misc
^^^^
* #1973: Removed ``pkg_resources.py31compat.makedirs`` in favor of the stdlib. Use ``os.makedirs()`` instead.
* #2198: Restore ``__requires__`` directive in easy-install wrapper scripts.
...
...
@@ -198,22 +314,38 @@ v47.3.1
v47.3.0
-------
Changes
^^^^^^^
* #2197: Console script wrapper for editable installs now has a unified template and honors importlib_metadata if present for faster script execution on older Pythons.
* #2194: Editable-installed entry points now load significantly faster on Python versions 3.8+.
v47.1.1
-------
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* #2156: Update mailing list pointer in developer docs
Incorporate changes from v44.1.1:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* #2158: Avoid loading working set during ``Distribution.finalize_options`` prior to invoking ``_install_setup_requires``, broken since v42.0.0.
...
...
@@ -221,25 +353,44 @@ Incorporate changes from v44.1.1:
v44.1.1
-------
Misc
^^^^
* #2158: Avoid loading working set during ``Distribution.finalize_options`` prior to invoking ``_install_setup_requires``, broken since v42.0.0.
v47.1.0
-------
Changes
^^^^^^^
* #2070: In wheel-to-egg conversion, use simple pkg_resources-style namespace declaration for packages that declare namespace_packages.
v47.0.0
-------
Breaking Changes
^^^^^^^^^^^^^^^^
* #2094: Setuptools now actively crashes under Python 2. Python 3.5 or later is required. Users of Python 2 should use ``setuptools<45``.
Changes
^^^^^^^
* #1700: Document all supported keywords by migrating the ones from distutils.
v46.4.0
-------
Changes
^^^^^^^
* #1753: ``attr:`` now extracts variables through rudimentary examination of the AST,
thereby supporting modules with third-party imports. If examining the AST
fails to find the variable, ``attr:`` falls back to the old behavior of
...
...
@@ -255,7 +406,14 @@ No significant changes.
v46.3.0
-------
Changes
^^^^^^^
* #2089: Package index functionality no longer attempts to remove an md5 fragment from the index URL. This functionality, added for distribute #163 is no longer relevant.
Misc
^^^^
* #2041: Preserve file modes during pkg files copying, but clear read only flag for target afterwards.
* #2105: Filter ``2to3`` deprecation warnings from ``TestDevelop.test_2to3_user_mode``.
...
...
@@ -263,11 +421,21 @@ v46.3.0
v46.2.0
-------
Changes
^^^^^^^
* #2040: Deprecated the ``bdist_wininst`` command. Binary packages should be built as wheels instead.
* #2062: Change 'MacOSX' to 'macOS' in code.
* #2075: Stop recognizing files ending with ``.dist-info`` as distribution metadata.
* #2086: Deprecate 'use_2to3' functionality. Packagers are encouraged to use single-source solutions or build tool chains to manage conversions outside of setuptools.
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* #1698: Added documentation for ``build_meta`` (a bare minimum, not completed).
Misc
^^^^
* #2082: Filter ``lib2to3`` ``PendingDeprecationWarning`` and ``DeprecationWarning`` in tests,
because ``lib2to3`` is `deprecated in Python 3.9 <https://bugs.python.org/issue40360>`_.
...
...
@@ -281,6 +449,10 @@ No significant changes.
v46.1.2
-------
Misc
^^^^
* #1458: Added template for reporting Python 2 incompatibilities.
...
...
@@ -293,12 +465,17 @@ No significant changes.
v46.1.0
-------
Changes
^^^^^^^
* #308: Allow version number normalization to be bypassed by wrapping in a 'setuptools.sic()' call.
* #1424: Prevent keeping files mode for package_data build. It may break a build if user'spackagedatahasreadonlyflag.
*#1921:Fixsupportforeasy_install's ``find-links`` option in ``setup.cfg``.
* #1922: Build dependencies (setup_requires and tests_require) now install transitive dependencies indicated by extras.
...
...
@@ -381,12 +611,20 @@ v42.0.2
v42.0.1
-------
Changes
^^^^^^^
* #1918: Fix regression in handling wheels compatibility tags.
v42.0.0
-------
Breaking Changes
^^^^^^^^^^^^^^^^
* #1830, #1909: Mark the easy_install script and setuptools command as deprecated, and use `pip <https://pip.pypa.io/en/stable/>`_ when available to fetch/build wheels for missing ``setup_requires``/``tests_require`` requirements, with the following differences in behavior:
* support for ``python_requires``
* better support for wheels (proper handling of priority with respect to PEP 425 tags)
...
...
@@ -395,6 +633,9 @@ v42.0.0
* no support for the ``allow_hosts`` easy_install option (``index_url``/``find_links`` are still honored)
* pip environment variables are honored (and take precedence over easy_install options)
* #1898: Removed the "upload" and "register" commands in favor of `twine <https://pypi.org/p/twine>`_.
Changes
^^^^^^^
* #1767: Add support for the ``license_files`` option in ``setup.cfg`` to automatically
include multiple license files in a source distribution.
* #1829: Update handling of wheels compatibility tags:
...
...
@@ -407,46 +648,82 @@ v42.0.0
v41.6.0
-------
Changes
^^^^^^^
* #479: Replace usage of deprecated ``imp`` module with local re-implementation in ``setuptools._imp``.
v41.5.1
-------
Changes
^^^^^^^
* #1891: Fix code for detecting Visual Studio'sversiononWindowsunderPython2.
* #1705: Removed some placeholder documentation sections referring to deprecated features.
v40.8.0
-------
Changes
^^^^^^^
* #1652: Added the ``build_meta:__legacy__`` backend, a "compatibility mode" PEP 517 backend that can be used as the default when ``build-backend`` is left unspecified in ``pyproject.toml``.
* #1635: Resource paths are passed to ``pkg_resources.resource_string`` and similar no longer accept paths that traverse parents, that begin with a leading ``/``. Violations of this expectation raise DeprecationWarnings and will become errors. Additionally, any paths that are absolute on Windows are strictly disallowed and will raise ValueErrors.
* #1536: ``setuptools`` will now automatically include licenses if ``setup.cfg`` contains a ``license_file`` attribute, unless this file is manually excluded inside ``MANIFEST.in``.
...
...
@@ -499,25 +802,44 @@ v40.8.0
v40.7.3
-------
Changes
^^^^^^^
* #1670: In package_index, revert to using a copy of splituser from Python 3.8. Attempts to use ``urllib.parse.urlparse`` led to problems as reported in #1663 and #1668. This change serves as an alternative to #1499 and fixes #1668.
v40.7.2
-------
Changes
^^^^^^^
* #1666: Restore port in URL handling in package_index.
v40.7.1
-------
Changes
^^^^^^^
* #1660: On Python 2, when reading config files, downcast options from text to bytes to satisfy distutils expectations.
v40.7.0
-------
Breaking Changes
^^^^^^^^^^^^^^^^
* #1551: File inputs for the ``license`` field in ``setup.cfg`` files now explicitly raise an error.
Changes
^^^^^^^
* #1180: Add support for non-ASCII in setup.cfg (#1062). Add support for native strings on some parameters (#1136).
* #1499: ``setuptools.package_index`` no longer relies on the deprecated ``urllib.parse.splituser`` per Python #27485.
* #1544: Added tests for PackageIndex.download (for git URLs).
...
...
@@ -527,30 +849,51 @@ v40.7.0
v40.6.3
-------
Changes
^^^^^^^
* #1594: PEP 517 backend no longer declares setuptools as a dependency as it can be assumed.
v40.6.2
-------
Changes
^^^^^^^
* #1592: Fix invalid dependency on external six module (instead of vendored version).
v40.6.1
-------
Changes
^^^^^^^
* #1590: Fixed regression where packages without ``author`` or ``author_email`` fields generated malformed package metadata.
v40.6.0
-------
Deprecations
^^^^^^^^^^^^
* #1541: Officially deprecated the ``requires`` parameter in ``setup()``.
Changes
^^^^^^^
* #1519: In ``pkg_resources.normalize_path``, additional path normalization is now performed to ensure path values to a directory is always the same, preventing false positives when checking scripts have a consistent prefix to set up on Windows.
* #1545: Changed the warning class of all deprecation warnings; deprecation warning classes are no longer derived from ``DeprecationWarning`` and are thus visible by default.
* #1554: ``build_meta.build_sdist`` now includes ``setup.py`` in source distributions by default.
* #1576: Started monkey-patching ``get_metadata_version`` and ``read_pkg_file`` onto ``distutils.DistributionMetadata`` to retain the correct version on the ``PKG-INFO`` file in the (deprecated) ``upload`` command.
* #1533: Restricted the ``recursive-include setuptools/_vendor`` to contain only .py and .txt files.
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* #1395: Changed Pyrex references to Cython in the documentation.
* #1456: Documented that the ``rpmbuild`` packages is required for the ``bdist_rpm`` command.
* #1537: Documented how to use ``setup.cfg`` for ``src/ layouts``
...
...
@@ -559,69 +902,115 @@ v40.6.0
* #1553: Updated installation instructions to point to ``pip install`` instead of ``ez_setup.py``.
* #1560: Updated ``setuptools`` distribution documentation to remove some outdated information.
* #1564: Documented ``setup.cfg`` minimum version for version and project_urls.
Misc
^^^^
* #1533: Restricted the ``recursive-include setuptools/_vendor`` to contain only .py and .txt files.
* #1572: Added the ``concurrent.futures`` backport ``futures`` to the Python 2.7 test suite requirements.
v40.5.0
-------
Changes
^^^^^^^
* #1335: In ``pkg_resources.normalize_path``, fix issue on Cygwin when cwd contains symlinks.
* #1502: Deprecated support for downloads from Subversion in package_index/easy_install.
* #1517: Dropped use of six.u in favor of ``u""`` literals.
* #1520: Added support for ``data_files`` in ``setup.cfg``.
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* #1525: Fixed rendering of the deprecation warning in easy_install doc.
v40.4.3
-------
Changes
^^^^^^^
* #1480: Bump vendored pyparsing in pkg_resources to 2.2.1.
v40.4.2
-------
Misc
^^^^
* #1497: Updated gitignore in repo.
v40.4.1
-------
Changes
^^^^^^^
* #1480: Bump vendored pyparsing to 2.2.1.
v40.4.0
-------
Changes
^^^^^^^
* #1481: Join the sdist ``--dist-dir`` and the ``build_meta`` sdist directory argument to point to the same target (meaning the build frontend no longer needs to clean manually the dist dir to avoid multiple sdist presence, and setuptools no longer needs to handle conflicts between the two).
v40.3.0
-------
Changes
^^^^^^^
* #1402: Fixed a bug with namespace packages under Python 3.6 when one package in
current directory hides another which is installed.
* #1427: Set timestamp of ``.egg-info`` directory whenever ``egg_info`` command is run.
* #1474: ``build_meta.get_requires_for_build_sdist`` now does not include the ``wheel`` package anymore.
* #1486: Suppress warnings in pkg_resources.handle_ns.
Misc
^^^^
* #1479: Remove internal use of six.binary_type.
v40.2.0
-------
Changes
^^^^^^^
* #1466: Fix handling of Unicode arguments in PEP 517 backend
v40.1.1
--------
Changes
^^^^^^^
* #1465: Fix regression with ``egg_info`` command when tagging is used.
v40.1.0
-------
Changes
^^^^^^^
* #1410: Deprecated ``upload`` and ``register`` commands.
* #1312: Introduced find_namespace_packages() to find PEP 420 namespace packages.
* #1420: Added find_namespace: directive to config parser.
...
...
@@ -631,24 +1020,44 @@ v40.1.0
* #1388: Fixed "Microsoft Visual C++ Build Tools" link in exception when Visual C++ not found.
* #1389: Added support for scripts which have unicode content.
* #1416: Moved several Python version checks over to using ``six.PY2`` and ``six.PY3``.
Misc
^^^^
* #1441: Removed spurious executable permissions from files that don'tneedthem.