commit python-tox-wheel for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-tox-wheel for openSUSE:Factory checked in at 2022-10-31 13:04:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tox-wheel (Old) and /work/SRC/openSUSE:Factory/.python-tox-wheel.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-tox-wheel" Mon Oct 31 13:04:32 2022 rev:6 rq:1032445 version:1.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tox-wheel/python-tox-wheel.changes 2022-10-12 18:27:44.574092895 +0200 +++ /work/SRC/openSUSE:Factory/.python-tox-wheel.new.2275/python-tox-wheel.changes 2022-10-31 13:04:33.869765039 +0100 @@ -1,0 +2,6 @@ +Sat Oct 29 16:17:58 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com> + +- Update to version 1.0.0 + * Added option to build wheels (and sdists) in an isolated environment using build. Contributed by Ben Rowland in #17. + +------------------------------------------------------------------- Old: ---- tox-wheel-0.7.0.tar.gz New: ---- tox-wheel-1.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tox-wheel.spec ++++++ --- /var/tmp/diff_new_pack.VyH7Ye/_old 2022-10-31 13:04:34.401767750 +0100 +++ /var/tmp/diff_new_pack.VyH7Ye/_new 2022-10-31 13:04:34.409767791 +0100 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-tox-wheel -Version: 0.7.0 +Version: 1.0.0 Release: 0 Summary: A Tox plugin that builds and installs wheels instead of sdist License: BSD-2-Clause @@ -29,13 +29,13 @@ BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-tox >= 3.9 -Requires: python-wheel >= 0.31 +Requires: python-wheel >= 0.33.1 BuildArch: noarch # SECTION test requirements BuildRequires: %{python_module pytest} BuildRequires: %{python_module tox >= 3.9} BuildRequires: %{python_module tox-no-internet} -BuildRequires: %{python_module wheel >= 0.31} +BuildRequires: %{python_module wheel >= 0.33.1} # /SECTION %python_subpackages ++++++ tox-wheel-0.7.0.tar.gz -> tox-wheel-1.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/.bumpversion.cfg new/tox-wheel-1.0.0/.bumpversion.cfg --- old/tox-wheel-0.7.0/.bumpversion.cfg 2021-12-29 16:11:33.000000000 +0100 +++ new/tox-wheel-1.0.0/.bumpversion.cfg 2022-10-01 12:11:45.000000000 +0200 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.7.0 +current_version = 1.0.0 commit = True tag = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/.pre-commit-config.yaml new/tox-wheel-1.0.0/.pre-commit-config.yaml --- old/tox-wheel-0.7.0/.pre-commit-config.yaml 2021-12-22 10:51:27.000000000 +0100 +++ new/tox-wheel-1.0.0/.pre-commit-config.yaml 2022-10-01 11:22:03.000000000 +0200 @@ -5,16 +5,16 @@ exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)' repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: master + rev: v4.3.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: debug-statements - repo: https://github.com/timothycrosley/isort - rev: master + rev: 5.10.1 hooks: - id: isort - repo: https://gitlab.com/pycqa/flake8 - rev: master + rev: 3.9.2 hooks: - id: flake8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/AUTHORS.rst new/tox-wheel-1.0.0/AUTHORS.rst --- old/tox-wheel-0.7.0/AUTHORS.rst 2021-12-22 10:51:52.000000000 +0100 +++ new/tox-wheel-1.0.0/AUTHORS.rst 2022-09-06 13:12:31.000000000 +0200 @@ -6,3 +6,4 @@ * Antonio Botelho - https://github.com/botant * Thomas Grainger - https://github.com/graingert * Michael Rans - https://github.com/mcarans +* Ben Rowland - https://github.com/bennyrowland diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/CHANGELOG.rst new/tox-wheel-1.0.0/CHANGELOG.rst --- old/tox-wheel-0.7.0/CHANGELOG.rst 2021-12-29 16:11:19.000000000 +0100 +++ new/tox-wheel-1.0.0/CHANGELOG.rst 2022-10-01 12:11:10.000000000 +0200 @@ -2,6 +2,12 @@ Changelog ========= +1.0.0 (2022-10-01) +------------------ + +* Added option to build wheels (and sdists) in an isolated environment using `build <https://github.com/pypa/build>`_. + Contributed by Ben Rowland in `#17 <https://github.com/ionelmc/tox-wheel/pull/17>`_. + 0.7.0 (2021-12-29) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/PKG-INFO new/tox-wheel-1.0.0/PKG-INFO --- old/tox-wheel-0.7.0/PKG-INFO 2021-12-29 16:11:37.120311500 +0100 +++ new/tox-wheel-1.0.0/PKG-INFO 2022-10-01 12:28:35.612478700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tox-wheel -Version: 0.7.0 +Version: 1.0.0 Summary: A Tox plugin that builds and installs wheels instead of sdist. Home-page: https://github.com/ionelmc/tox-wheel Author: Ionel Cristian M��rie�� @@ -141,10 +141,15 @@ tox - Changelog ========= +1.0.0 (2022-10-01) +------------------ + +* Added option to build wheels (and sdists) in an isolated environment using `build <https://github.com/pypa/build>`_. + Contributed by Ben Rowland in `#17 <https://github.com/ionelmc/tox-wheel/pull/17>`_. + 0.7.0 (2021-12-29) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/README.rst new/tox-wheel-1.0.0/README.rst --- old/tox-wheel-0.7.0/README.rst 2021-12-29 16:11:33.000000000 +0100 +++ new/tox-wheel-1.0.0/README.rst 2022-10-01 12:11:45.000000000 +0200 @@ -46,9 +46,9 @@ :alt: Supported implementations :target: https://pypi.org/project/tox-wheel -.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/tox-wheel/v0.7.0.svg +.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/tox-wheel/v1.0.0.svg :alt: Commits since latest release - :target: https://github.com/ionelmc/tox-wheel/compare/v0.7.0...master + :target: https://github.com/ionelmc/tox-wheel/compare/v1.0.0...master @@ -156,4 +156,3 @@ To run the all tests run:: tox - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/setup.py new/tox-wheel-1.0.0/setup.py --- old/tox-wheel-0.7.0/setup.py 2021-12-29 16:11:33.000000000 +0100 +++ new/tox-wheel-1.0.0/setup.py 2022-10-01 12:11:45.000000000 +0200 @@ -23,7 +23,7 @@ setup( name='tox-wheel', - version='0.7.0', + version='1.0.0', license='BSD-2-Clause', description='A Tox plugin that builds and installs wheels instead of sdist.', long_description='%s\n%s' % ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/src/tox_wheel/__init__.py new/tox-wheel-1.0.0/src/tox_wheel/__init__.py --- old/tox-wheel-0.7.0/src/tox_wheel/__init__.py 2021-12-29 16:11:33.000000000 +0100 +++ new/tox-wheel-1.0.0/src/tox_wheel/__init__.py 2022-10-01 12:11:45.000000000 +0200 @@ -1 +1 @@ -__version__ = '0.7.0' +__version__ = '1.0.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/src/tox_wheel/plugin.py new/tox-wheel-1.0.0/src/tox_wheel/plugin.py --- old/tox-wheel-0.7.0/src/tox_wheel/plugin.py 2021-12-21 22:48:43.000000000 +0100 +++ new/tox-wheel-1.0.0/src/tox_wheel/plugin.py 2022-10-01 11:22:06.000000000 +0200 @@ -1,3 +1,4 @@ +import os.path from contextlib import contextmanager from functools import partial @@ -5,6 +6,7 @@ import py from tox import package from tox import reporter +from tox.exception import InterpreterNotFound from tox.package import get_package from tox.util.path import ensure_empty_dir @@ -31,9 +33,12 @@ ) parser.add_testenv_attribute( name="wheel_pep517", - type="bool", - default=False, - help="Build wheel using PEP 517/518" + type="string", + default="", + help=( + "Build wheel using PEP 517/518 (pass true to build with pip or " + "build to build with build)" + ), ) parser.add_testenv_attribute( name="wheel_dirty", @@ -60,16 +65,29 @@ @hookimpl +def tox_testenv_install_deps(venv, action): + if venv.envconfig.wheel_pep517 == "build": + venv.run_install_command(["build[virtualenv]>=0.7.0"], action) + return None + + +@hookimpl def tox_package(session, venv): - if hasattr(session, "package"): - return session.package if session.config.option.wheel or venv.envconfig.wheel: build_venv = session.getvenv(venv.envconfig.wheel_build_env) if not hasattr(build_venv, "wheel_package"): - with patch(package, "build_package", partial(wheel_build_package, venv=build_venv)): - build_venv.wheel_package, build_venv.wheel_dist = get_package(session) + try: + with patch(package, "build_package", partial(wheel_build_package, venv=build_venv)): + build_venv.wheel_package, build_venv.wheel_dist = get_package(session) + except InterpreterNotFound: + if session.config.option.skip_missing_interpreters: + return None + raise return build_venv.wheel_package + elif hasattr(session, "package"): + return session.package + def wheel_build_package(config, session, venv): if config.isolated_build or venv.envconfig.wheel_pep517: @@ -146,16 +164,36 @@ action.setactivity("wheel-make", "cleaning up build directory ...") ensure_empty_dir(config.setupdir.join("build")) ensure_empty_dir(config.distdir) + if venv.envconfig.wheel_pep517 == "build": + commands = [ + "python", + "-Im", + "build", + "--outdir", + config.distdir, + config.setupdir, + ] + else: + commands = [ + "pip", + "wheel", + config.setupdir, + "--no-deps", + "--use-pep517", + "--wheel-dir", + config.distdir, + ] venv.test( name="wheel-make", - commands=[["pip", "wheel", config.setupdir, "--no-deps", "--use-pep517", "--wheel-dir", config.distdir]], + commands=[commands], redirect=False, ignore_outcome=False, ignore_errors=False, display_hash_seed=False, ) try: - dists = config.distdir.listdir() + # we need to filter our list of dists to include only wheels + dists = [dist for dist in config.distdir.listdir() if os.path.splitext(dist)[1] == ".whl"] except py.error.ENOENT: reporter.error( "No dist directory found. Please check pyproject.toml, e.g with:\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/src/tox_wheel.egg-info/PKG-INFO new/tox-wheel-1.0.0/src/tox_wheel.egg-info/PKG-INFO --- old/tox-wheel-0.7.0/src/tox_wheel.egg-info/PKG-INFO 2021-12-29 16:11:37.000000000 +0100 +++ new/tox-wheel-1.0.0/src/tox_wheel.egg-info/PKG-INFO 2022-10-01 12:28:35.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tox-wheel -Version: 0.7.0 +Version: 1.0.0 Summary: A Tox plugin that builds and installs wheels instead of sdist. Home-page: https://github.com/ionelmc/tox-wheel Author: Ionel Cristian M��rie�� @@ -141,10 +141,15 @@ tox - Changelog ========= +1.0.0 (2022-10-01) +------------------ + +* Added option to build wheels (and sdists) in an isolated environment using `build <https://github.com/pypa/build>`_. + Contributed by Ben Rowland in `#17 <https://github.com/ionelmc/tox-wheel/pull/17>`_. + 0.7.0 (2021-12-29) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/tests/test_tox_wheel.py new/tox-wheel-1.0.0/tests/test_tox_wheel.py --- old/tox-wheel-0.7.0/tests/test_tox_wheel.py 2021-12-22 10:51:52.000000000 +0100 +++ new/tox-wheel-1.0.0/tests/test_tox_wheel.py 2022-10-01 11:22:06.000000000 +0200 @@ -4,6 +4,13 @@ import tox_wheel.plugin +try: + from unittest.mock import MagicMock + from unittest.mock import patch +except ImportError: + from mock import MagicMock + from mock import patch + pytest_plugins = 'pytester', @@ -48,6 +55,32 @@ return testdir +@pytest.fixture +def testdir_pep517_build(testdir): + testdir.tmpdir.join('tox.ini').write(""" +[tox] +envlist = py-{a,b} + +[testenv] +wheel = true +wheel_pep517 = build +""") + testdir.tmpdir.join('setup.py').write(""" +from setuptools import setup + +setup(name='foobar', packages=[]) +""") + testdir.tmpdir.join('pyproject.toml').write(""" +[build-system] +requires = [ + "setuptools >= 35.0.2" +] +build-backend = "setuptools.build_meta" +""") + testdir.tmpdir.join('build').ensure(dir=1) + return testdir + + @pytest.fixture(params=['', '--parallel 1 --parallel-live'], ids=['sequential', 'parallel']) def options(request): return ['-e', 'py-a,py-b'] + request.param.split() @@ -93,6 +126,16 @@ assert result.ret == 0 +def test_enabled_pep517_build(testdir_pep517_build, options): + result = testdir_pep517_build.run('tox', *options) + result.stdout.fnmatch_lines([ + 'py* wheel-make: *', + ]) + build_string = 'Successfully built foobar-0.0.0.tar.gz and foobar-0.0.0-py3-none-any.whl' + assert result.stdout.str().count(build_string) == 2 + assert result.ret == 0 + + def test_build_env_legacy(testdir_legacy, options): testdir_legacy.tmpdir.join('setup.cfg').write(""" [bdist_wheel] @@ -135,6 +178,25 @@ assert result.ret == 0 +def test_build_env_pep517_build(testdir_pep517_build, options): + testdir_pep517_build.tmpdir.join('setup.cfg').write(""" +[bdist_wheel] +universal = 1 +""") + testdir_pep517_build.tmpdir.join('tox.ini').write(""" +wheel_build_env = build + +[testenv:build] +""", mode='a') + result = testdir_pep517_build.run('tox', *options) + result.stdout.fnmatch_lines([ + 'build wheel-make: *', + ]) + build_string = 'Successfully built foobar-0.0.0.tar.gz and foobar-0.0.0-py2.py3-none-any.whl' + assert result.stdout.str().count(build_string) == 1 + assert result.ret == 0 + + @pytest.mark.parametrize('wheel_build_env', ['', 'wheel_build_env']) def test_skip_usedevelop(testdir_legacy, options, wheel_build_env): testdir_legacy.tmpdir.join('tox.ini').write(""" @@ -209,3 +271,52 @@ ]) assert 'is not a supported wheel on this platform.' not in result.stdout.str() assert 'is not a supported wheel on this platform.' not in result.stderr.str() + + +def test_skip_missing_interpreters(): + with patch.object(tox_wheel.plugin, 'get_package') as mock_build: + venv = MagicMock() + venv.envconfig.wheel = True + session = MagicMock() + session.config.option.wheel = True + session.getvenv.return_value = object() + mock_build.side_effect = tox_wheel.plugin.InterpreterNotFound("No interpreter") + + with pytest.raises(tox_wheel.plugin.InterpreterNotFound): + tox_wheel.plugin.get_package(session) + + session.config.option.skip_missing_interpreters = True + assert tox_wheel.plugin.tox_package(session, venv) is None + + session.config.option.skip_missing_interpreters = False + with pytest.raises(tox_wheel.plugin.InterpreterNotFound): + tox_wheel.plugin.tox_package(session, venv) + + +def test_multiplex_sdist_and_wheel(testdir_legacy, options): + testdir_legacy.tmpdir.join('tox.ini').write(""" +[tox] +envlist = + py-{a,b} + missing_interpreter + +skip_missing_interpreters = True + +[testenv:a] +wheel = false + +[testenv:b] +wheel = true + +[testenv:missing_interpreter] +basepython = python3.nothing +""") + assert 'py-a,py-b' in options + options[options.index('py-a,py-b')] = 'py-a,py-b,missing_interpreter' + + result = testdir_legacy.run('tox', '-vv', *options) + result.stdout.fnmatch_lines([ + 'GLOB sdist-make: *', + '*Building wheels*', + ]) + assert result.ret == 0, result.stdout diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-wheel-0.7.0/tox.ini new/tox-wheel-1.0.0/tox.ini --- old/tox-wheel-0.7.0/tox.ini 2021-12-22 10:51:52.000000000 +0100 +++ new/tox-wheel-1.0.0/tox.ini 2022-09-06 11:50:54.000000000 +0200 @@ -39,6 +39,7 @@ wheel==0.35.1 {py35,py36,py37,py38,py39,pypy3}: setuptools==50.3.2 {py27,pypy}: setuptools==44.1.1 + {py27,py35,pypy}: mock>=3 tox==3.9.0 tox-virtualenv-no-download==1.1.0
participants (1)
-
Source-Sync