feat(catalog): show field-level CSV diffs and drop CanonicalType column - #149
Merged
Jared Holgate (jaredfholgate) merged 1 commit intoSep 19, 2026
Merged
Conversation
Plan-only module catalog CSV diffs previously rewrote entire ~800-char rows for a single changed column, and the six generated CSVs carried a CanonicalType column added in an earlier PR unrelated to diff review. - Add field-level (column-aware) diffing to New-ModuleCatalogCsvDiff.ps1: match rows by ModuleName/RepoURL, render added/removed rows and a Field | Before | After table as the default summary view, with the full unified line diff nested in a collapsed "Raw line diff" section. - Remove CanonicalType from CSV generation in ModuleCatalog.ps1; the internal canonicalType metadata field and JSON catalog grouping are unaffected. - Update component tests for both changes and refresh catalog docs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Jared Holgate (jaredfholgate)
had a problem deploying
to
avm
September 19, 2026 19:52 — with
GitHub Actions
Failure
Jared Holgate (jaredfholgate)
deleted the
jaredfholgate-csv-diff-column-level
branch
September 19, 2026 20:01
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why
Reviewing a real plan-only run (https://github.com/Azure/azure-verified-modules-tools/actions/runs/35462875427) showed two problems:
CanonicalTypecolumn. This was traced to PR feat(metadata): centralize schemas, catalog sync and backfill #113 (2026-09-16) — a deliberate, documented decision, but unrelated to diff review and something we can't do right now since the CSV structure can't change.What changed
New-ModuleCatalogCsvDiff.ps1): rows are matched byModuleName(falling back toRepoURL), and the summary now shows, per changed file, added/removed row counts plus aModule | Field | Before | Aftertable of only the columns that actually changed. The full unified line diff is still generated and still available — it's nested inside a collapsed "Raw line diff" section, and still written to.diff/all-csv.diffartifacts. A new per-file.fields.mdartifact is added alongside the existing.difffile. Inline-size gating (-MaxInlineDiffBytes) now measures the rendered summary block rather than just the raw diff.CanonicalTyperemoved from CSV output (ModuleCatalog.ps1): the column is no longer force-added to legacy CSV tables or populated in generated rows. The internalcanonicalTypemetadata field and JSON catalog module grouping (v1/modules.json) are untouched — this is a CSV-column-only change.ModuleCatalog.Component.Tests.ps1,ModuleCatalog.Publication.Tests.ps1,MetadataBackfill.Component.Tests.ps1,ModuleCatalog.CsvDiff.Tests.ps1) and catalog docs (repository-management/module-catalog/README.md,docs/metadata-rollout.md) to match.Validation
./build.ps1 pre-commit— build succeeded with warnings only (expected negative-path test log noise): Unit 1659 passed / 0 failed / 8 skipped; Component 831 passed / 0 failed / 1 skipped.