chore: unpin flake8 so lint runs on Python 3.14 - #284
Merged
Merged
Conversation
flake8 4 uses an importlib.metadata API that Python 3.14 removed, so the lint env crashed before it read a file once the release workflow moved to 3.14. flake8 7.3.0 runs on 3.14 and reports no findings on the current code.
klotty
approved these changes
Sep 15, 2026
klotty
left a comment
There was a problem hiding this comment.
No issues found across 1 file
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Auto-approved: Unpins flake8 in the lint env so lint runs on Python 3.14 and the release workflow can complete; dev-only dependency fix with no runtime code change.
Re-trigger cubic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Maintainers can release from the Release workflow again after Renovate moved it to Python 3.14.
Before, the lint step crashed on Python 3.14 before it read a single file, because the lint env held flake8 at version 4. The first tag-triggered release,
v2.45.1, stopped there and nothing reached PyPI. The tests workflow kept passing because its matrix ends at 3.11, so the problem only showed on a release.Now the lint env installs the current flake8, which runs on 3.14 and reports no findings on the current code. Mypy and the test suite already pass on 3.14.
How to reach it. Merge, then re-tag
2.45.1on the newmainhead and push the tag. The Release run should go green through publish.Not covered. The tests workflow still runs Python 3.8 to 3.11 only. The next runtime bump by Renovate on the release workflow will again run checks on a version the matrix does not cover.
Summary by cubic
Unpins
flake8in the lint env so lint passes on Python 3.14 again. Lint previously crashed before reading a file because flake8 4 relied on animportlib.metadataAPI that Python 3.14 removed, which stopped the tag-triggered release atv2.45.1before anything reached PyPI.Now the lint env installs the current
flake8, which runs on 3.14 and reports no findings on the current code. After merging, re-tagv2.45.1on the newmainhead and push the tag so the Release workflow completes through publish. The tests workflow still runs Python 3.8–3.11 only, so future runtime bumps may hit gaps not covered by the matrix.Written for commit 61cd069. Summary will update on new commits.