diff options
author | Zuul <zuul@review.opendev.org> | 2021-11-13 03:06:29 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-11-13 03:06:29 +0000 |
commit | 8cd1a06e82b2fef6b1efc5b384827cb73bd7b0c3 (patch) | |
tree | 113a2e0b6e05cfbdcbfab2f3dacab05d4351f641 | |
parent | a6006f608564d582b0e442c1a29ffa8e81e7e0ec (diff) | |
parent | de0c717b17841b0b14019130872f8f02a6aed217 (diff) | |
download | pbr-8cd1a06e82b2fef6b1efc5b384827cb73bd7b0c3.tar.gz |
Merge "Allow PEP517 without setup_requires"5.8.0
-rw-r--r-- | pbr/core.py | 8 | ||||
-rw-r--r-- | pbr/tests/test_packaging.py | 7 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pbr/core.py b/pbr/core.py index 645a2ef..f221299 100644 --- a/pbr/core.py +++ b/pbr/core.py @@ -130,6 +130,14 @@ def pbr(dist, attr, value): msg = 'Unknown distribution option: %s' % repr(key) warnings.warn(msg) + # Distribution.finalize_options() is what calls this method. That means + # there is potential for recursion here. Recursion seems to be an issue + # particularly when using PEP517 build-system configs without + # setup_requires in setup.py. We can avoid the recursion by setting + # dist.pbr to a None value as the corresponding entrypoint (this function) + # will only be called on a non None value. + setattr(dist, "pbr", None) + # Re-finalize the underlying Distribution try: super(dist.__class__, dist).finalize_options() diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py index a024f56..7735053 100644 --- a/pbr/tests/test_packaging.py +++ b/pbr/tests/test_packaging.py @@ -930,7 +930,12 @@ class TestPEP517Support(base.BaseTestCase): sphinx iso8601 """), - # Use default PBR test setup.py. + # Override default setup.py to remove setup_requires. + 'setup.py': textwrap.dedent("""\ + #!/usr/bin/env python + import setuptools + setuptools.setup(pbr=True) + """), 'setup.cfg': textwrap.dedent("""\ [metadata] name = test_pep517 |