add pyproject.toml to support pip 23.1

pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

See https://pip.pypa.io/en/stable/news/#v23-1
and https://github.com/pypa/pip/issues/8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
https://github.com/pypa/setuptools/pull/3488

This patch was taken nearly verbatim from the equivalent nova change.

Change-Id: Ic65834742445d9930200836a5c9f5bf774e30693
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
This commit is contained in:
Doug Goldstein
2025-02-02 11:22:54 -05:00
parent e8b6e91d2c
commit 4a405c51cb
3 changed files with 5 additions and 2 deletions

3
pyproject.toml Normal file
View File

@@ -0,0 +1,3 @@
[build-system]
requires = ["pbr>=6.0.0", "setuptools>=64.0.0"]
build-backend = "pbr.build"

View File

@@ -1,4 +1,4 @@
pbr>=2.0.0 # Apache-2.0
pbr>=6.0.0 # Apache-2.0
oslo.config>=5.2.0 # Apache-2.0
oslo.log>=3.36.0 # Apache-2.0
oslo.serialization>=2.18.0 # Apache-2.0

View File

@@ -16,5 +16,5 @@
import setuptools
setuptools.setup(
setup_requires=['pbr>=2.0.0'],
setup_requires=['pbr>=6.0.0'],
pbr=True)