Repository navigation
Make Python 3.15 primary, add PyPy 3.12, and modernize CI - #535
Merged
Merged
Conversation
Remove the obsolete suggestion-mode option and qualify the configured exception names. Use ValueError for three invalid-input paths so the enabled exception checks pass.
Require Python 3.11 or newer, remove CPython and PyPy 3.10 environments, and run linting, packaging, and cross-platform tests on 3.15. Supply the dependencies of bundled PyPy packages so pip check succeeds in isolated tox environments.
ulfarsson
requested changes
Oct 24, 2026
ulfarsson
left a comment
Member
There was a problem hiding this comment.
Looks good, except for all the testing stuff in the readme
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Make Python 3.15 the primary version for linting, type checking, packaging, and Linux/macOS/Windows tests. Keep Linux compatibility coverage for CPython 3.11–3.14 and PyPy 3.11, and add a required PyPy 3.12 job. PyPy 3.12 is already stable (PyPy 8.0.1), so this uses the normal stable version selector.
Drop CPython and PyPy 3.10 support for the next release: require Python >=3.11, remove the 3.10 jobs and tox environments, update classifiers, target Python 3.11 in Black, and document the change in the README and changelog.
The previous workflow installed development dependencies outside tox, where isolated environments could not use them, while tox unconditionally reinstalled development CSS even for release checks. Select both CSS and Permuta inside tox instead: master and PRs targeting it use PyPI releases; other branches use both development branches. Apply this consistently to pytest, mypy, and pylint. Install pycparser and setuptools only in PyPy test environments to satisfy the dependencies of its bundled cffi and HPy packages; the first hosted run exposed this during pip check.
Also update checkout and setup-python to v7 in both workflows, enable pip caching and cancellation of superseded runs, add manual dispatch and a job timeout, configure weekly Dependabot updates for Actions, and align the Black pre-commit pin with tox. Remove obsolete pylint configuration and use ValueError for three invalid-input paths without suppressing the exception checks.
Validation: