feat: add optional Slurm package - #856
Conversation
Add the shared-namespace leaf package and publish it through the same-version data-designer[slurm] extra. Cover resolver, namespace, base-only isolation, and built-wheel installation behavior.\n\nCloses #852 Signed-off-by: Andre Manoel <amanoel@nvidia.com>
Signed-off-by: Andre Manoel <amanoel@nvidia.com>
Greptile SummaryThe PR adds the optional
|
| Filename | Overview |
|---|---|
| packages/data-designer/pyproject.toml | Adds the dynamically generated exact-version Slurm extra while preserving the base installation as Slurm-free. |
| packages/data-designer-slurm/pyproject.toml | Defines the optional Slurm distribution with an exact-version dependency on the main package. |
| scripts/audit_package_dependencies.py | Extends dependency auditing to explicitly selected extras and prevents workspace cycles from inflating transitive guarantees. |
| scripts/test_slurm_package_install.py | Builds clean wheels and verifies metadata, base-only, extra-selected, direct-leaf, missing-counterpart, and namespace behavior. |
| scripts/publish.sh | Adds the Slurm artifact to publication, but the previously reported partial-release failure remains possible because uploads are sequential. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
User["pip install data-designer[slurm]"] --> Base["data-designer X"]
Base -->|optional exact-version dependency| Slurm["data-designer-slurm X"]
Slurm -->|exact-version dependency| Base
Base --> Namespace["data_designer namespace"]
Slurm --> Namespace
Reviews (3): Last reviewed commit: "fix: scope workspace dependency extras" | Re-trigger Greptile
| "rich>=13.7.1,<15", | ||
| "typer>=0.12.0,<1", | ||
| ] | ||
| optional-dependencies = { slurm = ["data-designer-slurm=={{ version }}"] } |
There was a problem hiding this comment.
Slurm release artifact is omitted
When a maintainer releases version X through make publish, this extra requires data-designer-slurm==X, but the publishing script uploads only the original three distributions, causing pip install data-designer[slurm]==X from PyPI to fail dependency resolution.
Knowledge Base Used: Testing and Tooling
Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/data-designer/pyproject.toml
Line: 59
Comment:
**Slurm release artifact is omitted**
When a maintainer releases version X through `make publish`, this extra requires `data-designer-slurm==X`, but the publishing script uploads only the original three distributions, causing `pip install data-designer[slurm]==X` from PyPI to fail dependency resolution.
**Knowledge Base Used:** [Testing and Tooling](https://app.greptile.com/nvidia-public-github/-/custom-context/knowledge-base/nvidia-nemo/datadesigner/-/docs/testing-and-tooling.md)
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.|
Thanks for putting this together, @andreatnvidia — this is a clean, well-scoped foundation for the Slurm work. SummaryThis PR adds the optional FindingsWarnings — Worth addressing
Suggestions — Take it or leave it
What Looks Good
Structural Impact(graphify, 3.5s) Risk: LOW (localized change)
VerdictNeeds changes — The publish-pipeline gap ( This review was generated by an AI assistant. |
Signed-off-by: Andre Manoel <amanoel@nvidia.com>
| "packages/data-designer-config" | ||
| "packages/data-designer-engine" | ||
| "packages/data-designer" | ||
| "packages/data-designer-slurm" |
There was a problem hiding this comment.
Partial release breaks Slurm extra
When the data-designer upload succeeds but the subsequent data-designer-slurm upload fails, version X remains published with an exact dependency on an unavailable data-designer-slurm==X, causing data-designer[slurm]==X installations to fail until the missing artifact is manually uploaded.
Knowledge Base Used: Testing and Tooling
Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/publish.sh
Line: 35
Comment:
**Partial release breaks Slurm extra**
When the `data-designer` upload succeeds but the subsequent `data-designer-slurm` upload fails, version X remains published with an exact dependency on an unavailable `data-designer-slurm==X`, causing `data-designer[slurm]==X` installations to fail until the missing artifact is manually uploaded.
**Knowledge Base Used:** [Testing and Tooling](https://app.greptile.com/nvidia-public-github/-/custom-context/knowledge-base/nvidia-nemo/datadesigner/-/docs/testing-and-tooling.md)
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.|
Thanks for putting this together, @andreatnvidia — the built-wheel coverage gives the new package boundary a strong foundation. SummaryThis PR adds the optional FindingsWarnings — Worth addressing
What Looks Good
VerdictNeeds changes — preserve extra selection per dependency edge and align the scheduled audit/canonical package guidance with the new four-package structure before merge. This review was generated by an AI assistant. |
Signed-off-by: Andre Manoel <amanoel@nvidia.com>
|
@nabinchha Thanks, good catches. Addressed both in
The live audit no longer lists |
📋 Summary
Adds the optional
data-designer-slurmdistribution and exposes it through the exact-versiondata-designer[slurm]extra. This establishes package isolation and shared-namespace behavior before Slurm runtime features are added.🔗 Related Issue
Closes #852
Part of #850
🔄 Changes
data-designer-slurmas a publishable workspace package underdata_designer.slurm.🧪 Testing
.venv/bin/pytest packages/data-designer/tests packages/data-designer-slurm/tests- 1121 passed, 1 skippedmake test-slurm-wheel-install.venv/bin/ruff check --fix ..venv/bin/ruff format ..venv/bin/python scripts/update_license_headers.py --checkuv lock --check✅ Checklist