Accepting request 989053 from home:bnavigator:branches:devel:languages:python

- Update to version 63.1.0
  * #3430: Merge with pypa/distutils@152c13d including
    pypa/distutils#155 (improved compatibility for editable
    installs on homebrew Python 3.9), pypa/distutils#150 (better
    handling of runtime_library_dirs on cygwin), and
    pypa/distutils#151 (remove warnings for namespace packages).
- v63.0.0
  * #3421: Drop setuptools' support for installing an entrypoint
    extra requirements at load time:
    - the functionality has been broken since v60.8.0.
    - the mechanism to do so is deprecated (fetch_build_eggs).
    - that use case (e.g. a custom command class entrypoint) is
      covered by making sure the necessary build requirements are
      declared. Documentation changes
  * #3397: Fix reference for keywords to point to the Core Metadata
    Specification instead of PEP 314 (the live standard is kept
    always up-to-date and consolidates several PEPs together in a
    single document).
- v62.6.0
  * #3253: Enabled using file: for requirements in setup.cfg -- by
    :user:`akx` (this feature is currently considered to be in beta
    stage).
  * #3255: Enabled using file: for dependencies and
    optional-dependencies in pyproject.toml -- by :user:`akx` (this
    feature is currently considered to be in beta stage).
  * #3391: Updated attr: to also extract simple constants with type
    annotations -- by :user:`karlotness`
- v62.5.0
  * #3347: Changed warnings and documentation notes about
    experimental aspect of pyproject.toml configuration: now

OBS-URL: https://build.opensuse.org/request/show/989053
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-setuptools?expand=0&rev=223
This commit is contained in:
Matej Cepl 2022-07-14 08:12:35 +00:00 committed by Git OBS Bridge
parent 5d423a4c7c
commit 520bb94f3d
7 changed files with 624 additions and 239 deletions

View File

@ -1,3 +1,510 @@
-------------------------------------------------------------------
Wed Jul 13 09:01:18 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to version 63.1.0
* #3430: Merge with pypa/distutils@152c13d including
pypa/distutils#155 (improved compatibility for editable
installs on homebrew Python 3.9), pypa/distutils#150 (better
handling of runtime_library_dirs on cygwin), and
pypa/distutils#151 (remove warnings for namespace packages).
- v63.0.0
* #3421: Drop setuptools' support for installing an entrypoint
extra requirements at load time:
- the functionality has been broken since v60.8.0.
- the mechanism to do so is deprecated (fetch_build_eggs).
- that use case (e.g. a custom command class entrypoint) is
covered by making sure the necessary build requirements are
declared. Documentation changes
* #3397: Fix reference for keywords to point to the Core Metadata
Specification instead of PEP 314 (the live standard is kept
always up-to-date and consolidates several PEPs together in a
single document).
- v62.6.0
* #3253: Enabled using file: for requirements in setup.cfg -- by
:user:`akx` (this feature is currently considered to be in beta
stage).
* #3255: Enabled using file: for dependencies and
optional-dependencies in pyproject.toml -- by :user:`akx` (this
feature is currently considered to be in beta stage).
* #3391: Updated attr: to also extract simple constants with type
annotations -- by :user:`karlotness`
- v62.5.0
* #3347: Changed warnings and documentation notes about
experimental aspect of pyproject.toml configuration: now
[project] is a fully supported configuration interface, but the
[tool.setuptools] table and sub-tables are still considered to
be in beta stage.
* #3383: In _distutils_hack, suppress/undo the use of local
distutils when select tests are imported in CPython.
* #3385: Modules used to parse and evaluate configuration from
pyproject.toml files are intended for internal use only and
that not part of the public API.
- v62.4.0
* #3256: Added setuptools.command.build command to match
distutils.command.build -- by :user:`isuruf`
* #3366: Merge with pypa/distutils@75ed79d including reformat
using black, fix for Cygwin support (pypa/distutils#139), and
improved support for cross compiling (pypa/distutils#144 and
pypa/distutils#145).
- v62.3.4
* #3354: Improve clarity in warning about unlisted namespace
packages.
- v62.3.3
* #3336: Modified test_setup_install_includes_dependencies to
work with custom PYTHONPATH - by :user:`hroncok`
- v62.3.2
* #3328: Include a first line summary to some of the existing
multi-line warnings.
- v62.3.1
* #3320: Fixed typo which causes namespace_packages to raise an
error instead of warning.
- v62.3.0
* #3262: 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).
* #3308: 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 (#3260). Instead,
projects are encouraged to properly configure packages or use
discovery tools. General information can be found in
:doc:`userguide/package_discovery`.
* #1806: Allowed recursive globs (**) in package_data. -- by
:user:`nullableVoidPtr`
* #3206: 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.
* #3274: Updated version of vendored pyparsing to 3.0.8 to avoid
problems with upcoming deprecation in Python 3.11.
* #3292: Added warning about incompatibility with old versions of
importlib-metadata.
- v62.2.0
* #3299: Optional metadata fields are now truly optional.
Includes merge with pypa/distutils@a7cfb56 per
pypa/distutils#138.
* #3282: Added CI cache for setup.cfg examples used when testing
setuptools.config.
- v62.1.0
* #3249: Simplified package_dir obtained via auto-discovery.
- v62.0.0
* #3151: Made setup.py develop --user install to the user site
packages directory even if it is disabled in the current
interpreter.
* #3153: When resolving requirements use both canonical and
normalized names -- by :user:`ldaniluk`
* #3167: Honor unix file mode in ZipFile when installing wheel
via install_as_egg -- by :user:`delijati`
* #3088: Fixed duplicated tag with the dist-info command.
* #3247: Fixed problem preventing readme specified as dynamic in
pyproject.toml from being dynamically specified in setup.py.
- v61.3.1
* #3233: Included missing test file setupcfg_examples.txt in
sdist.
* #3233: 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
* #3229: Disabled automatic download of trove-classifiers to
facilitate reproducibility.
* #3229: Updated pyproject.toml validation via validate-pyproject
v0.7.1.
* #3229: 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
* #3215: 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 the PyPA Specification
<PyPUG:specifications/declaring-project-metadata> is given.
* #3215: Updated pyproject.toml validation, as generated by
validate-pyproject==0.6.1.
* #3218: 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.
* #3224: Merge changes from pypa/distutils@e1d5c9b1f6
+ #3223: Fixed missing requirements with environment markers when
optional-dependencies is set in pyproject.toml.
- v61.1.1
* #3212: 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
* #3206: 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.
* #3202: Changed behaviour of auto-discovery to not explicitly
expand package_dir for flat-layouts and to not use relative
paths starting with ./.
* #3203: Prevented pyproject.toml parsing from overwriting
dist.include_package_data explicitly set in setup.py with
default value.
* #3208: Added a warning for non existing files listed with the
file directive in setup.cfg and pyproject.toml.
* #3208: Added a default value for dynamic classifiers in
pyproject.toml when files are missing and errors being ignored.
* #3211: 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
* #3068: 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).
* #2894: 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`.
* #3067: 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.
* #2887: [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.
* #2887: [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.
* #3066: Added vendored dependencies for :pypi:`tomli`,
:pypi:`validate-pyproject`.
- These dependencies are used to read pyproject.toml files and
validate them.
* #3067: [EXPERIMENTAL] When using pyproject.toml metadata, the
default value of include_package_data is changed to True.
* #3068: [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.
* #3125: 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.
* #3152: [EXPERIMENTAL] Added support for attr: and cmdclass
configurations in setup.cfg and pyproject.toml when package_dir
is implicitly found via auto-discovery.
* #3178: Postponed importing ctypes when hiding files on Windows.
This helps to prevent errors in systems that might not have
libffi installed.
* #3179: Merge with pypa/distutils@267dbd25ac
- v60.10.0
* #2971: Deprecated upload_docs command, to be removed in the
future.
* #3137: Use samefile from stdlib, supported on Windows since
Python 3.2.
* #3170: Adopt nspektr (vendored) to implement
Distribution._install_dependencies.
* #3120: Added workaround for intermittent failures of backend
tests on PyPy. These tests now are marked with XFAIL, instead
of erroring out directly.
* #3124: Improved configuration for :pypi:`rst-linker` (extension
used to build the changelog).
* #3133: Enhanced isolation of tests using virtual environments -
PYTHONPATH is not leaking to spawned subprocesses -- by
:user:`befeleme`
* #3147: 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.
- v60.9.2
* #3035: When loading distutils from the vendored copy, rewrite
__name__ to ensure consistent importing from inside and out.
- v60.9.1
* #3102: Prevent vendored importlib_metadata from loading
distributions from older importlib_metadata.
* #3103: Fixed issue where string-based entry points would be
omitted.
* #3107: Bump importlib_metadata to 4.11.1 addressing issue with
parsing requirements in egg-info as found in PyPy.
- v60.9.0
* #2876: In the build backend, allow single config settings to be
supplied.
* #2993: Removed workaround in distutils hack for get-pip now
that pypa/get-pip#137 is closed.
* #3085: Setuptools no longer relies on pkg_resources for entry
point handling.
* #3098: Bump vendored packaging to 21.3.
* Removed bootstrap script.
* Warning: Users trying to install the unmaintained
:pypi:`pathlib` backport from PyPI/sdist/source code may find
problems when using setuptools >= 60.9.0. This happens because
during the installation, the unmaintained implementation of
pathlib is loaded and may cause compatibility problems (it does
not expose the same public API defined in the Python standard
library). Whenever possible users should avoid declaring
pathlib as a dependency. An alternative is to pre-build a wheel
for pathlib using a separated virtual environment with an older
version of setuptools and install the library directly from the
pre-built wheel.
- v60.8.2
* #3091: Make concurrent.futures import lazy in vendored
more_itertools package to a avoid importing threading as a side
effect (which caused gevent/gevent#1865). -- by
:user:`maciejp-ro`
- v60.8.1
* #3084: When vendoring jaraco packages, ensure the namespace
package is converted to a simple package to support zip
importer.
- v60.8.0
* #3085: Setuptools now vendors importlib_resources and
importlib_metadata and jaraco.text. Setuptools no longer relies
on pkg_resources for ensure_directory nor parse_requirements.
- v60.7.1
* #3072: Remove lorem_ipsum from jaraco.text when vendored.
- v60.7.0
* #3061: Vendored jaraco.text and use line processing from that
library in pkg_resources.
* #3070: Avoid AttributeError in easy_install.create_home_path
when sysconfig.get_config_vars values are not strings.
- v60.6.0
* #3043: Merge with pypa/distutils@bb018f1ac3 including
consolidated behavior in sysconfig.get_platform
(pypa/distutils#104).
* #3057: Don't include optional Home-page in metadata if no url
is specified. -- by :user:`cdce8p`
* #3062: Merge with pypa/distutils@b53a824ec3 including improved
support for lib directories on non-x64 Windows builds.
* #3054: Used Py3 syntax super().__init__() -- by
:user:`imba-tjd`
- v60.5.4
* #3009: Remove filtering of distutils warnings.
* #3031: Suppress distutils replacement when building or testing
CPython.
- v60.5.3
* #3026: Honor sysconfig variables in easy_install.
- v60.5.2
* #2993: In _distutils_hack, for get-pip, simulate existence of
setuptools.
- v60.5.1
* #2918: Correct support for Python 3 native loaders.
- v60.5.0
* #2990: Set the .origin attribute of the distutils module to the
module's __file__.
- v60.4.0
* #2839: Removed requires sorting when installing wheels as an
egg dir.
* #2953: Fixed a bug that easy install incorrectly parsed Python
3.10 version string.
* #3006: Fixed startup performance issue of Python interpreter
due to imports of costly modules in _distutils_hack -- by
:user:`tiran`
* #2862: Added integration tests that focus on building and
installing some packages in the Python ecosystem via pip -- by
:user:`abravalheri`
* #2952: Modified "vendoring" logic to keep license files.
* #2968: Improved isolation for some tests that where
inadvertently using the project root for builds, and therefore
creating directories (e.g. build, dist, *.egg-info) that could
interfere with the outcome of other tests -- by
:user:`abravalheri`.
* #2968: Introduced new test fixtures venv,
venv_without_setuptools, bare_venv that rely on the jaraco.envs
package. These new test fixtures were also used to remove the
(currently problematic) dependency on the pytest_virtualenv
plugin.
* #2968: Removed tmp_src test fixture. Previously this fixture
was copying all the files and folders under the project root,
including the .git directory, which is error prone and
increases testing time. Since tmp_src was used to populate
virtual environments (installing the version of setuptools
under test via the source tree), it was replaced by the new
setuptools_sdist and setuptools_wheel fixtures (that are build
only once per session testing and can be shared between all the
workers for read-only usage).
- v60.3.1
* #3002: Suppress AttributeError when detecting get-pip.
- v60.3.0
* #2993: In _distutils_hack, bypass the distutils exception for
pip when get-pip is being invoked, because it imports
setuptools.
* #2989: Merge with pypa/distutils@788cc159. Includes fix for
config vars missing from sysconfig.
- v60.2.0
* #2974: Setuptools now relies on the Python logging
infrastructure to log messages. Instead of using
distutils.log.*, use logging.getLogger(name).*.
* #2987: Sync with
pypa/distutils@2def21c5d74fdd2fe7996ee4030ac145a9d751bd,
including fix for missing get_versions attribute (#2969), more
reliance on sysconfig from stdlib.
* #2962: Avoid attempting to use local distutils when the
presiding version of Setuptools on the path doesn't have one.
* #2983: Restore 'add_shim' as the way to invoke the hook. Avoids
compatibility issues between different versions of Setuptools
with the distutils local implementation.
- v60.1.1
* #2980: Bypass distutils loader when setuptools module is no
longer available on sys.path.
- v60.1.0
* #2958: In distutils_hack, only add the metadata finder once. In
ensure_local_distutils, rely on a context manager for reliable
manipulation.
* #2963: Merge with pypa/distutils@a5af364910. Includes revisited
fix for pypa/distutils#15 and improved MinGW/Cygwin support
from pypa/distutils#77.
- v60.0.5
* #2960: Install schemes fall back to default scheme for headers.
- v60.0.4
* #2954: Merge with pypa/distutils@eba2bcd310. Adds platsubdir to
config vars available for substitution.
- v60.0.3
* #2940: Avoid KeyError in distutils hack when pip is imported
during ensurepip.
- v60.0.2
* #2938: Select 'posix_user' for the scheme unless falling back
to stdlib, then use 'unix_user'.
- v60.0.1
* #2944: Add support for extended install schemes in
easy_install.
- v60.0.0
* #2896: Setuptools once again makes its local copy of distutils
the default. To override, set SETUPTOOLS_USE_DISTUTILS=stdlib.
- v59.8.0
* #2935: Merge
pypa/distutils@460b59f0e68dba17e2465e8dd421bbc14b994d1f.
- v59.7.0
* #2930: Require Python 3.7
- v59.6.0
* #2925: Merge with pypa/distutils@92082ee42c including
introduction of deprecation warning on Version classes.
- v59.4.0
* #2893: Restore deprecated support for newlines in the Summary
field.
- v59.3.0
* #2906: In ensure_local_distutils, re-use DistutilsMetaFinder to
load the module. Avoids race conditions when
_distutils_system_mod is employed.
- v59.2.0
* #2875: Introduce changes from pypa/distutils@514e9d0, including
support for overrides from Debian and pkgsrc, unlocking the
possibility of making SETUPTOOLS_USE_DISTUTILS=local the
default again.
- v59.1.1
+ #2885: Fixed errors when encountering LegacyVersions.
- v59.1.0
* #2497: Update packaging to 21.2.
* #2877: Back out deprecation of setup_requires and replace
instead by a deprecation of setuptools.installer and
fetch_build_egg. Now setup_requires is still supported when
installed as part of a PEP 517 build, but is deprecated when an
unsatisfied requirement is encountered.
- v59.0.1
* #2880: Removed URL requirement for pytest-virtualenv in
setup.cfg. PyPI rejects packages with dependencies external to
itself. Instead the test dependency was overwritten via tox.ini
- v59.0.0
* #2856: Support for custom commands that inherit directly from
distutils is deprecated. Users should extend classes provided
by setuptools instead.
* #2870: Started failing on invalid inline description with line
breaks :class:`ValueError` -- by :user:`webknjaz`
* #2698: Exposed exception classes from distutils.errors via
setuptools.errors.
* #2866: Incorporate changes from pypa/distutils@f1b0a2b.
- v58.5.3
* #2849: Add fallback for custom build_py commands inheriting
directly from :mod:`distutils`, while still handling
include_package_data=True for sdist.
- v58.5.2
* #2847: Suppress 'setup.py install' warning under bdist_wheel.
- v58.5.1
* #2846: Move PkgResourcesDeprecationWarning above
implicitly-called function so that it's in the namespace when
version warnings are generated in an environment that contains
them.
- v58.5.0
* #1461: Fix inconsistency with include_package_data and
packages_data in sdist by replacing the loop breaking mechanism
between the sdist and egg_info commands -- by
:user:`abravalheri`
- v58.4.0
* #2497: Officially deprecated PEP 440 non-compliant versions.
- Refresh patches
* sort-for-reproducibility.patch
* remove_mock.patch
- Do not replace the vendored imports from .extern anymore
* Upstream vendors more packages than before and we need to avoid
buildcycles, too.
* The vendored stuff was packaged all the time.
* Update License tag for vendored stuff.
* Drop remove-more-itertools-dependency-cycle.patch
-------------------------------------------------------------------
Fri Mar 25 01:13:50 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -23,60 +23,57 @@
%define psuffix -test
%bcond_without test
%bcond_with wheel
%else
%endif
%if "%{flavor}" == "wheel"
%define psuffix -wheel
%bcond_with test
%bcond_without wheel
%else
%endif
%if "%{flavor}" == ""
%define psuffix %{nil}
%bcond_with test
%bcond_with wheel
%endif
%endif
# in order to avoid rewriting for subpackage generator
%define mypython python
Name: python-setuptools%{psuffix}
Version: 58.3.0
Version: 63.1.0
Release: 0
Summary: Download, build, install, upgrade, and uninstall Python packages
License: MIT
License: Apache-2.0 AND MIT AND BSD-2-Clause AND Python-2.0
URL: https://github.com/pypa/setuptools
Source: https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-%{version}.tar.gz
Patch0: sort-for-reproducibility.patch
# PATCH-FIX-OPENSUSE remove_mock.patch mcepl@suse.com
Patch1: remove_mock.patch
# PATCH-FIX-OPENSUSE remove-more-itertools-dependency-cycle.patch alarrosa@suse.com
Patch2: remove-more-itertools-dependency-cycle.patch
BuildRequires: %{python_module appdirs >= 1.4.3}
BuildRequires: %{python_module ordered-set >= 3.1.1}
BuildRequires: %{python_module packaging >= 20.4}
BuildRequires: %{python_module pyparsing >= 2.2.1}
BuildRequires: %{python_module xml}
BuildRequires: %{python_module base >= 3.7}
# For rpm pythondistdeps.py (boo#1186870)
BuildRequires: python3-packaging
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-appdirs >= 1.4.3
Requires: python-base >= 3.6
Requires: python-ordered-set >= 3.1.1
Requires: python-packaging >= 20.4
Requires: python-pyparsing >= 2.2.1
Requires: python-xml
Requires(post): update-alternatives
Requires(postun):update-alternatives
BuildArch: noarch
%if %{with wheel}
Requires: %mypython(abi) = %python_version
%endif
%if %{with test}
BuildRequires: %{python_module Paver}
BuildRequires: %{python_module Sphinx}
BuildRequires: %{python_module build}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module jaraco.envs}
BuildRequires: %{python_module filelock >= 3.4.0}
BuildRequires: %{python_module jaraco.envs >= 2.2}
BuildRequires: %{python_module jaraco.path >= 3.2.0}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest-fixture-config}
BuildRequires: %{python_module pytest-virtualenv}
BuildRequires: %{python_module pip >= 19.1}
BuildRequires: %{python_module pip-run >= 8.8}
BuildRequires: %{python_module pytest >= 6}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools >= %{version}}
BuildRequires: %{python_module setuptools = %{version}}
BuildRequires: %{python_module tomli-w >= 1.0.0}
BuildRequires: %{python_module virtualenv >= 13.0.0}
BuildRequires: %{python_module wheel}
BuildRequires: python3-setuptools-wheel = %{version}
#BuildRequires: #{python_module ini2toml-lite >= 0.9}
%endif
%if 0%{?suse_version} || 0%{?fedora_version} >= 24
Recommends: ca-certificates-mozilla
@ -84,15 +81,6 @@ Recommends: ca-certificates-mozilla
%if %{with wheel}
BuildRequires: %{python_module wheel}
%endif
%if !%{with test} && !%{with wheel}
# work around boo#1186870
Provides: %{mypython}%{python_version}dist(setuptools) = %{version}
Provides: %{mypython}%{python_version}dist(pkg_resources) = %{version}
%if "%{python_flavor}" == "python3" || "%{python_provides}" == "python3"
Provides: %{mypython}3dist(pkg_resources) = %{version}
Provides: %{mypython}3dist(setuptools) = %{version}
%endif
%endif
%python_subpackages
%description
@ -111,23 +99,6 @@ especially ones that have dependencies on other packages.
# replace with nothing
sed -r -i '1s@^#!/.*$@@' pkg_resources/_vendor/appdirs.py
%if ! %{with wheel}
# replace the bundled stuff
find ./ -type f -name \*.py -exec sed -i \
-e 's:from setuptools\.extern\.:from :g' \
-e 's:from pkg_resources\.extern\.:from :g' \
-e 's:pkg_resources\.extern\.::g' \
-e 's:setuptools\.extern\.::g' \
{} \;
find ./ -type f -name \*.py -exec sed -i \
-e 's:from setuptools\.extern ::g' \
-e 's:from pkg_resources\.extern ::g' \
{} \;
find ./ -type f -name \*.py -exec sed -i \
-e 's:from .extern ::g' \
{} \;
%endif
%build
%if ! %{with wheel}
%python_build
@ -147,15 +118,13 @@ find ./ -type f -name \*.py -exec sed -i \
%check
%if %{with test}
# the 4 skipped test rely on the bundled packages but they are
# not available on virtualenv; this is expected behaviour
donttest="test_clean_env_install or test_pip_upgrade_from_source or test_test_command_install_requirements or test_no_missing_dependencies"
# these 3 tests try to download the wheel wheel from PyPI
donttest="$donttest or (test_distutils_adoption and (distutils_stdlib or distutils_local))"
export PRE_BUILT_SETUPTOOLS_WHEEL=%{python3_sitelib}/../wheels/setuptools-%{version}-py2.py3-none-any.whl
export LANG=en_US.UTF-8
# tests need imports local source dir
# tests need imports from local source dir
export PYTHONPATH=$(pwd)
%pytest -rfE -n auto -k "not ($donttest)"
# no ini2toml[lite]
ignoretests="$ignoretests --ignore setuptools/tests/config/test_apply_pyprojecttoml.py"
%pytest -rfE -n auto -x ${ignoretests}
%endif
%if !%{with test}

View File

@ -1,108 +0,0 @@
From: Antonio Larrosa <alarrosa@suse.com>
Subject: Remove dependency on more_itertools which generates a dependency cycle
setuptools buildrequires more_itertools just for one simple function
(unique_everseen) and more_itertools buildrequires setuptools, so
in order to remove the cycle, the unique_everseen function is copied
here so that it can be used without buildrequiring the external package.
Index: setuptools-58.3.0/setuptools/extern/__init__.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/extern/__init__.py
+++ setuptools-58.3.0/setuptools/extern/__init__.py
@@ -69,5 +69,5 @@ class VendorImporter:
sys.meta_path.append(self)
-names = 'packaging', 'pyparsing', 'ordered_set', 'more_itertools',
+names = 'packaging', 'pyparsing', 'ordered_set'
VendorImporter(__name__, names, 'setuptools._vendor').install()
Index: setuptools-58.3.0/setuptools/dist.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/dist.py
+++ setuptools-58.3.0/setuptools/dist.py
@@ -29,7 +29,7 @@ from distutils.version import StrictVers
from setuptools.extern import packaging
from setuptools.extern import ordered_set
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
from . import SetuptoolsDeprecationWarning
Index: setuptools-58.3.0/setuptools/more_itertools.py
===================================================================
--- /dev/null
+++ setuptools-58.3.0/setuptools/more_itertools.py
@@ -0,0 +1,19 @@
+def unique_everseen(iterable, key=None):
+ """Yield unique elements, preserving order."""
+
+ seenset = set()
+ seenset_add = seenset.add
+ seenlist = []
+ seenlist_add = seenlist.append
+ use_key = key is not None
+
+ for element in iterable:
+ k = key(element) if use_key else element
+ try:
+ if k not in seenset:
+ seenset_add(k)
+ yield element
+ except TypeError:
+ if k not in seenlist:
+ seenlist_add(k)
+ yield element
Index: setuptools-58.3.0/setuptools/command/build_py.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/command/build_py.py
+++ setuptools-58.3.0/setuptools/command/build_py.py
@@ -8,7 +8,7 @@ import io
import distutils.errors
import itertools
import stat
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
def make_writable(target):
Index: setuptools-58.3.0/setuptools/msvc.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/msvc.py
+++ setuptools-58.3.0/setuptools/msvc.py
@@ -30,7 +30,7 @@ import itertools
import subprocess
import distutils.errors
from setuptools.extern.packaging.version import LegacyVersion
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
from .monkey import get_unpatched
Index: setuptools-58.3.0/setuptools/package_index.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/package_index.py
+++ setuptools-58.3.0/setuptools/package_index.py
@@ -27,7 +27,7 @@ from distutils import log
from distutils.errors import DistutilsError
from fnmatch import translate
from setuptools.wheel import Wheel
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.+!]+)$')
Index: setuptools-58.3.0/setuptools/command/test.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/command/test.py
+++ setuptools-58.3.0/setuptools/command/test.py
@@ -19,7 +19,7 @@ from pkg_resources import (
EntryPoint,
)
from setuptools import Command
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
class ScanningLoader(TestLoader):

View File

@ -11,20 +11,20 @@
setuptools/tests/test_upload.py | 5 +----
10 files changed, 13 insertions(+), 18 deletions(-)
Index: setuptools-58.3.0/pkg_resources/tests/test_markers.py
Index: setuptools-63.1.0/pkg_resources/tests/test_markers.py
===================================================================
--- setuptools-58.3.0.orig/pkg_resources/tests/test_markers.py
+++ setuptools-58.3.0/pkg_resources/tests/test_markers.py
--- setuptools-63.1.0.orig/pkg_resources/tests/test_markers.py
+++ setuptools-63.1.0/pkg_resources/tests/test_markers.py
@@ -1,4 +1,4 @@
-import mock
+from . import mock
from pkg_resources import evaluate_marker
Index: setuptools-58.3.0/pkg_resources/tests/test_pkg_resources.py
Index: setuptools-63.1.0/pkg_resources/tests/test_pkg_resources.py
===================================================================
--- setuptools-58.3.0.orig/pkg_resources/tests/test_pkg_resources.py
+++ setuptools-58.3.0/pkg_resources/tests/test_pkg_resources.py
--- setuptools-63.1.0.orig/pkg_resources/tests/test_pkg_resources.py
+++ setuptools-63.1.0/pkg_resources/tests/test_pkg_resources.py
@@ -9,10 +9,7 @@ import stat
import distutils.dist
import distutils.command.install_egg_info
@ -37,10 +37,10 @@ Index: setuptools-58.3.0/pkg_resources/tests/test_pkg_resources.py
from pkg_resources import (
DistInfoDistribution, Distribution, EggInfoDistribution,
Index: setuptools-58.3.0/setuptools/tests/__init__.py
Index: setuptools-63.1.0/setuptools/tests/__init__.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/__init__.py
+++ setuptools-58.3.0/setuptools/tests/__init__.py
--- setuptools-63.1.0.orig/setuptools/tests/__init__.py
+++ setuptools-63.1.0/setuptools/tests/__init__.py
@@ -5,6 +5,10 @@ import pytest
__all__ = ['fail_on_ascii']
@ -52,10 +52,10 @@ Index: setuptools-58.3.0/setuptools/tests/__init__.py
is_ascii = locale.getpreferredencoding() == 'ANSI_X3.4-1968'
fail_on_ascii = pytest.mark.xfail(is_ascii, reason="Test fails in this locale")
Index: setuptools-58.3.0/setuptools/tests/test_build_clib.py
Index: setuptools-63.1.0/setuptools/tests/test_build_clib.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_build_clib.py
+++ setuptools-58.3.0/setuptools/tests/test_build_clib.py
--- setuptools-63.1.0.orig/setuptools/tests/test_build_clib.py
+++ setuptools-63.1.0/setuptools/tests/test_build_clib.py
@@ -1,6 +1,6 @@
import pytest
@ -64,10 +64,10 @@ Index: setuptools-58.3.0/setuptools/tests/test_build_clib.py
from distutils.errors import DistutilsSetupError
from setuptools.command.build_clib import build_clib
from setuptools.dist import Distribution
Index: setuptools-58.3.0/setuptools/tests/test_easy_install.py
Index: setuptools-63.1.0/setuptools/tests/test_easy_install.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_easy_install.py
+++ setuptools-58.3.0/setuptools/tests/test_easy_install.py
--- setuptools-63.1.0.orig/setuptools/tests/test_easy_install.py
+++ setuptools-63.1.0/setuptools/tests/test_easy_install.py
@@ -12,7 +12,7 @@ import itertools
import distutils.errors
import io
@ -77,10 +77,10 @@ Index: setuptools-58.3.0/setuptools/tests/test_easy_install.py
import time
import re
import subprocess
Index: setuptools-58.3.0/setuptools/tests/test_msvc.py
Index: setuptools-63.1.0/setuptools/tests/test_msvc.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_msvc.py
+++ setuptools-58.3.0/setuptools/tests/test_msvc.py
--- setuptools-63.1.0.orig/setuptools/tests/test_msvc.py
+++ setuptools-63.1.0/setuptools/tests/test_msvc.py
@@ -5,7 +5,7 @@ Tests for msvc support module.
import os
import contextlib
@ -90,10 +90,10 @@ Index: setuptools-58.3.0/setuptools/tests/test_msvc.py
import pytest
Index: setuptools-58.3.0/setuptools/tests/test_packageindex.py
Index: setuptools-63.1.0/setuptools/tests/test_packageindex.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_packageindex.py
+++ setuptools-58.3.0/setuptools/tests/test_packageindex.py
--- setuptools-63.1.0.orig/setuptools/tests/test_packageindex.py
+++ setuptools-63.1.0/setuptools/tests/test_packageindex.py
@@ -6,7 +6,7 @@ import urllib.request
import urllib.error
import http.client
@ -103,10 +103,10 @@ Index: setuptools-58.3.0/setuptools/tests/test_packageindex.py
import pytest
import setuptools.package_index
Index: setuptools-58.3.0/setuptools/tests/test_register.py
Index: setuptools-63.1.0/setuptools/tests/test_register.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_register.py
+++ setuptools-58.3.0/setuptools/tests/test_register.py
--- setuptools-63.1.0.orig/setuptools/tests/test_register.py
+++ setuptools-63.1.0/setuptools/tests/test_register.py
@@ -2,10 +2,7 @@ from setuptools.command.register import
from setuptools.dist import Distribution
from setuptools.errors import RemovedCommandError
@ -119,10 +119,10 @@ Index: setuptools-58.3.0/setuptools/tests/test_register.py
import pytest
Index: setuptools-58.3.0/setuptools/tests/test_upload.py
Index: setuptools-63.1.0/setuptools/tests/test_upload.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_upload.py
+++ setuptools-58.3.0/setuptools/tests/test_upload.py
--- setuptools-63.1.0.orig/setuptools/tests/test_upload.py
+++ setuptools-63.1.0/setuptools/tests/test_upload.py
@@ -2,10 +2,7 @@ from setuptools.command.upload import up
from setuptools.dist import Distribution
from setuptools.errors import RemovedCommandError
@ -135,41 +135,19 @@ Index: setuptools-58.3.0/setuptools/tests/test_upload.py
import pytest
Index: setuptools-58.3.0/setuptools/tests/test_config.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_config.py
+++ setuptools-58.3.0/setuptools/tests/test_config.py
@@ -7,7 +7,7 @@ import configparser
import pytest
from distutils.errors import DistutilsOptionError, DistutilsFileError
-from mock import patch
+from setuptools.tests import mock
from setuptools.dist import Distribution, _Distribution
from setuptools.config import ConfigHandler, read_configuration
from distutils.core import Command
@@ -906,7 +906,7 @@ class TestExternalSetters:
)
return None
- @patch.object(_Distribution, '__init__', autospec=True)
+ @mock.patch.object(_Distribution, '__init__', autospec=True)
def test_external_setters(self, mock_parent_init, tmpdir):
mock_parent_init.side_effect = self._fake_distribution_init
Index: setuptools-58.3.0/pkg_resources/tests/__init__.py
Index: setuptools-63.1.0/pkg_resources/tests/__init__.py
===================================================================
--- /dev/null
+++ setuptools-58.3.0/pkg_resources/tests/__init__.py
+++ setuptools-63.1.0/pkg_resources/tests/__init__.py
@@ -0,0 +1,4 @@
+try:
+ import mock
+except ImportError:
+ from unittest import mock
Index: setuptools-58.3.0/setuptools/tests/test_bdist_deprecations.py
Index: setuptools-63.1.0/setuptools/tests/test_bdist_deprecations.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_bdist_deprecations.py
+++ setuptools-58.3.0/setuptools/tests/test_bdist_deprecations.py
--- setuptools-63.1.0.orig/setuptools/tests/test_bdist_deprecations.py
+++ setuptools-63.1.0/setuptools/tests/test_bdist_deprecations.py
@@ -1,6 +1,6 @@
"""develop tests
"""

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b0c2461641b58fe30e11d4c3dfba316c513bdf9ec85f9fed0c871c678447205e
size 2268278

3
setuptools-63.1.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:16923d366ced322712c71ccb97164d07472abeecd13f3a6c283f6d5d26722793
size 2599380

View File

@ -1,8 +1,8 @@
Index: setuptools-58.3.0/setuptools/command/easy_install.py
Index: setuptools-63.1.0/setuptools/command/easy_install.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/command/easy_install.py
+++ setuptools-58.3.0/setuptools/command/easy_install.py
@@ -413,7 +413,7 @@ class easy_install(Command):
--- setuptools-63.1.0.orig/setuptools/command/easy_install.py
+++ setuptools-63.1.0/setuptools/command/easy_install.py
@@ -419,7 +419,7 @@ class easy_install(Command):
for spec in self.args:
self.easy_install(spec, not self.no_deps)
if self.record:
@ -11,11 +11,11 @@ Index: setuptools-58.3.0/setuptools/command/easy_install.py
if self.root: # strip any package prefix
root_len = len(self.root)
for counter in range(len(outputs)):
Index: setuptools-58.3.0/setuptools/command/egg_info.py
Index: setuptools-63.1.0/setuptools/command/egg_info.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/command/egg_info.py
+++ setuptools-58.3.0/setuptools/command/egg_info.py
@@ -654,7 +654,7 @@ def _write_requirements(stream, reqs):
--- setuptools-63.1.0.orig/setuptools/command/egg_info.py
+++ setuptools-63.1.0/setuptools/command/egg_info.py
@@ -683,7 +683,7 @@ def _write_requirements(stream, reqs):
def append_cr(line):
return line + '\n'
@ -24,11 +24,11 @@ Index: setuptools-58.3.0/setuptools/command/egg_info.py
stream.writelines(lines)
Index: setuptools-58.3.0/setuptools/dist.py
Index: setuptools-63.1.0/setuptools/dist.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/dist.py
+++ setuptools-58.3.0/setuptools/dist.py
@@ -208,7 +208,7 @@ def write_pkg_file(self, file): # noqa:
--- setuptools-63.1.0.orig/setuptools/dist.py
+++ setuptools-63.1.0/setuptools/dist.py
@@ -222,7 +222,7 @@ def write_pkg_file(self, file): # noqa:
if self.long_description_content_type:
write_field('Description-Content-Type', self.long_description_content_type)
if self.provides_extras:
@ -37,10 +37,10 @@ Index: setuptools-58.3.0/setuptools/dist.py
write_field('Provides-Extra', extra)
self._write_list(file, 'License-File', self.license_files or [])
Index: setuptools-58.3.0/setuptools/tests/test_egg_info.py
Index: setuptools-63.1.0/setuptools/tests/test_egg_info.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/tests/test_egg_info.py
+++ setuptools-58.3.0/setuptools/tests/test_egg_info.py
--- setuptools-63.1.0.orig/setuptools/tests/test_egg_info.py
+++ setuptools-63.1.0/setuptools/tests/test_egg_info.py
@@ -297,8 +297,8 @@ class TestEggInfo:
wheel>=0.5
pytest
@ -51,3 +51,42 @@ Index: setuptools-58.3.0/setuptools/tests/test_egg_info.py
''',
'''
Index: setuptools-63.1.0/setuptools/tests/test_wheel.py
===================================================================
--- setuptools-63.1.0.orig/setuptools/tests/test_wheel.py
+++ setuptools-63.1.0/setuptools/tests/test_wheel.py
@@ -425,30 +425,30 @@ WHEEL_INSTALL_TESTS = (
dict(
id='requires_ensure_order',
install_requires='''
- foo
bar
baz
+ foo
qux
''',
extras_require={
'extra': '''
- foobar>3
barbaz>4
bazqux>5
+ foobar>3
quxzap>6
''',
},
requires_txt=DALS(
'''
- foo
bar
baz
+ foo
qux
[extra]
- foobar>3
barbaz>4
bazqux>5
+ foobar>3
quxzap>6
'''
),