Hello community,

here is the log from the commit of package python-node-semver for 
openSUSE:Factory checked in at 2018-10-12 13:10:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-node-semver (Old)
 and      /work/SRC/openSUSE:Factory/.python-node-semver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-node-semver"

Fri Oct 12 13:10:56 2018 rev:3 rq:641274 version:0.4.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-node-semver/python-node-semver.changes    
2018-02-09 15:53:04.535475659 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-node-semver.new/python-node-semver.changes   
    2018-10-12 13:11:00.435273033 +0200
@@ -1,0 +2,7 @@
+Thu Oct 11 13:33:36 UTC 2018 - Martin Pluskal <[email protected]>
+
+- Update to version 0.4.2:
+  * fix bug for support 4-digit (handling prelease and build)
+  * suport 4-digit version (e.g. x.y.z.a)
+
+-------------------------------------------------------------------

Old:
----
  python-node-semver-0.3.0.tar.gz

New:
----
  python-node-semver-0.4.2.tar.gz

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

Other differences:
------------------
++++++ python-node-semver.spec ++++++
--- /var/tmp/diff_new_pack.RyoyJj/_old  2018-10-12 13:11:00.883272397 +0200
+++ /var/tmp/diff_new_pack.RyoyJj/_new  2018-10-12 13:11:00.883272397 +0200
@@ -12,14 +12,14 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %define skip_python2 1
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-node-semver
-Version:        0.3.0
+Version:        0.4.2
 Release:        0
 Summary:        Port of node-semver
 License:        MIT
@@ -51,7 +51,8 @@
 %python_exec setup.py test
 
 %files %{python_files}
-%doc LICENSE README.rst
+%license LICENSE
+%doc README.rst
 %{python_sitelib}/*
 
 %changelog

++++++ python-node-semver-0.3.0.tar.gz -> python-node-semver-0.4.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/.eggs/README.txt 
new/python-semver-0.4.2/.eggs/README.txt
--- old/python-semver-0.3.0/.eggs/README.txt    2018-01-13 04:53:03.000000000 
+0100
+++ new/python-semver-0.4.2/.eggs/README.txt    1970-01-01 01:00:00.000000000 
+0100
@@ -1,6 +0,0 @@
-This directory contains eggs that were downloaded by setuptools to build, 
test, and run plug-ins.
-
-This directory caches those eggs to prevent repeated downloads.
-
-However, it is safe to delete this directory.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/.travis.yml 
new/python-semver-0.4.2/.travis.yml
--- old/python-semver-0.3.0/.travis.yml 2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.4.2/.travis.yml 2018-09-28 20:10:19.000000000 +0200
@@ -7,7 +7,7 @@
   - "nightly"
 # command to install dependencies
 install:
-  - pip install
+  - pip install -e .
 # command to run tests
 script:
   - pytest # or py.test for Python versions 3.5 and below
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/CHANGES.txt 
new/python-semver-0.4.2/CHANGES.txt
--- old/python-semver-0.3.0/CHANGES.txt 2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.4.2/CHANGES.txt 2018-09-28 20:10:19.000000000 +0200
@@ -1,3 +1,11 @@
+0.4.2
+
+- fix bug for support 4-digit (handling prelease and build)
+
+0.4.0
+
+- suport 4-digit version (e.g. x.y.z.a)
+
 0.3.0
 
 - drop python2.x support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/semver/__init__.py 
new/python-semver-0.4.2/semver/__init__.py
--- old/python-semver-0.3.0/semver/__init__.py  2018-01-13 04:53:03.000000000 
+0100
+++ new/python-semver-0.4.2/semver/__init__.py  2018-09-28 20:10:19.000000000 
+0200
@@ -278,7 +278,7 @@
         return None
 
 
-NUMERIC = re.compile("^\d+$")
+NUMERIC = re.compile(r"^\d+$")
 
 
 def semver(version, loose):
@@ -305,6 +305,8 @@
         logger.debug("SemVer %s, %s", version, loose)
         self.loose = loose
         self.raw = version
+        self.micro_versions = []
+        self.build = []
 
         m = regexp[LOOSE if loose else FULL].search(version.strip())
         if not m:
@@ -315,7 +317,29 @@
             self.minor = int(m.group(2)) if m.group(2) else 0
             self.patch = 0
             if not m.group(3):
-                self.prerelease = []
+                # this is not same behaviour  node's semver (see: 
https://github.com/podhmo/python-semver/issues/15)
+                self.prerelease = [id for id in 
version.strip()[m.end():].split(".") if id]
+                if self.prerelease and NUMERIC.search(self.prerelease[0]):
+                    self.patch = int(self.prerelease[0])
+                    self.prerelease = self.prerelease[1:]
+
+                prerelease = []
+                for id in self.prerelease:
+                    if "-" in id:
+                        other = prerelease
+                        ks = id.split("-")
+                    elif "+" in id:
+                        other = self.build
+                        ks = id.split("+")
+                    else:
+                        ks = [id]
+                    for k in ks:
+                        if NUMERIC.search(k):
+                            self.micro_versions.append(int(k))
+                        else:
+                            other.append(k)
+                self.prerelease = prerelease
+                self.prerelease = [(int(id) if NUMERIC.search(id) else id)for 
id in self.prerelease]
             else:
                 self.prerelease = [(int(id) if NUMERIC.search(id) else id)
                                    for id in m.group(3).split(".")]
@@ -333,8 +357,6 @@
                                    for id in m.group(4).split(".")]
             if m.group(5):
                 self.build = m.group(5).split(".")
-            else:
-                self.build = []
 
         self.format()  # xxx:
 
@@ -342,6 +364,8 @@
         self.version = "{}.{}.{}".format(self.major, self.minor, self.patch)
         if len(self.prerelease) > 0:
             self.version += ("-{}".format(".".join(str(v) for v in 
self.prerelease)))
+        elif self.micro_versions:
+            self.version += ".{}".format(".".join(str(v) for v in 
self.micro_versions))
         return self.version
 
     def __repr__(self):
@@ -554,6 +578,8 @@
     def key_function(version):
         v = make_semver(version, loose)
         key = (v.major, v.minor, v.patch)
+        if v.micro_versions:
+            key = key + v.micro_versions
         if v.prerelease:
             key = key + (0,) + tuple(_prerelease_key(
                 v.prerelease))
@@ -744,7 +770,7 @@
         range_ = regexp[CARETTRIM].sub(caretTrimReplace, range_)
 
         #  normalize spaces
-        range_ = " ".join(re.split("\s+", range_))
+        range_ = " ".join(re.split(r"\s+", range_))
 
         #  At this point, the range is completely trimmed and
         #  ready to be split into comparators.
@@ -752,7 +778,7 @@
             comp_re = regexp[COMPARATORLOOSE]
         else:
             comp_re = regexp[COMPARATOR]
-        set_ = re.split("\s+", ' '.join([parse_comparator(comp, loose) for 
comp in range_.split(" ")]))
+        set_ = re.split(r"\s+", ' '.join([parse_comparator(comp, loose) for 
comp in range_.split(" ")]))
         if self.loose:
             # in loose mode, throw out any that are not valid comparators
             set_ = [comp for comp in set_ if comp_re.search(comp)]
@@ -808,7 +834,7 @@
 
 def replace_tildes(comp, loose):
     return " ".join([replace_tilde(c, loose)
-                     for c in re.split("\s+", comp.strip())])
+                     for c in re.split(r"\s+", comp.strip())])
 
 
 def replace_tilde(comp, loose):
@@ -849,7 +875,7 @@
 #  ^1.2.0 --> >=1.2.0 <2.0.0
 def replace_carets(comp, loose):
     return " ".join([replace_caret(c, loose)
-                     for c in re.split("\s+", comp.strip())])
+                     for c in re.split(r"\s+", comp.strip())])
 
 
 def replace_caret(comp, loose):
@@ -900,7 +926,7 @@
 def replace_xranges(comp, loose):
     logger.debug('replaceXRanges %s %s', comp, loose)
     return " ".join([replace_xrange(c, loose)
-                     for c in re.split("\s+", comp.strip())])
+                     for c in re.split(r"\s+", comp.strip())])
 
 
 def replace_xrange(comp, loose):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/semver/tests/test_for_4digit.py 
new/python-semver-0.4.2/semver/tests/test_for_4digit.py
--- old/python-semver-0.3.0/semver/tests/test_for_4digit.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/python-semver-0.4.2/semver/tests/test_for_4digit.py     2018-09-28 
20:10:19.000000000 +0200
@@ -0,0 +1,109 @@
+# https://github.com/podhmo/python-semver/issues/15
+import pytest
+
+cands = [
+    (
+        "4.1.3", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": [],
+            "micro_versions": [],
+        }
+    ),
+    (
+        "4.1.3+jenkins", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": ["jenkins"],
+            "micro_versions": [],
+        }
+    ),
+    (
+        "4.1.3-pre", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": [],
+            "micro_versions": [],
+        }
+    ),
+    # 4-digit
+    (
+        "4.1.3.2", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": [],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2+jenkins", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": ["jenkins"],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2-pre", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": [],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2-pre2", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre2"],
+            "build": [],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2-pre.2", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": [],
+            "micro_versions": [2, 2],
+        }
+    ),
+    (
+        "4.1.3.2-pre.2+xxx", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": ["xxx"],
+            "micro_versions": [2, 2],
+        }
+    ),
+]
+
+
[email protected]("v, loose, expected", cands)
+def test_parse(v, loose, expected):
+    from semver import make_semver
+    got = make_semver(v, loose=loose)
+    assert got.raw == v
+    assert got.major == expected["major"]
+    assert got.minor == expected["minor"]
+    assert got.patch == expected["patch"]
+    assert got.prerelease == expected["prerelease"]
+    assert got.build == expected["build"]
+    assert got.micro_versions == expected["micro_versions"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/setup.py 
new/python-semver-0.4.2/setup.py
--- old/python-semver-0.3.0/setup.py    2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.4.2/setup.py    2018-09-28 20:10:19.000000000 +0200
@@ -36,7 +36,7 @@
 
 setup(
     name='node-semver',
-    version='0.3.0',
+    version='0.4.2',
     description='port of node-semver',
     long_description=README + '\n\n' + CHANGES,
     classifiers=[


Reply via email to