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

Conversation

rmartin16
Copy link
Member

@rmartin16 rmartin16 commented Apr 30, 2023

nedbat/coveragepy#1572 (comment)

PR Checklist:

  • All new features have been tested
  • All new features have been documented
  • I have read the CONTRIBUTING.md file
  • I will abide by the code of conduct

Copy link
Member

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

Looks good - but one question about the exactly what is being added/changed here.

@@ -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.

Copy link
Member

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

Ok - that's enough of a clarification for me; it's working in my (limited) testing, and in CI, so I'm happy to run with that.

@freakboy3742 freakboy3742 merged commit 67252ce into beeware:main May 1, 2023
@rmartin16 rmartin16 deleted the py38-for-coverage branch May 1, 2023 02:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants