NVIDIA-NeMo / NVIDIA-NeMo/DataDesignerPlugins

Add schema v2 contract fixtures for DataDesigner plugin CLI tests

Open
#23 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement plugin tap
Dominant language
Python
Stars
7
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Parent epic: #15

Depends on: #16, #17, #18, #19

Why

DataDesigner CLI work needs realistic tap data for compatibility filtering, source resolution, install planning, package grouping, and error explanations. DDPlugins should provide contract fixtures so the DataDesigner implementation can test against the same schema DDPlugins publishes.

Fixture paths

Add these checked-in fixtures:

devtools/ddp/tests/fixtures/catalogs/schema-v2-valid.json
devtools/ddp/tests/fixtures/catalogs/schema-v2-invalid-source.json
devtools/ddp/tests/fixtures/catalogs/schema-v2-unsupported-version.json

schema-v2-valid.json contents

The valid fixture must include at least five entries:

  1. Compatible PyPI column-generator entry.

    • plugin_type: column-generator
    • source: {"type": "pypi", "package": "data-designer-compatible-column"}
    • Python/data-designer specifiers compatible with current baseline.
  2. Compatible Git seed-reader entry.

    • plugin_type: seed-reader
    • source.type: git
    • source.url, source.ref, and source.subdirectory populated as specified in #18.
  3. Incompatible Python entry.

    • Example: compatibility.python.specifier == ">=3.12".
    • Used by DataDesigner to test environment-specific filtering and explanations.
  4. Incompatible DataDesigner entry.

    • Example: compatibility.data_designer.specifier == ">=999.0".
    • Used by DataDesigner to test targeted compatibility errors.
  5. Multi-plugin package entries.

    • At least two entries with different name and plugin_type values but identical package.name, package.version, and source.
    • This models packages such as data-designer-retrieval-sdg that register multiple runtime plugins.

Invalid fixtures

  • schema-v2-invalid-source.json should contain a schema v2 catalog with a malformed source object, such as {"type": "git", "url": "..."} missing ref and subdirectory.
  • schema-v2-unsupported-version.json should contain schema_version: 999 so DataDesigner can test unsupported schema handling.

Implementation

  • Add DDPlugins tests that validate the valid fixture and assert the invalid fixtures fail for the expected reason.
  • Document that these fixtures are contract fixtures for DataDesigner CLI tests and should stay small.
  • Do not make DataDesigner import DDPlugins runtime code; the fixture contract is JSON-only.

Acceptance criteria

  • The fixture files above exist with the required entries.
  • DDPlugins tests validate the fixtures against the schema v2 contract from #16.
  • Fixtures exercise compatibility, source, docs, and multi-plugin package behavior.
  • The fixture path and intended consumer use are documented.
  • DataDesigner CLI tests can vendor or read these JSON fixtures without depending on DDPlugins internals.

Dependencies

  • Depends on: #16, #17, #18, #19.
  • Blocks robust DataDesigner plugins list, plugins info, and plugins install tests.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the schema v2 contract from #16 and the requirements in #17, #18, and #19. Add the three JSON files under devtools/ddp/tests/fixtures/catalogs, then add DDPlugins tests covering valid compatibility, source, documentation, and multi-plugin entries plus the expected failures. Done means the fixtures validate against schema v2, their path and consumer use are documented, and they remain independent of DDPlugins runtime code.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, devtools, testing-qa
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.