Pin the SDK to the 10.0.3xx feature band to stop unattended roll-forward - #640
Merged
ChrisonSimtian merged 1 commit intoAug 19, 2026
Merged
Conversation
global.json requested 10.0.100 with rollForward: latestMinor, so CI took whatever SDK the runner image shipped. The image moved to 10.0.400, which loads NuGet.Frameworks 7.9.0.0 into MSBuild. That conflicts with the pinned NuGet.Packaging 6.14.3 and breaks every ./build.sh run at Compile. The last green run used 10.0.302, so this pins to that feature band. latestPatch still accepts 10.0.3xx patches but will not jump to 10.0.4xx. This is a temporary measure. The real fix is bumping NuGet.Packaging to 7.x (Fallout-build#639), which is a breaking change held for the next major because NuGet 7.x drops netstandard2.0. Until that lands, the pin keeps CI green and stops the runner image from changing the toolchain without us noticing. Contributors need a 10.0.3xx SDK installed. CI installs it automatically via actions/setup-dotnet reading global.json. Part of Fallout-build#638 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ChrisonSimtian
marked this pull request as ready for review
August 16, 2026 11:39
This was referenced Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restores CI. Pins the SDK to the
10.0.3xxfeature band so the runner image can no longer change our toolchain without us noticing.What changed
global.json:10.0.100/rollForward: latestMinor→10.0.302/rollForward: latestPatch.Why we have to do this for now
rollForward: latestMinormeant CI used whatever SDK the GitHub runner image happened to ship. The image moved to 10.0.400, which loadsNuGet.Frameworks 7.9.0.0into MSBuild. That conflicts with our pinnedNuGet.Packaging 6.14.3, which loadsNuGet.Frameworks 6.14.3into the same build-host process. Every./build.shrun then fails atCompile.No repository change caused this. The last green run used SDK 10.0.302; the first failing run used 10.0.400.
The real fix is bumping
NuGet.Packagingto 7.x — that is #639. It cannot be merged now, because NuGet 7.x dropsnetstandard2.0, which makes it a breaking change held for the next major (target/vNext).So this PR is the interim measure. It keeps CI green in the meantime and unblocks every other PR.
latestPatchstill accepts10.0.3xxsecurity and bug-fix patches, but will not jump to10.0.4xx.Once #639 lands, this pin should be revisited — the band can move forward, and roll-forward policy can be reconsidered deliberately rather than by accident.
Verification
dotnetin the repo now refuses to run rather than silently using the broken band. That is the intended behaviour.actions/setup-dotnetis configured withglobal-json-file: global.jsonin bothbuild.ymland the publish workflows.Note for contributors
You need a
10.0.3xxSDK installed locally. If you only have 10.0.400,dotnetwill report "A compatible .NET SDK was not found" until you install one.Part of #638