Skip to content

Conversation

@michaeltlombardi
Copy link
Collaborator

PR Summary

This change reimplements the functionality of the DscRepoSchema trait from dsc-lib in dsc-lib-jsonschema.

This migration also takes advantage of some improvements in code organization for compilation and testing, migrating the separate related types, like SchemaForm and SchemaUriPrefix, into their own private modules with the parent module re-exporting those types.

Finally, this migration also incorporates a build script, which checks the git tags for the project to generate the variants for the RecognizedSchemaVersion enum. Prior to this implementation, the developers were required to manually update the enum definition prior to every release.

This change does not update any other crates to use the new implementation. A separate, future change will modify the other crates.

PR Context

Prior to this change, types in dsc-lib depended on theDscRepoSchema trait defined in the same crate for generating the set of recognized schema URIs and validating them.

This change migrates this JSON Schema specific code into the dsc-lib-jsonschema crate for better organization and reuse, since this is actually required for any schema published from the DSC repository, even if those crates don't depend on dsc-lib.

This comment was marked as outdated.

This comment was marked as outdated.

@michaeltlombardi michaeltlombardi force-pushed the gh-538/main/dsc_repo_schema_trait branch 2 times, most recently from ab1eb54 to 9f2c700 Compare December 4, 2025 17:24
@michaeltlombardi michaeltlombardi marked this pull request as ready for review December 4, 2025 17:43

This comment was marked as outdated.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 15 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Prior to this change, types in `dsc-lib` depended on the`DscRepoSchema`
trait defined in the same crate for generating the set of recognized
schema URIs and validating them.

This change migrates this JSON Schema specific code into the
`dsc-lib-jsonschema` crate for better organization and reuse, since
this is actually required for any schema published from the DSC
repository, even if those crates don't depend on `dsc-lib`.

This migration also takes advantage of some improvements in code
organization for compilation and testing, migrating the separate
related types, like `SchemaForm` and `SchemaUriPrefix`, into their
own private modules with the parent module re-exporting those types.

Finally, this migration also incorporates a build script, which
checks the git tags for the project to generate the variants for the
`RecognizedSchemaVersion` enum. Prior to this implementation, the
developers were required to manually update the enum definition prior
to every release.

This change does _not_ update any other crates to use the new
implementation. A separate, future change will modify the other crates.
@michaeltlombardi michaeltlombardi force-pushed the gh-538/main/dsc_repo_schema_trait branch from 9f2c700 to f5668ce Compare December 4, 2025 21:01
@SteveL-MSFT SteveL-MSFT added this pull request to the merge queue Dec 4, 2025
Merged via the queue into PowerShell:main with commit dac8728 Dec 4, 2025
19 checks passed
@michaeltlombardi michaeltlombardi deleted the gh-538/main/dsc_repo_schema_trait branch December 5, 2025 14:50
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.

2 participants