Skip to content

build!: drop Python 3.10 support - #2573

Merged
tgasser-nv merged 2 commits into
developfrom
pouyanpi/drop-python-310
Nov 6, 2026
Merged

tgasser-nv merged 2 commits into
developfrom
pouyanpi/drop-python-310

Conversation

@Pouyanpi

@Pouyanpi Pouyanpi commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Drop EOL Python 3.10; require Python 3.11–3.13. Update CI, dev/QA containers and docs, and regenerate locks without 3.10 fallbacks. Pillow upgrades remain in #2568.

Related Issue(s)

Verification

12,935 passed / 204 skipped on each of Python 3.11 and 3.12. Pre-commit, wheel metadata/install checks and Fern check passed. Full docs generation and container builds require a running Docker daemon, unavailable locally.

AI Assistance

Codex assisted with implementation, validation and this description.

Checklist

  • DCO sign-off, documentation updated, no manual changelog edits.

Summary by CodeRabbit

  • Breaking Changes
    • Version 0.25.0 and later require Python 3.11–3.13; Python 3.10 is no longer supported. Upgrade your Python environment before upgrading the library.
  • Documentation
    • Updated installation, development, and tutorial guidance to reflect the supported Python versions.

Signed-off-by: Pouyanpi <13303554+Pouyanpi@users.noreply.github.com>
@github-actions github-actions Bot added status: needs triage New issues that have not yet been reviewed or categorized. size: M labels Nov 6, 2026
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

@tgasser-nv
tgasser-nv marked this pull request as ready for review November 6, 2026 22:28
@tgasser-nv tgasser-nv self-assigned this Nov 6, 2026
@tgasser-nv tgasser-nv added status: triaged Triaged by a maintainer; eligible for automated review (CodeRabbit/Greptile). and removed status: needs triage New issues that have not yet been reviewed or categorized. labels Nov 6, 2026
@tgasser-nv
tgasser-nv self-requested a review November 6, 2026 22:29
@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The project now requires Python 3.11–3.13. Package metadata, dependency constraints, development images, CI jobs, and documentation no longer include Python 3.10 support.

Changes: Python support update

Layer / File(s) Summary
Package requirements and test dependencies
pyproject.toml, integration_tests/hooks_agents/requirements.in, integration_tests/hooks_agents/requirements.txt
The minimum Python version changes to 3.11. Dependency markers and test dependency locks are updated for that version range.
Development and CI environments
.devcontainer/*, .github/workflows/*, .gitlab-ci.yml, qa/Dockerfile.qa, .github/ISSUE_TEMPLATE/bug_report.yml
Development and QA images use Python 3.11. Test matrices remove Python 3.10 and retain 3.11–3.13. The bug report template’s Python version placeholder changes to 3.11.
Support policy and user guidance
CONTRIBUTING.md, README.md, docs/README.mdx, docs/getting-started/*, docs/run-rails/using-proxy/quickstart.mdx
Contributor and user documentation states the 3.11–3.13 range. The README and installation guide note that version 0.25.0 and later require Python 3.11 or newer.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Possibly related issues

Possibly related PRs

  • NVIDIA-NeMo/Guardrails#2475: That PR documents Python 3.10–3.13 as a prerequisite; this PR updates the documented range to 3.11–3.13.

Suggested labels: documentation

Suggested reviewers: tgasser-nv

Merge Risk: Minimal · up to b9437

Python 3.10 support is intentionally removed. No actionable merge-blocking risk was identified.

Architecture risk: Low · up to b9437

The change affects 6 systems.

Changed systems: docs, integration_tests, CONTRIBUTING.md, pyproject.toml, qa, README.md

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — docs (service) was modified; 4 changed files map to changed impact.
  • observed — integration_tests (service) was modified; 2 changed files map to changed impact.
  • observed — CONTRIBUTING.md (service) was modified; 1 changed file maps to changed impact.
  • observed — pyproject.toml (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in CONTRIBUTING.md: The minimum supported Python version changes from 3.10 to 3.11; the maximum remains 3.13. The Git and uv installation guidance is retained.
  • observed — Modified behavior in CONTRIBUTING.md: Adds release guidance to review the Python support matrix, require upstream maintenance and CI success for supported versions, and announce end-of-life version removal as a breaking change at a release boundary.
  • observed — Modified behavior in README.md: The supported Python versions change from 3.10–3.13 to 3.11–3.13. The README also states that Python 3.10 support ends with version 0.25.0 and advises upgrading Python before upgrading the library.
  • observed — Modified behavior in docs/README.mdx: The documented Python version range changes from 3.10–3.13 to 3.11–3.13.
Pre-merge checks: Passed 6

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly states the main change: dropping Python 3.10 support.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Test Results For Major Changes Passed The PR drops Python 3.10 support, which is a breaking change. The description reports test results for Python 3.11 and 3.12 and lists other checks and their limitations. The diff does not change numer…
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (20 skipped: 20 unsupported.)

Full details: Test Results For Major Changes

Explanation

The PR drops Python 3.10 support, which is a breaking change. The description reports test results for Python 3.11 and 3.12 and lists other checks and their limitations. The diff does not change numerical or performance code.

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 83e70e4 and b943721.

Files ignored due to path filters: 1

  • uv.lock is excluded by !**/*.lock
Files selected for processing: 21

  • .devcontainer/Dockerfile
  • .devcontainer/devcontainer.json
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/workflows/_test.yml
  • .github/workflows/full-tests.yml
  • .github/workflows/latest-deps-tests.yml
  • .github/workflows/pr-tests.yml
  • .github/workflows/release.yml
  • .github/workflows/test-and-build-wheel.yml
  • .github/workflows/test-published-dist.yml
  • .gitlab-ci.yml
  • CONTRIBUTING.md
  • README.md
  • docs/README.mdx
  • docs/getting-started/installation-guide.mdx
  • docs/getting-started/tutorials/nemotron-content-safety-reasoning-deployment.mdx
  • docs/run-rails/using-proxy/quickstart.mdx
  • integration_tests/hooks_agents/requirements.in
  • integration_tests/hooks_agents/requirements.txt
  • pyproject.toml
  • qa/Dockerfile.qa
Files with no reviewable changes: 1

  • .gitlab-ci.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

@tgasser-nv tgasser-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM!

@tgasser-nv
tgasser-nv merged commit 9d7d809 into develop Nov 6, 2026
40 checks passed
@tgasser-nv
tgasser-nv deleted the pouyanpi/drop-python-310 branch November 6, 2026 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size: M status: triaged Triaged by a maintainer; eligible for automated review (CodeRabbit/Greptile).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants