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=[