Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-wheel for openSUSE:Factory checked in at 2022-02-17 00:29:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-wheel (Old) and /work/SRC/openSUSE:Factory/.python-wheel.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-wheel" Thu Feb 17 00:29:52 2022 rev:26 rq:954400 version:0.37.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-wheel/python-wheel.changes 2022-01-29 20:57:46.480388456 +0100 +++ /work/SRC/openSUSE:Factory/.python-wheel.new.1956/python-wheel.changes 2022-02-17 00:29:54.001439820 +0100 @@ -1,0 +2,10 @@ +Mon Feb 14 22:08:28 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 0.37.1: + * Fixed ``wheel pack`` duplicating the ``WHEEL`` contents when the build + number has changed Fixed parsing of file names containing commas in + ``RECORD`` (PR by Hood Chatham) + * Added official Python 3.10 support + * Updated vendored ``packaging`` library to v20.9 + +------------------------------------------------------------------- Old: ---- wheel-0.36.2.tar.gz New: ---- wheel-0.37.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-wheel.spec ++++++ --- /var/tmp/diff_new_pack.TyLXco/_old 2022-02-17 00:29:54.773439688 +0100 +++ /var/tmp/diff_new_pack.TyLXco/_new 2022-02-17 00:29:54.777439687 +0100 @@ -32,7 +32,7 @@ %bcond_with test %endif Name: python-wheel%{psuffix} -Version: 0.36.2 +Version: 0.37.1 Release: 0 Summary: A built-package format for Python License: MIT ++++++ wheel-0.36.2.tar.gz -> wheel-0.37.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/.cirrus.yml new/wheel-0.37.1/.cirrus.yml --- old/wheel-0.36.2/.cirrus.yml 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/.cirrus.yml 2021-12-22 13:19:07.000000000 +0100 @@ -1,5 +1,5 @@ freebsd_instance: - image_family: freebsd-12-1 + image_family: freebsd-13-0-snap test_task: only_if: "$CIRRUS_BRANCH == 'master' || $CIRRUS_PR != ''" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/.github/workflows/codeqa-test.yml new/wheel-0.37.1/.github/workflows/codeqa-test.yml --- old/wheel-0.36.2/.github/workflows/codeqa-test.yml 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/.github/workflows/codeqa-test.yml 2021-12-22 13:19:07.000000000 +0100 @@ -2,7 +2,7 @@ on: push: - branches: [master] + branches: [main] pull_request: jobs: @@ -11,7 +11,7 @@ steps: - uses: actions/checkout@v2 - name: Check code style with Flake8 - uses: TrueBrain/actions-flake8@v1.2 + uses: TrueBrain/actions-flake8@v2 with: path: src tests @@ -20,19 +20,17 @@ strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-10.15, macos-11.0, windows-latest] - python-version: [2.7, 3.6, 3.9, pypy2, pypy3] + os: [ubuntu-latest, macos-10.15, macos-11, windows-latest] + python-version: ["2.7", "3.6", "3.9", "3.10", "pypy-2.7", "pypy-3.7"] exclude: - - os: macos-11.0 - python-version: pypy2 - - os: macos-11.0 - python-version: pypy3 + - os: macos-11 + python-version: pypy-2.7 - os: windows-latest - python-version: 2.7 + python-version: "2.7" - os: windows-latest - python-version: pypy2 + python-version: pypy-2.7 - os: windows-latest - python-version: pypy3 + python-version: pypy-3.7 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 @@ -47,4 +45,8 @@ - name: Install test dependencies run: pip install .[test] - name: Test with pytest - run: python -b -m pytest -W always + run: python -b -m pytest -W always --cov-report=xml:pytest-cov.xml + - name: Send coverage data to Codecov + uses: codecov/codecov-action@v1 + with: + file: pytest-cov.xml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/MANIFEST.in new/wheel-0.37.1/MANIFEST.in --- old/wheel-0.36.2/MANIFEST.in 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/MANIFEST.in 2021-12-22 13:19:07.000000000 +0100 @@ -5,6 +5,7 @@ include tox.ini include manpages/*.rst include LICENSE.txt +include src/wheel/vendored/vendor.txt prune tests/testdata/*/build prune tests/testdata/*/dist prune tests/testdata/*/*.egg-info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/docs/news.rst new/wheel-0.37.1/docs/news.rst --- old/wheel-0.36.2/docs/news.rst 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/docs/news.rst 2021-12-22 13:19:07.000000000 +0100 @@ -1,6 +1,16 @@ Release Notes ============= +**0.37.1 (2021-12-22)** + +- Fixed ``wheel pack`` duplicating the ``WHEEL`` contents when the build number has changed (#415) +- Fixed parsing of file names containing commas in ``RECORD`` (PR by Hood Chatham) + +**0.37.0 (2021-08-09)** + +- Added official Python 3.10 support +- Updated vendored ``packaging`` library to v20.9 + **0.36.2 (2020-12-13)** - Updated vendored ``packaging`` library to v20.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/setup.cfg new/wheel-0.37.1/setup.cfg --- old/wheel-0.36.2/setup.cfg 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/setup.cfg 2021-12-22 13:19:07.000000000 +0100 @@ -17,6 +17,7 @@ Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 author = Daniel Holth author_email = dho...@fastmail.fm maintainer = Alex Gronholm @@ -52,11 +53,12 @@ bdist_wheel = wheel.bdist_wheel:bdist_wheel [tool:pytest] -addopts = --cov=wheel +addopts = --cov --cov-config=setup.cfg testpaths = tests [coverage:run] source = wheel +omit = */vendored/* [coverage:report] show_missing = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/src/wheel/__init__.py new/wheel-0.37.1/src/wheel/__init__.py --- old/wheel-0.36.2/src/wheel/__init__.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/src/wheel/__init__.py 2021-12-22 13:19:07.000000000 +0100 @@ -1 +1 @@ -__version__ = '0.36.2' +__version__ = '0.37.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/src/wheel/cli/pack.py new/wheel-0.37.1/src/wheel/cli/pack.py --- old/wheel-0.36.2/src/wheel/cli/pack.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/src/wheel/cli/pack.py 2021-12-22 13:19:07.000000000 +0100 @@ -57,9 +57,12 @@ replacement = ('Build: %s\r\n' % build_number).encode('ascii') if build_number else b'' with open(wheel_file_path, 'rb+') as f: wheel_file_content = f.read() - if not BUILD_NUM_RE.subn(replacement, wheel_file_content)[1]: + wheel_file_content, num_replaced = BUILD_NUM_RE.subn(replacement, + wheel_file_content) + if not num_replaced: wheel_file_content += replacement + f.seek(0) f.truncate() f.write(wheel_file_content) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/src/wheel/macosx_libfile.py new/wheel-0.37.1/src/wheel/macosx_libfile.py --- old/wheel-0.36.2/src/wheel/macosx_libfile.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/src/wheel/macosx_libfile.py 2021-12-22 13:19:07.000000000 +0100 @@ -28,7 +28,7 @@ Important remarks: - For fat files this implementation looks for maximum number version. - It not check if it is 32 or 64 and do not compare it with currently builded package. + It not check if it is 32 or 64 and do not compare it with currently built package. So it is possible to false report higher version that needed. - All structures signatures are taken form macosx header files. - I think that binary format will be more stable than `otool` output. @@ -279,7 +279,7 @@ # Xcode will not set the deployment target below 11.0.0 # for the arm64 architecture. Ignore the arm64 deployment # in fat binaries when the target is 11.0.0, that way - # the other architetures can select a lower deployment + # the other architectures can select a lower deployment # target. # This is safe because there is no arm64 variant for # macOS 10.15 or earlier. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/src/wheel/vendored/packaging/tags.py new/wheel-0.37.1/src/wheel/vendored/packaging/tags.py --- old/wheel-0.36.2/src/wheel/vendored/packaging/tags.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/src/wheel/vendored/packaging/tags.py 2021-12-22 13:19:07.000000000 +0100 @@ -458,14 +458,28 @@ major=major_version, minor=0, binary_format=binary_format ) - if version >= (11, 0) and arch == "x86_64": + if version >= (11, 0): # Mac OS 11 on x86_64 is compatible with binaries from previous releases. # Arm64 support was introduced in 11.0, so no Arm binaries from previous # releases exist. - for minor_version in range(16, 3, -1): - compat_version = 10, minor_version - binary_formats = _mac_binary_formats(compat_version, arch) - for binary_format in binary_formats: + # + # However, the "universal2" binary format can have a + # macOS version earlier than 11.0 when the x86_64 part of the binary supports + # that version of macOS. + if arch == "x86_64": + for minor_version in range(16, 3, -1): + compat_version = 10, minor_version + binary_formats = _mac_binary_formats(compat_version, arch) + for binary_format in binary_formats: + yield "macosx_{major}_{minor}_{binary_format}".format( + major=compat_version[0], + minor=compat_version[1], + binary_format=binary_format, + ) + else: + for minor_version in range(16, 3, -1): + compat_version = 10, minor_version + binary_format = "universal2" yield "macosx_{major}_{minor}_{binary_format}".format( major=compat_version[0], minor=compat_version[1], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/src/wheel/vendored/vendor.txt new/wheel-0.37.1/src/wheel/vendored/vendor.txt --- old/wheel-0.36.2/src/wheel/vendored/vendor.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/wheel-0.37.1/src/wheel/vendored/vendor.txt 2021-12-22 13:19:07.000000000 +0100 @@ -0,0 +1 @@ +packaging==20.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/src/wheel/wheelfile.py new/wheel-0.37.1/src/wheel/wheelfile.py --- old/wheel-0.36.2/src/wheel/wheelfile.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/src/wheel/wheelfile.py 2021-12-22 13:19:07.000000000 +0100 @@ -5,6 +5,7 @@ import os.path import re import stat +import sys import time from collections import OrderedDict from distutils import log as logger @@ -13,6 +14,16 @@ from wheel.cli import WheelError from wheel.util import urlsafe_b64decode, as_unicode, native, urlsafe_b64encode, as_bytes, StringIO +if sys.version_info >= (3,): + from io import TextIOWrapper + + def read_csv(fp): + return csv.reader(TextIOWrapper(fp, newline='', encoding='utf-8')) +else: + def read_csv(fp): + for line in csv.reader(fp): + yield [column.decode('utf-8') for column in line] + # Non-greedy matching of an optional build number may be too clever (more # invalid wheel filenames will match). Separate regex for .dist-info? WHEEL_INFO_RE = re.compile( @@ -60,23 +71,24 @@ raise WheelError('Missing {} file'.format(self.record_path)) with record: - for line in record: - line = line.decode('utf-8') - path, hash_sum, size = line.rsplit(u',', 2) - if hash_sum: - algorithm, hash_sum = hash_sum.split(u'=') - try: - hashlib.new(algorithm) - except ValueError: - raise WheelError('Unsupported hash algorithm: {}'.format(algorithm)) - - if algorithm.lower() in {'md5', 'sha1'}: - raise WheelError( - 'Weak hash algorithm ({}) is not permitted by PEP 427' - .format(algorithm)) + for line in read_csv(record): + path, hash_sum, size = line + if not hash_sum: + continue + + algorithm, hash_sum = hash_sum.split(u'=') + try: + hashlib.new(algorithm) + except ValueError: + raise WheelError('Unsupported hash algorithm: {}'.format(algorithm)) + + if algorithm.lower() in {'md5', 'sha1'}: + raise WheelError( + 'Weak hash algorithm ({}) is not permitted by PEP 427' + .format(algorithm)) - self._file_hashes[path] = ( - algorithm, urlsafe_b64decode(hash_sum.encode('ascii'))) + self._file_hashes[path] = ( + algorithm, urlsafe_b64decode(hash_sum.encode('ascii'))) def open(self, name_or_info, mode="r", pwd=None): def _update_crc(newdata, eof=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/tests/cli/test_pack.py new/wheel-0.37.1/tests/cli/test_pack.py --- old/wheel-0.36.2/tests/cli/test_pack.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/tests/cli/test_pack.py 2021-12-22 13:19:07.000000000 +0100 @@ -1,4 +1,5 @@ import os +from textwrap import dedent from zipfile import ZipFile import pytest @@ -47,7 +48,15 @@ assert new_record_lines == old_record_lines expected_build_num = build_tag_arg or existing_build_tag + expected_wheel_content = dedent("""\ + Wheel-Version: 1.0 + Generator: bdist_wheel (0.30.0) + Root-Is-Purelib: false + Tag: py2-none-any + Tag: py3-none-any + """.replace('\n', '\r\n')) if expected_build_num: - assert ('Build: %s\r\n' % expected_build_num).encode() in new_wheel_file_content - else: - assert b'Build: ' not in new_wheel_file_content + expected_wheel_content += 'Build: %s\r\n' % expected_build_num + + expected_wheel_content = expected_wheel_content.encode('ascii') + assert new_wheel_file_content == expected_wheel_content diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/tests/conftest.py new/wheel-0.37.1/tests/conftest.py --- old/wheel-0.36.2/tests/conftest.py 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/tests/conftest.py 2021-12-22 13:19:07.000000000 +0100 @@ -12,7 +12,7 @@ @pytest.fixture(scope='session') def wheels_and_eggs(tmpdir_factory): """Build wheels and eggs from test distributions.""" - test_distributions = "complex-dist", "simple.dist", "headers.dist" + test_distributions = "complex-dist", "simple.dist", "headers.dist", "commasinfilenames.dist" if sys.version_info >= (3, 6): # Only Python 3.6+ can handle packaging unicode file names reliably # across different platforms diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/tests/testdata/commasinfilenames.dist/setup.py new/wheel-0.37.1/tests/testdata/commasinfilenames.dist/setup.py --- old/wheel-0.36.2/tests/testdata/commasinfilenames.dist/setup.py 1970-01-01 01:00:00.000000000 +0100 +++ new/wheel-0.37.1/tests/testdata/commasinfilenames.dist/setup.py 2021-12-22 13:19:07.000000000 +0100 @@ -0,0 +1,12 @@ +from setuptools import setup + +setup( + name='testrepo', + version='0.1', + packages=["mypackage"], + description='A test package with commas in file names', + include_package_data=True, + package_data={ + "mypackage.data": ["*"] + }, +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wheel-0.36.2/tox.ini new/wheel-0.37.1/tox.ini --- old/wheel-0.36.2/tox.ini 2020-12-13 19:07:13.000000000 +0100 +++ new/wheel-0.37.1/tox.ini 2021-12-22 13:19:07.000000000 +0100 @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py27, py35, py36, py37, py38, py39, pypy, pypy3, flake8 +envlist = py27, py35, py36, py37, py38, py39, py310, pypy, pypy3, flake8 minversion = 3.3.0 skip_missing_interpreters = true