Skip to content

Add schema v2 catalog source metadata#28

Merged
eric-tramel merged 1 commit intocodex/epic-15-plugin-tapfrom
codex/issue-17-catalog-v2
May 7, 2026
Merged

Add schema v2 catalog source metadata#28
eric-tramel merged 1 commit intocodex/epic-15-plugin-tapfrom
codex/issue-17-catalog-v2

Conversation

@eric-tramel
Copy link
Copy Markdown
Contributor

What

Bump the generated plugin catalog to schema version 2 and include per-entry source and docs metadata derived from the repository tap config.

This preserves the existing fields for runtime name, plugin type, description, package metadata, entry point metadata, and compatibility, including compatibility.data_designer.requirement.

Why

Schema v2 gives tap consumers enough data to show documentation links and derive install sources without importing plugin packages. The NVIDIA catalog now advertises PyPI sources by default while keeping package path as repo-local metadata.

Usage

After running make catalog, catalog entries include the v2 additions:

{
  "schema_version": 2,
  "plugins": [
    {
      "name": "text-transform",
      "source": {
        "type": "pypi",
        "package": "data-designer-template"
      },
      "docs": {
        "url": "https://nvidia-nemo.github.io/DataDesignerPlugins/plugins/data-designer-template/"
      }
    }
  ]
}

How

  • Load [tool.ddp.tap] once for catalog generation and derive package-level source/docs metadata from it.
  • Attach that metadata to every runtime plugin entry from the package, so multi-entry packages share identical package/source/docs values.
  • Validate schema v2 source object shapes before JSON rendering, including the default PyPI source package matching [project].name.
  • Reject duplicate runtime plugin names before rendering JSON.
  • Regenerate catalog/plugins.json and update the schema doc note now that the checked-in catalog is v2.

Validation

  • make sync
  • uv run pytest devtools/ddp/tests/test_catalog.py -q
  • make catalog
  • make check-catalog
  • Temporary stale-catalog smoke: changed checked-in schema_version and confirmed make check-catalog failed with exit 2, then restored and regenerated the catalog
  • uv run ruff check devtools/ddp/src/ddp/catalog.py devtools/ddp/tests/test_catalog.py
  • uv run ruff format --check devtools/ddp/src/ddp/catalog.py devtools/ddp/tests/test_catalog.py
  • make docs
  • make check

@eric-tramel eric-tramel requested a review from a team as a code owner May 7, 2026 19:39
@eric-tramel eric-tramel merged commit 07a1821 into codex/epic-15-plugin-tap May 7, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant