NVIDIA-NeMo / NVIDIA-NeMo/DataDesignerPlugins
Generate explicit install source metadata for PyPI and Git installs
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
Parent epic: #15
Depends on: #16, #17, #21
Why
The default NVIDIA tap can use PyPI source metadata, but the ecosystem design also calls out direct Git subdirectory installs and local editable authoring loops. The schema from #16 defines pypi, git, and path; this issue implements concrete generation and validation for all three source types.
Source generation rules
Use [tool.ddp.tap].default-source as the default source type for all packages unless a package-level override is added later. Implement these exact generation rules:
pypi
{"type": "pypi", "package": "data-designer-example"}
packageis[project].name.- DataDesigner default exact install target is
data-designer-example==<package.version>.
git
{
"type": "git",
"url": "https://github.com/NVIDIA-NeMo/DataDesignerPlugins.git",
"ref": "data-designer-example/v0.1.0",
"subdirectory": "plugins/data-designer-example"
}
urlis[tool.ddp.tap].repository-git-url.refis[tool.ddp.tap].release-ref-template.format(package=package.name, version=package.version).subdirectoryispackage.path.- DataDesigner default install target is
<package.name> @ git+<url>@<ref>#subdirectory=<subdirectory>.
path
{"type": "path", "path": "plugins/data-designer-example", "editable": true}
pathispackage.pathby default.editabledefaults totrue.pathsources are allowed only for local file/path taps and test fixtures; the default NVIDIA raw catalog must not use them.
Implementation
- Add a source generation function that takes package metadata, repo-relative package path, and tap config and returns one validated source object.
- Add source validation for all three source types.
- Add tests for each source type.
- Add a test proving multi-plugin packages share the same generated source object for each package entry.
- Keep source metadata generated; do not require maintainers to hand-edit
catalog/plugins.json.
Acceptance criteria
pypi,git, andpathsource objects are generated and validated exactly as specified above.- Invalid
default-source, missingrepository-git-urlforgit, missingrelease-ref-templateforgit, or malformed package paths fail with useful errors. - The checked-in NVIDIA catalog uses
pypisources only unless the repo config is explicitly changed. - Tests cover exact DataDesigner install-target derivation for each source type.
- Multi-plugin packages share one source identity across all runtime plugin entries from the same package.
Dependencies
- Depends on: #16, #17, #21.
- Blocks: #20, #23, #25, and DataDesigner CLI install planning.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the schema from #16 and the existing tap/catalog generation and validation entry points; trace how package metadata and repo-relative paths are represented. Add coverage for pypi, git, and path sources, including install targets and shared multi-plugin source identity, then verify catalog/plugins.json uses pypi sources and invalid configurations produce useful errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100