You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: plan/done/task.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,12 +12,12 @@ Verification is build-based — no unit test changes are required.
12
12
13
13
### 1. Update package references in the project file
14
14
15
-
-[]**Task 1** — In `HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj` line 9, change `Version="0.13.12"` to `Version="0.15.8"` for the `BenchmarkDotNet``<PackageReference>`.
15
+
-[x]**Task 1** — In `HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj` line 9, change `Version="0.13.12"` to `Version="0.15.8"` for the `BenchmarkDotNet``<PackageReference>`.
- Why: This is the primary package that provides the benchmarking framework.
18
18
- Verify: The element reads `<PackageReference Include="BenchmarkDotNet" Version="0.15.8" />`.
19
19
20
-
-[]**Task 2** — In `HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj` lines 10–12, change `<Version>0.13.12</Version>` to `<Version>0.15.8</Version>` for the `BenchmarkDotNet.Diagnostics.Windows``<PackageReference>`.
20
+
-[x]**Task 2** — In `HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj` lines 10–12, change `<Version>0.13.12</Version>` to `<Version>0.15.8</Version>` for the `BenchmarkDotNet.Diagnostics.Windows``<PackageReference>`.
- Why: Surfaces any compilation errors or new analyser warnings-as-errors introduced by the version bump before attempting fixes.
41
41
- Verify: Output is captured and reviewed for error codes and messages.
@@ -46,22 +46,22 @@ Verification is build-based — no unit test changes are required.
46
46
47
47
`Program.cs` configures jobs targeting several runtimes that may have been removed or renamed in BenchmarkDotNet 0.14/0.15.
48
48
49
-
-[]**Task 5** — Check whether `ClrRuntime.Net481` still exists in `BenchmarkDotNet.Environments` in 0.15.8; if it has been removed or renamed, update `Program.cs` accordingly.
49
+
-[x]**Task 5** — Check whether `ClrRuntime.Net481` still exists in `BenchmarkDotNet.Environments` in 0.15.8; if it has been removed or renamed, update `Program.cs` accordingly.
50
50
- File: `HdrHistogram.Benchmarking/Program.cs` line 19–20
51
51
- Why: `ClrRuntime.Net481` and `Jit.LegacyJit` were historically only supported on Windows; BenchmarkDotNet 0.15.x may have removed or deprecated support for these.
52
52
- Verify: No `CS0117` / `CS0103` compiler error referencing `ClrRuntime` or `Jit.LegacyJit`.
53
53
54
-
-[]**Task 6** — Check whether `CoreRuntime.Core21`, `CoreRuntime.Core31`, `CoreRuntime.Core50` still exist in 0.15.8; if any have been removed as EOL runtimes, remove or replace those `.AddJob(...)` calls in `Program.cs`.
54
+
-[x]**Task 6** — Check whether `CoreRuntime.Core21`, `CoreRuntime.Core31`, `CoreRuntime.Core50` still exist in 0.15.8; if any have been removed as EOL runtimes, remove or replace those `.AddJob(...)` calls in `Program.cs`.
- Why: BenchmarkDotNet may drop constants for end-of-life .NET versions; compilation will fail if the symbols no longer exist.
57
57
- Verify: No `CS0117` compiler error referencing `CoreRuntime.Core21`, `CoreRuntime.Core31`, or `CoreRuntime.Core50`.
58
58
59
-
-[]**Task 7** — Check whether `StatisticColumn.P0`, `StatisticColumn.Q1`, `StatisticColumn.P67`, `StatisticColumn.Q3`, `StatisticColumn.P80`, `StatisticColumn.P90`, `StatisticColumn.P95`, `StatisticColumn.P100` still exist in `BenchmarkDotNet.Columns` in 0.15.8; if any have been renamed or removed, update `Program.cs`.
59
+
-[x]**Task 7** — Check whether `StatisticColumn.P0`, `StatisticColumn.Q1`, `StatisticColumn.P67`, `StatisticColumn.Q3`, `StatisticColumn.P80`, `StatisticColumn.P90`, `StatisticColumn.P95`, `StatisticColumn.P100` still exist in `BenchmarkDotNet.Columns` in 0.15.8; if any have been renamed or removed, update `Program.cs`.
60
60
- File: `HdrHistogram.Benchmarking/Program.cs` line 18
61
61
- Why: Column name constants occasionally change between minor versions.
62
62
- Verify: No `CS0117` compiler error referencing any `StatisticColumn.*` member.
63
63
64
-
-[]**Task 8** — Check whether `ManualConfig.Create`, `DefaultConfig.Instance`, `BenchmarkSwitcher`, and `switcher.Run` APIs remain present and have the same signatures in 0.15.8; fix any signature mismatches if they do not.
64
+
-[x]**Task 8** — Check whether `ManualConfig.Create`, `DefaultConfig.Instance`, `BenchmarkSwitcher`, and `switcher.Run` APIs remain present and have the same signatures in 0.15.8; fix any signature mismatches if they do not.
- Why: Core configuration and runner APIs are historically stable but could have changed in two minor versions.
67
67
- Verify: No `CS1061`, `CS0246`, or overload-resolution errors on these call sites.
@@ -70,12 +70,12 @@ Verification is build-based — no unit test changes are required.
70
70
71
71
### 5. Investigate and fix breaking changes in benchmark source files
72
72
73
-
-[]**Task 9** — Check whether `[BenchmarkDotNet.Attributes.GlobalSetup]` and `[Benchmark]` attributes remain unchanged in the BenchmarkDotNet 0.15.8 `Attributes` namespace; fix any namespace or attribute-name changes if present.
73
+
-[x]**Task 9** — Check whether `[BenchmarkDotNet.Attributes.GlobalSetup]` and `[Benchmark]` attributes remain unchanged in the BenchmarkDotNet 0.15.8 `Attributes` namespace; fix any namespace or attribute-name changes if present.
74
74
- File: `HdrHistogram.Benchmarking/LeadingZeroCount/LeadingZeroCountBenchmarkBase.cs` line 49 and benchmark methods
75
75
- Why: Attributes are the primary extension point used in this file; a rename would cause compilation failure.
76
76
- Verify: No `CS0246` errors referencing `GlobalSetup` or `Benchmark` attributes.
77
77
78
-
-[]**Task 10** — Confirm `[Benchmark(Baseline = true, OperationsPerInvoke = ...)]` constructor parameters are still valid in 0.15.8; fix any parameter changes if present.
78
+
-[x]**Task 10** — Confirm `[Benchmark(Baseline = true, OperationsPerInvoke = ...)]` constructor parameters are still valid in 0.15.8; fix any parameter changes if present.
- Why: Named constructor parameters can be removed or renamed across minor versions.
81
81
- Verify: No `CS0246`, `CS1739`, or `CS1503` errors on `[Benchmark(...)]` usages.
@@ -84,7 +84,7 @@ Verification is build-based — no unit test changes are required.
84
84
85
85
### 6. Fix new Roslyn analyser diagnostics
86
86
87
-
-[]**Task 11** — After the first successful compilation pass, review all warnings and determine whether any are promoted to errors under `<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>` and `<AnalysisLevel>latest-recommended</AnalysisLevel>` (set in `Directory.Build.props`); fix any new violations in the benchmarking source files.
87
+
-[x]**Task 11** — After the first successful compilation pass, review all warnings and determine whether any are promoted to errors under `<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>` and `<AnalysisLevel>latest-recommended</AnalysisLevel>` (set in `Directory.Build.props`); fix any new violations in the benchmarking source files.
- Why: BenchmarkDotNet 0.15.x ships new Roslyn analysers; existing code may trigger rules that are elevated to errors by the project's global settings.
90
90
- Verify: Build output contains zero `error` lines.
@@ -93,7 +93,7 @@ Verification is build-based — no unit test changes are required.
93
93
94
94
### 7. Verify benchmarking project build succeeds
95
95
96
-
-[]**Task 12** — Run `dotnet build HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj -c Release` and confirm exit code 0 with no errors and no warnings treated as errors.
96
+
-[x]**Task 12** — Run `dotnet build HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj -c Release` and confirm exit code 0 with no errors and no warnings treated as errors.
- Verify: Terminal output ends with `Build succeeded` and `0 Error(s)`.
@@ -102,7 +102,7 @@ Verification is build-based — no unit test changes are required.
102
102
103
103
### 8. Verify full solution build succeeds
104
104
105
-
-[]**Task 13** — Run `dotnet build HdrHistogram.sln -c Release` and confirm exit code 0 with no errors across all four projects (`HdrHistogram`, `HdrHistogram.Examples`, `HdrHistogram.UnitTests`, `HdrHistogram.Benchmarking`).
105
+
-[x]**Task 13** — Run `dotnet build HdrHistogram.sln -c Release` and confirm exit code 0 with no errors across all four projects (`HdrHistogram`, `HdrHistogram.Examples`, `HdrHistogram.UnitTests`, `HdrHistogram.Benchmarking`).
106
106
- File: `HdrHistogram.sln`
107
107
- Why: Directly satisfies acceptance criterion 4; catches regressions in sibling projects caused by shared `Directory.Build.props` changes, if any.
108
108
- Verify: Terminal output ends with `Build succeeded` and `0 Error(s)`.
@@ -111,7 +111,7 @@ Verification is build-based — no unit test changes are required.
111
111
112
112
### 9. Dry-run benchmark discovery
113
113
114
-
-[]**Task 14** — Run `dotnet run --project HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj -c Release -- --list flat` and confirm BenchmarkDotNet enumerates all benchmarks without crashing.
114
+
-[x]**Task 14** — Run `dotnet run --project HdrHistogram.Benchmarking/HdrHistogram.Benchmarking.csproj -c Release -- --list flat` and confirm BenchmarkDotNet enumerates all benchmarks without crashing.
115
115
- File: `HdrHistogram.Benchmarking/Program.cs`
116
116
- Why: Validates runtime initialisation — a build success does not guarantee that BenchmarkDotNet can discover and enumerate benchmarks at start-up.
117
117
- Verify: Output lists at least the `LeadingZeroCount` and `Recording` benchmark classes; process exits with code 0.
@@ -120,7 +120,7 @@ Verification is build-based — no unit test changes are required.
120
120
121
121
### 10. Update documentation
122
122
123
-
-[]**Task 15** — In `spec/tech-standards/build-system.md`, replace both occurrences of `0.13.12` in the BenchmarkDotNet `<PackageReference>` XML block with `0.15.8`.
123
+
-[x]**Task 15** — In `spec/tech-standards/build-system.md`, replace both occurrences of `0.13.12` in the BenchmarkDotNet `<PackageReference>` XML block with `0.15.8`.
0 commit comments