From: DongHun Kwak Date: Mon, 18 Jul 2022 01:14:02 +0000 (+0900) Subject: Imported Upstream version 5.8.0 X-Git-Tag: upstream/5.8.0^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d6c36bea9bf8e15e2da0da8ae26951da70592c4;p=platform%2Fupstream%2Fpython3-pbr.git Imported Upstream version 5.8.0 --- diff --git a/.zuul.yaml b/.zuul.yaml index 7e16816..87fccb4 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -114,6 +114,7 @@ jobs: - openstack-tox-pep8 - openstack-tox-cover + - openstack-tox-py27 - openstack-tox-py36 - openstack-tox-py37 - openstack-tox-py38 @@ -126,6 +127,7 @@ jobs: - openstack-tox-pep8 - openstack-tox-cover + - openstack-tox-py27 - openstack-tox-py36 - openstack-tox-py37 - openstack-tox-py38 diff --git a/ChangeLog b/ChangeLog index 4bcee12..0122998 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,13 @@ CHANGES ======= +5.8.0 +----- + +* Add python2 testing back to PBR +* Allow PEP517 without setup\_requires +* Clarify the need for setup.py with PEP517 + 5.7.0 ----- diff --git a/PKG-INFO b/PKG-INFO index c23308d..ccf0c2a 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pbr -Version: 5.7.0 +Version: 5.8.0 Summary: Python Build Reasonableness Home-page: https://docs.openstack.org/pbr/latest/ Author: OpenStack diff --git a/doc/source/user/using.rst b/doc/source/user/using.rst index 7070e01..21aa99b 100644 --- a/doc/source/user/using.rst +++ b/doc/source/user/using.rst @@ -37,8 +37,11 @@ something like this:: ``pyproject.toml`` ------------------ -As an alternative to writing a ``setup.py`` you can instead setup PBR -through the PEP 517 build-system configuration in ``pyproject.toml``. +PBR can be configured as a PEP517 build-system in ``pyproject.toml``. This +currently continues to rely on setuptools which means you need the above +``setup.py`` file to be present. The main benefits to using a +``pyproject.toml`` file with PBR are that you can control the versions of +PBR, setuptools, and wheel that are used avoiding easy_install invocation. Your build-system block in ``pyproject.toml`` will need to look something like this:: @@ -46,6 +49,10 @@ like this:: requires = ["pbr>=5.7.0", "setuptools>=36.6.0", "wheel"] build-backend = "pbr.build" + +Eventually PBR may grow its own direct support for PEP517 build hooks, but +until then it will continue to need setuptools and ``setup.py``. + .. _setup_cfg: ``setup.cfg`` diff --git a/pbr.egg-info/PKG-INFO b/pbr.egg-info/PKG-INFO index c23308d..ccf0c2a 100644 --- a/pbr.egg-info/PKG-INFO +++ b/pbr.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pbr -Version: 5.7.0 +Version: 5.8.0 Summary: Python Build Reasonableness Home-page: https://docs.openstack.org/pbr/latest/ Author: OpenStack 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 7d55d54..7735053 100644 --- a/pbr/tests/test_packaging.py +++ b/pbr/tests/test_packaging.py @@ -229,9 +229,6 @@ class CreatePackages(fixtures.Fixture): self.packages = packages def _writeFile(self, directory, file_name, contents): - if not contents: - # We want to be able to override not having files - return path = os.path.abspath(os.path.join(directory, file_name)) path_dir = os.path.dirname(path) if not os.path.exists(path_dir): @@ -924,6 +921,8 @@ class TestRequirementParsing(base.BaseTestCase): class TestPEP517Support(base.BaseTestCase): def test_pep_517_support(self): + # Note that the current PBR PEP517 entrypoints rely on a valid + # PBR setup.py existing. pkgs = { 'test_pep517': { @@ -931,8 +930,12 @@ class TestPEP517Support(base.BaseTestCase): sphinx iso8601 """), - # Override no setup.py. - '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