First-class NVIDIA-provided plugins for NeMo Data Designer. This repository is the NVIDIA-maintained curated first-party plugin catalog for Data Designer.
git clone git@github.com:NVIDIA-NeMo/DataDesignerPlugins.git
cd DataDesignerPlugins
make syncCreate a new plugin:
uv run ddp new my-pluginThis generates a column generator by default. Pass --type seed-reader or
--type processor to scaffold those plugin types instead. Each scaffold creates
a complete plugin skeleton under plugins/data-designer-my-plugin/ with config,
implementation, entry point, docs, tests, and CODEOWNERS. See
docs/authoring.md for the full authoring guide.
DataDesignerPlugins/
|-- devtools/
| `-- ddp/ # Monorepo management tooling (ddp CLI, dev-only)
|-- catalog/ # Machine-consumable plugin catalog data
|-- plugins/ # One directory per plugin (auto-discovered by uv)
| `-- data-designer-template/ # Reference implementation
`-- docs/ # Zensical documentation source
Each plugin is an independent Python package with its own pyproject.toml, docs, tests, and CODEOWNERS. The root workspace auto-discovers plugins via plugins/*.
The default NVIDIA plugin catalog URL is:
https://nvidia-nemo.github.io/DataDesignerPlugins/catalog/plugins.json
catalog/plugins.json is the checked-in JSON catalog registry for released Data
Designer plugin packages.
The published Pages site serves that catalog together with the static Python
package index at https://nvidia-nemo.github.io/DataDesignerPlugins/simple/.
See docs/catalogs.md for catalog discovery, catalog
fields, install metadata, trust expectations, and external catalog setup
guidance.
Use the repo's Makefile targets for all development tasks:
make sync # Install all packages (uv sync --all-packages)
make lint # Lint and format check (ruff)
make format # Auto-fix lint issues and reformat
make test # Test each plugin in an isolated venv
make validate # Run assert_valid_plugin on all entry points
make check # Verify generated plugin docs, catalog validity, CODEOWNERS, and license headers
make plugin-docs # Regenerate docs/plugins/ from per-plugin docs and metadata
make catalog PLUGIN=data-designer-my-plugin # Register a package for its first release
make package-index # Add catalog JSON and the static package index to site/
make qa-package-index # Build/install a plugin through a scratch local package index
make docs # Build the Zensical documentation site
make docs-server # Serve docs locally at http://localhost:8000
make all # lint + test + validate + check + docs (full local CI)To test a single plugin in isolation:
make test-plugin PLUGIN=data-designer-my-pluginIf you change plugin docs or ownership, regenerate derived files:
make plugin-docs # Regenerate plugin documentation site inputs
make codeowners # Regenerate CODEOWNERS
make update-license-headers # Fix SPDX headersRegister a package in the catalog only when preparing that package's first release:
make catalog PLUGIN=data-designer-my-pluginThe ddp command manages the monorepo. Run uv run ddp --help to see all subcommands:
| Command | Description |
|---|---|
ddp new <name> |
Scaffold a new plugin |
ddp catalog register <plugin> |
Register one package for first release catalog discoverability |
ddp catalog check |
Validate the checked-in catalog JSON |
ddp validate |
Validate all installed plugins |
ddp plugin-docs |
Generate plugin docs site inputs |
ddp package-index |
Build, validate, merge, and QA the static package index |
ddp codeowners |
Aggregate CODEOWNERS to stdout |
ddp license-headers |
Add or check SPDX license headers |
ddp bump <plugin> <part> |
Bump a plugin's semantic version |
ddp check-release <plugin> <version> |
Validate plugin metadata for release |
make bump PLUGIN=data-designer-my-plugin PART=patch # Bump version (major/minor/patch)
git add plugins/data-designer-my-plugin/pyproject.toml
git commit -m "chore(data-designer-my-plugin): bump version to 0.1.1"
make release PLUGIN=data-designer-my-plugin PUBLISH=1 # Build, tag, push, and publish the GitHub ReleaseBefore a package's first release, register it once with
make catalog PLUGIN=data-designer-my-plugin and commit catalog/plugins.json.
See docs/releasing.md for the full release guide.
Apache-2.0. See LICENSE.