Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-devpi-common for openSUSE:Factory checked in at 2023-03-07 16:49:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-devpi-common (Old) and /work/SRC/openSUSE:Factory/.python-devpi-common.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-devpi-common" Tue Mar 7 16:49:28 2023 rev:4 rq:1069712 version:3.7.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-devpi-common/python-devpi-common.changes 2022-10-12 18:27:37.626077598 +0200 +++ /work/SRC/openSUSE:Factory/.python-devpi-common.new.31432/python-devpi-common.changes 2023-03-07 16:50:03.621498059 +0100 @@ -1,0 +2,13 @@ +Mon Mar 6 17:21:35 UTC 2023 - Daniel Garcia <daniel.gar...@suse.com> + +- Disable broken tests with new packaging module because invalid + version +- Update to version 3.7.2 + * Fix #928: correct default for pre-release matching after switching + from ``pkg_resources`` to ``packaging``. + * Fix #949: correct parsing of wheel tags for Python 3.10 and above. +- 3.7.1 (2022-12-16) + * Fix #939: pin packaging to <22 as it removed the deprecated + LegacyVersion. + +------------------------------------------------------------------- Old: ---- devpi-common-3.7.0.tar.gz New: ---- devpi-common-3.7.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-devpi-common.spec ++++++ --- /var/tmp/diff_new_pack.GI09VH/_old 2023-03-07 16:50:04.261501427 +0100 +++ /var/tmp/diff_new_pack.GI09VH/_new 2023-03-07 16:50:04.265501448 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-devpi-common # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,9 +16,8 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-devpi-common -Version: 3.7.0 +Version: 3.7.2 Release: 0 Summary: Utilities jointly used by devpi-server and devpi-client License: MIT @@ -54,11 +53,14 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -%pytest +# Doesn't work with latest packaging module because invalid version +donttest="test_noversion_sameproject or test_sort_sameproject_links" +%pytest -k "not ($donttest)" %files %{python_files} %doc CHANGELOG README.rst %license LICENSE -%{python_sitelib}/* +%{python_sitelib}/devpi_common +%{python_sitelib}/devpi_common-%{version}*-info %changelog ++++++ devpi-common-3.7.0.tar.gz -> devpi-common-3.7.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/CHANGELOG new/devpi-common-3.7.2/CHANGELOG --- old/devpi-common-3.7.0/CHANGELOG 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/CHANGELOG 2023-01-24 12:12:38.000000000 +0100 @@ -2,10 +2,32 @@ .. towncrier release notes start +3.7.2 (2023-01-24) +================== -3.7.0 (2022-08-16) + + + + +Bug Fixes +--------- + +- Fix #928: correct default for pre-release matching after switching from ``pkg_resources`` to ``packaging``. + +- Fix #949: correct parsing of wheel tags for Python 3.10 and above. + + +3.7.1 (2022-12-16) ================== +Bug Fixes +--------- + +- Fix #939: pin packaging to <22 as it removed the deprecated LegacyVersion. + + +3.7.0 (2022-08-16) +================== Features -------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/PKG-INFO new/devpi-common-3.7.2/PKG-INFO --- old/devpi-common-3.7.0/PKG-INFO 2022-08-16 11:12:47.907570600 +0200 +++ new/devpi-common-3.7.2/PKG-INFO 2023-01-24 12:12:47.358068500 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: devpi-common -Version: 3.7.0 +Version: 3.7.2 Summary: utilities jointly used by devpi-server and devpi-client Home-page: https://github.com/devpi/devpi Maintainer: Florian Schulze @@ -17,6 +17,10 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* License-File: LICENSE @@ -34,10 +38,32 @@ .. towncrier release notes start +3.7.2 (2023-01-24) +================== -3.7.0 (2022-08-16) + + + + +Bug Fixes +--------- + +- Fix #928: correct default for pre-release matching after switching from ``pkg_resources`` to ``packaging``. + +- Fix #949: correct parsing of wheel tags for Python 3.10 and above. + + +3.7.1 (2022-12-16) ================== +Bug Fixes +--------- + +- Fix #939: pin packaging to <22 as it removed the deprecated LegacyVersion. + + +3.7.0 (2022-08-16) +================== Features -------- @@ -76,21 +102,3 @@ - Replace "cached_property" with "lazy" package, which uses __dict__ directly for much faster reads. - -3.4.0 (2019-06-28) -================== - -Features --------- - -- Added full query string support to URL object. - - -3.3.2 (2019-04-04) -================== - -Bug Fixes ---------- - -- Fix #641: support change of return code from string to integer in tox 3.8.x. - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common/__init__.py new/devpi-common-3.7.2/devpi_common/__init__.py --- old/devpi-common-3.7.0/devpi_common/__init__.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common/__init__.py 2023-01-24 12:12:38.000000000 +0100 @@ -1,2 +1,2 @@ # -__version__ = '3.7.0' +__version__ = '3.7.2' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common/archive.py new/devpi-common-3.7.2/devpi_common/archive.py --- old/devpi-common-3.7.0/devpi_common/archive.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common/archive.py 2023-01-24 12:12:38.000000000 +0100 @@ -1,6 +1,7 @@ """ remotely based on some code from https://pypi.org/project/Archive/0.3/ """ +from io import BytesIO import os import tarfile import zipfile @@ -131,7 +132,7 @@ def zip_dir(basedir, dest=None): if dest is None: - f = py.io.BytesIO() + f = BytesIO() else: f = open(str(dest), "wb") zip = zipfile.ZipFile(f, "w") @@ -156,13 +157,20 @@ def zip_dict(contentdict): - f = py.io.BytesIO() + f = BytesIO() zip = zipfile.ZipFile(f, "w") _writezip_fromdict(zip, contentdict) zip.close() return f.getvalue() +# BBB for Python 2.7 +try: + unicode +except NameError: + unicode = str + + def _writezip_fromdict(zip, contentdict, prefixes=()): for name, val in contentdict.items(): if isinstance(val, dict): @@ -175,6 +183,6 @@ _writezip_fromdict(zip, val, newprefixes) else: path = os.sep.join(prefixes + (name,)) - if py.builtin._istext(val): + if isinstance(val, unicode): val = val.encode("ascii") zip.writestr(path, val) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common/metadata.py new/devpi-common-3.7.2/devpi_common/metadata.py --- old/devpi-common-3.7.0/devpi_common/metadata.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common/metadata.py 2023-01-24 12:12:38.000000000 +0100 @@ -1,6 +1,5 @@ import posixpath import re -import py from packaging.version import parse as parse_version from packaging.requirements import Requirement as BaseRequirement from .types import CompareMixin @@ -28,7 +27,7 @@ # see also PEP425 for supported "python tags" _pyversion_type_rex = re.compile( - r"(?:py|cp|ip|pp|jy)([\d\.py]+).*\.(exe|egg|msi|whl)", re.IGNORECASE) + r"(py|cp|ip|pp|jy)([\d\.py]+).*\.(exe|egg|msi|whl)", re.IGNORECASE) _ext2type = dict(exe="bdist_wininst", egg="bdist_egg", msi="bdist_msi", whl="bdist_wheel") @@ -62,19 +61,22 @@ def get_pyversion_filetype(basename): - _,_,suffix = splitbasename(basename) + _, _, suffix = splitbasename(basename) if suffix in (".zip", ".tar.gz", ".tgz", "tar.bz2"): return ("source", "sdist") m = _pyversion_type_rex.search(suffix) if not m: return ("any", "bdist_dumb") - pyversion, ext = m.groups() + (tag, pyversion, ext) = m.groups() if pyversion == "2.py3": # "universal" wheel with no C # arbitrary but pypi/devpi makes no special use # of "pyversion" anyway?! pyversion = "2.7" elif "." not in pyversion: - pyversion = ".".join(pyversion) + if tag in ("cp", "pp") and pyversion.startswith("3"): + pyversion = ".".join((pyversion[0], pyversion[1:])) + else: + pyversion = ".".join(pyversion) return (pyversion, _ext2type[ext]) @@ -151,13 +153,20 @@ return False +# BBB for Python 2.7 +try: + basestring +except NameError: + basestring = str + + class BasenameMeta(CompareMixin): def __init__(self, obj, sameproject=False): self.obj = obj # none of the below should be done lazily, as devpi_server.mirror # essentially uses this to validate parsed links basename = getattr(obj, "basename", obj) - if not isinstance(basename, py.builtin._basestring): + if not isinstance(basename, basestring): raise ValueError("need object with basename attribute") assert "/" not in basename, (obj, basename) name, version, ext = splitbasename(basename, checkarch=False) @@ -225,4 +234,6 @@ def parse_requirement(s): - return Requirement(s) + req = Requirement(s) + req.specifier.prereleases = True + return req diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common/request.py new/devpi-common-3.7.2/devpi_common/request.py --- old/devpi-common-3.7.0/devpi_common/request.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common/request.py 2023-01-24 12:12:38.000000000 +0100 @@ -1,7 +1,8 @@ import sys from requests import Session from requests.adapters import HTTPAdapter -from requests.exceptions import ConnectionError, RequestException, BaseHTTPError, SSLError +from requests.exceptions import ConnectionError, RequestException, SSLError +from urllib3.exceptions import HTTPError as BaseHTTPError class RetrySession(Session): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common/types.py new/devpi-common-3.7.2/devpi_common/types.py --- old/devpi-common-3.7.0/devpi_common/types.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common/types.py 2023-01-24 12:12:38.000000000 +0100 @@ -3,7 +3,6 @@ from types import FunctionType import hashlib import operator -import py # re-introduced for 2.0 series but not used anymore @@ -134,10 +133,23 @@ assert newfunc == func +# BBB for Python 2.7 +try: + basestring +except NameError: + basestring = str +try: + unicode +except NameError: + unicode = str + + def ensure_unicode(x): - if py.builtin._istext(x): + if isinstance(x, unicode): return x - return py.builtin._totext(x, "utf8") + if not isinstance(x, basestring): + return unicode(x) + return x.decode("utf8") def parse_hash_spec(fragment): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common.egg-info/PKG-INFO new/devpi-common-3.7.2/devpi_common.egg-info/PKG-INFO --- old/devpi-common-3.7.0/devpi_common.egg-info/PKG-INFO 2022-08-16 11:12:47.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common.egg-info/PKG-INFO 2023-01-24 12:12:47.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: devpi-common -Version: 3.7.0 +Version: 3.7.2 Summary: utilities jointly used by devpi-server and devpi-client Home-page: https://github.com/devpi/devpi Maintainer: Florian Schulze @@ -17,6 +17,10 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* License-File: LICENSE @@ -34,10 +38,32 @@ .. towncrier release notes start +3.7.2 (2023-01-24) +================== -3.7.0 (2022-08-16) + + + + +Bug Fixes +--------- + +- Fix #928: correct default for pre-release matching after switching from ``pkg_resources`` to ``packaging``. + +- Fix #949: correct parsing of wheel tags for Python 3.10 and above. + + +3.7.1 (2022-12-16) ================== +Bug Fixes +--------- + +- Fix #939: pin packaging to <22 as it removed the deprecated LegacyVersion. + + +3.7.0 (2022-08-16) +================== Features -------- @@ -76,21 +102,3 @@ - Replace "cached_property" with "lazy" package, which uses __dict__ directly for much faster reads. - -3.4.0 (2019-06-28) -================== - -Features --------- - -- Added full query string support to URL object. - - -3.3.2 (2019-04-04) -================== - -Bug Fixes ---------- - -- Fix #641: support change of return code from string to integer in tox 3.8.x. - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/devpi_common.egg-info/requires.txt new/devpi-common-3.7.2/devpi_common.egg-info/requires.txt --- old/devpi-common-3.7.0/devpi_common.egg-info/requires.txt 2022-08-16 11:12:47.000000000 +0200 +++ new/devpi-common-3.7.2/devpi_common.egg-info/requires.txt 2023-01-24 12:12:47.000000000 +0100 @@ -1,4 +1,4 @@ lazy -packaging +packaging<22 py>=1.4.20 requests>=2.3.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/setup.py new/devpi-common-3.7.2/setup.py --- old/devpi-common-3.7.0/setup.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/setup.py 2023-01-24 12:12:38.000000000 +0100 @@ -30,11 +30,11 @@ name="devpi-common", description="utilities jointly used by devpi-server and devpi-client", long_description="\n\n".join([README, CHANGELOG]), - version='3.7.0', + version='3.7.2', packages=['devpi_common', 'devpi_common.vendor'], install_requires=[ "lazy", - "packaging", + "packaging<22", "py>=1.4.20", "requests>=2.3.0"], python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", @@ -51,5 +51,5 @@ "Programming Language :: Python :: Implementation :: PyPy", ] + [ ("Programming Language :: Python :: %s" % x) - for x in "2.7 3.4 3.5 3.6 3.7".split()], + for x in "2.7 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11".split()], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/testing/test_archive.py new/devpi-common-3.7.2/testing/test_archive.py --- old/devpi-common-3.7.0/testing/test_archive.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/testing/test_archive.py 2023-01-24 12:12:38.000000000 +0100 @@ -2,6 +2,7 @@ from devpi_common.archive import UnsupportedArchive from devpi_common.archive import zip_dict from devpi_common.archive import zip_dir +from io import BytesIO from subprocess import Popen, PIPE import py import pytest @@ -74,7 +75,7 @@ def test_unknown_archive(self): with pytest.raises(UnsupportedArchive): - Archive(py.io.BytesIO(b"123")) + Archive(BytesIO(b"123")) def test_read(self, archive): assert archive.read("1") == b"file1" @@ -109,7 +110,7 @@ def test_zip_dict(tmpdir): content = zip_dict({"one": {"nested": "1"}, "two": {}}) - with Archive(py.io.BytesIO(content)) as archive: + with Archive(BytesIO(content)) as archive: archive.extract(tmpdir) assert tmpdir.join("one", "nested").read() == "1" assert tmpdir.join("two").isdir() @@ -128,7 +129,7 @@ assert newdest.join("sub", "subfile").isfile() newdest.remove() - with Archive(py.io.BytesIO(zip_dir(source))) as archive: + with Archive(BytesIO(zip_dir(source))) as archive: archive.extract(newdest) assert newdest.join("file").isfile() assert newdest.join("sub", "subfile").isfile() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/devpi-common-3.7.0/testing/test_metadata.py new/devpi-common-3.7.2/testing/test_metadata.py --- old/devpi-common-3.7.0/testing/test_metadata.py 2022-08-16 11:12:42.000000000 +0200 +++ new/devpi-common-3.7.2/testing/test_metadata.py 2023-01-24 12:12:38.000000000 +0100 @@ -53,7 +53,11 @@ ("greenlet-0.4.0.linux-x86_64.tar.gz", ("any", "bdist_dumb")), ("cffi-1.6.0-pp251-pypy_41-macosx_10_11_x86_64.whl", ("2.5.1", "bdist_wheel")), ("cryptography-1.4-pp253-pypy_41-linux_x86_64.whl", ("2.5.3", "bdist_wheel")), + ("cryptography-39.0.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", ("3.8", "bdist_wheel")), ("argon2_cffi-18.2.0.dev0.0-pp2510-pypy_41-macosx_10_13_x86_64.whl", ("2.5.1.0", "bdist_wheel")), + ("h5py-3.6.0-cp310-cp310-win_amd64.whl", ("3.10", "bdist_wheel")), + ("h5py-3.6.0-cp319-cp319-win_amd64.whl", ("3.19", "bdist_wheel")), + ("h5py-3.6.0-cp399-cp399-win_amd64.whl", ("3.99", "bdist_wheel")), ]) def test_get_pyversion_filetype(releasename, expected): result = get_pyversion_filetype(releasename) @@ -163,4 +167,13 @@ req = parse_requirement("hello>=1.0") assert req.project_name == "hello" assert "1.0" in req + assert "1.1.dev0" in req + assert "1.0.dev0" not in req assert "0.9" not in req + + +def test_parse_requirement_without_version(): + req = parse_requirement("hello") + assert req.project_name == "hello" + assert "1.0" in req + assert "1.0.dev0" in req