From a019695b629ac347fca6fed5d9bf7caf417becc0 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 21 Sep 2023 13:50:08 -0400 Subject: [PATCH] Backport PR #26849: Bump setuptools required version because of setuptools_scm v8 --- doc/api/next_api_changes/development/26849-KS.rst | 5 +++++ doc/devel/dependencies.rst | 2 +- pyproject.toml | 9 ++++++++- requirements/testing/mypy.txt | 1 + setup.py | 5 ++++- 5 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 doc/api/next_api_changes/development/26849-KS.rst diff --git a/doc/api/next_api_changes/development/26849-KS.rst b/doc/api/next_api_changes/development/26849-KS.rst new file mode 100644 index 000000000000..1a1deda40fca --- /dev/null +++ b/doc/api/next_api_changes/development/26849-KS.rst @@ -0,0 +1,5 @@ +Minimum version of setuptools bumped to 64 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To comply with requirements of ``setuptools_scm``, the minimum version of ``setuptools`` +has been increased from 42 to 64. diff --git a/doc/devel/dependencies.rst b/doc/devel/dependencies.rst index a865b80cab84..400bc63d42ac 100644 --- a/doc/devel/dependencies.rst +++ b/doc/devel/dependencies.rst @@ -228,7 +228,7 @@ Setup dependencies runtime dependency. - `PyBind11 `_ (>= 2.6). Used to connect C/C++ code with Python. -- `setuptools `_ (>= 42). +- `setuptools `_ (>= 64). - `setuptools_scm `_ (>= 7). Used to update the reported ``mpl.__version__`` based on the current git commit. Also a runtime dependency for editable installs. diff --git a/pyproject.toml b/pyproject.toml index d2e2f769b7ef..67f1805cda08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,10 +4,17 @@ requires = [ "certifi>=2020.06.20", "numpy>=1.25", "pybind11>=2.6", - "setuptools>=42", + "setuptools>=64", "setuptools_scm>=7", ] +[tool.setuptools_scm] +version_scheme = "release-branch-semver" +local_scheme = "node-and-date" +write_to = "lib/matplotlib/_version.py" +parentdir_prefix_version = "matplotlib-" +fallback_version = "0.0+UNKNOWN" + [tool.isort] known_pydata = "numpy, matplotlib.pyplot" known_firstparty = "matplotlib,mpl_toolkits" diff --git a/requirements/testing/mypy.txt b/requirements/testing/mypy.txt index f697772da5ea..a5ca15cfbdad 100644 --- a/requirements/testing/mypy.txt +++ b/requirements/testing/mypy.txt @@ -24,5 +24,6 @@ pillow>=8 pyparsing>=2.3.1 python-dateutil>=2.7 setuptools_scm>=7 +setuptools>=64 importlib-resources>=3.2.0 ; python_version < "3.10" diff --git a/setup.py b/setup.py index 9c37c2108286..6f277d4e4d7d 100644 --- a/setup.py +++ b/setup.py @@ -340,7 +340,10 @@ def make_release_tree(self, base_dir, files): "python-dateutil>=2.7", ] + ( # Installing from a git checkout that is not producing a wheel. - ["setuptools_scm>=7"] if ( + # setuptools_scm warns with older setuptools, which turns into errors for our + # test suite. However setuptools_scm does not themselves pin the version of + # setuptools. + ["setuptools_scm>=7", "setuptools>=64"] if ( Path(__file__).with_name(".git").exists() and os.environ.get("CIBUILDWHEEL", "0") != "1" ) else []