fix(ci): pin azldev to specific commit, drop schema freshness check#16529
Conversation
The checked-in schema was stale, missing types added since the initial import (ComponentBuildFailureConfig, ComponentBuildHints, PackageConfig, PackageGroupConfig, plus new overlay types like spec-remove-section, file-add, file-remove, file-rename). Regenerated with: azldev config generate-schema
fe62944 to
0120c19
Compare
There was a problem hiding this comment.
Pull request overview
Updates CI TOML/config validation to use azldev (the authoritative config parser) instead of the Rust/taplo toolchain, and refreshes the checked-in JSON schema to match current azldev output.
Changes:
- Regenerate
external/schemas/azldev.schema.jsonfromazldev config generate-schema. - Replace taplo-based linting in CI with
azldev config dump -qvalidation and a schema drift check viadiff. - Remove
taplo.toml.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
taplo.toml |
Removes taplo configuration since CI no longer uses taplo for validation. |
external/schemas/azldev.schema.json |
Updates the checked-in schema to match the latest azldev-generated schema. |
.github/workflows/lint.yaml |
Switches the CI job to install/run azldev and adds a schema freshness check. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: "Run linter" | ||
| run: taplo lint --colors=always | ||
| - name: "Validate config (strict)" | ||
| run: azldev config dump -q > /dev/null |
There was a problem hiding this comment.
It doesn't need to be quiet, so I'll change it.
I did introspect this since I used Copilot to generate the changes, and looks like it was followed guidance from what we have in copilot-instructions for the agent to utilize '-q' and also in the example commands.
There was a problem hiding this comment.
I'll change this in a follow on PR to keep this change focused on fixing the CI.
| @@ -1,6 +1,6 @@ | |||
| { | |||
There was a problem hiding this comment.
Do we still need the schema checked in at all now that it's available on GitHub under microsoft/azure-linux-dev-tools?
(I'm okay deferring that evaluation to a later PR.)
There was a problem hiding this comment.
The schema is still referenced in the various skill files in this tree. I agree that we should just link to the schema in azure-linux-dev-tools instead, and remove the schema altogether from this repo. I'll do that in a follow up PR.
sooooo I queued off Copilot to fix one comment, and I expected a new commit with the change, but looks like it completely rewrote the PR summary while I was away. Will fix, and noted for the future when using Copilot in the cloud |
taplo lint was validating TOML files against a static JSON schema that drifts out of date whenever azldev adds new config fields, causing spurious CI failures on valid configs. Replace the Rust/taplo toolchain with azldev, which is the authoritative parser for these files. "azldev config dump" validates syntax, schema, includes, and full config resolution in strict mode (fails on unknown fields). Errors are printed to stderr for CI diagnostics. Delete taplo.toml since taplo is no longer used in CI.
1605b66 to
0fd9614
Compare
|
CI error with |
|
The lint CI job was failing because the checked-in JSON schema (azldev.schema.json) was stale — missing types and fields added to azldev since the initial import.
Changes
azldev config dumpfor strict config validation.azldev config generate-schema+diffto fail if the checked-in schema drifts.azldevis the authoritative parser for these files and validates the full config lifecycle, which is strictly stronger than taplo + a static schema.