Hello community, here is the log from the commit of package python-node-semver for openSUSE:Factory checked in at 2020-03-30 23:05:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-node-semver (Old) and /work/SRC/openSUSE:Factory/.python-node-semver.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-node-semver" Mon Mar 30 23:05:46 2020 rev:7 rq:789761 version:0.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-node-semver/python-node-semver.changes 2019-10-07 14:14:27.678832954 +0200 +++ /work/SRC/openSUSE:Factory/.python-node-semver.new.3160/python-node-semver.changes 2020-03-30 23:05:55.604262765 +0200 @@ -1,0 +2,6 @@ +Mon Mar 30 10:49:12 UTC 2020 - [email protected] + +- version update to 0.8.0 + * handle 4-digit version correctly (#35) + +------------------------------------------------------------------- Old: ---- python-node-semver-0.7.0.tar.gz New: ---- python-node-semver-0.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-node-semver.spec ++++++ --- /var/tmp/diff_new_pack.6siPSQ/_old 2020-03-30 23:05:56.564263312 +0200 +++ /var/tmp/diff_new_pack.6siPSQ/_new 2020-03-30 23:05:56.568263315 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-node-semver # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define skip_python2 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-node-semver -Version: 0.7.0 +Version: 0.8.0 Release: 0 Summary: Port of node-semver License: MIT @@ -50,7 +50,7 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -%python_exec setup.py test +%pytest %files %{python_files} %license LICENSE ++++++ python-node-semver-0.7.0.tar.gz -> python-node-semver-0.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/CHANGES.txt new/python-semver-0.8.0/CHANGES.txt --- old/python-semver-0.7.0/CHANGES.txt 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/CHANGES.txt 2019-11-30 05:54:06.000000000 +0100 @@ -1,6 +1,10 @@ +0.8.0 + +- handle 4-digit version correctly (#35) + 0.7.0 -Include tests in source distributions (#31) +- include tests in source distributions (#31) 0.6.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/Makefile new/python-semver-0.8.0/Makefile --- old/python-semver-0.7.0/Makefile 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/Makefile 2019-11-30 05:54:06.000000000 +0100 @@ -1,9 +1,13 @@ -DST=README.rst -default: - echo semver > ${DST} - echo ================= >> ${DST} - echo "" >> ${DST} - echo "python version of [node-semver](https://github.com/isaacs/node-semver)" >> ${DST} - echo "" >> ${DST} - echo ".. code:: python\n" >> ${DST} - cat ./demo.py | gsed 's/^\(.\)/ \1/g' >> ${DST} +test: + python setup.py test + +# DST=README.rst +# SED=$(shell which gsed 2>/dev/null || which sed) +# default: +# echo semver > ${DST} +# echo ================= >> ${DST} +# echo "" >> ${DST} +# echo "python version of [node-semver](https://github.com/isaacs/node-semver)" >> ${DST} +# echo "" >> ${DST} +# echo ".. code:: python\n" >> ${DST} +# cat ./examples/readme.py | $(SED) 's/^\(.\)/ \1/g' >> ${DST} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/README.rst new/python-semver-0.8.0/README.rst --- old/python-semver-0.7.0/README.rst 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/README.rst 2019-11-30 05:54:06.000000000 +0100 @@ -18,7 +18,6 @@ .. code-block:: python - # -*- coding:utf-8 -*- from semver import max_satisfying versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6', '2.0.1'] @@ -38,4 +37,4 @@ versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6-pre.1', '2.0.1'] range_ = '~1.2.3' assert max_satisfying(versions, range_, loose=False, include_prerelease=True) == '1.2.6-pre.1' - assert max_satisfying(versions, range_, loose=False, include_prerelease=False) == '1.2.5' \ No newline at end of file + assert max_satisfying(versions, range_, loose=False, include_prerelease=False) == '1.2.5' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/semver/__init__.py new/python-semver-0.8.0/semver/__init__.py --- old/python-semver-0.7.0/semver/__init__.py 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/semver/__init__.py 2019-11-30 05:54:06.000000000 +0100 @@ -1,6 +1,7 @@ # -*- coding:utf-8 -*- import logging import re +from functools import cmp_to_key logger = logging.getLogger(__name__) @@ -391,7 +392,7 @@ logger.debug('SemVer.compare %s %s %s', self.version, self.loose, other) if not isinstance(other, SemVer): other = make_semver(other, self.loose) - result = self.compare_main(other) or self.compare_pre(other) + result = self.compare_main(other) or self.compare_pre(other) or self.compare_micro(other) logger.debug("compare result %s", result) return result @@ -435,6 +436,11 @@ else: return compare_identifiers(str(a), str(b)) + def compare_micro(self, other): + if self.micro_versions == other.micro_versions: + return 0 + return -1 if self.micro_versions < other.micro_versions else 1 + def inc(self, release, identifier=None): logger.debug("inc release %s %s", self.prerelease, release) if release == 'premajor': @@ -1099,6 +1105,24 @@ return max_ +def min_satisfying(versions, range_, loose=False, include_prerelease=False): + try: + range_ob = make_range(range_, loose=loose) + except InvalidTypeIncluded: + raise + except ValueError as e: + logger.info(e, exc_info=2) + return None + min_ = None + min_sv = None + for v in versions: + if range_ob.test(v, include_prerelease=include_prerelease): # satisfies(v, range_, loose=loose) + if min_ is None or min_sv.compare(v) == 1: # compare(min, v, true) + min_ = v + min_sv = make_semver(min_, loose=loose) + return min_ + + def valid_range(range_, loose): try: # Return '*' instead of '' so that truthiness works. @@ -1171,3 +1195,9 @@ elif low.operator == ecomp and ltfn(version, low.semver): return False return True + + +# helpers +def _sorted(versions, loose=False, key=None): + key = key or cmp_to_key(lambda x, y: x.compare(y)) + return sorted([make_semver(v, loose=loose) for v in versions], key=key) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/semver/tests/test_for_4digit.py new/python-semver-0.8.0/semver/tests/test_for_4digit.py --- old/python-semver-0.7.0/semver/tests/test_for_4digit.py 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/semver/tests/test_for_4digit.py 2019-11-30 05:54:06.000000000 +0100 @@ -107,3 +107,21 @@ assert got.prerelease == expected["prerelease"] assert got.build == expected["build"] assert got.micro_versions == expected["micro_versions"] + + +def test_sorted(): + from semver import _sorted + + v1 = "1.1" + v2 = "1.1.1" + v3 = "1.1.1-pre1" + v4 = "1.1.1.1" + v5 = "1.1.1.2" + + versions = [v1, v2, v3, v4, v5] + rversions = list(reversed(versions)) + + got = [v.raw for v in _sorted(versions, loose=True)] + rgot = [v.raw for v in _sorted(rversions, loose=True)] + assert got == rgot + assert got == ['1.1', '1.1.1-pre1', '1.1.1', '1.1.1.1', '1.1.1.2'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/semver/tests/test_min_satisfying.py new/python-semver-0.8.0/semver/tests/test_min_satisfying.py --- old/python-semver-0.7.0/semver/tests/test_min_satisfying.py 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/semver/tests/test_min_satisfying.py 2019-11-30 05:54:06.000000000 +0100 @@ -10,8 +10,8 @@ ] [email protected](reason="not implemented yet") -# @pytest.mark.parametrize("versions, range_, expect, loose", cands) + [email protected]("versions, range_, expect, loose", cands) def test_it(versions, range_, expect, loose): from semver import min_satisfying assert min_satisfying(versions, range_, loose) == expect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-semver-0.7.0/setup.py new/python-semver-0.8.0/setup.py --- old/python-semver-0.7.0/setup.py 2019-08-12 14:02:25.000000000 +0200 +++ new/python-semver-0.8.0/setup.py 2019-11-30 05:54:06.000000000 +0100 @@ -38,7 +38,7 @@ setup( name="node-semver", - version="0.7.0", + version="0.8.0", description="port of node-semver", long_description=README + "\n\n" + CHANGES, classifiers=[
