feat: add json schema generation for CasConfig via schemars #1640
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Add JSON schema generation as a runnable binary target
cargo run --bin build-schema --features dev-schema --package nativelink-config
Type of change
How Has This Been Tested?
I made this change and just run
cargo run --bin build-schema --features dev-schema --package nativelink-config
, everything builds as expected and a//nativelink_config.schema.json
is created.I eyeballed the generated schema everything looks good enough for me, except for some cases like
StoreRef
orGrpcEndpoint
would benefit from a soft validation regex, and/or some schema documentation bit that it hasdeserialize_with = "convert_string_with_shellexpand"
. Nevertheless, I shoulder upon existing docstrings for its detailed documentation and choose to not pursuit further modification to wordings I don't have deep knowledge upon.Checklist
bazel test //...
passes locally: Probably not needed, was not in capacity to set this up locally. I gated my change under crate-localnativelink-config
dev-schema
to ensure this doesn't break existing workflow. This commit does add a little SBOM burden.git amend
see some docsThis change is