NVIDIA-NeMo / NVIDIA-NeMo/DataDesignerPlugins
Add repo-level tap metadata config for ddp tooling
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
Why
DDPlugins should be both NVIDIA's curated first-party tap and the reference implementation for external tap repositories. Tooling should not hardcode NVIDIA-specific values in scaffold output or catalog generation. Those values should live in one repo-level tap config.
Proposed config
Add this table to the root pyproject.toml:
[tool.ddp.tap]
catalog-url = "https://raw.githubusercontent.com/NVIDIA-NeMo/DataDesignerPlugins/main/catalog/plugins.json"
repository-url = "https://github.com/NVIDIA-NeMo/DataDesignerPlugins"
repository-git-url = "https://github.com/NVIDIA-NeMo/DataDesignerPlugins.git"
docs-base-url = "https://nvidia-nemo.github.io/DataDesignerPlugins/"
package-prefix = "data-designer-"
default-source = "pypi"
release-ref-template = "{package}/v{version}"
default-data-designer-requirement = "data-designer>=0.5.7"
author-name = "NVIDIA Corporation"
Field semantics:
catalog-url: default tap URL advertised for this repo.repository-url: human-facing repository URL used in package metadata and docs.repository-git-url: clone/install URL used for schema v2gitsource objects.docs-base-url: base URL used to derivedocs.url; plugin docs URLs are{docs-base-url.rstrip('/')}/plugins/{docs_slug}/.package-prefix: expected plugin package prefix for scaffolding and validation.default-source: one ofpypi,git, orpath; NVIDIA default ispypi.release-ref-template: Python.format(package=..., version=...)template for per-plugin tags.default-data-designer-requirement: dependency string used by new scaffolds.author-name: default author used by new scaffolds.
Implementation
- Add a small
ddpconfig loader, for exampleddp.tap_config, that reads[tool.ddp.tap]from the repo root. - Treat this table as required for this repo. If missing, fail with a clear error that names the missing table.
- Use the config in catalog generation, source metadata generation, scaffold generation, and docs examples.
- Replace the scaffold's stale hardcoded
data-designer>=0.5.3default withdefault-data-designer-requirement. - Preserve root
zensical.tomlas the docs build config, but do not use it as the only source of tap metadata. - Add tests with a temporary repo config proving that non-NVIDIA URLs/authors are substituted into generated output.
Acceptance criteria
- Root
pyproject.tomlcontains the[tool.ddp.tap]table above. ddptooling reads tap metadata through one shared loader.- New scaffolded plugins use the configured repository URL, docs URL base, author, and
data-designerdependency. - Catalog source/docs metadata uses the configured URLs and source policy.
- A temp external-style tap config produces generated files without NVIDIA URLs unless those URLs are configured.
- Missing or malformed config has deterministic tests and clear error messages.
Dependencies
- Depends on: #16.
- Blocks: #17, #18, #22, and external tap authoring docs in #25.
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 root pyproject.toml and the existing ddp tooling, then add the shared ddp.tap_config loader described in the issue. Trace catalog, source metadata, scaffold, and docs-example generation to replace hardcoded values, and add temporary-repository tests covering substituted metadata plus missing or malformed configuration errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- documentation, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100