Skip to content

build: bump Python 3.12 → 3.13.13 - #2194

Merged
kajalj22 merged 20 commits into
mainfrom
bump-python-3.13
Aug 5, 2026
Merged

build: bump Python 3.12 → 3.13.13#2194
kajalj22 merged 20 commits into
mainfrom
bump-python-3.13

Conversation

@kajalj22

@kajalj22 kajalj22 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bump Python 3.12 → 3.13.14 and uv 0.11.19 → 0.11.29
  • Add pyarrow>=23.0.1 transitive dep floor
  • Fix Python 3.13 compat in server deps (scipy, spacy, audioop-lts)
  • Regenerate uv.lock

Test plan

  • Unit tests pass
  • Server suite passes

🤖 Generated with Claude Code

Python 3.13.13 fixes:
- CVE-2026-11940: tarfile hardlink/symlink filter bypass
- CVE-2025-8194: tarfile negative-offset infinite loop / deadlock
- CVE-2025-13836: HTTP Content-Length OOM via malicious server

Updates .python-version, uv venv pins in CI, requires-python in all
pyproject.toml files, ruff target-version, PyPI classifier, and all
README/CONTRIBUTING/CLAUDE.md docs. Regenerates uv.lock.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@kajalj22
kajalj22 requested a review from a team as a code owner July 29, 2026 16:33
@copy-pr-bot

copy-pr-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

kajalj22 and others added 7 commits July 29, 2026 11:43
- scicode: lift scipy<1.14 cap to >=1.14.1 (first version with cp313
  wheels; scipy.integrate.simps is not used in Gym code)
- longmt_eval: floor spacy>=3.8.13 to override segale's spacy==3.8.4
  pin (3.8.4 has no cp313 wheels; 3.8.13+ does)
- tau2: add audioop-lts>=0.2.2 (audioop was removed in Python 3.13;
  audioop-lts provides a compatible backport with cp313 wheels)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
uv reads .python-version automatically so passing --python 3.13.13
everywhere is redundant — future version bumps would require touching
20+ files instead of just .python-version.

- CI workflows: uv venv --python 3.13.13 → uv venv
- pr-sla-tracker: python-version: "3.13.13" → python-version-file: .python-version
- All READMEs and prepare_utils.py: same

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
…>=23.0.1

- .python-version and requires-python: 3.13.13 → 3.13.14
- uv: 0.11.19 → 0.11.29 (0.11.21+ supports Python 3.13.14;
  0.11.29 is the latest stable in the 0.11.x series)
- pyarrow>=23.0.1: transitive dep via mlflow; floors to a version
  with cp313 wheels and no use-after-free (mlflow caps at <25)
- Regenerated uv.lock (pyarrow 21.0.0 → 24.0.0)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
…toml files

Resource servers and model packages inherit the Python constraint from
nemo-gym itself; no need to pin them separately.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
…toml files

Files that originally pinned requires-python explicitly are updated
to match the new minimum Python version.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
…n 3.12

Files that originally specified an explicit Python version in uv venv
calls have the version updated to 3.13.14 (not removed).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@github-actions github-actions Bot added the sla:triage-overdue Review assignment is over the one-business-day SLA label Jul 30, 2026
@kajalj22 kajalj22 added the r0.5.0 Auto-cherrypick to release branch. Apply before merge; cherrypick happens after merge. label Aug 3, 2026
kajalj22 and others added 7 commits August 3, 2026 20:25
… compile)

fasttext-wheel==0.9.2 has no cp313 wheels and fails to build from source
on Python 3.13 (missing #include <cstdint> in src/args.cc). Excluded as
a transitive dep — wmt_translation does not import fasttext at runtime.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
segale (used by longmt_eval) pins spacy==3.8.4 which has no cp313
wheels. Adding an override forces >=3.8.13 which ships cp313 wheels
while remaining API-compatible. Server venvs inherit the override via
the editable nemo-gym install.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
osworld pins torch<2.6 but torchvision for torch 2.5.x has no cp313
wheels. Override to 2.12.0 which ships cp313 wheels for both packages.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
thomasdhc
thomasdhc previously approved these changes Aug 4, 2026
@github-actions github-actions Bot removed the sla:triage-overdue Review assignment is over the one-business-day SLA label Aug 4, 2026
kajalj22 and others added 2 commits August 4, 2026 14:08
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
kajalj22 and others added 3 commits August 4, 2026 20:50
The Dockerfile was pinned to Python 3.12.11 / uv 0.11.6 from main.
uv.lock is generated for Python 3.13.14 so the cp313 wheels are used;
the old Python version caused uv to build yappi from source (failing).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
- osworld_agent pyproject.toml: requires-python >=3.12 → >=3.13.14
- wmt_translation requirements: update 3.12 comment to 3.13.14

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Kajal Jain <kajalj@nvidia.com>
@kajalj22
kajalj22 requested a review from thomasdhc August 5, 2026 02:09
@kajalj22
kajalj22 merged commit ea4c6c6 into main Aug 5, 2026
17 checks passed
@kajalj22
kajalj22 deleted the bump-python-3.13 branch August 5, 2026 02:15
kajalj22 added a commit that referenced this pull request Aug 5, 2026
- Bump Python 3.12 → 3.13.14 and uv 0.11.19 → 0.11.29
- Add `pyarrow>=23.0.1` transitive dep floor
- Fix Python 3.13 compat in server deps (scipy, spacy, audioop-lts)
- Regenerate `uv.lock`

- [x] Unit tests pass
- [x] Server suite passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Kajal Jain <kajalj@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
kajalj22 added a commit that referenced this pull request Aug 5, 2026
Cherry-pick of #2194 into `r0.5.0`.

## Summary
- Bump Python 3.12 → 3.13.14
- Bump uv 0.11.19 → 0.11.29 in CI
- Update `docker/Dockerfile` Python and uv pins
- Update `requires-python`, ruff `target-version`, PyPI classifier,
`.python-version`, all docs
- Add `pyarrow>=23.0.1` dep floor, `spacy>=3.8.13` override,
`fasttext-wheel` exclusion for Python 3.13 compat
- Fix server dep compatibility: `scipy>=1.14.1` (scicode),
`audioop-lts>=0.2.2` (tau2)

## Conflicts resolved
- `resources_servers/wmt_translation/requirements.txt`: excluded
`pycld2` addition (from a separate main PR, not part of #2194)
- `uv.lock`: regenerated

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Kajal Jain <kajalj@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
OlegSudakov pushed a commit to OlegSudakov/Gym that referenced this pull request Aug 7, 2026
## Summary
- Bump Python 3.12 → 3.13.14 and uv 0.11.19 → 0.11.29
- Add `pyarrow>=23.0.1` transitive dep floor
- Fix Python 3.13 compat in server deps (scipy, spacy, audioop-lts)
- Regenerate `uv.lock`

## Test plan
- [x] Unit tests pass
- [x] Server suite passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Kajal Jain <kajalj@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

r0.5.0 Auto-cherrypick to release branch. Apply before merge; cherrypick happens after merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants