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 <[email protected]>
+
+- 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/[email protected]#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/[email protected]#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]


Reply via email to