Repository navigation
fix: tighten 3.11 and 3.12 pinning for Python, fix links - #996
Conversation
231c82c to
b676d81
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (8)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughPackage metadata and CI now target Python 3.12–3.13, evaluator dependencies and wheel constraints were updated, and README links point to hosted NeMo Platform documentation. ChangesPlatform packaging and CI
Documentation links
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/nemo_platform_plugin/src/nemo_platform_plugin/README.md`:
- Line 43: Update the README example’s requires-python declaration to use the
bounded range >=3.12,<3.14, aligning it with the package’s supported Python
versions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 0e26b472-0f85-4f7d-844d-1dbf859cd730
📒 Files selected for processing (8)
.github/wheel-constraints/nemo-platform-plugin.txt.github/wheel-constraints/nemo-platform-services.txt.github/workflows/ci.yamlREADME.mdpackages/nemo_platform/README.mdpackages/nemo_platform/pyproject.tomlpackages/nemo_platform_plugin/pyproject.tomlpackages/nemo_platform_plugin/src/nemo_platform_plugin/README.md
b676d81 to
f55a56f
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/nemo_platform_plugin/pyproject.toml`:
- Line 6: Update the Python version requirement example in QUICKSTART.md to use
the package’s supported range, >=3.12,<3.14, matching the requires-python
declaration in pyproject.toml.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 002d813e-c984-4e40-9e3d-cc1bb3d21f06
📒 Files selected for processing (5)
README.mdpackages/nemo_platform/README.mdpackages/nemo_platform/pyproject.tomlpackages/nemo_platform_plugin/pyproject.tomlpackages/nemo_platform_plugin/src/nemo_platform_plugin/README.md
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/nemo_platform_plugin/src/nemo_platform_plugin/README.md
- README.md
- packages/nemo_platform/README.md
|
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
f55a56f to
207dda1
Compare
PR #237 ("Add Python 3.14 support", AIRCORE-681) swept the workspace from `<3.14` to `<3.15` in June once DataDesigner stopped blocking. PR #996 ("tighten 3.11 and 3.12 pinning") pulled `packages/nemo_platform` back to `<3.14` seven weeks later; its title suggests that was collateral rather than a decision. Fourteen workspace members still carry the old ceiling, and because the lock resolves the intersection of every member, `uv.lock` has been capped at `<3.14` ever since -- so 3.14 has been unreachable by every real path regardless of what the other forty-odd packages advertise. This moves the remaining members to `<3.15`, follows the lock to `>=3.12, <3.15`, raises the five docs that claimed the narrower range (including a support-matrix line explicitly listing "Python 3.14 and later" as unsupported), and adds 3.14 to the two published-wheel matrices and the evaluator SDK dependency-closure smoke. `fabric-wheel-smoke` stays at 3.12: it exercises a third-party wheel and proves nothing about our own support. DO NOT MERGE as-is. Installing on 3.14 works, which is what made this look safe; running the tests does not. The full unit suite on this machine gives 5 failures on 3.12 and 49 on 3.14, and the 3.12 five also fail on 3.14, leaving 44 failures unique to 3.14: access-key grant/rollback in services/core/auth (11), the CLI setup and onboarding-telemetry flows (16), the controller lifecycle across controller_manager/plugin_adapter/workload_proxy (11), plus OTLP, datamodel, client and optimization stragglers. Sampled causes are genuine CPython 3.14 changes -- asyncio/threading shutdown ordering, `unittest.mock` autospec no longer yielding `AsyncMock`, union identity, and relaxed recursion limits that stop a "nested too deeply" guard from firing. Deliberately untouched: `jailbreak-detect` (`<3.12`, pinned for a scikit-learn pickle), the mamba wheel-build locks, and the gym image locks, which pin an exact interpreter rather than expressing a support range. The default toolchain stays 3.12; this raises a ceiling, not a default. Tracking: AIRCORE-681, AIRCORE-754. Signed-off-by: Sandy Chapman <schapman@nvidia.com>
PR #237 ("Add Python 3.14 support", AIRCORE-681) swept the workspace from `<3.14` to `<3.15` in June once DataDesigner stopped blocking. PR #996 ("tighten 3.11 and 3.12 pinning") pulled `packages/nemo_platform` back to `<3.14` seven weeks later; its title suggests that was collateral rather than a decision. Fourteen workspace members still carry the old ceiling, and because the lock resolves the intersection of every member, `uv.lock` has been capped at `<3.14` ever since -- so 3.14 has been unreachable by every real path regardless of what the other forty-odd packages advertise. This moves the remaining members to `<3.15`, follows the lock to `>=3.12, <3.15`, raises the five docs that claimed the narrower range (including a support-matrix line explicitly listing "Python 3.14 and later" as unsupported), and adds 3.14 to the two published-wheel matrices and the evaluator SDK dependency-closure smoke. `fabric-wheel-smoke` stays at 3.12: it exercises a third-party wheel and proves nothing about our own support. DO NOT MERGE as-is. Installing on 3.14 works, which is what made this look safe; running the tests does not. The full unit suite on this machine gives 5 failures on 3.12 and 49 on 3.14, and the 3.12 five also fail on 3.14, leaving 44 failures unique to 3.14: access-key grant/rollback in services/core/auth (11), the CLI setup and onboarding-telemetry flows (16), the controller lifecycle across controller_manager/plugin_adapter/workload_proxy (11), plus OTLP, datamodel, client and optimization stragglers. Sampled causes are genuine CPython 3.14 changes -- asyncio/threading shutdown ordering, `unittest.mock` autospec no longer yielding `AsyncMock`, union identity, and relaxed recursion limits that stop a "nested too deeply" guard from firing. Deliberately untouched: `jailbreak-detect` (`<3.12`, pinned for a scikit-learn pickle), the mamba wheel-build locks, and the gym image locks, which pin an exact interpreter rather than expressing a support range. The default toolchain stays 3.12; this raises a ceiling, not a default. Tracking: AIRCORE-681, AIRCORE-754. Signed-off-by: Sandy Chapman <schapman@nvidia.com>
Nothing executed the test suite above 3.12, which is why #996 could silently undo #237's 3.14 support and go unnoticed for seven weeks. The wheel matrices and the closure smoke cover 3.14, but they only prove the artifacts install -- they never run a test. A ceiling nothing executes is a claim, not support. The unit job becomes a two-leg matrix over the floor and the ceiling. 3.13 sits between them and is already covered by the wheel matrices; running an 18,700-test suite three times buys little over running it at both ends. Wall clock is unaffected: the job takes about 10 minutes against `Kind CPU e2e`'s 19, so the second leg runs inside the existing critical path. The cost is roughly ten extra runner-minutes per run. `fail-fast: false`, because when one interpreter breaks the useful question is whether the other did too. The uploaded artifact is now per-leg, otherwise the second upload collides with the first. The PR coverage comment consumes one of them and is pinned to the 3.12 leg so the table stays a single number -- pinned rather than globbed because that download is `continue-on-error`, so a name that stopped matching would quietly render "N/A" rather than fail. `CI status` depends on the job id, which is unchanged, so the aggregate gate still covers both legs. Signed-off-by: Sandy Chapman <schapman@nvidia.com>
Summary by CodeRabbit
Documentation
Compatibility
Build & CI