Skip to content

Fix CI mypy command on free-threaded Python #2040

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

Merged
merged 2 commits into from
Jun 7, 2025

Conversation

EliahKagan
Copy link
Member

@EliahKagan EliahKagan commented Jun 7, 2025

When the version is represented as 3.13t, the --python-version option needs an operand of 3.13, not 3.13t.

(This, and the fix here, will automatically apply to later threaded Pythons, such as 3.14t, too.)


Before this change, in the Python 3.13t run:

+ mypy --python-version=3.13t
usage: mypy [-h] [-v] [-V] [more options; see below]
            [-m MODULE] [-p PACKAGE] [-c PROGRAM_TEXT] [files ...]
mypy: error: argument --python-version: Invalid python version '3.13t' (expected format: 'x.y')

This isn't new--it's always happened in the mypy step in the 3.13t job. We just never noticed it, because the mypy step always reports failure even when working correctly, because there are a number of unresolved type errors, most of which should not be suppressed but that neither I nor others have get gotten around yet to fixing, and some of which maybe should be suppressed but neither I nor others have gotten around yet to verifying are reasonable to suppress. (For quite some time, the mypy step has step-level continue-on-error, which causes it not to fail the job.)

There's no connection between this and #2037 or #2038/#2039, except in the broad conceptual sense that this and #2038 share as a contributing factor that it's easy not to notice unanticipated new problems with mypy. However, just in case, I have verified that the effect of #2039 applies the same to 3.13t as to 3.13, by first testing this on a feature branch that had not integrated #2039, and then rebasing.

No change is needed in tox.ini, even separately from that not yet listing a py313t environment, because tox.ini as currently written does not pass a --python-version argument to mypy.

I plan to merge this once everything passes on CI, after also verifying again that the output is as expected.

Edit: The effect is as expected and intended. I'll just wait for the rest of CI to pass before merging.

When the version is represented as `3.13t`, the `--python-version`
option needs an operand of `3.13`, not `3.13t`.

(This, and the fix here, will automatically apply to later threaded
Pythons, such as 3.14t, too.)
@EliahKagan EliahKagan mentioned this pull request Jun 7, 2025
7 tasks
Since the `${var%pattern}` syntax may not be immediately obvious.
@EliahKagan EliahKagan marked this pull request as ready for review June 7, 2025 17:12
@EliahKagan EliahKagan merged commit 27bf23c into gitpython-developers:main Jun 7, 2025
26 checks passed
@EliahKagan EliahKagan deleted the mypy-free-threaded branch June 7, 2025 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant