./devel/py-setuptools, New Python packaging system

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 62.3.2, Package name: py39-setuptools-62.3.2, Maintainer: joerg

setuptools is a collection of enhancements to the Python distutils
that allow you to more easily build and distribute Python packages,
especially ones that have dependencies on other packages.


Required to run:
[textproc/py-expat] [lang/python37]

Required to build:

Master sites:

Filesize: 2523.363 KB

Version history: (Expand)

CVS history: (Expand)

   2022-05-18 22:33:47 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-setuptools: updated to 62.3.2

* Include a first line summary to some of the existing multi-line warnings.
   2022-05-18 07:41:49 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-setuptools: updated to 62.3.1


* Fixed typo which causes ``namespace_packages`` to raise an error instead of
   2022-05-17 09:44:07 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-setuptools: updated to 62.3.0



* Formally added deprecation messages for namespace_packages. The methodology \ 
that uses pkg_resources and namespace_packages for creating namespaces was \ 
already discouraged by the :doc:`setuptools docs \ 
</userguide/package_discovery>` and the :doc:`Python Packaging User Guide \ 
<PyPUG:guides/packaging-namespace-packages>`, therefore this change just \ 
make the deprecation more official. Users can consider migrating to \ 
native/implicit namespaces (as introduced in PEP 420).

* Relying on include_package_data to ensure sub-packages are automatically added \ 
to the build wheel distribution (as "data") is now considered a \ 
deprecated practice.

This behaviour was controversial and caused inconsistencies.

Instead, projects are encouraged to properly configure packages or use discovery \ 
tools. General information can be found in :doc:`userguide/package_discovery`.


* Allowed recursive globs (**) in package_data. -- by :user:`nullableVoidPtr`
* Fixed behaviour when both install_requires (in setup.py) and dependencies (in \ 
pyproject.toml) are specified. The configuration in pyproject.toml will take \ 
precedence over setup.py (in accordance with PEP 621). A warning was added to \ 
inform users.

Documentation changes

* Added introduction to references/keywords Added deprecation tags to test \ 
kwargs Moved userguide/keywords to deprecated section Clarified in deprecated \ 
doc what keywords came from distutils and which were added or changed by \ 


* Updated version of vendored pyparsing to 3.0.8 to avoid problems with upcoming \ 
deprecation in Python 3.11.
* Added warning about incompatibility with old versions of importlib-metadata.
   2022-05-11 10:32:26 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-setuptools: updated to 62.2.0


Optional metadata fields are now truly optional.

Added CI cache for setup.cfg examples used when testing setuptools.config.
   2022-04-19 21:12:39 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-setuptools: updated to 62.1.0


* Merge pypa/distutils@5229dad46b.

* Simplified package_dir obtained via auto-discovery.
   2022-04-05 09:23:10 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-setuptools: updated to 62.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.

* When resolving requirements use both canonical and normalized names -- by \ 
* Honor unix file mode in ZipFile when installing wheel via ``install_as_egg`` \ 
-- by :user:`delijati`

* 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``.


* 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


* Disabled automatic download of ``trove-classifiers`` to facilitate reproducibility.

* 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``.


* 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 \ 
* 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 \ 

* Fixed missing requirements with environment markers when
  ``optional-dependencies`` is set in ``pyproject.toml``.


* 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`.


* 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.

* 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
* 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
  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`.


* 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

  Projects that currently don't specify both ``packages`` and ``py_modules`` in their
  configuration and contain extra folders or Python files (not meant for \ 
  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``.

* **[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
* **[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

  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).

* 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).


* 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
* 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*).

* 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 \ 
  out directly.
* Improved configuration for :pypi:`rst-linker` (extension used to build the
* 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
   2022-02-21 09:20:53 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-setuptools: updated to 60.9.3



* Repaired automated release process.



* When loading distutils from the vendored copy, rewrite __name__ to ensure \ 
consistent importing from inside and out.



* Prevent vendored importlib_metadata from loading distributions from older \ 
* Fixed issue where string-based entry points would be omitted.
* Bump importlib_metadata to 4.11.1 addressing issue with parsing requirements \ 
in egg-info as found in PyPy.



* In the build backend, allow single config settings to be supplied.
* Removed workaround in distutils hack for get-pip now that pypa/get-pip#137 is \ 
* Setuptools no longer relies on pkg_resources for entry point handling.
* Bump vendored packaging to 21.3.
* Removed bootstrap script.
   2022-02-07 12:45:42 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-setuptools: updated to 60.8.1


* When vendoring jaraco packages, ensure the namespace package is converted to a \ 
simple package to support zip importer.


* Setuptools now vendors importlib_resources and importlib_metadata and \ 
jaraco.text. Setuptools no longer relies on pkg_resources for ensure_directory \ 
nor parse_requirements.