Make DataDesignerPlugins an install-ready plugin tap#36
Open
eric-tramel wants to merge 21 commits intomainfrom
Open
Make DataDesignerPlugins an install-ready plugin tap#36eric-tramel wants to merge 21 commits intomainfrom
eric-tramel wants to merge 21 commits intomainfrom
Conversation
…ract Define tap catalog schema v2 contract
Add repo-level tap metadata config
Add schema v2 catalog source metadata
Add scaffold plugin type support
Add tap source install target derivation
Document default tap catalog URL
Document plugin tap governance and trust
Add tap catalog contract fixtures
…tion Strengthen release validation
Document plugin tap workflows
10 tasks
johnnygreco
added a commit
to NVIDIA-NeMo/DataDesigner
that referenced
this pull request
May 8, 2026
Validate tap catalogs against the schema v2 contract used by NVIDIA-NeMo/DataDesignerPlugins#36, including source union fields, docs URLs, package paths, compatibility metadata, and unique runtime plugin names. Derive Git install targets as package-qualified PEP 508 direct references so git tap entries install the package described by the catalog source metadata. Refs #617
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Makes this repository consumable as a Data Designer plugin tap by adding a schema v2 catalog contract, source metadata, install-target derivation, scaffold support for multiple plugin types, release validation, contract fixtures, and end-user/maintainer documentation.
The schema v2 contract is now package-first and generic: top-level
packages[]entries describe installable Python distributions, and each package lists the runtime Data Designer plugins exposed after installation. Catalog JSON can be hosted from any raw JSON endpoint, while packages can come from PyPI, Git, direct HTTP(S) wheel/sdist URLs, or local paths for authoring.The epic merge train includes:
ddp new --type column-generator|seed-reader|processor.Closes #15.
Why
Data Designer needs a predictable plugin discovery surface outside the core package. This gives NDD-style clients a stable catalog to read, a contract to validate, and enough trusted metadata to decide what can be installed without importing arbitrary plugin code first.
The package-first shape avoids baking this repository layout into the public contract. A tap host only needs to serve valid JSON, and each catalog package can point to whichever install source is appropriate for that package.
Usage
Scaffold a plugin by type:
Check generated tap metadata and release readiness:
A client can read
catalog/plugins.json, validate schema v2, list package-level sources, flatten runtime plugins for search/info views, filter by Data Designer compatibility, and derive install targets such as:How
The implementation centralizes package-first catalog parsing, schema v2 validation, source metadata normalization, compatibility filtering, and install-target derivation in
ddp.catalog. Repository tap defaults are loaded throughddp.tap_config, and generated catalog output now groups runtime plugin entries under each installable package.The scaffold code maps the requested plugin type into the correct Data Designer plugin contract and generated package shape. Release checks verify checked-in schema v2 package entries, source consistency, release-eligible CODEOWNERS, and generated metadata expectations.
Docs cover the catalog schema, default tap URL, plugin tap workflow, governance/trust model, authoring flow, and release workflow.
Validation
Subissue PRs were merged into the epic branch only after targeted checks. The final integrated branch was validated with:
The final
make allrun passed lint, format check, devtools tests, isolated plugin tests, plugin validation, generated artifact checks, and strict docs validation.I also ran an isolated scratch-space mock NDD CLI QA in
/tmp/ddp-epic15-package-first-mock-ndd-qa. That mock client validated the real package-first catalog, listed packages and flattened runtime plugins, exercised search/info/install planning, validated schema fixtures, checked compatibility filtering, verified Git subdirectory and Git root install-target derivation, verified direct URL install-target derivation, rejected invalid fixtures, rewrote the template package to a local path source, installed it editable into a scratch venv, and verified thedata_designer.pluginsentry point was discoverable.