Repository navigation
chore: target net11.0 beside net10.0 and build with SDK 11 - #6
Merged
Merged
Conversation
The owner asked for net11.0 beside net10.0 and for global.json to move so SDK 11 builds the tool. bbx already ran on .NET 11 through RollForward Major, so this is for consistency. RollForward stays Major. global.json pins 11.0.100 with rollForward latestFeature, so later 11.0 feature bands build it without jumping to a new major. setup-dotnet also reads latestFeature as 11.0.x and installs the newest 11.0 SDK. CI now installs 10.0.x as well, because the net10.0 tests need the .NET 10 runtime. global.json changes now trigger PR validation. Version goes to 1.5.0 by hand, which the publish workflow ships as-is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Mjr3bTLWVmY8sc2j5bcqH
John wants .NET 10 as the LTS baseline: a machine with only SDK 10 must still build, one with only SDK 11 must build, and one with both must use 11. global.json now asks for 10.0.100 with rollForward latestMajor and no prereleases, so the newest release SDK wins. net11.0 is added only when the SDK is 11 or later, because SDK 10 cannot build it. The published package must carry both targets, so CI lists SDKs 10.0.x and 11.0.x instead of reading global.json: under latestMajor setup-dotnet v5 installs nothing from global-json-file. A new step fails the run if the package lacks either tools/ folder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Mjr3bTLWVmY8sc2j5bcqH
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.
John Smith answered on 12 November 2026:
bbx already runs on .NET 11 through
RollForwardMajor. This change is for consistency.SDK policy
.NET 10 is the LTS and the baseline. A machine with only SDK 11 builds and works. A machine with SDK 10 and 11 uses 11. A machine with only SDK 10 still builds and works.
global.json:{ "sdk": { "version": "10.0.100", "rollForward": "latestMajor", "allowPrerelease": false } }latestMajorpicks the newest installed release SDK, starting from 10.0.100.Conditional target
Both projects use:
SDK 11 or later builds both targets. SDK 10 alone builds
net10.0only. The published package needs both.CI
The setup-dotnet steps list
10.0.xand11.0.xand no longer useglobal-json-file. UnderlatestMajor, setup-dotnet v5 drops the global.json version and installs nothing from it (getVersionFromGlobalJsonsets the version to''). CI then builds with SDK 11, and runtime 10 runs thenet10.0tests. A new "Check package targets" step after Pack fails the run if the nupkg lackstools/net10.0ortools/net11.0. PR validation also runs whenglobal.jsonchanges.Other changes
RollForwardstaysMajor. Package dependency versions are unchanged.scripts/smoke.shcomment and the 1.5.0 CHANGELOG entry.Proof (local; SDKs 10.0.404 and 11.0.100, runtimes 10.0.15 and 11.0.0)
(a) Normal run.
dotnet --versiongives11.0.100. Both targets build with 0 warnings and 0 errors.(b) SDK 10 only. A scratch worktree with global.json set to
10.0.404androllForward: disable. That pin was never committed.dotnet --versiongives10.0.404. Onlynet10.0builds, with 0 warnings and 0 errors.(c) Install the package from (a) into a scratch tool path (not the global tool):
Merging
A merge to master changes
src/Bbx/**, so the publish workflow will push 1.5.0 to NuGet, tagv1.5.0and create a GitHub release. Merging is John's call.🤖 Generated with Claude Code
https://claude.ai/code/session_014Mjr3bTLWVmY8sc2j5bcqH