Skip to content

feat(release): ship archives without sidecar symbols or XML docs - #189

Merged
ShortArrow merged 1 commit into
mainfrom
feat/lean-release-archives
Aug 25, 2026
Merged

feat(release): ship archives without sidecar symbols or XML docs#189
ShortArrow merged 1 commit into
mainfrom
feat/lean-release-archives

Conversation

@ShortArrow

Copy link
Copy Markdown
Owner

The per-RID archives held 32 files, of which 4 were the point:

count size
binary, two licences, third-party notices 4 102.3 MiB
.pdb 14 0.74 MiB
.xml doc comments 14 0.91 MiB

Visible when installing through mise, which extracts the archive onto PATH — 32 files land where one binary was wanted. The NuGet package is a separate artifact built by dotnet pack and keeps its own shape; what needed fixing was the archive, whose audience downloads it and runs it.

XML docs

Excluded at archive time. They describe an API surface to a compiler, and the consumer who would read them is using the NuGet package, not a zip. Still generated, so the analyzer discipline and the package are unaffected.

Symbols: embedded rather than dropped

Deleting the .pdb files would have been the easy half of this, and it costs something real — a stack trace in a bug report loses its line numbers as soon as the sidecar goes missing, which for a downloaded archive is "immediately". DebugType=embedded puts them inside the assemblies instead, so they cannot be separated from the code they describe.

Measured on the same commit, win-x64 self-contained:

binary sidecar .pdb
before (portable) 103.85 MB 14 files, 0.74 MiB
after (embedded) 104.29 MB none

The download gets smaller overall — +0.44 MB of binary against 0.74 MiB of removed sidecars — and simpler.

Verified

Published linux-x64 self-contained with the change and applied the archive's exclusion: 4 entriesivicli, LICENSE-MIT, LICENSE-APACHE, THIRD-PARTY-NOTICES.md — from an 18-file publish directory. Full build and test suite clean (12 assemblies).

Nothing downstream needed adjusting: the AOT Dockerfile already removed *.pdb/*.xml (now a no-op for pdb), and the AUR ivi-cli PKGBUILD already filtered both.

A downloaded CLI is four files, not thirty-two: symbols move inside the
assemblies so a user's stack trace keeps its line numbers, and the XML
doc comments stay in the NuGet package where a consumer of the types
would look for them.
@ShortArrow
ShortArrow merged commit 8132a0c into main Aug 25, 2026
8 checks passed
@ShortArrow
ShortArrow deleted the feat/lean-release-archives branch August 25, 2026 04:08
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