videre-project / MTGOSDK

A software development kit (SDK) for inspecting and interacting with the Magic: The Gathering Online (MTGO) client.
Apache License 2.0
3 stars 0 forks source link

Add SourceLink support to MTGOSDK #15

Closed Qonfused closed 2 months ago

Qonfused commented 3 months ago

Enabling SourceLink allows VS debuggers to download source files based on commit information and symbols embedded in published binaries (reference). It essentially allows debuggers to further inspect calls within the MTGOSDK library.

For our purposes, it is preferred to distribute separate .snupkg PDBs so that debuggers can download symbols directly from NuGet, and avoid bundling additional resources into the ScubaDiver assembly (which consumes MTGOSDK.Core).

Qonfused commented 2 months ago

Debugging symbols aren't bundled with MTGOSDK.Core, so the generation of symbols won't interfere with packing for ScubaDiver.

Qonfused commented 2 months ago

An open question remains whether we should distribute a separate .snupkg package. Without project context, tools like WinDbg and Sentry may only be able to look up symbols on NuGet's symbol servers if the MTGOSDK package isn't installed in the global NuGet package folder.

For production use, it's also viable to distribute a separate .snupkg with the current PDB bundling setup, allowing for this behavior to exist supplementarily.

Qonfused commented 2 months ago

I've enabled both in fea8fc9fca863949370356599b802397e992ae76 to visit the NuGet publishing pipeline later.