Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- [ ] Plugin installs standalone (`uv pip install -e plugins/<plugin-dir>`)
- [ ] Plugin docs regenerated if plugin docs, list, or metadata changed (`make plugin-docs`)
- [ ] Documentation builds if docs changed (`make docs`)
- [ ] `catalog/plugins.json` regenerated if plugin list or metadata changed (`make catalog`)
- [ ] `catalog/plugins.json` updated only if preparing a first release (`make catalog PLUGIN=<name>`)
- [ ] `.github/CODEOWNERS` regenerated if ownership changed (`make codeowners`)
- [ ] Per-plugin `CODEOWNERS` file included (auto-created by `ddp new`)
- [ ] NVIDIA SPDX headers on all files (`make check-license-headers`)
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ plugin-docs:
uv run ddp plugin-docs

catalog:
uv run ddp sync catalog
@if [ -z "$(PLUGIN)" ]; then echo "ERROR: Set PLUGIN=<name> to register a first-release catalog entry"; exit 1; fi
uv run ddp catalog register "$(PLUGIN)"

package-index:
uv run ddp package-index build --package-list "$(PACKAGE_LIST)" --packages-url "$(PACKAGES_URL)" --site-dir "$(PACKAGE_INDEX_SITE)"
Expand All @@ -89,7 +90,7 @@ check-plugin-docs:
uv run ddp plugin-docs --check

check-catalog:
uv run ddp sync catalog --check
uv run ddp catalog check

check-package-index:
uv run ddp package-index check --package-list "$(PACKAGE_LIST)" --packages-url "$(PACKAGES_URL)"
Expand Down
23 changes: 17 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ The default NVIDIA plugin catalog URL is:
https://nvidia-nemo.github.io/DataDesignerPlugins/catalog/plugins.json
```

`catalog/plugins.json` is the generated JSON catalog artifact for Data Designer.
`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](docs/catalogs.md) for catalog discovery, catalog
Expand All @@ -65,9 +66,9 @@ 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, CODEOWNERS, and license headers are up to date
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 # Regenerate catalog/plugins.json
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
Expand All @@ -81,23 +82,30 @@ To test a single plugin in isolation:
make test-plugin PLUGIN=data-designer-my-plugin
```

If you change plugin docs, plugin metadata, or ownership, regenerate derived files:
If you change plugin docs or ownership, regenerate derived files:

```bash
make plugin-docs # Regenerate plugin documentation site inputs
make catalog # Regenerate catalog/plugins.json
make codeowners # Regenerate CODEOWNERS
make update-license-headers # Fix SPDX headers
```

Register a package in the catalog only when preparing that package's first
release:

```bash
make catalog PLUGIN=data-designer-my-plugin
```

## The `ddp` CLI

The `ddp` command manages the monorepo. Run `uv run ddp --help` to see all subcommands:

| Command | Description |
|---------|-------------|
| `ddp new <name>` | Scaffold a new plugin |
| `ddp sync catalog` | Sync the static plugin catalog JSON |
| `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 |
Expand All @@ -115,6 +123,9 @@ 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 Release
```

Before 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](docs/releasing.md) for the full release guide.

## License
Expand Down
Loading
Loading