Path to this page:
Subject: CVS commit: pkgsrc/devel/py-setuptools
From: Adam Ciarcinski
Date: 2022-04-05 09:23:10
Message id: 20220405072310.5018DFB24@cvs.NetBSD.org
Log Message:
py-setuptools: updated to 62.0.0
v62.0.0
-------
Breaking Changes
^^^^^^^^^^^^^^^^
* Made ``setup.py develop --user`` install to the user site packages directory \
even if it is disabled in the current interpreter.
Changes
^^^^^^^
* When resolving requirements use both canonical and normalized names -- by \
:user:`ldaniluk`
* Honor unix file mode in ZipFile when installing wheel via ``install_as_egg`` \
-- by :user:`delijati`
Misc
^^^^
* Fixed duplicated tag with the ``dist-info`` command.
* Fixed problem preventing ``readme`` specified as dynamic in ``pyproject.toml``
from being dynamically specified in ``setup.py``.
v61.3.1
-------
Misc
^^^^
* Included missing test file ``setupcfg_examples.txt`` in ``sdist``.
* Added script that allows developers to download ``setupcfg_examples.txt`` prior to
running tests. By caching these files it should be possible to run the test suite
offline.
v61.3.0
-------
Changes
^^^^^^^
* Disabled automatic download of ``trove-classifiers`` to facilitate reproducibility.
Misc
^^^^
* Updated ``pyproject.toml`` validation via ``validate-pyproject`` v0.7.1.
* New internal tool made available for updating the code responsible for
the validation of ``pyproject.toml``.
This tool can be executed via ``tox -e generate-validation-code``.
v61.2.0
-------
Changes
^^^^^^^
* Ignored a subgroup of invalid ``pyproject.toml`` files that use the ``[project]``
table to specify only ``requires-python`` (**transitional**).
.. warning::
Please note that future releases of setuptools will halt the build process
if a ``pyproject.toml`` file that does not match doc:`the PyPA Specification
<PyPUG:specifications/declaring-project-metadata>` is given.
* Updated ``pyproject.toml`` validation, as generated by \
``validate-pyproject==0.6.1``.
* Prevented builds from erroring if the project specifies metadata via
``pyproject.toml``, but uses other files (e.g. ``setup.py``) to complement it,
without setting ``dynamic`` properly.
.. important::
This is a **transitional** behaviour.
Future releases of ``setuptools`` may simply ignore externally set metadata
not backed by ``dynamic`` or even halt the build with an error.
* Merge changes from pypa/distutils@e1d5c9b1f6
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* Fixed typo in ``pyproject.toml`` example in Quickstart -- by \
:user:`pablo-cardenas`.
Misc
^^^^
* Fixed missing requirements with environment markers when
``optional-dependencies`` is set in ``pyproject.toml``.
v61.1.1
-------
Misc
^^^^
* Fixed missing dependencies when running ``setup.py install``.
Note that calling ``setup.py install`` directly is still deprecated and
will be removed in future versions of ``setuptools``.
Please check the release notes for :ref:`setup_install_deprecation_note`.
v61.1.0
-------
Deprecations
^^^^^^^^^^^^
* Changed ``setuptools.convert_path`` to an internal function that is not exposed
as part of setuptools API.
Future releases of ``setuptools`` are likely to remove this function.
Changes
^^^^^^^
* Changed behaviour of auto-discovery to not explicitly expand ``package_dir``
for flat-layouts and to not use relative paths starting with ``./``.
* Prevented ``pyproject.toml`` parsing from overwriting
``dist.include_package_data`` explicitly set in ``setup.py`` with default
value.
* Added a warning for non existing files listed with the ``file`` directive in
``setup.cfg`` and ``pyproject.toml``.
* Added a default value for dynamic ``classifiers`` in ``pyproject.toml`` when
files are missing and errors being ignored.
* Disabled auto-discovery when distribution class has a ``configuration``
attribute (e.g. when the ``setup.py`` script contains ``setup(...,
configuration=...)``). This is done to ensure extension-only packages created
with ``numpy.distutils.misc_util.Configuration`` are not broken by the safe
guard
behaviour to avoid accidental multiple top-level packages in a flat-layout.
.. note::
Users that don't set ``packages``, ``py_modules``, or ``configuration`` are
still likely to observe the auto-discovery behavior, which may halt the
build if the project contains multiple directories and/or multiple Python
files directly under the project root.
To disable auto-discovery please explicitly set either ``packages`` or
``py_modules``. Alternatively you can also configure :ref:`custom-discovery`.
v61.0.0
-------
Deprecations
^^^^^^^^^^^^
* Deprecated ``setuptools.config.read_configuration``,
``setuptools.config.parse_configuration`` and other functions or classes
from ``setuptools.config``.
Users that still need to parse and process configuration from ``setup.cfg`` can
import a direct replacement from ``setuptools.config.setupcfg``, however this
module is transitional and might be removed in the future
(the ``setup.cfg`` configuration format itself is likely to be deprecated in \
the future).
Breaking Changes
^^^^^^^^^^^^^^^^
* If you purposefully want to create an *"empty distribution"*, please \
be aware
that some Python files (or general folders) might be automatically detected and
included.
Projects that currently don't specify both ``packages`` and ``py_modules`` in their
configuration and contain extra folders or Python files (not meant for \
distribution),
might see these files being included in the wheel archive or even experience
the build to fail.
You can check details about the automatic discovery (and how to configure a
different behaviour) in :doc:`/userguide/package_discovery`.
* If the file ``pyproject.toml`` exists and it includes project
metadata/config (via ``[project]`` table or ``[tool.setuptools]``),
a series of new behaviors that are not backward compatible may take place:
- The default value of ``include_package_data`` will be considered to be ``True``.
- Setuptools will attempt to validate the ``pyproject.toml`` file according
to PEP 621 specification.
- The values specified in ``pyproject.toml`` will take precedence over those
specified in ``setup.cfg`` or ``setup.py``.
Changes
^^^^^^^
* **[EXPERIMENTAL]** Added automatic discovery for ``py_modules`` and ``packages``
-- by :user:`abravalheri`.
Setuptools will try to find these values assuming that the package uses either
the *src-layout* (a ``src`` directory containing all the packages or modules),
the *flat-layout* (package directories directly under the project root),
or the *single-module* approach (an isolated Python file, directly under
the project root).
The automatic discovery will also respect layouts that are explicitly
configured using the ``package_dir`` option.
For backward-compatibility, this behavior will be observed **only if both**
``py_modules`` **and** ``packages`` **are not set**.
(**Note**: specifying ``ext_modules`` might also prevent auto-discover from
taking place)
If setuptools detects modules or packages that are not supposed to be in the
distribution, please manually set ``py_modules`` and ``packages`` in your
``setup.cfg`` or ``setup.py`` file.
If you are using a *flat-layout*, you can also consider switching to
*src-layout*.
* **[EXPERIMENTAL]** Added automatic configuration for the ``name`` metadata
-- by :user:`abravalheri`.
Setuptools will adopt the name of the top-level package (or module in the case
of single-module distributions), **only when** ``name`` **is not explicitly
provided**.
Please note that it is not possible to automatically derive a single name when
the distribution consists of multiple top-level packages or modules.
* Added vendored dependencies for :pypi:`tomli`, :pypi:`validate-pyproject`.
These dependencies are used to read ``pyproject.toml`` files and validate them.
* **[EXPERIMENTAL]** When using ``pyproject.toml`` metadata,
the default value of ``include_package_data`` is changed to ``True``.
* **[EXPERIMENTAL]** Add support for ``pyproject.toml`` configuration
(as introduced by :pep:`621`). Configuration parameters not covered by
standards are handled in the ``[tool.setuptools]`` sub-table.
In the future, existing ``setup.cfg`` configuration
may be automatically converted into the ``pyproject.toml`` equivalent before \
taking effect
(as proposed in 1688). Meanwhile users can use automated tools like
:pypi:`ini2toml` to help in the transition.
Please note that the legacy backend is not guaranteed to work with
``pyproject.toml`` configuration.
-- by :user:`abravalheri`
* Implicit namespaces (as introduced in :pep:`420`) are now considered by default
during :doc:`package discovery </userguide/package_discovery>`, when
``setuptools`` configuration and project metadata are added to the
``pyproject.toml`` file.
To disable this behaviour, use ``namespaces = False`` when explicitly setting
the ``[tool.setuptools.packages.find]`` section in ``pyproject.toml``.
This change is backwards compatible and does not affect the behaviour of
configuration done in ``setup.cfg`` or ``setup.py``.
* **[EXPERIMENTAL]** Added support for ``attr:`` and ``cmdclass`` configurations
in ``setup.cfg`` and ``pyproject.toml`` when ``package_dir`` is implicitly
found via auto-discovery.
* Postponed importing ``ctypes`` when hiding files on Windows.
This helps to prevent errors in systems that might not have ``libffi`` installed.
* Merge with pypa/distutils@267dbd25ac
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* Added initial documentation about configuring ``setuptools`` via ``pyproject.toml``
(using standard project metadata).
Misc
^^^^
* Refactored ``setuptools.config`` by separating configuration parsing (specific
to the configuration file format, e.g. ``setup.cfg``) and post-processing
(which includes directives such as ``file:`` that can be used across different
configuration formats).
v60.10.0
--------
Changes
^^^^^^^
* Deprecated upload_docs command, to be removed in the future.
* Use samefile from stdlib, supported on Windows since Python 3.2.
* Adopt nspektr (vendored) to implement Distribution._install_dependencies.
Documentation changes
^^^^^^^^^^^^^^^^^^^^^
* Added documentation on using console_scripts from setup.py, which was \
previously only shown in setup.cfg -- by :user:`xhlulu`
* Added clarifications about ``MANIFEST.in``, that include links to PyPUG docs
and more prominent mentions to using a revision control system plugin as an
alternative.
* Removed mention to ``pkg_resources`` as the recommended way of accessing data
files, in favour of importlib.resources.
Additionally more emphasis was put on the fact that *package data files* reside
**inside** the *package directory* (and therefore should be *read-only*).
Misc
^^^^
* Added workaround for intermittent failures of backend tests on PyPy.
These tests now are marked with `XFAIL
<https://docs.pytest.org/en/stable/how-to/skipping.html>`_, instead of \
erroring
out directly.
* Improved configuration for :pypi:`rst-linker` (extension used to build the
changelog).
* Enhanced isolation of tests using virtual environments - PYTHONPATH is not \
leaking to spawned subprocesses -- by :user:`befeleme`
* Added options to provide a pre-built ``setuptools`` wheel or sdist for being
used during tests with virtual environments.
Paths for these pre-built distribution files can now be set via the environment
variables: ``PRE_BUILT_SETUPTOOLS_SDIST`` and ``PRE_BUILT_SETUPTOOLS_WHEEL``.
Files: