Build: publish symbols and Source Link with the packages - #189
Open
phmatray wants to merge 1 commit into
Open
Conversation
The published packages carry no debug information at all. Checked against nuget.org: Atypical.VirtualFileSystem 0.3.0 has no embedded PDB in any of its three target frameworks, and no symbol package was ever pushed alongside it. A consumer stepping into this library gets decompiled IL and no way back to the source. Adds DotNet.ReproducibleBuilds to the two packable projects, which turns on Source Link, deterministic builds, and DebugType=embedded — the portable PDB then travels inside the assembly, so symbols work with no symbol-server configuration on the consumer's side. Deliberately NOT paired with IncludeSymbols/SymbolPackageFormat=snupkg: with embedded PDBs no separate .pdb is ever produced, so a snupkg would be packed empty, and nuget.org rejects those with "The package does not contain any symbol (.pdb) files". That trap is what this change avoids repeating here. Verified: after the change both packages carry an embedded PDB (MPDB blob present in Atypical.VirtualFileSystem.Core.dll and Atypical.VirtualFileSystem.GitHub.dll). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7hy3BpcmrBsEfqE9uGrNp
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.
What
The published packages carry no debug information at all. Checked against what is actually on nuget.org:
No symbol package was ever pushed either. A consumer stepping into this library lands in decompiled IL with no route back to the source.
The fix
Add
DotNet.ReproducibleBuildsto the two packable projects. It turns on Source Link, deterministic builds, andDebugType=embedded— the portable PDB then travels inside the assembly, so symbols and source stepping work with zero configuration on the consumer's side.PublishRepositoryUrl/EmbedUntrackedSourcesgo inDirectory.Build.propsalongside it.What this deliberately does not do
It does not add
IncludeSymbols+SymbolPackageFormat=snupkg. With embedded PDBs no separate.pdbis ever produced, so the snupkg gets packed empty and nuget.org rejects it:That is not hypothetical — it is what failed the first release of PlayBlazor, and the same inert configuration is being removed from FastComponents in FastComponents#70. This repository gets the working half without the trap.
Verified
After the change, both packages carry an embedded PDB —
MPDBblob present inAtypical.VirtualFileSystem.Core.dllandAtypical.VirtualFileSystem.GitHub.dll.Noticed while here, not fixed
Atypical.VirtualFileSystem.GitHubhas aProjectReferencetoAtypical.VirtualFileSystem.Providers.Abstractions, which is not packable and is not packed bypublish-to-nuget.yml. Should that package ever ship, it would reference an assembly no consumer can restore. It is not on nuget.org today, so nothing is broken right now — flagging it rather than widening this PR.🤖 Generated with Claude Code
https://claude.ai/code/session_01D7hy3BpcmrBsEfqE9uGrNp