Summary
Update the library and supporting projects to target all currently supported .NET versions (.NET 8, .NET 9, and .NET 10), alongside the existing netstandard2.0 target.
Remove no longer supported targets.
Include benchmark testing in the removal of legacy and addition of new targets/runtimes.
Background
As of March 2026, the supported .NET versions are:
| Version |
Support type |
End of life |
| .NET 8 |
LTS |
10 November 2026 |
| .NET 9 |
STS (2-year) |
10 November 2026 |
| .NET 10 |
LTS |
14 November 2028 |
The library currently targets net8.0;netstandard2.0.
PR #113 recently removed EOL frameworks (net5.0, net6.0, net7.0, etc.) from the benchmarking project.
We should now add the supported frameworks we're missing.
Changes Required
1. Main library (HdrHistogram/HdrHistogram.csproj)
Update target frameworks:
<TargetFrameworks>net10.0;net9.0;net8.0;netstandard2.0</TargetFrameworks>
netstandard2.0 — broad compatibility (.NET Framework 4.6.1+, Mono, Xamarin, Unity)
net8.0 — current LTS baseline (EOL Nov 2026)
net9.0 — current STS (EOL Nov 2026)
net10.0 — latest LTS (EOL Nov 2028)
Review whether any #if conditional compilation directives should be added to leverage newer APIs in net9.0/net10.0 (e.g. performance improvements, new intrinsics).
2. Test project (HdrHistogram.UnitTests/HdrHistogram.UnitTests.csproj)
Update to run tests against all supported runtimes:
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
This ensures correctness is verified on each runtime.
3. Examples project (HdrHistogram.Examples/HdrHistogram.Examples.csproj)
Update to latest LTS:
<TargetFramework>net10.0</TargetFramework>
4. Benchmarking project (HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj)
Consider multi-targeting to compare performance across runtimes:
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
5. CI pipeline (.github/workflows/ci.yml)
Update GitHub Actions to install the required .NET SDK versions:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.x
9.0.x
10.0.x
The existing build/test steps should work as-is since dotnet test on a multi-targeted project runs against all targets.
Acceptance Criteria
Future Maintenance
When .NET 8 and .NET 9 reach EOL in November 2026, they should be removed in a follow-up issue (similar to #105/#113).
When .NET 11 (STS) ships in November 2026, it can be added at that time.
Summary
Update the library and supporting projects to target all currently supported .NET versions (.NET 8, .NET 9, and .NET 10), alongside the existing
netstandard2.0target.Remove no longer supported targets.
Include benchmark testing in the removal of legacy and addition of new targets/runtimes.
Background
As of March 2026, the supported .NET versions are:
The library currently targets
net8.0;netstandard2.0.PR #113 recently removed EOL frameworks (net5.0, net6.0, net7.0, etc.) from the benchmarking project.
We should now add the supported frameworks we're missing.
Changes Required
1. Main library (
HdrHistogram/HdrHistogram.csproj)Update target frameworks:
netstandard2.0— broad compatibility (.NET Framework 4.6.1+, Mono, Xamarin, Unity)net8.0— current LTS baseline (EOL Nov 2026)net9.0— current STS (EOL Nov 2026)net10.0— latest LTS (EOL Nov 2028)Review whether any
#ifconditional compilation directives should be added to leverage newer APIs in net9.0/net10.0 (e.g. performance improvements, new intrinsics).2. Test project (
HdrHistogram.UnitTests/HdrHistogram.UnitTests.csproj)Update to run tests against all supported runtimes:
This ensures correctness is verified on each runtime.
3. Examples project (
HdrHistogram.Examples/HdrHistogram.Examples.csproj)Update to latest LTS:
4. Benchmarking project (
HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj)Consider multi-targeting to compare performance across runtimes:
5. CI pipeline (
.github/workflows/ci.yml)Update GitHub Actions to install the required .NET SDK versions:
The existing build/test steps should work as-is since
dotnet teston a multi-targeted project runs against all targets.Acceptance Criteria
net10.0;net9.0;net8.0;netstandard2.0Future Maintenance
When .NET 8 and .NET 9 reach EOL in November 2026, they should be removed in a follow-up issue (similar to #105/#113).
When .NET 11 (STS) ships in November 2026, it can be added at that time.