Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fail on mismatched python spec attributes #2824

Merged
merged 2 commits into from Jan 5, 2023

Conversation

stephenfin
Copy link
Contributor

@stephenfin stephenfin commented Jan 5, 2023

The following is intended to be a correct tox configuration:

[tox]
min_version = 4.1
env_list = py{38,39,310,311},docs

[testenv]
base_python = python3.8

[testenv:docs]
commands =
  sphinx-build ...

The goal of this is to use python3.8 (i.e. the value of [testenv] base_python) for all environments except those with specific pyXX factors in them. This helps eliminate issues where testenvs that do not specify a pyXX factor run with different Python versions in different environments.

An earlier bug, #477, prevented us from doing this. Due to #477, the interpreter version indicated by [testenv] base_python (or rather [testenv] basepython - the underscore-separated variant was only introduced in tox 4) would override the value indicated by the pyXX factor. This was resolved with a PR, #841, which started warning users if they were unintentionally running against the wrong interpreter and introduced the ignore_basepython_conflict value to opt into the correct behavior.

Unfortunately, this has been partially broken in the move to tox 4. While the above configuration still works, the following no longer does:

[tox]
min_version = 4.1
env_list = py{38,39,310,311},docs

[testenv]
base_python = python3

[testenv:docs]
commands =
  sphinx-build ...

This configuration was common back during the move from Python 2 to Python 3. It ensured that python3 was used for all testenvs that did not request an explicit Python version via a factor or their own base_python version. While it's no longer necessary, it is still quite common. Currently, running with this configuration will result in python3 being used for every environment, rather than e.g. python3.8 for a testenv with the py38 factor. This is clearly incorrect. This issue stems from an errant bit of logic. When comparing interpreter versions as part of the _validate_base_python, we ignore various attributes if they are unset on either [testenv] base_python or the pyXX factor. This allows e.g. python3 to match python3.8, since the minor version is unset for the [testenv] base_python value, python3. The fix is simple: while we can ignore unset attributes for factor-derived versions (to allow a py3 factor to work with e.g. base_python = python3.8), we should insist on them for base_python-derived versions.

Closes: #2754

The following is intended to be a correct tox configuration:

  [tox]
  min_version = 4.1
  env_list = py{38,39,310,311},docs

  [testenv]
  base_python = python3.8

  [testenv:docs]
  commands =
    sphinx-build ...

The goal of this is to use 'python3.8' (i.e. the value of '[testenv]
base_python') for all environments except those with specific 'pyXX'
factors in them. This helps eliminate issues where environments that do
not specify a 'pyXX' factor run with different Python versions in
different environments.

An earlier bug, tox-dev#477 [1], prevented us from doing this. Due to tox-dev#477, the
interpreter version indicated by '[testenv] base_python' (or rather
'[testenv] basepython' - the underscore-separated variant was only
introduced in tox 4) would override the value indicated by the 'pyXX'
factor. This was resolved with a PR, tox-dev#841 [2], which started warning
users if they were unintentionally running against the wrong interpreter
and introduced the 'ignore_basepython_conflict' value to opt into the
correct behavior.

Unfortunately, this has been partially broken in the move to tox 4.
While the above configuration still works, the following no longer does:

  [tox]
  min_version = 4.1
  env_list = py{38,39,310,311},docs

  [testenv]
  base_python = python3

  [testenv:docs]
  commands =
    sphinx-build ...

This configuration was common back during the move from Python 2 to
Python 3. It ensured that 'python3' was used for all testenvs that did
not request an explicit Python version via a factor or their own
'base_python' version. While it's no longer necessary, it is still quite
common. Currently, running with this configuration will result in
'python3' being used for every environment, rather than e.g. 'python3.8'
for a testenv with the 'py38' factor. This is clearly incorrect. This
issue stems from an errant bit of logic. When comparing interpreter
versions as part of the '_validate_base_python', we ignore various
attributes if they are unset on either '[testenv] base_python' or the
'pyXX' factor. This allows e.g. 'python3' to match 'python3.8', since
the minor version is unset for the '[testenv] base_python' value,
'python3'. The fix is simple: while we can ignore unset attributes for
factor-derived versions (to allow a 'py3' factor to work with e.g.
'base_python = python3.8'), we should insist on them for
'base_python'-derived versions.

[1] tox-dev#477
[2] tox-dev#841

Signed-off-by: Stephen Finucane <stephen@that.guru>
Closes: tox-dev#2754
@stephenfin
Copy link
Contributor Author

stephenfin commented Jan 5, 2023

Docs failures don't appear to be due to this...

Edit: It looks like Sphinx 6.1.0 is the culprit. Works fine on 6.0.1.

Edit: And it's this commit in Sphinx that's causing an incompatibility with the sphinx_argparse_cli extension. Apparently that's not setting the source attribute on the nodes it creates. If I comment out the directive in docs/cli_interface.rst then the build mostly succeeds (or rather fails but only due to missing missing labels).

@@ -0,0 +1,2 @@
Setting ``[testenv] basepython = python3`` will no longer override the Python
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrap at 120 and add - by :user:`x`.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following is intended to be a correct tox configuration:

[tox]
min_version = 4.1
env_list = py{38,39,310,311},docs

[testenv]
base_python = python3.8

[testenv:docs]
commands =
  sphinx-build ...

The goal of this is to use python3.8 (i.e. the value of [testenv] base_python) for all environments except those with specific pyXX factors in them. This helps eliminate issues where testenvs that do not specify a pyXX factor run with different Python versions in different environments.

Strong disagree. This is not a good way to express this. This config should hard fail for all envs expect py38.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This helps eliminate issues where testenvs that do not specify a pyXX factor run with different Python versions in different environments.

If those other envs care about a python version, they should specify so in their section; e.g. here, docs should set it to 3.8. Not setting it means I'm happy with any Python.

Copy link
Contributor Author

@stephenfin stephenfin Jan 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following is intended to be a correct tox configuration:

[tox]
min_version = 4.1
env_list = py{38,39,310,311},docs

[testenv]
base_python = python3.8

[testenv:docs]
commands =
  sphinx-build ...

The goal of this is to use python3.8 (i.e. the value of [testenv] base_python) for all environments except those with specific pyXX factors in them. This helps eliminate issues where testenvs that do not specify a pyXX factor run with different Python versions in different environments.

Strong disagree. This is not a good way to express this. This config should hard fail for all envs expect py38.

Regarding the hard fail, currently tox does not hard fail with this configuration and it does the wrong thing (using python3 for all environments regardless of the version inferred from the factor). With this change, it does hard fail unless the user has explicitly set ignore_base_python_conflict = true. So I think what we're discussing here isn't actually this change itself, since this fixes an obvious bug.

Regarding whether this is a good way to express this, requiring users duplicate base_python in every section makes base_python a special-case, no? For everything else, the idea is that [testenv] allows you to set "default" values that you can later override (or extend) in [testenv:foo] sections. tox itself does this for various things like command:

tox/tox.ini

Lines 27 to 35 in af4b558

commands =
pytest {posargs: \
--junitxml {toxworkdir}{/}junit.{envname}.xml --cov {envsitepackagesdir}{/}tox --cov {toxinidir}{/}tests \
--cov-config={toxinidir}{/}pyproject.toml --no-cov-on-fail --cov-report term-missing:skip-covered --cov-context=test \
--cov-report html:{envtmpdir}{/}htmlcov \
--cov-report xml:{toxworkdir}{/}coverage.{envname}.xml \
-n={env:PYTEST_XDIST_AUTO_NUM_WORKERS:auto} \
tests --durations 5 --run-integration}
diff-cover --compare-branch {env:DIFF_AGAINST:origin/main} {toxworkdir}{/}coverage.{envname}.xml

tox/tox.ini

Lines 47 to 49 in af4b558

commands =
pre-commit run --all-files --show-diff-on-failure {posargs}
python -c 'print(r"hint: run {envbindir}{/}pre-commit install to add checks as pre-commit hook")'

My question is why can we do this for things like commands, deps, or passenv etc. but we should not be able to do it for base_python?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But that makes base_python a special-case? For everything else, the idea is that [testenv] allows you to set "default" values that you can later override (or extend) in [testenv:foo] sections. tox itself does this for various things like command:

It's not a special case. Follows the same rule.

[testenv]
base_python = python3.8
[testenv:py39]
base_python = python3.9 

Would work. Where you're mistaken is that py38 only sets base_python to py38 if at no point is base_python specified. If you set it at testenv or [testenv:py38] level that no longer activates.

@@ -95,6 +95,7 @@ def test_base_python_env_no_conflict(env: str, base_python: list[str], ignore_co
("py3", ["py2"], ["py2"]),
("py38", ["py39"], ["py39"]),
("py38", ["py38", "py39"], ["py39"]),
("py38", ["python3"], ["python3"]),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't conflict, but py27 and python3 should 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both should conflict. python3 on my system == python3.11.1. That is decidedly not python3.8, which is what I intended. I should be exploding on that combination - which I do (unless the user explicitly said not to, via ignore_base_python_conflict)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're miss understanding. base_python is not an executable match. It is a specification. And the specification states Python 3, without resolving it any further.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That may be the case, but providing a specification of python3 (e.g. base_python = python3) causes the python3 executable to be used. For example, using a tox.ini like this:

[tox]
minversion = 3.1
envlist = py{37,38,39,310,311}

[testenv]
basepython = python3

If I run tox -e py38, the py38 venv is using python3.11 :

❯ source .tox/py38/bin/activate
❯ python --version
Python 3.11.1

No warnings. Nothing. That's got to be incorrect behaviour, surely?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, so we have two options:

  • for py38 python3 spec should conflict and hard fail,
  • hard fail once we resolve python3 and see its something else.

I'm inclined to go for option 1.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. Option 1 is the way to go. Option 2 will result in different behaviour depending on the environment making tox less deterministic. That's A Bad Thing ™️

Without this change, the py38 venv uses whatever python3 is on my host (python3.11). With this change, things hard fail as expected.

❯ tox -e py38
py38: failed with env name py38 conflicting with base python python3
  py38: FAIL code 1 (0.00 seconds)
  evaluation failed :( (0.08 seconds)

So it seems I have implemented option 1, yes?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens for env py3, py, magic? Does that still work without this failure?

Copy link
Contributor Author

@stephenfin stephenfin Jan 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It passes, as expected.

❯ tox -e py3
py3: install_deps> python -I -m pip install -r /tmp/tox-issue-2717/test-requirements.txt
.pkg: _optional_hooks> python /tmp/tox-venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /tmp/tox-venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: prepare_metadata_for_build_wheel> python /tmp/tox-venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /tmp/tox-venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py3: install_package_deps> python -I -m pip install requests
py3: install_package> python -I -m pip install --force-reinstall --no-deps /tmp/tox-issue-2717/.tox/.tmp/package/11/foo-0.0.0.tar.gz
.pkg: _exit> python /tmp/tox-venv/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
  py3: OK (4.39 seconds)
  congratulations :) (4.42 seconds)

Signed-off-by: Stephen Finucane <stephen@that.guru>
@gaborbernat gaborbernat merged commit fc289c0 into tox-dev:main Jan 5, 2023
@stephenfin
Copy link
Contributor Author

🥳 Thanks. Happy to have gotten this resolved 😄

@stephenfin stephenfin deleted the issues/2754 branch January 5, 2023 18:22
@gaborbernat
Copy link
Member

Sorry for taking a while for me to understand 😆

openstack-mirroring pushed a commit to openstack-archive/tripleo-heat-templates that referenced this pull request Jan 6, 2023
tox now hard fails if there is mismatch in spec
attributes[1]. This works around the issue
temporarily. We probably have to drop py38 jobs
and specify basepython for py39 target in the
future.

[1] tox-dev/tox#2824

Closes-Bug: #2002035
Change-Id: I4256a51afd011048eaaaf5d3c225ab36f75708ed
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jan 6, 2023
* Update tripleo-heat-templates from branch 'master'
  to 0c0def6f81b6a71f2a07ae4bec9834d8048edb25
  - Fix issues with tox 4.2.4
    
    tox now hard fails if there is mismatch in spec
    attributes[1]. This works around the issue
    temporarily. We probably have to drop py38 jobs
    and specify basepython for py39 target in the
    future.
    
    [1] tox-dev/tox#2824
    
    Closes-Bug: #2002035
    Change-Id: I4256a51afd011048eaaaf5d3c225ab36f75708ed
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jan 6, 2023
* Update tripleo-ansible from branch 'master'
  to b88008dd64049de8a3ae7e38ee76d563134af2ef
  - Fix issues with tox 4.2.4
    
    tox now hard fails if there is mismatch in spec
    attributes[1]. This works around the issue
    temporarily. We probably have to drop py38 jobs
    and specify basepython for py39 target in the
    future.
    
    Removes ansible-galaxy --timeout for py* jobs to
    workaround. We may hit the timeout with py* jobs.
    
    [1] tox-dev/tox#2824
    
    Closes-Bug: #2001602
    Closes-Bug: #2002035
    Change-Id: Iad2455193885205236e03c1219352102bb931de8
openstack-mirroring pushed a commit to openstack-archive/tripleo-ansible that referenced this pull request Jan 6, 2023
tox now hard fails if there is mismatch in spec
attributes[1]. This works around the issue
temporarily. We probably have to drop py38 jobs
and specify basepython for py39 target in the
future.

Removes ansible-galaxy --timeout for py* jobs to
workaround. We may hit the timeout with py* jobs.

[1] tox-dev/tox#2824

Closes-Bug: #2001602
Closes-Bug: #2002035
Change-Id: Iad2455193885205236e03c1219352102bb931de8
openstack-mirroring pushed a commit to openstack-archive/tripleo-heat-templates that referenced this pull request Jan 6, 2023
The patch bumps min version of tox to 3.18.0 in order to
replace tox's whitelist_externals by allowlist_externals option:
https://github.com/tox-dev/tox/blob/master/docs/changelog.rst#v3180-2020-07-23

Also removes skipdist=True as in
Ib0fca00c92ef56fce57eb6355cb6be36e478a744.

Also inlcludes:

Fix issues with tox 4.2.4

tox now hard fails if there is mismatch in spec
attributes[1]. This works around the issue
temporarily. We probably have to drop py38 jobs
and specify basepython for py39 target in the
future.

[1] tox-dev/tox#2824

Conflicts:
	tox.ini

Backport note:
This is now required to adapt to the new tox 4.0 release, which no
longer supports the old deprecated options.

Closes-Bug: #2002035
Change-Id: I5792c86745b875d074f670d92fe78a84a907bd74
(cherry picked from commit 3cb006d
 and 7fd4519)
(cherry picked from commit 0c0def6)
openstack-mirroring pushed a commit to openstack-archive/tripleo-heat-templates that referenced this pull request Jan 6, 2023
tox now hard fails if there is mismatch in spec
attributes[1]. This works around the issue
temporarily. We probably have to drop py38 jobs
and specify basepython for py39 target in the
future.

[1] tox-dev/tox#2824

Closes-Bug: #2002035
Change-Id: I4256a51afd011048eaaaf5d3c225ab36f75708ed
(cherry picked from commit 0c0def6)
openstack-mirroring pushed a commit to openstack/python-aodhclient that referenced this pull request Jan 12, 2023
* use min version 4.2.5, for fixes [1][2][3]
* passenv fixed as space-separated list is not allowed anymore
* dock target uses requirements from requirements.txt as well as
  doc/requirements.txt
* skipsdist is not supported
* whitelist_externals has been removed in favour of allowlist_externals

* reno was added to doc/requirements.txt to fix the releasenotes target
* update setup.cfg to install aodh from tarball in the requirements
  The tarball wasn't being installed when specified in tox.ini, and the
  [extras] section in setup.cfg needed updating to support installing
  from a URL

[1] tox-dev/tox#2754
[2] tox-dev/tox#2824
[3] tox-dev/tox#2828

Change-Id: I4122d0d05f297f864318e80392e6c77fb2e9fdcf
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jan 12, 2023
* Update python-aodhclient from branch 'master'
  to 02176deb25b3a8f1bc02eb3d70f0a50ce22f02f7
  - Make tox.ini tox 4.0 compatible
    
    * use min version 4.2.5, for fixes [1][2][3]
    * passenv fixed as space-separated list is not allowed anymore
    * dock target uses requirements from requirements.txt as well as
      doc/requirements.txt
    * skipsdist is not supported
    * whitelist_externals has been removed in favour of allowlist_externals
    
    * reno was added to doc/requirements.txt to fix the releasenotes target
    * update setup.cfg to install aodh from tarball in the requirements
      The tarball wasn't being installed when specified in tox.ini, and the
      [extras] section in setup.cfg needed updating to support installing
      from a URL
    
    [1] tox-dev/tox#2754
    [2] tox-dev/tox#2824
    [3] tox-dev/tox#2828
    
    Change-Id: I4122d0d05f297f864318e80392e6c77fb2e9fdcf
qixiang added a commit to qixiang/freshmaker that referenced this pull request Jan 13, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jan 17, 2023
* Update aodh from branch 'master'
  to 84d59a198257ea6f3b839ca5d96cbaa74f2f3b76
  - Make tox.ini tox 4.0 compatible
    
    * use min version 4.2.5, for fixes [1][2][3]
    * passenv fixed as space-separated list is not allowed anymore
    * doc target uses requirements.txt as well as docs/requirements.txt
    * skipsdist is not supported
    * Add usedevelop = False so that aodh-api gets installed
    
    Update setup.cfg: [files] -> [options]
    
    [1] tox-dev/tox#2754
    [2] tox-dev/tox#2824
    [3] tox-dev/tox#2828
    
    Change-Id: I2422dc17e6c73ef346de80e57cdf61ef5d271d69
openstack-mirroring pushed a commit to openstack/aodh that referenced this pull request Jan 17, 2023
* use min version 4.2.5, for fixes [1][2][3]
* passenv fixed as space-separated list is not allowed anymore
* doc target uses requirements.txt as well as docs/requirements.txt
* skipsdist is not supported
* Add usedevelop = False so that aodh-api gets installed

Update setup.cfg: [files] -> [options]

[1] tox-dev/tox#2754
[2] tox-dev/tox#2824
[3] tox-dev/tox#2828

Change-Id: I2422dc17e6c73ef346de80e57cdf61ef5d271d69
qixiang added a commit to redhat-exd-rebuilds/freshmaker that referenced this pull request Jan 18, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
The-Compiler added a commit to qutebrowser/qutebrowser that referenced this pull request Jan 19, 2023
This fails now with 'failed with env name pyinstaller-32 conflicting with base python C:\hostedtoolcache\windows\Python\3.10.9\x86\python.exe'

See tox-dev/tox#2824
descope bot added a commit to descope/django-descope that referenced this pull request Jan 19, 2023
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [tox](https://togithub.com/tox-dev/tox)
([changelog](https://tox.wiki/en/latest/changelog.html)) | dev | patch |
`4.2.3` -> `4.2.4` | `4.3.5` (+9) |

---

### Release Notes

<details>
<summary>tox-dev/tox</summary>

### [`v4.2.4`](https://togithub.com/tox-dev/tox/releases/tag/4.2.4)

[Compare Source](https://togithub.com/tox-dev/tox/compare/4.2.3...4.2.4)

#### What's Changed

- Also accept tab after colon before factor filter expansion by
[@&#8203;pdecat](https://togithub.com/pdecat) in
[tox-dev/tox#2823
- Fail on mismatched python spec attributes by
[@&#8203;stephenfin](https://togithub.com/stephenfin) in
[tox-dev/tox#2824

**Full Changelog**: tox-dev/tox@4.2.3...4.2.4

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC45OS4yIiwidXBkYXRlZEluVmVyIjoiMzQuOTkuMiJ9-->

Co-authored-by: descope[bot] <descope[bot]@users.noreply.github.com>
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Feb 2, 2023
* Update tripleo-image-elements from branch 'master'
  to 7adf4508cf88eb9a2d69fb3c8e9468ea318c50ac
  - Fix issues with tox 4.2.4
    
    tox now hard fails if there is mismatch in spec
    attributes[1]. This works around the issue
    temporarily. We probably have to drop py38 jobs
    and specify basepython for py39 target in the
    future.
    
    Removes ansible-galaxy --timeout for py* jobs to
    workaround. We may hit the timeout with py* jobs.
    
    [1] tox-dev/tox#2824
    
    Change-Id: Ie9bacf18cf167139601eff80bba91f2b3454b5dd
openstack-mirroring pushed a commit to openstack-archive/tripleo-image-elements that referenced this pull request Feb 2, 2023
tox now hard fails if there is mismatch in spec
attributes[1]. This works around the issue
temporarily. We probably have to drop py38 jobs
and specify basepython for py39 target in the
future.

Removes ansible-galaxy --timeout for py* jobs to
workaround. We may hit the timeout with py* jobs.

[1] tox-dev/tox#2824

Change-Id: Ie9bacf18cf167139601eff80bba91f2b3454b5dd
qixiang added a commit to qixiang/freshmaker that referenced this pull request Mar 14, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
qixiang added a commit to qixiang/freshmaker that referenced this pull request Mar 14, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
qixiang added a commit to redhat-exd-rebuilds/freshmaker that referenced this pull request Mar 15, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
qixiang added a commit to redhat-exd-rebuilds/freshmaker that referenced this pull request May 30, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
qixiang added a commit to redhat-exd-rebuilds/freshmaker that referenced this pull request May 31, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
qixiang added a commit to redhat-exd-rebuilds/freshmaker that referenced this pull request Jun 29, 2023
1. Ignore base python conflict error

New version of tox (4.2.4?) fails if there is mismatch in spec
attributes [1]. We can change the base python to match with the test
envs, but it may make it inconvenient to setup local development env,
so just ignore the error to workaround the issue.

2. Allow running bash in bandit test

[1] tox-dev/tox#2824
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ignore_basepython_conflict option is not in effect in tox4
2 participants