NVIDIA-NeMo / NVIDIA-NeMo/DataDesignerPlugins
Add schema v2 contract fixtures for DataDesigner plugin CLI tests
Nobody has claimed this yet.
- 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:
-
Compatible PyPI column-generator entry.
plugin_type:column-generatorsource:{"type": "pypi", "package": "data-designer-compatible-column"}- Python/data-designer specifiers compatible with current baseline.
-
Compatible Git seed-reader entry.
plugin_type:seed-readersource.type:gitsource.url,source.ref, andsource.subdirectorypopulated as specified in #18.
-
Incompatible Python entry.
- Example:
compatibility.python.specifier == ">=3.12". - Used by DataDesigner to test environment-specific filtering and explanations.
- Example:
-
Incompatible DataDesigner entry.
- Example:
compatibility.data_designer.specifier == ">=999.0". - Used by DataDesigner to test targeted compatibility errors.
- Example:
-
Multi-plugin package entries.
- At least two entries with different
nameandplugin_typevalues but identicalpackage.name,package.version, andsource. - This models packages such as
data-designer-retrieval-sdgthat register multiple runtime plugins.
- At least two entries with different
Invalid fixtures
schema-v2-invalid-source.jsonshould contain a schema v2 catalog with a malformedsourceobject, such as{"type": "git", "url": "..."}missingrefandsubdirectory.schema-v2-unsupported-version.jsonshould containschema_version: 999so 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, andplugins installtests.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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