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: I0f1f5af46ac6914bfddc847988d815825492949f
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
This commit is contained in:
Doug Goldstein
2025-02-01 17:32:59 -05:00
parent 9abf26ba68
commit 7acd028945
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

@@ -2,7 +2,7 @@
# date but we do not test them so no guarantee of having them all correct. If
# you find any incorrect lower bounds, let us know or propose a fix.
pbr>=3.1.1 # Apache-2.0
pbr>=6.0.0 # Apache-2.0
stevedore>=1.20.0 # Apache-2.0
oslo.messaging>=9.4.0 # Apache-2.0
Flask>=1.0.0 # BSD

View File

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