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 SummaryThis PR adds an optional
|
| Filename | Overview |
|---|---|
| packages/data-designer/pyproject.toml | Adds the exact-version Slurm extra, but the required leaf artifact is omitted from the synchronized publishing path. |
| packages/data-designer-slurm/pyproject.toml | Defines the new leaf distribution and its exact matching dependency on the base package. |
| scripts/audit_package_dependencies.py | Extends dependency inventory generation to include explicitly selected static and dynamic extras. |
| scripts/test_slurm_package_install.py | Thoroughly checks locally built wheel metadata, base and extra installation behavior, direct-leaf installation, and missing-counterpart failure. |
| Makefile | Integrates the Slurm package into tests, formatting, linting, builds, imports, and cleanup, but building its wheel alone does not publish it. |
| .github/workflows/ci.yml | Adds the Slurm package and built-wheel checks to required CI test aggregation. |
| uv.lock | Records the new workspace member and optional exact-version dependency edge without changing flagged third-party dependency versions. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
Release["make publish VERSION=X"] --> Build["Build four wheels"]
Build --> Upload["publish.sh PACKAGE_DIRS"]
Upload --> Config["data-designer-config X"]
Upload --> Engine["data-designer-engine X"]
Upload --> Base["data-designer X"]
Base -->|"slurm extra requires exact X"| Missing["data-designer-slurm X not uploaded"]
Missing --> Failure["Extra installation fails"]
Prompt To Fix All With AI
### Issue 1
packages/data-designer/pyproject.toml:59
**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.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "fix: address Slurm package review findin..." | 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. |
📋 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