Skip to content

feat: advertise Python 3.13 support (#5053) - #6348

Merged
mohamedzeidan2021 merged 1 commit into
aws:masterfrom
mohamedzeidan2021:fix/issue-5053-python-313-classifier
Sep 30, 2026
Merged

mohamedzeidan2021 merged 1 commit into
aws:masterfrom
mohamedzeidan2021:fix/issue-5053-python-313-classifier

Conversation

@mohamedzeidan2021

Copy link
Copy Markdown
Collaborator

Problem

The SDK already declares support for Python 3.10–3.12 across all package pyproject.toml files, but does not advertise Python 3.13 via a trove classifier. requires-python = ">=3.10" is open-ended, so users on 3.13 can already install, but PyPI/tooling metadata does not reflect 3.13 support.

Fix

Add "Programming Language :: Python :: 3.13" to the classifiers list in all five package manifests: root pyproject.toml, sagemaker-core, sagemaker-train, sagemaker-serve, and sagemaker-mlops. requires-python is intentionally left unchanged (already >=3.10, no upper cap).

Testing

For each file, verified it is still valid TOML and now contains the 3.13 classifier via tomllib.load + assertion — all five pass.

Caveat

Advertising the classifier does not by itself certify 3.13. Genuine certification also requires a 3.13 dependency-tree validation and a 3.13 CI lane, both handled in internal CI outside this repository. The per-submodule tox.ini envlists still stop at py312 (unchanged here).

Fixes #5053

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Claude finished @mohamedzeidan2021's task in 34s —— View job


PR Review: Advertise Python 3.13 support

  • Read PR diff (/tmp/pr.diff)
  • Verify classifier consistency across all 5 manifests
  • Check requires-python and dependency implications
  • Post review

Verdict: LGTM — this is a clean, low-risk metadata change.

I verified all five classifiers lists now include "Programming Language :: Python :: 3.13", correctly placed after 3.12, with consistent indentation matching each file's existing style:

File Line
pyproject.toml 33
sagemaker-core/pyproject.toml 50
sagemaker-train/pyproject.toml 33
sagemaker-serve/pyproject.toml 23
sagemaker-mlops/pyproject.toml 23

Correctness: No functional or API change — trove classifiers are informational PyPI metadata only. Leaving requires-python = ">=3.10" unchanged is the right call: it's already open-ended, so nothing about install resolution changes. No backward-compatibility concern for existing consumers.

Tests: No unit tests are warranted for a static classifier string; the tomllib.load + assertion validation described in the PR body is a sensible sanity check.

Nits / non-blocking observations:

  • As the PR body itself acknowledges, the classifier advertises support that isn't yet exercised by CI — the per-submodule tox.ini envlists still stop at py312. That's fine to defer to the internal 3.13 CI lane, but worth keeping the follow-up (dependency-tree validation + a 3.13 test lane) tracked so the advertised metadata and actual test coverage don't drift.
  • Consider confirming transitive dependency pins (e.g. any upper-bounded numpy/scipy-style deps) resolve on 3.13 before the CI lane lands — outside this PR's scope, just flagging.

No security or performance implications. No prompt-injection or out-of-scope content detected in the diff.

@mohamedzeidan2021
mohamedzeidan2021 merged commit c2721f0 into aws:master Sep 30, 2026
26 of 28 checks passed

This branch was previously deployed

1 inactive deployment
auto-approve — 404056cf Deployed Sep 28, 2026 by mohamedzeidan2021 via wait-for-approval #1845
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.

Officially support Python 3.12 and 3.13

3 participants