From 40afb832a6e07d8b45e60bd1b826b1694d3efa214e958367fc7e67e2de43ccd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Tue, 8 Oct 2019 09:28:23 +0000 Subject: [PATCH] - Update to 19.2: * Many buildsystem tweaks to accomodate for distribution shipping - Remove all the merged patches: * 0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch * 0002-Fix-check-for-64-bit-OS.patch * 0003-Add-additional-test-to-get-100-branch-coverage.patch * 0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch * 0005-Drop-dependency-on-attrs.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=33 --- ...s-test_linux_platforms_manylinux-for.patch | 39 ------- 0002-Fix-check-for-64-bit-OS.patch | 70 ------------ ...onal-test-to-get-100-branch-coverage.patch | 32 ------ ...ersion_detection-failure-on-32-bit-L.patch | 26 ----- 0005-Drop-dependency-on-attrs.patch | 107 ------------------ packaging-19.1.tar.gz | 3 - packaging-19.2.tar.gz | 3 + python-packaging.changes | 12 ++ python-packaging.spec | 16 +-- 9 files changed, 16 insertions(+), 292 deletions(-) delete mode 100644 0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch delete mode 100644 0002-Fix-check-for-64-bit-OS.patch delete mode 100644 0003-Add-additional-test-to-get-100-branch-coverage.patch delete mode 100644 0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch delete mode 100644 0005-Drop-dependency-on-attrs.patch delete mode 100644 packaging-19.1.tar.gz create mode 100644 packaging-19.2.tar.gz diff --git a/0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch b/0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch deleted file mode 100644 index 787b6e2..0000000 --- a/0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ee35f4ff365c3a65872f2d2ba5320c6673a5859a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= -Date: Thu, 8 Aug 2019 14:39:57 +0200 -Subject: [PATCH 1/5] Fix test failures test_linux_platforms_manylinux* for non - x86_64 - -Theses tests are implicitly assuming that they are being run on x86_64 or i686, -but fail on ARM, PPC, etc. ---- - tests/test_tags.py | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/tests/test_tags.py b/tests/test_tags.py -index 0bb4fd6..1f1441e 100644 ---- a/tests/test_tags.py -+++ b/tests/test_tags.py -@@ -511,7 +511,8 @@ def test_linux_platforms_manylinux1(monkeypatch): - if platform.system() != "Linux": - monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64") - platforms = tags._linux_platforms(is_32bit=False) -- assert platforms == ["manylinux1_x86_64", "linux_x86_64"] -+ arch = platform.machine() -+ assert platforms == ["manylinux1_" + arch, "linux_" + arch] - - - def test_linux_platforms_manylinux2010(monkeypatch): -@@ -521,7 +522,8 @@ def test_linux_platforms_manylinux2010(monkeypatch): - if platform.system() != "Linux": - monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64") - platforms = tags._linux_platforms(is_32bit=False) -- expected = ["manylinux2010_x86_64", "manylinux1_x86_64", "linux_x86_64"] -+ arch = platform.machine() -+ expected = ["manylinux2010_" + arch, "manylinux1_" + arch, "linux_" + arch] - assert platforms == expected - - --- -2.22.0 - diff --git a/0002-Fix-check-for-64-bit-OS.patch b/0002-Fix-check-for-64-bit-OS.patch deleted file mode 100644 index c6d964b..0000000 --- a/0002-Fix-check-for-64-bit-OS.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 73c4a178654cf0ffe64d2f10155f7d7978f3622d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= -Date: Thu, 8 Aug 2019 15:44:09 +0200 -Subject: [PATCH 2/5] Fix check for 64 bit OS - -distutils.util.get_platform() returns "linux-x86_64" on 64 bit Linux and not -"linux_86_64" as assumed by this function. Instead we use the first element -returned by platform.architecture() and move the check into a separate fixture. - -Furthermore, we have to check whether the current OS is x86-based, as the -results don't match otherwise. ---- - tests/test_tags.py | 21 +++++++++++++++------ - 1 file changed, 15 insertions(+), 6 deletions(-) - -diff --git a/tests/test_tags.py b/tests/test_tags.py -index 1f1441e..9ec30a4 100644 ---- a/tests/test_tags.py -+++ b/tests/test_tags.py -@@ -11,6 +11,7 @@ except ImportError: - import distutils.util - - import platform -+import re - import sys - import sysconfig - import types -@@ -26,6 +27,16 @@ def example_tag(): - return tags.Tag("py3", "none", "any") - - -+@pytest.fixture -+def is_x86(): -+ return re.match(r"(i\d86|x86_64)", platform.machine()) is not None -+ -+ -+@pytest.fixture -+def is_64bit_os(): -+ return platform.architecture()[0] == "64bit" -+ -+ - def test_tag_lowercasing(): - tag = tags.Tag("PY3", "None", "ANY") - assert tag.interpreter == "py3" -@@ -486,18 +497,16 @@ def test_have_compatible_glibc(monkeypatch): - assert not tags._have_compatible_glibc(2, 4) - - --def test_linux_platforms_64bit_on_64bit_os(monkeypatch): -- is_64bit_os = distutils.util.get_platform().endswith("_x86_64") -- if platform.system() != "Linux" or not is_64bit_os: -+def test_linux_platforms_64bit_on_64bit_os(is_64bit_os, is_x86, monkeypatch): -+ if platform.system() != "Linux" or not is_64bit_os or not is_x86: - monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64") - monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False) - linux_platform = tags._linux_platforms(is_32bit=False)[-1] - assert linux_platform == "linux_x86_64" - - --def test_linux_platforms_32bit_on_64bit_os(monkeypatch): -- is_64bit_os = distutils.util.get_platform().endswith("_x86_64") -- if platform.system() != "Linux" or not is_64bit_os: -+def test_linux_platforms_32bit_on_64bit_os(is_64bit_os, is_x86, monkeypatch): -+ if platform.system() != "Linux" or not is_64bit_os or not is_x86: - monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64") - monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False) - linux_platform = tags._linux_platforms(is_32bit=True)[-1] --- -2.22.0 - diff --git a/0003-Add-additional-test-to-get-100-branch-coverage.patch b/0003-Add-additional-test-to-get-100-branch-coverage.patch deleted file mode 100644 index e3d6c70..0000000 --- a/0003-Add-additional-test-to-get-100-branch-coverage.patch +++ /dev/null @@ -1,32 +0,0 @@ -From e25b14f0ab054dbde4c2bf274f938a0f74ebb823 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= -Date: Thu, 8 Aug 2019 15:45:12 +0200 -Subject: [PATCH 3/5] Add additional test to get 100% branch coverage - -the else: branch was not covered in tags._linux_platforms() due to the from the -previous commit ---- - tests/test_tags.py | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/tests/test_tags.py b/tests/test_tags.py -index 9ec30a4..5ffbfa5 100644 ---- a/tests/test_tags.py -+++ b/tests/test_tags.py -@@ -513,6 +513,13 @@ def test_linux_platforms_32bit_on_64bit_os(is_64bit_os, is_x86, monkeypatch): - assert linux_platform == "linux_i686" - - -+def test_linux_platforms_manylinux_unsupported(monkeypatch): -+ monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64") -+ monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False) -+ linux_platform = tags._linux_platforms(is_32bit=False) -+ assert linux_platform == ["linux_x86_64"] -+ -+ - def test_linux_platforms_manylinux1(monkeypatch): - monkeypatch.setattr( - tags, "_is_manylinux_compatible", lambda name, _: name == "manylinux1" --- -2.22.0 - diff --git a/0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch b/0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch deleted file mode 100644 index 05b7cc1..0000000 --- a/0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d691f8387975b426585bb197fc3f8d8ad6ba02c2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= -Date: Thu, 8 Aug 2019 15:54:48 +0200 -Subject: [PATCH 4/5] Fix test_macos_version_detection failure on 32 bit Linux - -tags._mac_arch always returns i386 on 32 bit Linux and thereby -tags._mac_platforms()[0] ends with "i386" even in the arch="x86_64" case ---- - tests/test_tags.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tests/test_tags.py b/tests/test_tags.py -index 5ffbfa5..0e5b0c6 100644 ---- a/tests/test_tags.py -+++ b/tests/test_tags.py -@@ -183,6 +183,7 @@ def test_macos_version_detection(monkeypatch): - def test_macos_arch_detection(arch, monkeypatch): - if platform.system() != "Darwin" or platform.mac_ver()[2] != arch: - monkeypatch.setattr(platform, "mac_ver", lambda: ("10.14", ("", "", ""), arch)) -+ monkeypatch.setattr(tags, "_mac_arch", lambda *args: arch) - assert tags._mac_platforms((10, 14))[0].endswith(arch) - - --- -2.22.0 - diff --git a/0005-Drop-dependency-on-attrs.patch b/0005-Drop-dependency-on-attrs.patch deleted file mode 100644 index 80275b2..0000000 --- a/0005-Drop-dependency-on-attrs.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 3731ce275df3061d84a6014ec732747e5ae5819e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= -Date: Tue, 13 Aug 2019 11:57:09 +0200 -Subject: [PATCH 5/5] Drop dependency on attrs - -- replace tags.Tag with a custom implementation instead of using @attr.s -- add a sanity check for __hash__() -- drop attrs from setup.py - -This fixes #178 ---- - packaging/tags.py | 37 ++++++++++++++++++++++++++++++------- - setup.py | 2 +- - tests/test_tags.py | 6 ++++++ - 3 files changed, 37 insertions(+), 8 deletions(-) - -diff --git a/packaging/tags.py b/packaging/tags.py -index c472b58..c9b5119 100644 ---- a/packaging/tags.py -+++ b/packaging/tags.py -@@ -11,8 +11,6 @@ import sys - import sysconfig - import warnings - --import attr -- - - INTERPRETER_SHORT_NAMES = { - "python": "py", # Generic. -@@ -26,14 +24,39 @@ INTERPRETER_SHORT_NAMES = { - _32_BIT_INTERPRETER = sys.maxsize <= 2 ** 32 - - --@attr.s(frozen=True, repr=False) - class Tag(object): -- interpreter = attr.ib(converter=str.lower) -- abi = attr.ib(converter=str.lower) -- platform = attr.ib(converter=str.lower) -+ -+ __slots__ = ["_interpreter", "_abi", "_platform"] -+ -+ def __init__(self, interpreter, abi, platform): -+ self._interpreter = str.lower(interpreter) -+ self._abi = str.lower(abi) -+ self._platform = str.lower(platform) -+ -+ @property -+ def interpreter(self): -+ return self._interpreter -+ -+ @property -+ def abi(self): -+ return self._abi -+ -+ @property -+ def platform(self): -+ return self._platform -+ -+ def __eq__(self, other): -+ return ( -+ (self.platform == other.platform) -+ and (self.abi == other.abi) -+ and (self.interpreter == other.interpreter) -+ ) -+ -+ def __hash__(self): -+ return hash((self._interpreter, self._abi, self._platform)) - - def __str__(self): -- return "{}-{}-{}".format(self.interpreter, self.abi, self.platform) -+ return "{}-{}-{}".format(self._interpreter, self._abi, self._platform) - - def __repr__(self): - return "<{self} @ {self_id}>".format(self=self, self_id=id(self)) -diff --git a/setup.py b/setup.py -index 874512b..23007c7 100644 ---- a/setup.py -+++ b/setup.py -@@ -48,7 +48,7 @@ setup( - author=about["__author__"], - author_email=about["__email__"], - python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", -- install_requires=["attrs", "pyparsing>=2.0.2", "six"], # Needed to avoid issue #91 -+ install_requires=["pyparsing>=2.0.2", "six"], # Needed to avoid issue #91 - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", -diff --git a/tests/test_tags.py b/tests/test_tags.py -index 0bb4fd6..a6d50f3 100644 ---- a/tests/test_tags.py -+++ b/tests/test_tags.py -@@ -43,6 +43,12 @@ def test_tag_hashing(example_tag): - assert example_tag in tags - - -+def test_tag_hash_equality(example_tag): -+ equal_tag = tags.Tag("py3", "none", "any") -+ assert example_tag == equal_tag -+ assert example_tag.__hash__() == equal_tag.__hash__() -+ -+ - def test_tag_str(example_tag): - assert str(example_tag) == "py3-none-any" - --- -2.22.0 - diff --git a/packaging-19.1.tar.gz b/packaging-19.1.tar.gz deleted file mode 100644 index 4dd3b91..0000000 --- a/packaging-19.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe -size 57886 diff --git a/packaging-19.2.tar.gz b/packaging-19.2.tar.gz new file mode 100644 index 0000000..6a907a3 --- /dev/null +++ b/packaging-19.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28b924174df7a2fa32c1953825ff29c61e2f5e082343165438812f00d3a7fc47 +size 59110 diff --git a/python-packaging.changes b/python-packaging.changes index eb2fa99..a945b89 100644 --- a/python-packaging.changes +++ b/python-packaging.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Oct 8 09:22:51 UTC 2019 - Tomáš Chvátal + +- Update to 19.2: + * Many buildsystem tweaks to accomodate for distribution shipping +- Remove all the merged patches: + * 0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch + * 0002-Fix-check-for-64-bit-OS.patch + * 0003-Add-additional-test-to-get-100-branch-coverage.patch + * 0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch + * 0005-Drop-dependency-on-attrs.patch + ------------------------------------------------------------------- Mon Aug 19 08:15:30 UTC 2019 - Dan Čermák diff --git a/python-packaging.spec b/python-packaging.spec index dbd0066..611fe11 100644 --- a/python-packaging.spec +++ b/python-packaging.spec @@ -26,19 +26,13 @@ %bcond_with test %endif Name: python-packaging%{psuffix} -Version: 19.1 +Version: 19.2 Release: 0 Summary: Core utilities for Python packages License: Apache-2.0 Group: Development/Languages/Python URL: https://github.com/pypa/packaging Source: https://pypi.io/packages/source/p/packaging/packaging-%{version}.tar.gz -# FIXME: drop these patches on the next release after 19.1 -Patch0: 0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch -Patch1: 0002-Fix-check-for-64-bit-OS.patch -Patch2: 0003-Add-additional-test-to-get-100-branch-coverage.patch -Patch3: 0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch -Patch4: 0005-Drop-dependency-on-attrs.patch BuildRequires: %{python_module six} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -61,17 +55,9 @@ Core utilities for Python packages %prep %setup -q -n packaging-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 # sdist must provide a packaging.egg-info, used below in install phase test -d packaging.egg-info -# FIXME: drop this on the next release after 19.1 -sed -i '/^attrs/d' packaging.egg-info/requires.txt - %build %python_build