Repository navigation
Unify the .NET symbol catalog and isolate development tooling - #1264
Conversation
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Catalog replacement has a concurrent-edit race, and validation gaps can admit invalid provenance or silently omit stored test pairs.
Review effort: Balanced
Findings: 1
Open (3)
What changed in this PR
This PR consolidates .NET declarations, assessments, and test mappings into an isolated catalog module without changing SDK runtime behavior.
Changes:
- Adds the unified compact catalog model, refresh support, and relocated tooling.
- Removes tooling-only dependencies from the SDK module.
- Updates CI, lookup guidance, Dependabot, and regenerated agentic workflows.
| File | Description |
|---|---|
go.mod |
Removes catalog tooling dependencies. |
go.sum |
Removes corresponding checksums. |
cmd/symbolmap/testmapping.go |
Removes the old test-mapping implementation. |
cmd/dotnetsymbols/README.md |
Removes documentation from the old location. |
cmd/dotnetsymbols/model.go |
Removes the old extractor model. |
_catalog/go.mod |
Defines the isolated tooling module. |
_catalog/go.sum |
Pins tooling dependencies. |
_catalog/cmd/symbolmap/main.go |
Implements relocated CLI dispatch and filtering. |
_catalog/cmd/symbolmap/report.go |
Updates compact mapping reports. |
_catalog/cmd/symbolmap/reconcile.go |
Reconciles against unified declarations. |
_catalog/cmd/symbolmap/testmapping.go |
Reads compact test pairs. |
_catalog/cmd/symbolmap/testreport.go |
Updates test reconciliation. |
_catalog/cmd/symbolmap/gotests.go |
Adds static Go test discovery. |
_catalog/cmd/symbolmap/goindex.go |
Adds offline SDK API indexing. |
_catalog/cmd/symbolmap/gochanges.go |
Compares structural Go APIs. |
_catalog/cmd/symbolmap/goexample.go |
Uses shared example parsing. |
_catalog/cmd/symbolmap/goonly.go |
Supports note-only Go-specific assessments. |
_catalog/cmd/internal/testinventory/inventory.go |
Defines shared test metadata. |
_catalog/cmd/internal/symbolcatalog/model.go |
Defines the unified catalog schema. |
_catalog/cmd/internal/symbolcatalog/catalog.go |
Validates catalogs and mappings. |
_catalog/cmd/internal/symbolcatalog/declarations.go |
Projects compact declarations. |
_catalog/cmd/internal/symbolcatalog/merge.go |
Preserves assessments during refresh. |
_catalog/cmd/internal/symbolcatalog/update.go |
Performs in-place catalog replacement. |
_catalog/cmd/internal/symbolcatalog/names.go |
Resolves compact .NET labels. |
_catalog/cmd/internal/symbolcatalog/tests.go |
Validates compact test mappings. |
_catalog/cmd/dotnetsymbols/main.go |
Adds cached input and catalog refresh modes. |
_catalog/cmd/dotnetsymbols/release.go |
Uses shared extraction models. |
_catalog/cmd/dotnetsymbols/signatures.go |
Emits shared parameter identities. |
_catalog/cmd/dotnetsymbols/tests.go |
Uses shared test metadata. |
_catalog/cmd/dotnetsymbols/attributes.go |
Uses shared attribute metadata. |
.github/workflows/test.yml |
Tests both Go modules. |
.github/workflows/linter.yml |
Lints both Go modules. |
.github/workflows/codeql.yml |
Builds both modules for CodeQL. |
.github/workflows/symbolmap-maintenance-weekly.md |
Migrates maintenance to the catalog module. |
.github/workflows/symbolmap-maintenance-weekly.lock.yml |
Regenerates the maintenance workflow. |
.github/workflows/dotnet-port-api-nightly.md |
Reads unified catalog gaps. |
.github/workflows/dotnet-port-api-nightly.lock.yml |
Regenerates the API-port workflow. |
.github/workflows/dotnet-port-fixes-nightly.md |
Prepares catalog tooling. |
.github/workflows/dotnet-port-fixes-nightly.lock.yml |
Regenerates the fixes workflow. |
.github/skills/dotnet-symbols/SKILL.md |
Documents unified lookup and refresh semantics. |
.github/dependabot.yml |
Enables nested-module dependency updates. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This comment has been minimized.
This comment has been minimized.
API consistency review
This PR only refactors internal development tooling ( Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "github.com"See Network Configuration for more information.
|


Summary
Preservation and scope
Based on
mainat21528e2a869036953b37da872dd8f21d4481515c. Preserve all 49 intentional FileStore assessments merged in #1258 in the relocated compact format.The unified catalog retains 1,908 extracted API declarations, 920 assessed leaves, 1,100 unreviewed leaves, and 112 assessments outside extraction scope. All 786 method keys include return types. All 6,750 .NET tests and 413 unique direct-port test pairs are preserved; 6,337 remain unpaired. SDK test names are unchanged. Structural validation is not a behavioral-parity certification.
Review follow-ups leave catalog bytes, SDK source, dependency files, and workflows unchanged. Concurrent editing is outside the intended contract; no file lock or locking dependency is added. The latest ownership-guard follow-up changes only the merger, its existing component tests, and the two guides.
Validation
No .NET tests, local SDK E2E/replay tests, or benchmarks were run. Hosted CI passed at the preceding head
461cdca2; new checks will run for the ownership-guard follow-up.