Skip to content

feat: embed debug symbols for cross platform#340

Merged
wmundev merged 1 commit into
mainfrom
feature/embed-symbols-cross-platform
May 11, 2026
Merged

feat: embed debug symbols for cross platform#340
wmundev merged 1 commit into
mainfrom
feature/embed-symbols-cross-platform

Conversation

@wmundev
Copy link
Copy Markdown
Collaborator

@wmundev wmundev commented May 10, 2026

This PR updates C# project build settings to embed debug symbols in assemblies (improving cross-platform debugging ergonomics) and adjusts analyzer configuration for the Extensions projects/tests.

@wmundev wmundev requested a review from Copilot May 10, 2026 13:00
@wmundev wmundev self-assigned this May 10, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates C# project build settings to embed debug symbols in assemblies (improving cross-platform debugging ergonomics) and adjusts analyzer configuration for the Extensions projects/tests.

Changes:

  • Switch library projects to DebugType=embedded and remove DebugType=full from the test project.
  • Move Extensions projects to AnalysisLevel=latest and add additional analyzer suppressions for Extensions tests.
  • Reduce visibility of JSON test helper types (records) to internal for NET6+.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
csharp/PhoneNumbers/PhoneNumbers.csproj Set DebugType to embedded for the main library.
csharp/PhoneNumbers.Test/PhoneNumbers.Test.csproj Remove explicit DebugType=full (allowing default portable PDB behavior).
csharp/PhoneNumbers.Extensions/PhoneNumbers.Extensions.csproj Set DebugType=embedded and change AnalysisLevel to latest.
csharp/PhoneNumbers.Extensions.Test/TestConversion.cs Make NET6+ helper record types internal.
csharp/PhoneNumbers.Extensions.Test/PhoneNumbers.Extensions.Test.csproj Add CA1812/CA1852 suppressions and change AnalysisLevel to latest.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread csharp/PhoneNumbers.Extensions/PhoneNumbers.Extensions.csproj
Comment thread csharp/PhoneNumbers.Extensions.Test/TestConversion.cs
@codecov
Copy link
Copy Markdown

codecov Bot commented May 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.94%. Comparing base (bd2cbd3) to head (1f1fde9).

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #340       +/-   ##
===========================================
+ Coverage   76.97%   97.94%   +20.97%     
===========================================
  Files          40       40               
  Lines        4712    52924    +48212     
  Branches     1115     1115               
===========================================
+ Hits         3627    51839    +48212     
  Misses        851      851               
  Partials      234      234               

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@wmundev wmundev requested a review from twcclegg May 10, 2026 13:09
Comment thread csharp/PhoneNumbers.Test/PhoneNumbers.Test.csproj
@wmundev wmundev changed the title feat: embed-symbols-cross-platform feat: embed debug symbols for cross platform May 10, 2026
@github-actions
Copy link
Copy Markdown

📊 Benchmark Results

Commit: 1f1fde9 · Full run · Windows windows-latest

PR branch

BenchmarkDotNet v0.15.8, Windows 11 (10.0.26100.32690/24H2/2024Update/HudsonValley) (Hyper-V)
AMD EPYC 7763 2.44GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.203
  [Host]             : .NET 9.0.15 (9.0.15, 9.0.1526.17522), X64 RyuJIT x86-64-v3
  .NET 8.0           : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
  .NET 9.0           : .NET 9.0.15 (9.0.15, 9.0.1526.17522), X64 RyuJIT x86-64-v3
  .NET Framework 4.8 : .NET Framework 4.8.1 (4.8.9325.0), X64 RyuJIT VectorSize=256


Method Job Runtime PhoneNumberCount Mean Error StdDev Gen0 Gen1 Allocated
ParseValidateAndFormatPhoneNumbers .NET 8.0 .NET 8.0 1000 2.756 ms 0.0279 ms 0.0261 ms 35.1563 - 582.48 KB
ParseValidateAndFormatPhoneNumbers .NET 9.0 .NET 9.0 1000 2.564 ms 0.0118 ms 0.0105 ms 35.1563 - 582.48 KB
ParseValidateAndFormatPhoneNumbers .NET Framework 4.8 .NET Framework 4.8 1000 7.361 ms 0.0493 ms 0.0412 ms 226.5625 23.4375 1397.58 KB
ParseValidateAndFormatPhoneNumbers .NET 8.0 .NET 8.0 10000 27.352 ms 0.1174 ms 0.0980 ms 343.7500 - 5818.97 KB
ParseValidateAndFormatPhoneNumbers .NET 9.0 .NET 9.0 10000 25.449 ms 0.1341 ms 0.1254 ms 343.7500 - 5818.97 KB
ParseValidateAndFormatPhoneNumbers .NET Framework 4.8 .NET Framework 4.8 10000 76.055 ms 1.0666 ms 0.9977 ms 2142.8571 142.8571 13952.15 KB
ParseValidateAndFormatPhoneNumbers .NET 8.0 .NET 8.0 100000 272.867 ms 2.2241 ms 2.0804 ms 3500.0000 - 58205.32 KB
ParseValidateAndFormatPhoneNumbers .NET 9.0 .NET 9.0 100000 256.481 ms 0.8838 ms 0.8267 ms 3500.0000 - 58205.32 KB
ParseValidateAndFormatPhoneNumbers .NET Framework 4.8 .NET Framework 4.8 100000 779.244 ms 14.9862 ms 17.2581 ms 22000.0000 2000.0000 139529.62 KB
main branch

BenchmarkDotNet v0.15.8, Windows 11 (10.0.26100.32690/24H2/2024Update/HudsonValley) (Hyper-V)
AMD EPYC 7763 2.44GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.203
  [Host]             : .NET 9.0.15 (9.0.15, 9.0.1526.17522), X64 RyuJIT x86-64-v3
  .NET 8.0           : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
  .NET 9.0           : .NET 9.0.15 (9.0.15, 9.0.1526.17522), X64 RyuJIT x86-64-v3
  .NET Framework 4.8 : .NET Framework 4.8.1 (4.8.9325.0), X64 RyuJIT VectorSize=256


Method Job Runtime PhoneNumberCount Mean Error StdDev Gen0 Gen1 Allocated
ParseValidateAndFormatPhoneNumbers .NET 8.0 .NET 8.0 1000 2.761 ms 0.0242 ms 0.0189 ms 35.1563 - 582.48 KB
ParseValidateAndFormatPhoneNumbers .NET 9.0 .NET 9.0 1000 2.537 ms 0.0066 ms 0.0062 ms 35.1563 - 582.48 KB
ParseValidateAndFormatPhoneNumbers .NET Framework 4.8 .NET Framework 4.8 1000 7.931 ms 0.1560 ms 0.1733 ms 226.5625 23.4375 1397.64 KB
ParseValidateAndFormatPhoneNumbers .NET 8.0 .NET 8.0 10000 27.651 ms 0.4595 ms 0.4298 ms 343.7500 - 5818.97 KB
ParseValidateAndFormatPhoneNumbers .NET 9.0 .NET 9.0 10000 26.055 ms 0.5097 ms 0.5665 ms 343.7500 - 5818.97 KB
ParseValidateAndFormatPhoneNumbers .NET Framework 4.8 .NET Framework 4.8 10000 75.811 ms 0.8939 ms 0.7924 ms 2142.8571 142.8571 13952.16 KB
ParseValidateAndFormatPhoneNumbers .NET 8.0 .NET 8.0 100000 273.487 ms 1.0998 ms 0.9183 ms 3500.0000 - 58205.32 KB
ParseValidateAndFormatPhoneNumbers .NET 9.0 .NET 9.0 100000 263.002 ms 5.2164 ms 7.6461 ms 3500.0000 - 58205.32 KB
ParseValidateAndFormatPhoneNumbers .NET Framework 4.8 .NET Framework 4.8 100000 839.783 ms 14.3213 ms 13.3961 ms 22000.0000 2000.0000 139529.6 KB

@wmundev wmundev merged commit aec0cdb into main May 11, 2026
12 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.

3 participants