-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Drop python 3.8 support #12875
base: main
Are you sure you want to change the base?
Drop python 3.8 support #12875
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks lovely at first glance
if upframe.f_code.co_name == "_makepath": | ||
# Only raise with expected calls, but not via e.g. inspect for | ||
# py38-windows. | ||
# py38-windows. (?) | ||
raised += 1 | ||
raise OSError(2, "custom_oserror") | ||
return orig_path_cwd() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure what to do here, advise welcome
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#6529 does not offer any explanation, however #6463 (comment) links it and implies that there might've been flakiness in the Codecov uploader. But this was like almost 5 years ago, and Codecov has since rewritten their uploader 3 times. We've additionally made it less flaky by hardcoding a plain-text token a few months ago.
Looking into the coverage reports, something weird is happening. The if-line is marked as covered partially, both in this PR and on main
:
- https://app.codecov.io/gh/pytest-dev/pytest/pull/12875/blob/testing/code/test_excinfo.py#L966
- https://app.codecov.io/gh/pytest-dev/pytest/blob/main/testing%2Fcode%2Ftest_excinfo.py#L966
However, the return
line is reported as 100% covered in the PR (https://app.codecov.io/gh/pytest-dev/pytest/pull/12875/blob/testing/code/test_excinfo.py#L971) while on main
it's marked as not covered (https://app.codecov.io/gh/pytest-dev/pytest/blob/main/testing%2Fcode%2Ftest_excinfo.py#L966).
AFAIU, the raise
instruction can only be reached on if True
and the return
statement would be reachable on if False
. That should cover both branches of the if-block. So I don't understand why the conditional is marked with partial coverage.
_makepath()
is also fully covered in both cases:
- https://app.codecov.io/gh/pytest-dev/pytest/pull/12875/blob/src/_pytest/_code/code.py#L955
- https://app.codecov.io/gh/pytest-dev/pytest/blob/main/src%2F_pytest%2F_code%2Fcode.py#L958
P.S. While looking into Codecov, I realized that it does not show any coverage for src/pytest/
— it's just not there. It looks like we also have Coveragepy misconfigured or something. Something to investigate.
Changed the configuration of the repo so
|
for more information, see https://pre-commit.ci
import AbstractSet => from collections.abc import Set as AbstractSet and others
14b36ce
to
3f03eda
Compare
@@ -53,6 +53,8 @@ repos: | |||
rev: v3.17.0 | |||
hooks: | |||
- id: pyupgrade | |||
args: | |||
- "--py39-plus" | |||
stages: [manual] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this manual, by the way?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here's the full discussion about it : #12418, the gist of it is that ruff does what pyupgrade does and the two are not out of sync often enough to make launching pyupgrade everytime worth it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, interesting. I'd suggest that this is a good reason to put a code comment in this place :)
@Teri53 @TeriThetha please stop spamming. |
@nicoddemus @RonnyPfannschmidt @The-Compiler can anybody ban the spammer, please? |
Sorry won't happen again |
Blocked. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i like it !
the messy nature of the github matrix makes me wonder,
if we should investigate a script to generate it as a followup
its so easy to make mistakes in it, its scary
- name: "windows-py38" | ||
python: "3.8" | ||
os: windows-latest | ||
tox_env: "py38-unittestextras" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i believe this one need a python 3.9 variant as well,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been meaning to ask why this only uses inclusions? Usually, combining them with builtin matrix generation works better..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
im not sure what you mean, i believe we had a number of special/slow envs that are only used for very specific tests (freeze, pypy, pluggy) and as far as i know this was the best working solution known at the time - if there is something better, i'd love to see that
as far as i understand/remember the builtin matrix would have generated a variant product, when we want a subset
Refs #12874