summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-10-22 13:16:50 -0400
committerJason R. Coombs <jaraco@jaraco.com>2021-10-22 14:03:18 -0400
commit18b997db3e74d179af12175bff3d1a37006017fc (patch)
treecd42411266377ede30d98843adc2c8a5c62b704b
parentfee9d17d2a9113dbdc4bcfeca8b040af75bcf2f9 (diff)
downloadpython-setuptools-git-debt/deprecate-setup-requires.tar.gz
Emit a SetuptoolsDeprecationWarning when setup_requires is used. Ref #2823.debt/deprecate-setup-requires
-rw-r--r--changelog.d/2823.change.rst1
-rw-r--r--pytest.ini25
-rw-r--r--setuptools/__init__.py6
3 files changed, 21 insertions, 11 deletions
diff --git a/changelog.d/2823.change.rst b/changelog.d/2823.change.rst
new file mode 100644
index 00000000..69db4c0d
--- /dev/null
+++ b/changelog.d/2823.change.rst
@@ -0,0 +1 @@
+Officially deprecated support for ``setup_requires``. Users are encouraged instead to migrate to PEP 518 ``build-system.requires`` in ``pyproject.toml``. Users reliant on ``setup_requires`` should consider pinning to this major version to avoid disruption.
diff --git a/pytest.ini b/pytest.ini
index eebb212f..f81b6cfb 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -8,21 +8,24 @@ doctest_optionflags=ALLOW_UNICODE ELLIPSIS
# workaround for warning pytest-dev/pytest#6178
junit_family=xunit2
filterwarnings=
- # Fail on warnings
- error
+ # Fail on warnings
+ error
- ## upstream
+ ## upstream
# Suppress deprecation warning in flake8
ignore:SelectableGroups dict interface is deprecated::flake8
# Suppress deprecation warning in pypa/packaging#433
ignore:The distutils package is deprecated::packaging.tags
## end upstream
- # https://github.com/pypa/setuptools/issues/1823
- ignore:bdist_wininst command is deprecated
- # Suppress this error; unimportant for CI tests
- ignore:Extraction path is writable by group/others:UserWarning
- # Suppress weird RuntimeWarning.
- ignore:Parent module 'setuptools' not found while handling absolute import:RuntimeWarning
- # Suppress use of bytes for filenames on Windows until fixed #2016
- ignore:The Windows bytes API has been deprecated:DeprecationWarning
+ # https://github.com/pypa/setuptools/issues/1823
+ ignore:bdist_wininst command is deprecated
+ # Suppress this error; unimportant for CI tests
+ ignore:Extraction path is writable by group/others:UserWarning
+ # Suppress weird RuntimeWarning.
+ ignore:Parent module 'setuptools' not found while handling absolute import:RuntimeWarning
+ # Suppress use of bytes for filenames on Windows until fixed #2016
+ ignore:The Windows bytes API has been deprecated:DeprecationWarning
+
+ # https://github.com/pypa/setuptools/issues/2823
+ ignore:setup_requires is deprecated.
diff --git a/setuptools/__init__.py b/setuptools/__init__.py
index 9d6f0bc0..a623262e 100644
--- a/setuptools/__init__.py
+++ b/setuptools/__init__.py
@@ -4,6 +4,7 @@ from fnmatch import fnmatchcase
import functools
import os
import re
+import warnings
import _distutils_hack.override # noqa: F401
@@ -144,6 +145,11 @@ def _install_setup_requires(attrs):
# Honor setup.cfg's options.
dist.parse_config_files(ignore_option_errors=True)
if dist.setup_requires:
+ warnings.warn(
+ "setup_requires is deprecated. Supply build "
+ "dependencies using PEP 517 pyproject.toml build-requires.",
+ SetuptoolsDeprecationWarning,
+ )
dist.fetch_build_eggs(dist.setup_requires)