Hello community, here is the log from the commit of package python-tox for openSUSE:Factory checked in at 2020-06-28 23:04:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tox (Old) and /work/SRC/openSUSE:Factory/.python-tox.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tox" Sun Jun 28 23:04:07 2020 rev:35 rq:817143 version:3.15.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tox/python-tox.changes 2020-05-28 09:08:45.139940359 +0200 +++ /work/SRC/openSUSE:Factory/.python-tox.new.3060/python-tox.changes 2020-06-28 23:05:44.118740900 +0200 @@ -1,0 +2,9 @@ +Fri Jun 26 05:02:58 UTC 2020 - Thomas Bechtold <[email protected]> + +- update to 3.15.2: + - Add an option to allow a process to suicide before sending the + SIGTERM. + - PyPy 7.3.1 on Windows uses the 'Script' folder instead of + 'bin'. + +------------------------------------------------------------------- Old: ---- tox-3.15.1.tar.gz New: ---- tox-3.15.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tox.spec ++++++ --- /var/tmp/diff_new_pack.zMc4Ka/_old 2020-06-28 23:05:46.194747794 +0200 +++ /var/tmp/diff_new_pack.zMc4Ka/_new 2020-06-28 23:05:46.198747807 +0200 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without python2 Name: python-tox -Version: 3.15.1 +Version: 3.15.2 Release: 0 Summary: Virtualenv-based automation of test activities License: MIT ++++++ tox-3.15.1.tar.gz -> tox-3.15.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/.pre-commit-config.yaml new/tox-3.15.2/.pre-commit-config.yaml --- old/tox-3.15.1/.pre-commit-config.yaml 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/.pre-commit-config.yaml 2020-06-06 10:34:23.000000000 +0200 @@ -13,10 +13,6 @@ - id: debug-statements - id: end-of-file-fixer - id: trailing-whitespace -- repo: https://github.com/asottile/add-trailing-comma - rev: v2.0.1 - hooks: - - id: add-trailing-comma - repo: https://github.com/asottile/pyupgrade rev: v2.4.3 hooks: @@ -46,6 +42,10 @@ additional_dependencies: - black==19.10b0 language_version: python3.8 +- repo: https://github.com/asottile/add-trailing-comma + rev: v2.0.1 + hooks: + - id: add-trailing-comma - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.5.1 hooks: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/CONTRIBUTORS new/tox-3.15.2/CONTRIBUTORS --- old/tox-3.15.1/CONTRIBUTORS 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/CONTRIBUTORS 2020-06-06 10:34:24.000000000 +0200 @@ -47,6 +47,7 @@ Jon Dufresne Josh Smeaton Josh Snyder +Joshua Hesketh Julian Krause Jurko Gospodnetić Krisztian Fekete diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/PKG-INFO new/tox-3.15.2/PKG-INFO --- old/tox-3.15.1/PKG-INFO 2020-05-20 15:44:53.973059200 +0200 +++ new/tox-3.15.2/PKG-INFO 2020-06-06 10:40:58.831983300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tox -Version: 3.15.1 +Version: 3.15.2 Summary: tox is a generic virtualenv management and test command line tool Home-page: http://tox.readthedocs.org Author: Holger Krekel, Oliver Bestwalter, Bernát Gábor and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/docs/_draft.rst new/tox-3.15.2/docs/_draft.rst --- old/tox-3.15.1/docs/_draft.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/tox-3.15.2/docs/_draft.rst 2020-05-21 13:17:49.000000000 +0200 @@ -0,0 +1,18 @@ +vNEXT (2020-05-21) +------------------ + +Bugfixes - NEXT +~~~~~~~~~~~~~~~ +- Fix coverage generation in CI - by :user:`gaborbernat`. (`#1551 <https://github.com/tox-dev/tox/issues/1551>`_) +- Fix the CI failures: + + - drop Python 3.5 support as it's not expected to get to a release before EOL, + - fix test using ``\n`` instead of ``os.linesep``, + - Windows Python 3.6 does not contain ``_overlapped.ReadFileInto`` + + - by :user:`gaborbernat`. (`#1556 <https://github.com/tox-dev/tox/issues/1556>`_) + +Improved Documentation - NEXT +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- Add base documentation by merging virtualenv structure with tox 3 - by :user:`gaborbernat`. (`#1551 <https://github.com/tox-dev/tox/issues/1551>`_) + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/docs/changelog.rst new/tox-3.15.2/docs/changelog.rst --- old/tox-3.15.1/docs/changelog.rst 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/docs/changelog.rst 2020-06-06 10:40:35.000000000 +0200 @@ -11,6 +11,25 @@ .. towncrier release notes start +v3.15.2 (2020-06-06) +-------------------- + +Bugfixes +^^^^^^^^ + +- Add an option to allow a process to suicide before sending the SIGTERM. - by :user:`jhesketh` + `#1497 <https://github.com/tox-dev/tox/issues/1497>`_ +- PyPy 7.3.1 on Windows uses the ``Script`` folder instead of ``bin``. - by :user:`gaborbernat` + `#1597 <https://github.com/tox-dev/tox/issues/1597>`_ + + +Miscellaneous +^^^^^^^^^^^^^ + +- Allow to run the tests with pip 19.3.1 once again while preserving the ability to use pip 20.1 - by :user:`hroncok` + `#1594 <https://github.com/tox-dev/tox/issues/1594>`_ + + v3.15.1 (2020-05-20) -------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/docs/config.rst new/tox-3.15.2/docs/config.rst --- old/tox-3.15.1/docs/config.rst 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/docs/config.rst 2020-06-06 10:34:24.000000000 +0200 @@ -160,22 +160,6 @@ Name of the virtual environment used to create a source distribution from the source tree. -.. conf:: interrupt_timeout ^ float ^ 0.3 - - .. versionadded:: 3.15.0 - - When tox is interrupted, it propagates the signal to the child process, - waits :conf:``interrupt_timeout`` seconds, and sends it a SIGTERM if it hasn't - exited. - -.. conf:: terminate_timeout ^ float ^ 0.2 - - .. versionadded:: 3.15.0 - - When tox is interrupted, it propagates the signal to the child process, - waits :conf:``interrupt_timeout`` seconds, sends it a SIGTERM, waits - :conf:``terminate_timeout`` seconds, and sends it a SIGKILL if it hasn't exited. - Jenkins override ++++++++++++++++ @@ -597,6 +581,33 @@ via the ``-e`` tox will only run those three (even if ``coverage`` may specify as ``depends`` other targets too - such as ``py27, py35, py36, py37``). +.. conf:: suicide_timeout ^ float ^ 0.0 + + .. versionadded:: 3.15.2 + + When an interrupt is sent via Ctrl+C, the SIGINT is sent to all foreground + processes. The :conf:``suicide_timeout`` gives the running process time to + cleanup and exit before receiving (in some cases, a duplicate) SIGINT from + tox. + +.. conf:: interrupt_timeout ^ float ^ 0.3 + + .. versionadded:: 3.15.0 + + When tox is interrupted, it propagates the signal to the child process + after :conf:``suicide_timeout`` seconds. If the process still hasn't exited + after :conf:``interrupt_timeout`` seconds, its sends a SIGTERM. + +.. conf:: terminate_timeout ^ float ^ 0.2 + + .. versionadded:: 3.15.0 + + When tox is interrupted, after waiting :conf:``interrupt_timeout`` seconds, + it propagates the signal to the child process, waits + :conf:``interrupt_timeout`` seconds, sends it a SIGTERM, waits + :conf:``terminate_timeout`` seconds, and sends it a SIGKILL if it hasn't + exited. + Substitutions ------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/action.py new/tox-3.15.2/src/tox/action.py --- old/tox-3.15.1/src/tox/action.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/action.py 2020-06-06 10:34:24.000000000 +0200 @@ -32,6 +32,7 @@ command_log, popen, python, + suicide_timeout, interrupt_timeout, terminate_timeout, ): @@ -45,6 +46,7 @@ self.command_log = command_log self._timed_report = None self.python = python + self.suicide_timeout = suicide_timeout self.interrupt_timeout = interrupt_timeout self.terminate_timeout = terminate_timeout @@ -188,7 +190,7 @@ def handle_interrupt(self, process): """A three level stop mechanism for children - INT -> TERM -> KILL""" msg = "from {} {{}} pid {}".format(os.getpid(), process.pid) - if process.poll() is None: + if self._wait(process, self.suicide_timeout) is None: self.info("KeyboardInterrupt", msg.format("SIGINT")) process.send_signal(signal.CTRL_C_EVENT if sys.platform == "win32" else signal.SIGINT) if self._wait(process, self.interrupt_timeout) is None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/config/__init__.py new/tox-3.15.2/src/tox/config/__init__.py --- old/tox-3.15.1/src/tox/config/__init__.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/config/__init__.py 2020-06-06 10:34:24.000000000 +0200 @@ -53,6 +53,7 @@ WITHIN_PROVISION = os.environ.get(str("TOX_PROVISION")) == "1" +SUICIDE_TIMEOUT = 0.0 INTERRUPT_TIMEOUT = 0.3 TERMINATE_TIMEOUT = 0.2 @@ -828,6 +829,13 @@ parser.add_testenv_attribute_obj(DepOption()) parser.add_testenv_attribute( + name="suicide_timeout", + type="float", + default=SUICIDE_TIMEOUT, + help="timeout to allow process to exit before sending SIGINT", + ) + + parser.add_testenv_attribute( name="interrupt_timeout", type="float", default=INTERRUPT_TIMEOUT, @@ -947,10 +955,17 @@ def get_envbindir(self): """Path to directory where scripts/binaries reside.""" - if tox.INFO.IS_WIN and "jython" not in self.basepython and "pypy" not in self.basepython: - return self.envdir.join("Scripts") - else: - return self.envdir.join("bin") + is_bin = ( + isinstance(self.python_info, NoInterpreterInfo) + or tox.INFO.IS_WIN is False + or self.python_info.implementation == "Jython" + or ( + tox.INFO.IS_WIN + and self.python_info.implementation == "PyPy" + and self.python_info.extra_version_info < (7, 3, 1) + ) + ) + return self.envdir.join("bin" if is_bin else "Scripts") @property def envbindir(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/helper/get_version.py new/tox-3.15.2/src/tox/helper/get_version.py --- old/tox-3.15.1/src/tox/helper/get_version.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/helper/get_version.py 2020-06-06 10:34:24.000000000 +0200 @@ -1,15 +1,17 @@ from __future__ import unicode_literals import json +import platform import sys info = { "executable": sys.executable, - "name": "pypy" if hasattr(sys, "pypy_version_info") else "python", + "implementation": platform.python_implementation(), "version_info": list(sys.version_info), "version": sys.version, "is_64": sys.maxsize > 2 ** 32, "sysplatform": sys.platform, + "extra_version_info": getattr(sys, "pypy_version_info", None), } info_as_dump = json.dumps(info) print(info_as_dump) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/interpreters/__init__.py new/tox-3.15.2/src/tox/interpreters/__init__.py --- old/tox-3.15.1/src/tox/interpreters/__init__.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/interpreters/__init__.py 2020-06-06 10:34:24.000000000 +0200 @@ -59,13 +59,16 @@ try: result = get_python_info(str(executable)) result["version_info"] = tuple(result["version_info"]) # fix json dump transformation - del result["name"] + if result["extra_version_info"] is not None: + result["extra_version_info"] = tuple( + result["extra_version_info"], + ) # fix json dump transformation del result["version"] result["executable"] = str(executable) except ExecFailed as e: return NoInterpreterInfo(name, executable=e.executable, out=e.out, err=e.err) else: - return InterpreterInfo(name, **result) + return InterpreterInfo(**result) def exec_on_interpreter(*args): @@ -93,12 +96,16 @@ class InterpreterInfo: - def __init__(self, name, executable, version_info, sysplatform, is_64): - self.name = name + def __init__( + self, implementation, executable, version_info, sysplatform, is_64, extra_version_info, + ): + self.implementation = implementation self.executable = executable + self.version_info = version_info self.sysplatform = sysplatform self.is_64 = is_64 + self.extra_version_info = extra_version_info def __str__(self): return "<executable at {}, version_info {}>".format(self.executable, self.version_info) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/interpreters/via_path.py new/tox-3.15.2/src/tox/interpreters/via_path.py --- old/tox-3.15.1/src/tox/interpreters/via_path.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/interpreters/via_path.py 2020-06-06 10:34:24.000000000 +0200 @@ -38,7 +38,7 @@ info = get_python_info(python_exe) if info is not None: found = PythonSpec( - info["name"], + "pypy" if info["implementation"] == "PyPy" else "python", info["version_info"][0], info["version_info"][1], 64 if info["is_64"] else 32, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/session/__init__.py new/tox-3.15.2/src/tox/session/__init__.py --- old/tox-3.15.1/src/tox/session/__init__.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/session/__init__.py 2020-06-06 10:34:24.000000000 +0200 @@ -19,7 +19,7 @@ import tox from tox import reporter from tox.action import Action -from tox.config import INTERRUPT_TIMEOUT, TERMINATE_TIMEOUT, parseconfig +from tox.config import INTERRUPT_TIMEOUT, SUICIDE_TIMEOUT, TERMINATE_TIMEOUT, parseconfig from tox.config.parallel import ENV_VAR_KEY_PRIVATE as PARALLEL_ENV_VAR_KEY_PRIVATE from tox.config.parallel import OFF_VALUE as PARALLEL_OFF from tox.logs.result import ResultLog @@ -170,6 +170,7 @@ self.resultlog.command_log, self.popen, sys.executable, + SUICIDE_TIMEOUT, INTERRUPT_TIMEOUT, TERMINATE_TIMEOUT, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/venv.py new/tox-3.15.2/src/tox/venv.py --- old/tox-3.15.1/src/tox/venv.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/src/tox/venv.py 2020-06-06 10:34:24.000000000 +0200 @@ -130,6 +130,7 @@ command_log, self.popen, self.envconfig.envpython, + self.envconfig.suicide_timeout, self.envconfig.interrupt_timeout, self.envconfig.terminate_timeout, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox/version.py new/tox-3.15.2/src/tox/version.py --- old/tox-3.15.1/src/tox/version.py 2020-05-20 15:44:53.000000000 +0200 +++ new/tox-3.15.2/src/tox/version.py 2020-06-06 10:40:58.000000000 +0200 @@ -1,4 +1,4 @@ # coding: utf-8 from __future__ import unicode_literals -__version__ = '3.15.1' +__version__ = '3.15.2' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox.egg-info/PKG-INFO new/tox-3.15.2/src/tox.egg-info/PKG-INFO --- old/tox-3.15.1/src/tox.egg-info/PKG-INFO 2020-05-20 15:44:53.000000000 +0200 +++ new/tox-3.15.2/src/tox.egg-info/PKG-INFO 2020-06-06 10:40:58.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tox -Version: 3.15.1 +Version: 3.15.2 Summary: tox is a generic virtualenv management and test command line tool Home-page: http://tox.readthedocs.org Author: Holger Krekel, Oliver Bestwalter, Bernát Gábor and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/src/tox.egg-info/SOURCES.txt new/tox-3.15.2/src/tox.egg-info/SOURCES.txt --- old/tox-3.15.1/src/tox.egg-info/SOURCES.txt 2020-05-20 15:44:53.000000000 +0200 +++ new/tox-3.15.2/src/tox.egg-info/SOURCES.txt 2020-06-06 10:40:58.000000000 +0200 @@ -18,6 +18,7 @@ .github/config.yml .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md +docs/_draft.rst docs/changelog.rst docs/conf.py docs/config.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/tests/unit/config/test_config.py new/tox-3.15.2/tests/unit/config/test_config.py --- old/tox-3.15.1/tests/unit/config/test_config.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/tests/unit/config/test_config.py 2020-06-06 10:34:24.000000000 +0200 @@ -175,11 +175,12 @@ assert DepOption._is_same_dep("pkg_hello-world3==1.0", "pkg_hello-world3<=2.0") assert not DepOption._is_same_dep("pkg_hello-world3==1.0", "otherpkg>=2.0") - def test_interrupt_terminate_timeout_set_manually(self, newconfig): + def test_suicide_interrupt_terminate_timeout_set_manually(self, newconfig): config = newconfig( [], """ [testenv:dev] + suicide_timeout = 30.0 interrupt_timeout = 5.0 terminate_timeout = 10.0 @@ -187,10 +188,12 @@ """, ) envconfig = config.envconfigs["other"] + assert 0.0 == envconfig.suicide_timeout assert 0.3 == envconfig.interrupt_timeout assert 0.2 == envconfig.terminate_timeout envconfig = config.envconfigs["dev"] + assert 30.0 == envconfig.suicide_timeout assert 5.0 == envconfig.interrupt_timeout assert 10.0 == envconfig.terminate_timeout diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/tests/unit/interpreters/test_interpreters.py new/tox-3.15.2/tests/unit/interpreters/test_interpreters.py --- old/tox-3.15.1/tests/unit/interpreters/test_interpreters.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/tests/unit/interpreters/test_interpreters.py 2020-06-06 10:34:24.000000000 +0200 @@ -1,6 +1,7 @@ from __future__ import unicode_literals import os +import platform import stat import subprocess import sys @@ -101,7 +102,7 @@ name = os.path.basename(sys.executable) info = run_and_get_interpreter_info(name, sys.executable) assert info.version_info == tuple(sys.version_info) - assert info.name == name + assert info.implementation == platform.python_implementation() assert info.executable == sys.executable @@ -186,16 +187,16 @@ class TestInterpreterInfo: @staticmethod def info( - name="my-name", + implementation="CPython", executable="my-executable", version_info="my-version-info", sysplatform="my-sys-platform", ): - return InterpreterInfo(name, executable, version_info, sysplatform, True) + return InterpreterInfo(implementation, executable, version_info, sysplatform, True, None) def test_data(self): x = self.info("larry", "moe", "shemp", "curly") - assert x.name == "larry" + assert x.implementation == "larry" assert x.executable == "moe" assert x.version_info == "shemp" assert x.sysplatform == "curly" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/tests/unit/test_z_cmdline.py new/tox-3.15.2/tests/unit/test_z_cmdline.py --- old/tox-3.15.1/tests/unit/test_z_cmdline.py 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/tests/unit/test_z_cmdline.py 2020-06-06 10:34:24.000000000 +0200 @@ -337,7 +337,7 @@ ) result = cmd() result.assert_success() - pattern = re.compile("special&&1 installed: .*pkg123 @ .*-0.7.zip.*") + pattern = re.compile(r"special&&1 installed: .*pkg123( @ .*-|==)0\.7(\.zip)?.*") assert any(pattern.match(line) for line in result.outlines), "\n".join(result.outlines) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tox-3.15.1/tox.ini new/tox-3.15.2/tox.ini --- old/tox-3.15.1/tox.ini 2020-05-20 15:44:42.000000000 +0200 +++ new/tox-3.15.2/tox.ini 2020-06-06 10:34:24.000000000 +0200 @@ -31,7 +31,7 @@ PYTEST_* PIP_CACHE_DIR deps = - pip >= 20.1 + pip >= 19.3.1 extras = testing commands = pytest \ --cov "{envsitepackagesdir}/tox" \
