Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance: Improve debugging experience #345

Open
1 task done
hjgraca opened this issue Jul 5, 2023 · 0 comments · May be fixed by #346
Open
1 task done

Maintenance: Improve debugging experience #345

hjgraca opened this issue Jul 5, 2023 · 0 comments · May be fixed by #346
Assignees
Labels
debugging Related to debugging experience internal Maintenance changes

Comments

@hjgraca
Copy link
Contributor

hjgraca commented Jul 5, 2023

Summary

A good debugging experience relies on the presence of debug symbols as they provide critical information like the association between the compiled and the source code, names of local variables, stack traces, and more. You can use symbol packages (.snupkg) to distribute these symbols and improve the debugging experience of your NuGet packages.
Symbol package isn't the only strategy to make the debug symbols available to the consumers of your library. It's also possible to include the PDB in the main NuGet package.

Why is this needed?

Allow Powertools users to be able to debug into the utilities

Which area does this relate to?

Other

Solution

There are two approaches:

  • Include debug symbols directly in the nuget package by adding a property to csproj
    • Pros:
      • No need to push to Nuget symbol server
      • Supports all IDEs
      • No extra downloads
    • Cons
      • Increases nuget package size
  <PropertyGroup>
    <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
  </PropertyGroup>  
  • Creating a symbols package
    • Pros
      • Does not impact the size of the nuget package
    • Cons
      • Some limitations
      • Possible to not be available on all IDEs
<PropertyGroup>
    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

Acknowledgment

@hjgraca hjgraca added internal Maintenance changes triage Pending triage from maintainers labels Jul 5, 2023
@hjgraca hjgraca self-assigned this Jul 5, 2023
@hjgraca hjgraca added debugging Related to debugging experience and removed triage Pending triage from maintainers labels Jul 5, 2023
@hjgraca hjgraca linked a pull request Jul 6, 2023 that will close this issue
7 tasks
@hjgraca hjgraca linked a pull request Jul 6, 2023 that will close this issue
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
debugging Related to debugging experience internal Maintenance changes
Projects
Status: 📋 Backlog
Development

Successfully merging a pull request may close this issue.

1 participant