Skip to content

chore: stop installing the .NET 8 SDK where nothing runs on it - #136

Merged
vbreuss merged 1 commit into
mainfrom
chore/drop-redundant-net8-sdk
Jul 31, 2026
Merged

chore: stop installing the .NET 8 SDK where nothing runs on it#136
vbreuss merged 1 commit into
mainfrom
chore/drop-redundant-net8-sdk

Conversation

@vbreuss

@vbreuss vbreuss commented Jul 31, 2026

Copy link
Copy Markdown
Member

Every CI job installed both 8.0.x and 10.0.x. Only two of them need the .NET 8 runtime: unit-tests and static-code-analysis, which both run the net8.0 leg of the multi-targeted test projects through CodeCoverage. Those keep it.

The rest never execute net8.0 code. api-tests runs Awaiten.Api.Tests, which targets net10.0 only; benchmarks runs a net10.0-only project; aot-sample publishes net10.0 natively; web-sample runs a net10.0-only app; pack builds every target framework but runs none of them, and building net8.0 needs only its reference pack, which restore supplies.

Every CI job installed both 8.0.x and 10.0.x. Only two of them need the .NET 8 runtime: `unit-tests` and `static-code-analysis`, which both run the net8.0 leg of the multi-targeted test projects through `CodeCoverage`. Those keep it.

The rest never execute net8.0 code. `api-tests` runs `Awaiten.Api.Tests`, which targets net10.0 only; `benchmarks` runs a net10.0-only project; `aot-sample` publishes net10.0 natively; `web-sample` runs a net10.0-only app; `pack` builds every target framework but runs none of them, and building net8.0 needs only its reference pack, which restore supplies.

The GitVersion tool does not need it either, which is the part that looks like it should. Nuke runs `gitversion.dll` from the tool's `tools/net8.0` folder, but its runtimeconfig sets `rollForward: LatestMajor`, so the host starts it on whatever runtime is present. `publish-benchmark-report` has been running that way with only 10.0.x for some time, which is the standing proof.

So no change to the GitVersion pin or its `Framework`. Retargeting it to net10.0 would have required bumping the tool from 6.0.5 to 6.8.2, an eight-minor jump in the component that computes published package versions, in exchange for nothing.
@vbreuss vbreuss self-assigned this Jul 31, 2026
@vbreuss
vbreuss enabled auto-merge (squash) July 31, 2026 18:21
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

Test Results

   18 files  ±0     18 suites  ±0   9m 11s ⏱️ +26s
1 297 tests ±0  1 296 ✅ ±0  1 💤 ±0  0 ❌ ±0 
6 280 runs  ±0  6 279 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit 359e665. ± Comparison against base commit 97c516c.

@vbreuss
vbreuss merged commit ebd1ab0 into main Jul 31, 2026
15 checks passed
@vbreuss
vbreuss deleted the chore/drop-redundant-net8-sdk branch July 31, 2026 18:27
@github-actions

Copy link
Copy Markdown

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 9V74 2.60GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 10.0.10 (10.0.10, 10.0.1026.32716), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Resolve Size Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 8 5.275 ns 0.0155 ns 0.0137 ns 0.75 - NA
Awaiten 8 7.050 ns 0.1648 ns 0.1461 ns 1.00 - NA
MsDI 8 8.372 ns 0.0180 ns 0.0150 ns 1.19 - NA
Autofac 8 126.682 ns 0.5870 ns 0.5490 ns 17.98 656 B NA
Jab 8 2.792 ns 0.1194 ns 0.0997 ns 0.40 - NA
PureDI 8 4.774 ns 0.0062 ns 0.0055 ns 0.68 - NA
DryIoc 8 9.044 ns 0.1802 ns 0.1686 ns 1.28 - NA
SimpleInjector 8 10.920 ns 0.0170 ns 0.0133 ns 1.55 - NA
baseline* 256 6.366 ns 0.0079 ns 0.0066 ns 0.79 - NA
Awaiten 256 8.093 ns 0.0092 ns 0.0082 ns 1.00 - NA
MsDI 256 8.269 ns 0.0139 ns 0.0116 ns 1.02 - NA
Autofac 256 127.356 ns 0.7693 ns 0.7196 ns 15.74 656 B NA
Jab 256 46.599 ns 0.0504 ns 0.0447 ns 5.76 - NA
PureDI 256 7.850 ns 0.0110 ns 0.0097 ns 0.97 - NA
DryIoc 256 9.144 ns 0.0391 ns 0.0326 ns 1.13 - NA
SimpleInjector 256 15.650 ns 0.0125 ns 0.0098 ns 1.93 - NA
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763 2.93GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 10.0.10 (10.0.10, 10.0.1026.32716), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Realistic Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 253.0 ns 3.20 ns 2.99 ns 1.06 568 B 1.00
Awaiten 238.2 ns 1.44 ns 1.28 ns 1.00 568 B 1.00
MsDI 590.1 ns 5.78 ns 4.83 ns 2.48 1104 B 1.94
Autofac 6,546.2 ns 29.99 ns 28.05 ns 27.49 10784 B 18.99
Jab 175.8 ns 2.18 ns 2.04 ns 0.74 432 B 0.76
DryIoc 390.4 ns 4.55 ns 4.25 ns 1.64 944 B 1.66
SimpleInjector 712.8 ns 4.40 ns 3.90 ns 2.99 1096 B 1.93
PureDI 179.6 ns 1.36 ns 1.27 ns 0.75 632 B 1.11
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763 2.59GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 10.0.10 (10.0.10, 10.0.1026.32716), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Build Size Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 8 17.18 ns 0.615 ns 0.575 ns 1.03 144 B 1.00
Awaiten 8 16.714 ns 0.3474 ns 0.3250 ns 1.00 144 B 1.00
MsDI 8 1,463.204 ns 40.4301 ns 37.8183 ns 87.58 5688 B 39.50
Autofac 8 30,808.151 ns 409.1802 ns 382.7474 ns 1,843.93 33094 B 229.82
Jab 8 9.501 ns 0.1747 ns 0.1549 ns 0.57 96 B 0.67
PureDI 8 14.705 ns 0.1537 ns 0.1362 ns 0.88 128 B 0.89
DryIoc 8 686.591 ns 3.9852 ns 3.5328 ns 41.09 1528 B 10.61
SimpleInjector 8 11,675.564 ns 163.9928 ns 153.3990 ns 698.80 24760 B 171.94
baseline* 256 89.74 ns 2.884 ns 2.698 ns 1.00 2128 B 1.00
Awaiten 256 89.708 ns 0.3558 ns 0.3154 ns 1.00 2128 B 1.00
MsDI 256 14,576.508 ns 117.1132 ns 109.5478 ns 162.49 61016 B 28.67
Autofac 256 723,487.045 ns 9,213.6842 ns 8,618.4860 ns 8,064.98 720920 B 338.78
Jab 256 72.208 ns 0.4522 ns 0.4230 ns 0.80 2080 B 0.98
PureDI 256 80.089 ns 0.5153 ns 0.4568 ns 0.89 2112 B 0.99
DryIoc 256 42,737.261 ns 972.5917 ns 909.7629 ns 476.41 80768 B 37.95
SimpleInjector 256 353,932.573 ns 4,537.3755 ns 4,244.2639 ns 3,945.42 573173 B 269.35

baseline* rows show the corresponding Awaiten benchmark from the most recent successful main branch build with results, for regression comparison.

github-actions Bot added a commit that referenced this pull request Jul 31, 2026
…here nothing runs on it (#136) by Valentin Breuß
github-actions Bot added a commit that referenced this pull request Jul 31, 2026
…here nothing runs on it (#136) by Valentin Breuß
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.

1 participant