From 003c7ac56b4da80235d4a147fbcef84b6fbc8248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=BE=D0=BC=D0=B0=D0=BD=20=D0=94=D0=BE=D0=BD=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Sun, 19 Mar 2023 18:50:47 +0300 Subject: [PATCH] Migrate project metadata to `pyproject.toml` Since setuptools defaults `include_package_data` to `True` if it sees a `project` table, explicitly set it to `False` to prevent unnecessary files from being added. Due to differences between the semantics of `pyproject.toml` and `setup.py` settings, there are some minor changes in the resulting metadata: diff -Nur dist-old/whl/pip-23.1.dev0.dist-info/METADATA dist/whl/pip-23.1.dev0.dist-info/METADATA --- dist-old/whl/pip-23.1.dev0.dist-info/METADATA 2023-03-28 18:46:48.000000000 +0300 +++ dist/whl/pip-23.1.dev0.dist-info/METADATA 2023-03-28 18:43:28.000000000 +0300 @@ -2,10 +2,9 @@ Name: pip Version: 23.1.dev0 Summary: The PyPA recommended tool for installing Python packages. -Home-page: https://pip.pypa.io/ -Author: The pip developers -Author-email: distutils-sig@python.org +Author-email: The pip developers License: MIT +Project-URL: Homepage, https://pip.pypa.io/ Project-URL: Documentation, https://pip.pypa.io Project-URL: Source, https://github.com/pypa/pip Project-URL: Changelog, https://pip.pypa.io/en/stable/news/ @@ -24,6 +23,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Requires-Python: >=3.7 +Description-Content-Type: text/x-rst License-File: LICENSE.txt License-File: AUTHORS.txt black uses the `project.requires-python` setting to infer the target Python version. Reformat one file in which this actually changes the formatting. --- news/11909.process.rst | 1 + pyproject.toml | 41 ++++++++++++++++++++++++++++++++- setup.py | 35 +--------------------------- tests/unit/test_network_auth.py | 2 +- 4 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 news/11909.process.rst diff --git a/news/11909.process.rst b/news/11909.process.rst new file mode 100644 index 000000000..a396d93d9 --- /dev/null +++ b/news/11909.process.rst @@ -0,0 +1 @@ +Most project metadata is now defined statically via pip's ``pyproject.toml`` file. diff --git a/pyproject.toml b/pyproject.toml index b720c4602..3e85ea371 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,44 @@ +[project] +dynamic = ["version", "scripts"] + +name = "pip" +description = "The PyPA recommended tool for installing Python packages." +readme = "README.rst" +license = {text = "MIT"} +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Topic :: Software Development :: Build Tools", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", +] +authors = [ + {name = "The pip developers", email = "distutils-sig@python.org"}, +] + +# NOTE: requires-python is duplicated in __pip-runner__.py. +# When changing this value, please change the other copy as well. +requires-python = ">=3.7" + +[project.urls] +Homepage = "https://pip.pypa.io/" +Documentation = "https://pip.pypa.io" +Source = "https://github.com/pypa/pip" +Changelog = "https://pip.pypa.io/en/stable/news/" + [build-system] -requires = ["setuptools", "wheel"] +# The lower bound is for . +requires = ["setuptools>=67.6.1", "wheel"] build-backend = "setuptools.build_meta" [tool.towncrier] diff --git a/setup.py b/setup.py index d73c77b73..19175c995 100644 --- a/setup.py +++ b/setup.py @@ -21,44 +21,14 @@ def get_version(rel_path: str) -> str: raise RuntimeError("Unable to find version string.") -long_description = read("README.rst") - setup( - name="pip", version=get_version("src/pip/__init__.py"), - description="The PyPA recommended tool for installing Python packages.", - long_description=long_description, - license="MIT", - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Topic :: Software Development :: Build Tools", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - ], - url="https://pip.pypa.io/", - project_urls={ - "Documentation": "https://pip.pypa.io", - "Source": "https://github.com/pypa/pip", - "Changelog": "https://pip.pypa.io/en/stable/news/", - }, - author="The pip developers", - author_email="distutils-sig@python.org", package_dir={"": "src"}, packages=find_packages( where="src", exclude=["contrib", "docs", "tests*", "tasks"], ), + include_package_data=False, package_data={ "pip": ["py.typed"], "pip._vendor": ["vendor.txt"], @@ -82,7 +52,4 @@ setup( ], }, zip_safe=False, - # NOTE: python_requires is duplicated in __pip-runner__.py. - # When changing this value, please change the other copy as well. - python_requires=">=3.7", ) diff --git a/tests/unit/test_network_auth.py b/tests/unit/test_network_auth.py index 5bd85f8cd..5c12d8701 100644 --- a/tests/unit/test_network_auth.py +++ b/tests/unit/test_network_auth.py @@ -406,7 +406,7 @@ class KeyringSubprocessResult(KeyringModuleV1): stdin: Optional[Any] = None, stdout: Optional[Any] = None, input: Optional[bytes] = None, - check: Optional[bool] = None + check: Optional[bool] = None, ) -> Any: if cmd[1] == "get": assert stdin == -3 # subprocess.DEVNULL