Skip to content

Fix generator symbol package layout and validate symbols before publishing - #59

Merged
AGiorgetti merged 1 commit into
developfrom
fix/codex-generator-symbol-layout
Oct 15, 2026
Merged

AGiorgetti merged 1 commit into
developfrom
fix/codex-generator-symbol-layout

Conversation

@AGiorgetti

@AGiorgetti AGiorgetti commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Mammoth.LiteMapper.Generator 4.0.1 placed its PDB under lib/netstandard2.0 while its DLL exists only under analyzers/dotnet/cs, causing NuGet symbol validation to reject an otherwise matching DLL/PDB pair. Explicitly pack the generator DLL and portable PDB at the analyzer path and remove the build-output-removal workaround.

Add a shared, nonshipping validator for package metadata, archive-relative paths, portable format, PE/PDB identity and compiler checksum. Use it in shipping-package regressions, release CI before artifact upload, and manual publishing even with -SkipValidation or dry runs. Negative fixtures cover path, identity, checksum, portability and metadata failures; native-command tests prove validation failures stop publication. Existing CI coverage and release gates remain in place.

Targets develop, which contains the published 4.0.1 release; release/4.0.1 has been removed. The corrected original 4.0.1 .snupkg was prepared and delivered separately for a human upload. This PR does not publish packages or replace the immutable 4.0.1 .nupkg.

Validation

  • Shipping regression failed on the original generator PDB path; ten fixture checks passed. Three publication-gate regressions failed before integration.
  • Final committed symbol/gate checks: 16 passed; release/native safeguards: 60 passed. Negative path, identity and checksum fixtures pass, alongside no-PDB and partial-symbol controls.
  • Release solution build passed, with two existing generator-test dependency audit warnings.
  • Local correctness: 1,083 generator tests, five runtime tests and one integration test passed. Full local package suite: 289 passed, one trimmed-publish timeout at the unchanged ten-minute bound, and one Native AOT skip because the platform linker is absent.
  • Local benchmark launches and allocation measurements were excluded to avoid the separate allocation investigation. Existing CI still runs its full coverage.
  • Independent static review found no remaining actionable issues.
  • Exact-head CI at 579f8cc80bb61d33e517cfcad03646af099cd60b completed successfully: both full Windows/Linux jobs and all six Roslyn 4.8/4.14/5.9 jobs passed. The full jobs retain required trimming/Native AOT and existing benchmark coverage. Release packaging, artifact handoff and publication jobs were skipped for this PR, as intended. CI run.

@AGiorgetti
AGiorgetti marked this pull request as ready for review October 15, 2026 12:58
@AGiorgetti
AGiorgetti merged commit c3ef53e into develop Oct 15, 2026
11 checks passed
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.

1 participant