Skip to content

Document the plugin tap contract, workflows, and ecosystem boundaries #25

@eric-tramel

Description

@eric-tramel

Parent epic: #15

Depends on: #16, #18, #19, #20, #21, #22, #24

Why

The repo currently documents plugin authoring, workflow, and release basics, but not the full tap contract or how DDPlugins functions as both the default NVIDIA tap and a reference tap repo. This issue turns the contracts from the other issues into maintainer-facing and consumer-facing docs.

Documentation changes

Add or update these docs:

  1. docs/taps.md

    • Defines tap discovery vs runtime entry-point discovery.
    • Includes the schema v2 JSON example from Define the schema v2 tap catalog contract #16.
    • Lists required schema fields and source object variants.
    • States the default NVIDIA tap URL exactly:
      https://raw.githubusercontent.com/NVIDIA-NeMo/DataDesignerPlugins/main/catalog/plugins.json
    • Explains that external taps may use any unauthenticated raw JSON URL or local path matching schema v2.
    • Explains mutability of the raw main URL and tag/SHA pinned alternatives.
  2. README.md

    • Adds a short “Plugin Tap” section.
    • Links to docs/taps.md.
    • Shows the default NVIDIA tap URL.
  3. docs/authoring.md

    • Explains that package metadata, plugin docs, entry points, compatibility dependencies, and tap config feed generated catalog entries.
    • Explains ddp new --type column-generator|seed-reader|processor once Extend ddp new to scaffold all DataDesigner plugin types #22 lands.
    • Explains external tap authoring at a high level: configure [tool.ddp.tap], scaffold plugin, run make all, publish raw JSON catalog.
  4. docs/workflow.md

    • States that catalog/plugins.json is the machine-readable tap artifact.
    • States that maintainers regenerate it with make catalog and validate with make check-catalog / make check.
    • States that human docs link to the raw JSON catalog but do not deliver the machine catalog.
  5. docs/releasing.md

    • Documents per-plugin tags: {package}/v{version}.
    • Explains that PyPI source installs use source.package and package.version.
    • Explains that Git source installs use repository-git-url, release ref, and package.path as subdirectory.
    • Explains that multi-plugin packages release all of their entry points together.
    • Documents the strengthened release validation from Harden release validation for tap metadata and source refs #20.
  6. zensical.toml

    • Adds the new tap docs page to navigation outside the generated plugin docs block.

Acceptance criteria

  • A consumer can find the default NVIDIA tap URL and understand every schema v2 field.
  • Docs explain that the tap artifact is raw JSON, not an HTML page or docs-only artifact.
  • A maintainer can understand when to regenerate catalog/docs/CODEOWNERS and which files are generated.
  • An external author can understand how to configure a copied/forked tap repo, scaffold a plugin, publish a raw JSON catalog, and tell users how to add that tap once DataDesigner supports it.
  • Release docs explain how a plugin becomes discoverable and installable through the tap.
  • Docs distinguish tap discovery from runtime entry-point discovery.
  • make docs passes in strict mode.

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationplugin tapPlugin catalog and tap ecosystem work

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions