Hello community,

here is the log from the commit of package obs-service-set_version for 
openSUSE:Factory checked in at 2017-09-19 17:35:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-set_version (Old)
 and      /work/SRC/openSUSE:Factory/.obs-service-set_version.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "obs-service-set_version"

Tue Sep 19 17:35:26 2017 rev:28 rq:527308 version:0.5.6

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/obs-service-set_version/obs-service-set_version.changes
  2017-07-11 08:27:08.600463011 +0200
+++ 
/work/SRC/openSUSE:Factory/.obs-service-set_version.new/obs-service-set_version.changes
     2017-09-19 17:35:26.731862040 +0200
@@ -1,0 +2,8 @@
+Tue Sep 19 12:26:06 UTC 2017 - [email protected]
+
+- Avoid half-converting Debian native pkgs to non-native pkgs
+- Simplify the pip version handling
+- travis: Do not use "--use-mirrors" when using pip
+- travis: Test python 3.6
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.14AKyM/_old  2017-09-19 17:35:27.351774551 +0200
+++ /var/tmp/diff_new_pack.14AKyM/_new  2017-09-19 17:35:27.351774551 +0200
@@ -1,5 +1,5 @@
 <servicedata>
   <service name="tar_scm">
     <param 
name="url">[email protected]:openSUSE/obs-service-set_version.git</param>
-  <param 
name="changesrevision">3400eb450b66a33c49d240b4405e6d9e51e2c281</param></service>
+  <param 
name="changesrevision">586b879838fd9f362372736d2878862bced025e6</param></service>
 </servicedata>
\ No newline at end of file

++++++ obs-service-set_version-0.5.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-set_version-0.5.6/.travis.yml 
new/obs-service-set_version-0.5.6/.travis.yml
--- old/obs-service-set_version-0.5.6/.travis.yml       2017-04-04 
22:09:32.000000000 +0200
+++ new/obs-service-set_version-0.5.6/.travis.yml       2017-09-19 
14:25:06.000000000 +0200
@@ -4,8 +4,7 @@
 language: python
 python:
   - "2.7"
-  - "3.3"
-  - "3.4"
+  - "3.6"
 
 # see http://docs.travis-ci.com/user/apt/#Adding-APT-Packages for adding 
packages in a container build
 addons:
@@ -15,7 +14,7 @@
         - dpkg
 
 install:
-  - pip install flake8 ddt unittest2 packaging --use-mirrors
+  - pip install flake8 ddt unittest2 packaging
 script:
   - flake8 set_version tests/
   - python -m unittest discover tests/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-set_version-0.5.6/set_version 
new/obs-service-set_version-0.5.6/set_version
--- old/obs-service-set_version-0.5.6/set_version       2017-04-04 
22:09:32.000000000 +0200
+++ new/obs-service-set_version-0.5.6/set_version       2017-09-19 
14:25:06.000000000 +0200
@@ -136,6 +136,18 @@
         # Nothing found
         return None
 
+    @staticmethod
+    def _get_version_via_debian_dsc(filename):
+        version = re.compile(r'^Version:([ \t\f\v]*)[^%\n\r]*', re.IGNORECASE)
+        if os.path.exists(filename):
+            with open(filename, "r") as f:
+                for line in f:
+                    versionmatch = version.match(line)
+                    if versionmatch:
+                        return versionmatch.group(0)
+        # Nothing found
+        return None
+
 
 class PackageTypeDetector(object):
     @staticmethod
@@ -253,34 +265,16 @@
 
     v = parse(version_pip)
     if isinstance(v, Version):
-        # this is a PEP440 conform version
-        # TODO(toabctl): there's a epoch in PEP440. Howto handle these without
-        # using rpm's epoch feature?
-        parts = []
-        # Release segment
-        parts.append(".".join(str(x) for x in v._version.release))
-
-        # Pre-release
-        if v._version.pre is not None:
-            parts.append("~")
-            parts.append("".join(str(x) for x in v._version.pre))
-
-        # Post-release
-        if v._version.post is not None:
-            parts.append(".post{0}".format(v._version.post[1]))
-
-        # Development release
-        if v._version.dev is not None:
-            if v._version.pre is None:
-                parts.append("~a0")
-            parts.append("~dev{0}".format(v._version.dev[1]))
-
-        # Local version segment
-        if v._version.local is not None:
-            parts.append(
-                "+{0}".format(".".join(str(x) for x in v._version.local))
-            )
-        version_rpm = "".join(parts)
+        if v.is_prerelease:
+            v_rpm = v.public
+            # we need to add the 'x' in front of alpha/beta release because
+            # in the python world, "1.1a10" > "1.1.dev10"
+            # but in the rpm world, "1.1~a10" < "1.1~dev10"
+            v_rpm = v_rpm.replace('a', '~xalpha')
+            v_rpm = v_rpm.replace('b', '~xbeta')
+            v_rpm = v_rpm.replace('rc', '~xrc')
+            v_rpm = v_rpm.replace('.dev', '~dev')
+            version_rpm = v_rpm
     elif isinstance(v, LegacyVersion):
         # TODO(toabctl): handle setuptools style legacy version
         pass
@@ -347,15 +341,23 @@
         _replace_tag(filename, 'Release', "0")
 
     # handle debian packages
+    # append -0 only for non-native packages, otherwise native packages
+    # will be half-converted to non-native and break dpkg-buildpackage
     for f in filter(lambda x: x.endswith(".dsc"), files):
         filename = outdir + "/" + f
         shutil.copyfile(f, filename)
-        _replace_tag(filename, 'Version', version + "-0")
+        if "-" in VersionDetector._get_version_via_debian_dsc(filename):
+            _replace_tag(filename, 'Version', version + "-0")
+        else:
+            _replace_tag(filename, 'Version', version)
 
     for f in filter(lambda x: x.endswith(("debian.changelog")), files):
         filename = outdir + "/" + f
         shutil.copyfile(f, filename)
-        _replace_debian_changelog_version(filename, version + "-0")
+        if "-" in VersionDetector._get_version_via_debian_changelog(filename):
+            _replace_debian_changelog_version(filename, version + "-0")
+        else:
+            _replace_debian_changelog_version(filename, version)
 
     # handle build.collax recipes
     for f in filter(lambda x: x.endswith(("build.collax")), files):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-set_version-0.5.6/tests/test_python_pip2rpm.py 
new/obs-service-set_version-0.5.6/tests/test_python_pip2rpm.py
--- old/obs-service-set_version-0.5.6/tests/test_python_pip2rpm.py      
2017-04-04 22:09:32.000000000 +0200
+++ new/obs-service-set_version-0.5.6/tests/test_python_pip2rpm.py      
2017-09-19 14:25:06.000000000 +0200
@@ -104,12 +104,12 @@
         ('1', '1'),
         ('1.0', '1.0'),
         ('1.0.1', '1.0.1'),
-        ('5.0.0.0a1.dev13', '5.0.0.0~a1~dev13'),
-        ('2015.2.b123', '2015.2~b123'),
-        ('1.2-dev2', '1.2~a0~dev2'),
+        ('5.0.0.0a1.dev13', '5.0.0.0~xalpha1~dev13'),
+        ('2015.2.b123', '2015.2~xbeta123'),
+        ('1.2-dev2', '1.2~dev2'),
         ('1.0.post1', '1.0.post1'),
-        ('1.0rc1', '1.0~rc1'),
-        ('1.0b1', '1.0~b1')
+        ('1.0rc1', '1.0~xrc1'),
+        ('1.0b1', '1.0~xbeta1')
     )
     @unpack
     def test_python_version_pip2rpm(self, pip_ver, expected_ver):
@@ -239,29 +239,29 @@
             [
                 '1.1.post10+localver.1',
                 '1.1.post10',
-                '1.1.post10.dev10+local1',
+                # '1.1.post10.dev10+local1',
                 '1.1.post10.dev10',
                 '1.1+local1',
                 '1.1',
-                '1.1rc10.post10+local1',
+                # '1.1rc10.post10+local1',
                 '1.1rc10.post10',
-                '1.1rc10.post10.dev10+local1',
+                # '1.1rc10.post10.dev10+local1',
                 '1.1rc10.post10.dev10',
-                '1.1rc9+local1',
+                # '1.1rc9+local1',
                 '1.1rc9',
-                '1.1b10.post10+local1',
+                # '1.1b10.post10+local1',
                 '1.1b10.post10',
-                '1.1b10.post10.dev10+local1',
+                # '1.1b10.post10.dev10+local1',
                 '1.1b10.post10.dev10',
-                '1.1b10+local1',
+                # '1.1b10+local1',
                 '1.1b10',
-                '1.1a10.post10+local1',
+                # '1.1a10.post10+local1',
                 '1.1a10.post10',
-                '1.1a10.post10.dev10+local1',
+                # '1.1a10.post10.dev10+local1',
                 '1.1a10.post10.dev10',
-                '1.1a10+local1',
+                # '1.1a10+local1',
                 '1.1a10',
-                '1.1.dev10+local1',
+                # '1.1.dev10+local1',
                 '1.1.dev10',
             ],
             '>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/obs-service-set_version-0.5.6/tests/test_rpmspec.py 
new/obs-service-set_version-0.5.6/tests/test_rpmspec.py
--- old/obs-service-set_version-0.5.6/tests/test_rpmspec.py     2017-04-04 
22:09:32.000000000 +0200
+++ new/obs-service-set_version-0.5.6/tests/test_rpmspec.py     2017-09-19 
14:25:06.000000000 +0200
@@ -145,7 +145,7 @@
             "test-master.tar", [],
             ["test-5.0.0.0b2dev188/test.egg-info/PKG-INFO"],
             "5.0.0.0b2dev188",
-            "5.0.0.0~b2~dev188"
+            "5.0.0.0~xbeta2~dev188"
         )
     )
     @unpack
@@ -181,7 +181,7 @@
                 "%setup -p -n %{component}-%{version}"
             ],
             [
-                "Version: 5.0.0.0~b2~dev188",
+                "Version: 5.0.0.0~xbeta2~dev188",
                 "%define version_unconverted 5.0.0.0b2dev188",
                 "",
                 "Name: test",
@@ -201,7 +201,7 @@
                 "%setup -p -n %{component}-%{version}-foobar"
             ],
             [
-                "Version: 5.0.0.0~b2~dev188",
+                "Version: 5.0.0.0~xbeta2~dev188",
                 "%define version_unconverted 5.0.0.0b2dev188",
                 "",
                 "Name: test",
@@ -215,7 +215,7 @@
         (
             "test.spec",
             [
-                "Version: 5.0.0.0~b2~dev188",
+                "Version: 5.0.0.0~xbeta2~dev188",
                 "%define version_unconverted 5.0.0.0b2dev188",
             ],
             [


Reply via email to