Skip to content

Conversation

Pouyanpi
Copy link
Collaborator

Summary

  • Remove Python 3.9 support ahead of its October 2025 EOL date
  • Update minimum Python requirement to 3.10
  • Clean up all references across CI/CD, testing, and documentation

https://peps.python.org/pep-0596/

Files Changed

  • CI workflows, tox.ini, devcontainer configs, and docs updated
  • Python version ranges now support 3.10-3.13

Python 3.9 reaches end-of-life on October 5, 2025. Remove support
across:
- CI/CD workflows (GitHub Actions, GitLab CI)
- Testing configurations (tox.ini)
- Development containers
- Documentation and requirements
Copy link
Contributor

Documentation preview

https://nvidia-nemo.github.io/Guardrails/review/pr-1426

@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Pouyanpi Pouyanpi added this to the v0.18.0 milestone Sep 29, 2025
@Pouyanpi Pouyanpi self-assigned this Sep 29, 2025
@Pouyanpi Pouyanpi requested a review from Copilot September 29, 2025 16:09
Copy link

@Copilot Copilot AI left a 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 drops Python 3.9 support ahead of its October 2025 End-of-Life date and updates the minimum Python requirement to 3.10. The changes ensure all project configurations, CI workflows, and documentation reflect the new Python version requirements of 3.10-3.13.

  • Updated Python version ranges from 3.9-3.12/3.13 to 3.10-3.13 across all configurations
  • Removed Python 3.9 from CI/CD test matrices and build configurations
  • Updated documentation to reflect the new minimum Python requirement

Reviewed Changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tox.ini Updated test environment list and pyenv install commands to exclude Python 3.9
pyproject.toml Removed Python 3.9 classifier and updated dependency version constraints
docs/getting-started/installation-guide.md Updated software requirements to specify Python 3.10+
README.md Updated Python version requirements in main documentation
CONTRIBUTING.md Updated development setup requirements to Python 3.10+
.pre-commit-config.yaml Updated commented pylint language version reference
.gitlab-ci.yml Removed Python 3.9 test job
.github/workflows/*.yml Removed Python 3.9 from test matrices across all GitHub Actions workflows
.devcontainer/devcontainer.json Updated Python version comment to reflect new supported versions
.devcontainer/Dockerfile Updated Python version options comment

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Collaborator

@tgasser-nv tgasser-nv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I did a quick grep and there aren't any references to 3.9 remaining.

Not needed for this PR, but FYI did a check with pyupgrade to remove deprecated syntax from Python 3.9 in the codebase:

$ find . -name '*.py' -exec pyupgrade --py310-plus {} +

There were 177 modified files. I spot-checked a few files and the updates were all to type syntax, for example using list instead of List, dict instead of Dict, and typeA | typeB rather than Optional[TypeA, TypeB]. I can address these in the ongoing type-cleaning PRs after the release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants