From: DongHun Kwak Date: Mon, 18 Jul 2022 01:13:58 +0000 (+0900) Subject: Imported Upstream version 5.7.0 X-Git-Tag: upstream/5.7.0^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e077ec7500285c35a663c306338f5db25667bb24;p=platform%2Fupstream%2Fpython3-pbr.git Imported Upstream version 5.7.0 --- diff --git a/.zuul.yaml b/.zuul.yaml index 1765864..7e16816 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -17,7 +17,6 @@ - openstack/debtcollector - openstack/dib-utils - openstack/diskimage-builder - - openstack/django_openstack_auth - openstack/futurist - openstack/glance - openstack/glance_store @@ -109,19 +108,28 @@ templates: - lib-forward-testing - lib-forward-testing-python3 - - openstack-cover-jobs - - openstack-python-jobs - - openstack-python3-ussuri-jobs - periodic-stable-jobs - publish-openstack-docs-pti check: jobs: + - openstack-tox-pep8 + - openstack-tox-cover + - openstack-tox-py36 + - openstack-tox-py37 + - openstack-tox-py38 + - openstack-tox-py39 - pbr-installation-openstack - pbr-installation-openstack-pip-dev - tempest-full: override-checkout: stable/train gate: jobs: + - openstack-tox-pep8 + - openstack-tox-cover + - openstack-tox-py36 + - openstack-tox-py37 + - openstack-tox-py38 + - openstack-tox-py39 - pbr-installation-openstack - pbr-installation-openstack-pip-dev - tempest-full: diff --git a/AUTHORS b/AUTHORS index 9587345..eb2fe0d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -143,6 +143,7 @@ cbjchen@cn.ibm.com dineshbhor jiansong lifeless +manchandavishal melanie witt melissaml nizam diff --git a/ChangeLog b/ChangeLog index 84c9827..4bcee12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,15 @@ CHANGES ======= +5.7.0 +----- + +* Add a PEP517 interface +* PBR package testing improvements +* Run python3.9 test jobs +* Retire django-openstack-auth +* Correct comment for 'D1\_D2\_SETUP\_ARGS' + 5.6.0 ----- diff --git a/PKG-INFO b/PKG-INFO index 8efb07a..c23308d 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pbr -Version: 5.6.0 +Version: 5.7.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 b9659d0..7070e01 100644 --- a/doc/source/user/using.rst +++ b/doc/source/user/using.rst @@ -34,6 +34,18 @@ something like this:: While one can pass any arguments supported by setuptools to ``setup()``, any conflicting arguments supplied in ``setup.cfg`` will take precedence. +``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``. +Your build-system block in ``pyproject.toml`` will need to look something +like this:: + + [build-system] + requires = ["pbr>=5.7.0", "setuptools>=36.6.0", "wheel"] + build-backend = "pbr.build" + .. _setup_cfg: ``setup.cfg`` diff --git a/pbr.egg-info/PKG-INFO b/pbr.egg-info/PKG-INFO index 8efb07a..c23308d 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.6.0 +Version: 5.7.0 Summary: Python Build Reasonableness Home-page: https://docs.openstack.org/pbr/latest/ Author: OpenStack diff --git a/pbr.egg-info/SOURCES.txt b/pbr.egg-info/SOURCES.txt index 2fbcb1d..ed0daa2 100644 --- a/pbr.egg-info/SOURCES.txt +++ b/pbr.egg-info/SOURCES.txt @@ -8,6 +8,7 @@ CONTRIBUTING.rst ChangeLog LICENSE README.rst +pyproject.toml.future setup.cfg setup.py test-requirements.txt @@ -26,6 +27,7 @@ doc/source/user/releasenotes.rst doc/source/user/semver.rst doc/source/user/using.rst pbr/__init__.py +pbr/build.py pbr/builddoc.py pbr/core.py pbr/extra_files.py @@ -102,6 +104,7 @@ releasenotes/notes/fix-keywords-as-cfg-list-6cadc5141429d7f5.yaml releasenotes/notes/fix-mapping-value-explode-with-equal-sign-41bf822fa4dd0e68.yaml releasenotes/notes/ignore-find-links-07cf54f465aa33a6.yaml releasenotes/notes/long-descr-content-type-f9a1003acbb8740f.yaml +releasenotes/notes/pep517-support-89189ce0bab15845.yaml releasenotes/notes/remove-command-hooks-907d9c2325f306ca.yaml releasenotes/notes/support-vcs-uris-with-subdirectories-20ad68b6138f72ca.yaml releasenotes/notes/use_2to3-removal-ac48bf9fbfa049b1.yaml diff --git a/pbr/build.py b/pbr/build.py new file mode 100644 index 0000000..a5355e1 --- /dev/null +++ b/pbr/build.py @@ -0,0 +1,61 @@ +# Copyright 2021 Monty Taylor +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""pep-517 support + +Add:: + + [build-system] + requires = ["pbr>=5.7.0", "setuptools>=36.6.0", "wheel"] + build-backend = "pbr.build" + +to pyproject.toml to use this +""" + +from setuptools import build_meta + +__all__ = [ + 'get_requires_for_build_sdist', + 'get_requires_for_build_wheel', + 'prepare_metadata_for_build_wheel', + 'build_wheel', + 'build_sdist', +] + + +def get_requires_for_build_wheel(config_settings=None): + return build_meta.get_requires_for_build_wheel(config_settings) + + +def get_requires_for_build_sdist(config_settings=None): + return build_meta.get_requires_for_build_sdist(config_settings) + + +def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None): + return build_meta.prepare_metadata_for_build_wheel( + metadata_directory, config_settings) + + +def build_wheel( + wheel_directory, + config_settings=None, + metadata_directory=None, +): + return build_meta.build_wheel( + wheel_directory, config_settings, metadata_directory, + ) + + +def build_sdist(sdist_directory, config_settings=None): + return build_meta.build_sdist(sdist_directory, config_settings) diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py index 9e95a86..7d55d54 100644 --- a/pbr/tests/test_packaging.py +++ b/pbr/tests/test_packaging.py @@ -172,11 +172,10 @@ class Venv(fixtures.Fixture): """ self._reason = reason if modules == (): - pbr = 'file://%s#egg=pbr' % PBR_ROOT - modules = ['pip', 'wheel', pbr] + modules = ['pip', 'wheel', 'build', PBR_ROOT] self.modules = modules if pip_cmd is None: - self.pip_cmd = ['-m', 'pip', 'install'] + self.pip_cmd = ['-m', 'pip', '-v', 'install'] else: self.pip_cmd = pip_cmd @@ -230,6 +229,9 @@ 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): @@ -920,6 +922,56 @@ class TestRequirementParsing(base.BaseTestCase): self.assertEqual(exp_parsed, gen_parsed) +class TestPEP517Support(base.BaseTestCase): + def test_pep_517_support(self): + pkgs = { + 'test_pep517': + { + 'requirements.txt': textwrap.dedent("""\ + sphinx + iso8601 + """), + # Override no setup.py. + 'setup.py': '', + 'setup.cfg': textwrap.dedent("""\ + [metadata] + name = test_pep517 + summary = A tiny test project + author = PBR Team + author-email = foo@example.com + home-page = https://example.com/ + classifier = + Intended Audience :: Information Technology + Intended Audience :: System Administrators + License :: OSI Approved :: Apache Software License + Operating System :: POSIX :: Linux + Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + """), + 'pyproject.toml': textwrap.dedent("""\ + [build-system] + requires = ["pbr", "setuptools>=36.6.0", "wheel"] + build-backend = "pbr.build" + """)}, + } + pkg_dirs = self.useFixture(CreatePackages(pkgs)).package_dirs + pkg_dir = pkg_dirs['test_pep517'] + venv = self.useFixture(Venv('PEP517')) + + # Test building sdists and wheels works. Note we do not use pip here + # because pip will forcefully install the latest version of PBR on + # pypi to satisfy the build-system requires. This means we can't self + # test changes using pip. Build with --no-isolation appears to avoid + # this problem. + self._run_cmd(venv.python, ('-m', 'build', '--no-isolation', '.'), + allow_fail=False, cwd=pkg_dir) + + class TestRepositoryURLDependencies(base.BaseTestCase): def setUp(self): diff --git a/pbr/util.py b/pbr/util.py index 75a7ebb..0669a24 100644 --- a/pbr/util.py +++ b/pbr/util.py @@ -88,10 +88,8 @@ import pbr.hooks # predicates in () _VERSION_SPEC_RE = re.compile(r'\s*(.*?)\s*\((.*)\)\s*$') - -# Mappings from setup() keyword arguments to setup.cfg options; -# The values are (section, option) tuples, or simply (section,) tuples if -# the option has the same name as the setup() argument +# Mappings from setup.cfg options, in (section, option) form, to setup() +# keyword arguments CFG_TO_PY_SETUP_ARGS = ( (('metadata', 'name'), 'name'), (('metadata', 'version'), 'version'), diff --git a/pyproject.toml.future b/pyproject.toml.future new file mode 100644 index 0000000..1989dfd --- /dev/null +++ b/pyproject.toml.future @@ -0,0 +1,9 @@ +# PBR doesn't use the pyproject.toml interface internally yet as +# fixing issues in the system will be difficult if PBR itself +# depends on it. We will put this file into place at pyproject.toml +# once we are more confident it works generally. + +[build-system] +requires = ["setuptools>=36.6.0", "wheel"] +build-backend = "pbr.build" +backend-path = ["."] diff --git a/releasenotes/notes/pep517-support-89189ce0bab15845.yaml b/releasenotes/notes/pep517-support-89189ce0bab15845.yaml new file mode 100644 index 0000000..97ab28b --- /dev/null +++ b/releasenotes/notes/pep517-support-89189ce0bab15845.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + PBR now includes a PEP 517 build-backend and can be used in + pyproject.toml build-system configuration. Setuptools continues + to be the underlying mechanism with PBR acting as a driver via + PEP 517 entrypoints.