-
Notifications
You must be signed in to change notification settings - Fork 7
Add Python 3.13 to CI, modernize type hints now that 3.10 is the minimum supported Python #28
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
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.
Pull request overview
This PR adds Python 3.13 support to the CI infrastructure and modernizes type hints throughout the codebase to use Python 3.10+ syntax. It also introduces automation for managing test warnings and enhances CI helper scripts.
Changes:
- Adds Python 3.13 to CI test matrix (replacing 3.12 as the maximum tested version)
- Modernizes type hints:
Optional[X]→X | None,Union[X, Y]→X | Y,List[X]→list[X],Dict[K, V]→dict[K, V],Tuple[X, Y]→tuple[X, Y] - Introduces automated warnings cleanup workflow with Python orchestrator and shell wrapper scripts
- Updates CI scripts with new options (
--allow-failures,--run-all-and-examples,--log-dir) - Bumps Lightning dev SHA for compatibility
Reviewed changes
Copilot reviewed 49 out of 49 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/ci_test-full.yml |
Updates CI matrix to test Python 3.10 and 3.13 (was 3.10 and 3.12) |
scripts/build_fts_env.sh |
Changes default Python from 3.12 to 3.13 for latest builds |
src/finetuning_scheduler/*.py |
Modernizes type hints across core modules |
src/fts_examples/**/*.py |
Modernizes type hints in example code |
tests/helpers/expected_warns.py |
Comments out obsolete warnings with TODO markers |
tests/test_utils.sh |
Adds allow_failures parameter for test execution control |
tests/special_tests.sh |
Adds --allow-failures and --log-dir options |
scripts/automate_warnings_cleanup.py |
New automation orchestrator for warnings management (1035 lines) |
scripts/run_warnings_cleanup.sh |
New wrapper script for warnings cleanup automation (191 lines) |
scripts/gen_fts_coverage.sh |
Adds --run-all-and-examples and --allow-failures options |
requirements/ci/overrides.txt |
Updates Lightning commit pin |
pyproject.toml |
Adds Python 3.13 classifier |
| Docker files and workflows | Updates Python version to 3.13 consistently |
| Documentation | Updates README, copilot instructions to reflect Python 3.13 |
This branch adds/updates CI and project infra to support Python 3.13 and performs related cleanup.
Key changes
Commits in this branch (summary)
9975d10— bump lightning dev sha, minor doc cleanup, set CI to use python 3.13ef57bac— automate test warnings cleanup process, enhance CI infra scripts with new options7bc7007— modernize type hints for python 3.10+Why this change
Upgrading CI to include Python 3.13 ensures the project remains compatible with the latest Python release and catches regressions early. The Lightning dev SHA bump and type-hint modernization reduce friction during development and align the codebase with recent typing improvements.
Notes for reviewers / maintainers
Files touched (high-level)
📚 Documentation preview 📚: https://finetuning-scheduler--28.org.readthedocs.build/en/28/