commit python-pbr for openSUSE:Factory
Hello community, here is the log from the commit of package python-pbr for openSUSE:Factory checked in at 2019-08-09 16:49:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pbr (Old) and /work/SRC/openSUSE:Factory/.python-pbr.new.9556 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-pbr" Fri Aug 9 16:49:32 2019 rev:49 rq:721839 version:5.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pbr/python-pbr.changes 2019-07-28 10:17:35.080600026 +0200 +++ /work/SRC/openSUSE:Factory/.python-pbr.new.9556/python-pbr.changes 2019-08-09 16:49:37.353507919 +0200 @@ -1,0 +2,6 @@ +Thu Aug 8 15:30:36 UTC 2019 - Thomas Bechtold <tbechtold@suse.com> + +- update to 5.4.2: + * Add Python 3 Train unit tests + +------------------------------------------------------------------- Old: ---- pbr-5.4.1.tar.gz New: ---- pbr-5.4.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pbr.spec ++++++ --- /var/tmp/diff_new_pack.FcGdua/_old 2019-08-09 16:49:37.845507920 +0200 +++ /var/tmp/diff_new_pack.FcGdua/_new 2019-08-09 16:49:37.849507920 +0200 @@ -26,7 +26,7 @@ %bcond_with test %endif Name: python-pbr%{psuffix} -Version: 5.4.1 +Version: 5.4.2 Release: 0 Summary: Python Build Reasonableness License: Apache-2.0 ++++++ pbr-5.4.1.tar.gz -> pbr-5.4.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/.zuul.yaml new/pbr-5.4.2/.zuul.yaml --- old/pbr-5.4.1/.zuul.yaml 2019-07-18 04:38:24.000000000 +0200 +++ new/pbr-5.4.2/.zuul.yaml 2019-08-05 11:29:54.000000000 +0200 @@ -110,8 +110,7 @@ - openstack-lower-constraints-jobs - openstack-python-jobs - openstack-python35-jobs - - openstack-python36-jobs - - openstack-python37-jobs + - openstack-python3-train-jobs - periodic-stable-jobs - publish-openstack-docs-pti check: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/ChangeLog new/pbr-5.4.2/ChangeLog --- old/pbr-5.4.1/ChangeLog 2019-07-18 04:39:01.000000000 +0200 +++ new/pbr-5.4.2/ChangeLog 2019-08-05 11:31:23.000000000 +0200 @@ -1,9 +1,15 @@ CHANGES ======= +5.4.2 +----- + +* Add Python 3 Train unit tests + 5.4.1 ----- +* Fix parsing on egg names with dashes from git URLs 5.4.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/PKG-INFO new/pbr-5.4.2/PKG-INFO --- old/pbr-5.4.1/PKG-INFO 2019-07-18 04:39:01.000000000 +0200 +++ new/pbr-5.4.2/PKG-INFO 2019-08-05 11:31:23.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pbr -Version: 5.4.1 +Version: 5.4.2 Summary: Python Build Reasonableness Home-page: https://docs.openstack.org/pbr/latest/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/pbr/packaging.py new/pbr-5.4.2/pbr/packaging.py --- old/pbr-5.4.1/pbr/packaging.py 2019-07-18 04:38:21.000000000 +0200 +++ new/pbr-5.4.2/pbr/packaging.py 2019-08-05 11:29:54.000000000 +0200 @@ -22,6 +22,16 @@ from distutils.command import install as du_install from distutils import log + +# (hberaud) do not use six here to import urlparse +# to keep this module free from external dependencies +# to avoid cross dependencies errors on minimal system +# free from dependencies. +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse + import email import email.errors import os @@ -98,19 +108,31 @@ return [] +def egg_fragment(match): + return re.sub(r'(?P<PackageName>[\w.-]+)-' + '(?P<GlobalVersion>' + '(?P<VersionTripple>' + '(?P<Major>0|[1-9][0-9]*)\.' + '(?P<Minor>0|[1-9][0-9]*)\.' + '(?P<Patch>0|[1-9][0-9]*)){1}' + '(?P<Tags>(?:\-' + '(?P<Prerelease>(?:(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|' + '(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|' + '(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)(?:[0-9A-Za-z-]+)){1}' + '(?:\.(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|' + '\.(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|' + '\.(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)' + '(?:[0-9A-Za-z-]+))*){1}){0,1}(?:\+' + '(?P<Meta>(?:[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))){0,1}))', + r'\g<PackageName>>=\g<GlobalVersion>', + match.groups()[-1]) + + def parse_requirements(requirements_files=None, strip_markers=False): if requirements_files is None: requirements_files = get_requirements_files() - def egg_fragment(match): - # take a versioned egg fragment and return a - # versioned package requirement e.g. - # nova-1.2.3 becomes nova>=1.2.3 - return re.sub(r'([\w.]+)-([\w.-]+)', - r'\1>=\2', - match.groups()[-1]) - requirements = [] for line in get_reqs_from_files(requirements_files): # Ignore comments @@ -141,16 +163,19 @@ # -e git://github.com/openstack/nova/master#egg=nova # -e git://github.com/openstack/nova/master#egg=nova-1.2.3 # -e git+https://foo.com/zipball#egg=bar&subdirectory=baz - if re.match(r'\s*-e\s+', line): - line = re.sub(r'\s*-e\s+.*#egg=([^&]+).*$', egg_fragment, line) - # such as: # http://github.com/openstack/nova/zipball/master#egg=nova # http://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 # git+https://foo.com/zipball#egg=bar&subdirectory=baz - elif re.match(r'\s*(https?|git(\+(https|ssh))?):', line): - line = re.sub(r'\s*(https?|git(\+(https|ssh))?):.*#egg=([^&]+).*$', - egg_fragment, line) + # git+[ssh]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 + # hg+[ssh]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 + # svn+[proto]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 # -f lines are for index locations, and don't get used here + if re.match(r'\s*-e\s+', line): + extract = re.match(r'\s*-e\s+(.*)$', line) + line = extract.group(1) + egg = urlparse(line) + if egg.scheme: + line = re.sub(r'egg=([^&]+).*$', egg_fragment, egg.fragment) elif re.match(r'\s*-f\s+', line): line = None reason = 'Index Location' @@ -184,7 +209,7 @@ if re.match(r'\s*-[ef]\s+', line): dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) # lines that are only urls can go in unmolested - elif re.match(r'\s*(https?|git(\+(https|ssh))?):', line): + elif re.match(r'^\s*(https?|git(\+(https|ssh))?|svn|hg)\S*:', line): dependency_links.append(line) return dependency_links diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/pbr/tests/test_packaging.py new/pbr-5.4.2/pbr/tests/test_packaging.py --- old/pbr-5.4.1/pbr/tests/test_packaging.py 2019-07-18 04:38:21.000000000 +0200 +++ new/pbr-5.4.2/pbr/tests/test_packaging.py 2019-08-05 11:29:54.000000000 +0200 @@ -918,6 +918,179 @@ self.assertEqual(exp_parsed, gen_parsed) +class TestRepositoryURLDependencies(base.BaseTestCase): + + def setUp(self): + super(TestRepositoryURLDependencies, self).setUp() + self.requirements = os.path.join(tempfile.mkdtemp(), + 'requirements.txt') + with open(self.requirements, 'w') as f: + f.write('\n'.join([ + '-e git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rc', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-beta', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123', # noqa + '-e git+git://git.project.org/Proj#egg=Proj1', + 'git+https://git.project.org/Proj#egg=Proj2-0.0.1', + '-e git+ssh://git.project.org/Proj#egg=Proj3', + 'svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2', + '-e svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5', + 'hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3', + '-e hg+http://hg.project.org/Proj@2019#egg=Proj', + 'hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4', + '-e hg+http://hg.project.org/Proj@special_feature#egg=Proj', + 'git://foo.com/zipball#egg=foo-bar-1.2.4', + 'pypi-proj1', 'pypi-proj2'])) + + def test_egg_fragment(self): + expected = [ + 'django-thumborize', + 'django-thumborize-beta', + 'django-thumborize2-beta', + 'django-thumborize2-beta>=4.0.1', + 'django-thumborize2-beta>=1.0.0-alpha.beta.1', + 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa + 'django-thumborize2-beta>=2.0.0-rc.1+build.123', + 'django-thumborize-beta>=0.0.4', + 'django-thumborize-beta>=1.2.3', + 'django-thumborize-beta>=10.20.30', + 'django-thumborize-beta>=1.1.2-prerelease+meta', + 'django-thumborize-beta>=1.1.2+meta', + 'django-thumborize-beta>=1.1.2+meta-valid', + 'django-thumborize-beta>=1.0.0-alpha', + 'django-thumborize-beta>=1.0.0-beta', + 'django-thumborize-beta>=1.0.0-alpha.beta', + 'django-thumborize-beta>=1.0.0-alpha.beta.1', + 'django-thumborize-beta>=1.0.0-alpha.1', + 'django-thumborize-beta>=1.0.0-alpha0.valid', + 'django-thumborize-beta>=1.0.0-alpha.0valid', + 'django-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'django-thumborize-beta>=1.0.0-rc.1+build.1', + 'django-thumborize-beta>=2.0.0-rc.1+build.123', + 'django-thumborize-beta>=1.2.3-beta', + 'django-thumborize-beta>=10.2.3-DEV-SNAPSHOT', + 'django-thumborize-beta>=1.2.3-SNAPSHOT-123', + 'django-thumborize-beta>=1.0.0', + 'django-thumborize-beta>=2.0.0', + 'django-thumborize-beta>=1.1.7', + 'django-thumborize-beta>=2.0.0+build.1848', + 'django-thumborize-beta>=2.0.1-alpha.1227', + 'django-thumborize-beta>=1.0.0-alpha+beta', + 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788', + 'django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+meta', + 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12', + 'django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1', + 'django-thumborize-beta>=999999999999999999.99999999999999.9999999999999', # noqa + 'Proj1', + 'Proj2>=0.0.1', + 'Proj3', + 'Proj4>=0.0.2', + 'Proj5', + 'Proj>=0.0.3', + 'Proj', + 'Proj>=0.0.4', + 'Proj', + 'foo-bar>=1.2.4', + ] + tests = [ + 'egg=django-thumborize', + 'egg=django-thumborize-beta', + 'egg=django-thumborize2-beta', + 'egg=django-thumborize2-beta-4.0.1', + 'egg=django-thumborize2-beta-1.0.0-alpha.beta.1', + 'egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa + 'egg=django-thumborize2-beta-2.0.0-rc.1+build.123', + 'egg=django-thumborize-beta-0.0.4', + 'egg=django-thumborize-beta-1.2.3', + 'egg=django-thumborize-beta-10.20.30', + 'egg=django-thumborize-beta-1.1.2-prerelease+meta', + 'egg=django-thumborize-beta-1.1.2+meta', + 'egg=django-thumborize-beta-1.1.2+meta-valid', + 'egg=django-thumborize-beta-1.0.0-alpha', + 'egg=django-thumborize-beta-1.0.0-beta', + 'egg=django-thumborize-beta-1.0.0-alpha.beta', + 'egg=django-thumborize-beta-1.0.0-alpha.beta.1', + 'egg=django-thumborize-beta-1.0.0-alpha.1', + 'egg=django-thumborize-beta-1.0.0-alpha0.valid', + 'egg=django-thumborize-beta-1.0.0-alpha.0valid', + 'egg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'egg=django-thumborize-beta-1.0.0-rc.1+build.1', + 'egg=django-thumborize-beta-2.0.0-rc.1+build.123', + 'egg=django-thumborize-beta-1.2.3-beta', + 'egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOT', + 'egg=django-thumborize-beta-1.2.3-SNAPSHOT-123', + 'egg=django-thumborize-beta-1.0.0', + 'egg=django-thumborize-beta-2.0.0', + 'egg=django-thumborize-beta-1.1.7', + 'egg=django-thumborize-beta-2.0.0+build.1848', + 'egg=django-thumborize-beta-2.0.1-alpha.1227', + 'egg=django-thumborize-beta-1.0.0-alpha+beta', + 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788', # noqa + 'egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+meta', + 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12', + 'egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1', # noqa + 'egg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999', # noqa + 'egg=Proj1', + 'egg=Proj2-0.0.1', + 'egg=Proj3', + 'egg=Proj4-0.0.2', + 'egg=Proj5', + 'egg=Proj-0.0.3', + 'egg=Proj', + 'egg=Proj-0.0.4', + 'egg=Proj', + 'egg=foo-bar-1.2.4', + ] + for index, test in enumerate(tests): + self.assertEqual(expected[index], + re.sub(r'egg=([^&]+).*$', + packaging.egg_fragment, + test)) + + def test_parse_repo_url_requirements(self): + result = packaging.parse_requirements([self.requirements]) + self.assertEqual(['oslo.messaging>=1.0.0-rc', + 'django-thumborize', + 'django-thumborize-beta', + 'django-thumborize2-beta', + 'django-thumborize2-beta>=4.0.1', + 'django-thumborize2-beta>=1.0.0-alpha.beta.1', + 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'django-thumborize2-beta>=2.0.0-rc.1+build.123', + 'Proj1', 'Proj2>=0.0.1', 'Proj3', + 'Proj4>=0.0.2', 'Proj5', 'Proj>=0.0.3', + 'Proj', 'Proj>=0.0.4', 'Proj', + 'foo-bar>=1.2.4', 'pypi-proj1', + 'pypi-proj2'], result) + + def test_parse_repo_url_dependency_links(self): + result = packaging.parse_dependency_links([self.requirements]) + self.assertEqual( + [ + 'git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rc', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-beta', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa + 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123', # noqa + 'git+git://git.project.org/Proj#egg=Proj1', + 'git+https://git.project.org/Proj#egg=Proj2-0.0.1', + 'git+ssh://git.project.org/Proj#egg=Proj3', + 'svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2', + 'svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5', + 'hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3', + 'hg+http://hg.project.org/Proj@2019#egg=Proj', + 'hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4', + 'hg+http://hg.project.org/Proj@special_feature#egg=Proj', + 'git://foo.com/zipball#egg=foo-bar-1.2.4'], result) + + def get_soabi(): soabi = None try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/pbr.egg-info/PKG-INFO new/pbr-5.4.2/pbr.egg-info/PKG-INFO --- old/pbr-5.4.1/pbr.egg-info/PKG-INFO 2019-07-18 04:39:01.000000000 +0200 +++ new/pbr-5.4.2/pbr.egg-info/PKG-INFO 2019-08-05 11:31:23.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pbr -Version: 5.4.1 +Version: 5.4.2 Summary: Python Build Reasonableness Home-page: https://docs.openstack.org/pbr/latest/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/tox.ini new/pbr-5.4.2/tox.ini --- old/pbr-5.4.1/tox.ini 2019-07-18 04:38:24.000000000 +0200 +++ new/pbr-5.4.2/tox.ini 2019-08-05 11:29:54.000000000 +0200 @@ -1,6 +1,6 @@ [tox] minversion = 3.1 -envlist = pep8,py27,py36,py37,docs +envlist = pep8,py27,py37,docs ignore_basepython_conflict = True [testenv]
participants (1)
-
root