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

Ensure tox uses oldest supported Python for coverage #1258

Merged
merged 1 commit into from
May 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/1258.misc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The ``tox`` coverage environment will now use the oldest available version of Python.
2 changes: 2 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ commands =

[testenv:coverage{,-html}{,-fail}]
depends = py{,38,39,310,311,312}
# coverage should run on oldest supported Python
base_python = py38,py39,py310,py311
Copy link
Member

Choose a reason for hiding this comment

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

Clarifying the interpretation here - The behavior in CI definitely seems to be using the py38 environment; but does this definition mean it will prefer the py38 environment, but if you don't have one, it will use py39, and so on? The tox documentation isn't clear about this (to me, anyway), and it's difficult to test.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah....everything about tox just feels a little cryptic. Nonetheless, tox supports a whole "discovery" algorithm for finding versions of Python; depending on PATH is mostly working for me, though.

This setting means use the first available version of Python in this list.

The easiest way I found to test it is to make sure Python 3.8 or Python 3.9 is in PATH and start tox from a virtual env using a different Python version. You should see tox create an environment using 3.8...sometimes adding -v to tox makes things clearer....or even more confusing...

Finally, CI is was using Python 3.8 even before this because that's what's installed for that CI job and the default choice for which python.

parallel_show_output = True
extras = {[testenv]extras}
# 2023-04-22 see pkgenv ↑
Expand Down