tox-dev / tox

Command line driven CI frontend and development task automation tool.
https://tox.wiki
MIT License
3.67k stars 518 forks source link

tox4 regression: Conditionals prepending ./ to dependencies #2901

Closed JulienPalard closed 1 year ago

JulienPalard commented 1 year ago

Issue

I'm having:

[tox]
envlist = py3{7,8,9,10}-{low,high}, flake8, mypy, black, pylint, pydocstyle, coverage
isolated_build = True
skip_missing_interpreters = True

[testenv]
deps =
  pytest
  coverage
  hypothesis
  low: matplotlib>=2<3
  low: sympy>=1.0<1.1
  high: matplotlib>=3<4
  high: sympy>=1.9<2
commands = coverage run -m pytest -m "not slow"
setenv =
  COVERAGE_FILE={toxworkdir}/.coverage.{envname}

It was working on tox 3 but starts to break with tox 4 with:

py39-high: install_deps> python -I -m pip install coverage hypothesis pytest './matplotlib>=3<4' './sympy>=1.9<2'

(The ./ are added)

Environment

Provide at least:

pip list ``` Package Version ------------- ------- cachetools 5.3.0 chardet 5.1.0 colorama 0.4.6 distlib 0.3.6 filelock 3.9.0 packaging 23.0 pip 22.3.1 platformdirs 2.6.2 pluggy 1.0.0 pyproject_api 1.5.0 setuptools 65.6.3 tomli 2.0.1 tox 4.4.2 virtualenv 20.17.1 ```

Output of running tox

The output of `tox -rvv py39-high` ```console $ tox -rvv -e py39-high py39-high: 334 W remove tox env folder /home/mdk/clones/mdk/oeis/.tox/py39-high [tox/tox_env/api.py:321] .pkg: 400 W remove tox env folder /home/mdk/clones/mdk/oeis/.tox/.pkg [tox/tox_env/api.py:321] py39-high: 414 I find interpreter for spec PythonSpec(major=3, minor=9) [virtualenv/discovery/builtin.py:56] py39-high: 414 D discover exe for PythonInfo(spec=CPython3.10.9.final.0-64, exe=/home/mdk/clones/mdk/oeis/.venv/bin/python, platform=linux, version='3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) in /usr [virtualenv/discovery/py_info.py:437] py39-high: 423 D filesystem is case-sensitive [virtualenv/info.py:24] py39-high: 425 D got python info of /usr/bin/python3.10 from /home/mdk/.local/share/virtualenv/py_info/1/8a94588eda9d64d9e9a351ab8144e55b1fabf5113b54e67dd26a8c27df0381b3.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 426 I proposed PythonInfo(spec=CPython3.10.9.final.0-64, system=/usr/bin/python3.10, exe=/home/mdk/clones/mdk/oeis/.venv/bin/python, platform=linux, version='3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63] py39-high: 426 D discover PATH[0]=/home/mdk/clones/mdk/oeis/.venv/bin/ [virtualenv/discovery/builtin.py:108] py39-high: 427 D got python info of /home/mdk/clones/mdk/oeis/.venv/bin/python3 from /home/mdk/.local/share/virtualenv/py_info/1/f060083d106e46a10a0e6286c1f52ce9e3e1548d3beccef8cec3bd001b34d056.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 428 D discover exe from cache /usr - exact False: PythonInfo({'architecture': 64, 'base_exec_prefix': '/usr', 'base_prefix': '/usr', 'distutils_install': {}, 'exec_prefix': '/usr', 'executable': '/home/mdk/clones/mdk/oeis/.venv/bin/python', 'file_system_encoding': 'utf-8', 'has_venv': True, 'implementation': 'CPython', 'max_size': 9223372036854775807, 'original_executable': '/usr/bin/python3.10', 'os': 'posix', 'path': ['/home/mdk/clones/mdk/oeis/.venv/lib/python3.10/site-packages/virtualenv/discovery', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.10/dist-packages'], 'platform': 'linux', 'prefix': '/usr', 'real_prefix': None, 'stdout_encoding': 'utf-8', 'sysconfig': {'makefile_filename': '/usr/lib/python3.10/config-3.10-x86_64-linux-gnu/Makefile'}, 'sysconfig_paths': {'data': '{base}', 'include': '{installed_base}/include/python{py_version_short}{abiflags}', 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', 'purelib': '{base}/lib/python{py_version_short}/site-packages', 'scripts': '{base}/bin', 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}'}, 'sysconfig_scheme': 'posix_prefix', 'sysconfig_vars': {'PYTHONFRAMEWORK': '', 'abiflags': '', 'base': '/usr', 'installed_base': '/usr', 'platbase': '/usr', 'platlibdir': 'lib', 'py_version_short': '3.10'}, 'system_executable': '/usr/bin/python3.10', 'system_stdlib': '/usr/lib/python3.10', 'system_stdlib_platform': '/usr/lib/python3.10', 'version': '3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', 'version_info': VersionInfo(major=3, minor=10, micro=9, releaselevel='final', serial=0), 'version_nodot': '310'}) [virtualenv/discovery/py_info.py:435] py39-high: 428 D discover exe from cache /usr - exact False: PythonInfo({'architecture': 64, 'base_exec_prefix': '/usr', 'base_prefix': '/usr', 'distutils_install': {}, 'exec_prefix': '/usr', 'executable': '/home/mdk/clones/mdk/oeis/.venv/bin/python3', 'file_system_encoding': 'utf-8', 'has_venv': True, 'implementation': 'CPython', 'max_size': 9223372036854775807, 'original_executable': '/usr/bin/python3.10', 'os': 'posix', 'path': ['/home/mdk/clones/mdk/oeis/.venv/lib/python3.10/site-packages/virtualenv/discovery', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.10/dist-packages'], 'platform': 'linux', 'prefix': '/usr', 'real_prefix': None, 'stdout_encoding': 'utf-8', 'sysconfig': {'makefile_filename': '/usr/lib/python3.10/config-3.10-x86_64-linux-gnu/Makefile'}, 'sysconfig_paths': {'data': '{base}', 'include': '{installed_base}/include/python{py_version_short}{abiflags}', 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', 'purelib': '{base}/lib/python{py_version_short}/site-packages', 'scripts': '{base}/bin', 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}'}, 'sysconfig_scheme': 'posix_prefix', 'sysconfig_vars': {'PYTHONFRAMEWORK': '', 'abiflags': '', 'base': '/usr', 'installed_base': '/usr', 'platbase': '/usr', 'platlibdir': 'lib', 'py_version_short': '3.10'}, 'system_executable': '/usr/bin/python3.10', 'system_stdlib': '/usr/lib/python3.10', 'system_stdlib_platform': '/usr/lib/python3.10', 'version': '3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', 'version_info': VersionInfo(major=3, minor=10, micro=9, releaselevel='final', serial=0), 'version_nodot': '310'}) [virtualenv/discovery/py_info.py:435] py39-high: 429 D discover PATH[1]=/usr/local/bin [virtualenv/discovery/builtin.py:108] py39-high: 429 D discover PATH[2]=/usr/bin [virtualenv/discovery/builtin.py:108] py39-high: 430 D got python info of /usr/bin/python3 from /home/mdk/.local/share/virtualenv/py_info/1/31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 430 I proposed PathPythonInfo(spec=CPython3.10.9.final.0-64, exe=/usr/bin/python3, platform=linux, version='3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63] py39-high: 431 D got python info of /usr/bin/python from /home/mdk/.local/share/virtualenv/py_info/1/767d51c1340bd893661ea55ea3124f6de3c7a262a8b4abca0554b478b1e2ff90.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 432 I proposed PathPythonInfo(spec=CPython3.10.9.final.0-64, exe=/usr/bin/python, platform=linux, version='3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63] py39-high: 432 D discover PATH[3]=/bin [virtualenv/discovery/builtin.py:108] py39-high: 433 D got python info of /bin/python3 from /home/mdk/.local/share/virtualenv/py_info/1/916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 434 I proposed PathPythonInfo(spec=CPython3.10.9.final.0-64, exe=/bin/python3, platform=linux, version='3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63] py39-high: 435 D got python info of /bin/python from /home/mdk/.local/share/virtualenv/py_info/1/e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 435 I proposed PathPythonInfo(spec=CPython3.10.9.final.0-64, exe=/bin/python, platform=linux, version='3.10.9 (main, Dec 7 2022, 13:47:07) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63] py39-high: 436 D discover PATH[4]=/usr/local/games [virtualenv/discovery/builtin.py:108] py39-high: 436 D discover PATH[5]=/usr/games [virtualenv/discovery/builtin.py:108] py39-high: 436 D discover PATH[6]=/home/mdk/.local/bin [virtualenv/discovery/builtin.py:108] py39-high: 437 D got python info of /home/mdk/.local/bin/python3.9 from /home/mdk/.local/share/virtualenv/py_info/1/3fbb51d8e8bf08332504388e0d41d8bccfc797cc26c41c2b225b83734c5481d7.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 438 I proposed PathPythonInfo(spec=CPython3.9.16.final.0-64, exe=/home/mdk/.local/bin/python3.9, platform=linux, version='3.9.16 (main, Jan 2 2023, 16:12:16) \n[GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:63] py39-high: 438 D accepted PathPythonInfo(spec=CPython3.9.16.final.0-64, exe=/home/mdk/.local/bin/python3.9, platform=linux, version='3.9.16 (main, Jan 2 2023, 16:12:16) \n[GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:65] py39-high: 490 I create virtual environment via CPython3Posix(dest=/home/mdk/clones/mdk/oeis/.tox/py39-high, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:48] py39-high: 490 D create folder /home/mdk/clones/mdk/oeis/.tox/py39-high/bin [virtualenv/util/path/_sync.py:9] py39-high: 491 D create folder /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages [virtualenv/util/path/_sync.py:9] py39-high: 491 D write /home/mdk/clones/mdk/oeis/.tox/py39-high/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30] py39-high: 491 D home = /home/mdk/.local/bin [virtualenv/create/pyenv_cfg.py:34] py39-high: 491 D implementation = CPython [virtualenv/create/pyenv_cfg.py:34] py39-high: 491 D version_info = 3.9.16.final.0 [virtualenv/create/pyenv_cfg.py:34] py39-high: 491 D virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34] py39-high: 491 D include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34] py39-high: 491 D base-prefix = /home/mdk/.local [virtualenv/create/pyenv_cfg.py:34] py39-high: 492 D base-exec-prefix = /home/mdk/.local [virtualenv/create/pyenv_cfg.py:34] py39-high: 492 D base-executable = /home/mdk/.local/bin/python3.9 [virtualenv/create/pyenv_cfg.py:34] py39-high: 492 D symlink /home/mdk/.local/bin/python3.9 to /home/mdk/clones/mdk/oeis/.tox/py39-high/bin/python [virtualenv/util/path/_sync.py:28] py39-high: 493 D create virtualenv import hook file /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:89] py39-high: 493 D create /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:92] py39-high: 493 D ============================== target debug ============================== [virtualenv/run/session.py:50] py39-high: 494 D debug via /home/mdk/clones/mdk/oeis/.tox/py39-high/bin/python /home/mdk/clones/mdk/oeis/.venv/lib/python3.10/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:197] py39-high: 494 D { "sys": { "executable": "/home/mdk/clones/mdk/oeis/.tox/py39-high/bin/python", "_base_executable": "/home/mdk/clones/mdk/oeis/.tox/py39-high/bin/python", "prefix": "/home/mdk/clones/mdk/oeis/.tox/py39-high", "base_prefix": "/home/mdk/.local", "real_prefix": null, "exec_prefix": "/home/mdk/clones/mdk/oeis/.tox/py39-high", "base_exec_prefix": "/home/mdk/.local", "path": [ "/home/mdk/.local/lib/python39.zip", "/home/mdk/.local/lib/python3.9", "/home/mdk/.local/lib/python3.9/lib-dynload", "/home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages" ], "meta_path": [ "", "", "", "" ], "fs_encoding": "utf-8", "io_encoding": "utf-8" }, "version": "3.9.16 (main, Jan 2 2023, 16:12:16) \n[GCC 12.2.0]", "makefile_filename": "/home/mdk/.local/lib/python3.9/config-3.9d-x86_64-linux-gnu/Makefile", "os": "", "site": "", "datetime": "", "math": "", "json": "" } [virtualenv/run/session.py:51] py39-high: 593 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/mdk/.local/share/virtualenv) [virtualenv/run/session.py:55] py39-high: 597 D got embed update of distribution setuptools from /home/mdk/.local/share/virtualenv/wheel/3.9/embed/3/setuptools.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 598 D got embed update of distribution pip from /home/mdk/.local/share/virtualenv/wheel/3.9/embed/3/pip.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 598 D got embed update of distribution wheel from /home/mdk/.local/share/virtualenv/wheel/3.9/embed/3/wheel.json [virtualenv/app_data/via_disk_folder.py:129] py39-high: 604 D install setuptools from wheel /home/mdk/clones/mdk/oeis/.venv/lib/python3.10/site-packages/virtualenv/seed/wheels/embed/setuptools-65.6.3-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47] py39-high: 605 D install pip from wheel /home/mdk/clones/mdk/oeis/.venv/lib/python3.10/site-packages/virtualenv/seed/wheels/embed/pip-22.3.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47] py39-high: 605 D install wheel from wheel /home/mdk/clones/mdk/oeis/.venv/lib/python3.10/site-packages/virtualenv/seed/wheels/embed/wheel-0.38.4-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:47] py39-high: 608 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.dist-info to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/wheel-0.38.4.dist-info [virtualenv/util/path/_sync.py:36] py39-high: 608 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/setuptools [virtualenv/util/path/_sync.py:36] py39-high: 609 D copy /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.virtualenv to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/pip-22.3.1.virtualenv [virtualenv/util/path/_sync.py:36] py39-high: 610 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/pip [virtualenv/util/path/_sync.py:36] py39-high: 612 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/wheel [virtualenv/util/path/_sync.py:36] py39-high: 622 D copy /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/wheel-0.38.4-py3-none-any/wheel-0.38.4.virtualenv to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/wheel-0.38.4.virtualenv [virtualenv/util/path/_sync.py:36] py39-high: 624 D generated console scripts wheel wheel-3.9 wheel3.9 wheel3 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41] py39-high: 719 D copy /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.virtualenv to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/setuptools-65.6.3.virtualenv [virtualenv/util/path/_sync.py:36] py39-high: 720 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/_distutils_hack to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:36] py39-high: 721 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/pkg_resources to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/pkg_resources [virtualenv/util/path/_sync.py:36] py39-high: 747 D copy /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/distutils-precedence.pth to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:36] py39-high: 748 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/setuptools-65.6.3-py3-none-any/setuptools-65.6.3.dist-info to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/setuptools-65.6.3.dist-info [virtualenv/util/path/_sync.py:36] py39-high: 753 D generated console scripts [virtualenv/seed/embed/via_app_data/pip_install/base.py:41] py39-high: 837 D copy directory /home/mdk/.local/share/virtualenv/wheel/3.9/image/1/CopyPipInstall/pip-22.3.1-py3-none-any/pip-22.3.1.dist-info to /home/mdk/clones/mdk/oeis/.tox/py39-high/lib/python3.9/site-packages/pip-22.3.1.dist-info [virtualenv/util/path/_sync.py:36] py39-high: 841 D generated console scripts pip-3.9 pip3.9 pip pip3 [virtualenv/seed/embed/via_app_data/pip_install/base.py:41] py39-high: 841 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python [virtualenv/run/session.py:61] py39-high: 845 D write /home/mdk/clones/mdk/oeis/.tox/py39-high/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:30] py39-high: 845 D home = /home/mdk/.local/bin [virtualenv/create/pyenv_cfg.py:34] py39-high: 845 D implementation = CPython [virtualenv/create/pyenv_cfg.py:34] py39-high: 845 D version_info = 3.9.16.final.0 [virtualenv/create/pyenv_cfg.py:34] py39-high: 845 D virtualenv = 20.17.1 [virtualenv/create/pyenv_cfg.py:34] py39-high: 846 D include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:34] py39-high: 846 D base-prefix = /home/mdk/.local [virtualenv/create/pyenv_cfg.py:34] py39-high: 846 D base-exec-prefix = /home/mdk/.local [virtualenv/create/pyenv_cfg.py:34] py39-high: 846 D base-executable = /home/mdk/.local/bin/python3.9 [virtualenv/create/pyenv_cfg.py:34] py39-high: 852 W install_deps> python -I -m pip install coverage hypothesis pytest './matplotlib>=3<4' './sympy>=1.9<2' [tox/tox_env/api.py:427] ERROR: Invalid requirement: './matplotlib>=3<4' Hint: It looks like a path. File './matplotlib>=3<4' does not exist. py39-high: 3908 C exit 1 (3.06 seconds) /home/mdk/clones/mdk/oeis> python -I -m pip install coverage hypothesis pytest './matplotlib>=3<4' './sympy>=1.9<2' pid=14320 [tox/execute/api.py:275] py39-high: FAIL code 1 (3.58 seconds) evaluation failed :( (3.70 seconds) ```

Minimal example

If possible, provide a minimal reproducer for the issue:

cat tox.ini
[tox]
envlist = py39-{low,high}
isolated_build = True
skip_missing_interpreters = True

[testenv]
deps =
  pytest
  low: matplotlib>=2<3
  low: sympy>=1.0<1.1
  high: matplotlib>=3<4
  high: sympy>=1.9<2
commands = echo youpi

$ tox
py39-low: install_deps> python -I -m pip install pytest './matplotlib>=2<3' './sympy>=1.0<1.1'
gaborbernat commented 1 year ago

I'm surprised this worked with old tox. Unfortunately, your specs are not valid, per https://peps.python.org/pep-0440/#version-specifiers:

A version specifier consists of a series of version clauses, separated by commas.

So you need to specify matplotlib>=2,<3, not matplotlib>=2<3.

JulienPalard commented 1 year ago

Oh oh.

Sorry for the noise, and thank you so much @gaborbernat answering so fast and for your work on tox!!!