Skip to content

Upgrade to .NET 10 (LTS) - #46

Open
cheerfulnut wants to merge 2 commits into
codengine:masterfrom
cheerfulnut:feature/net10-upgrade
Open

cheerfulnut wants to merge 2 commits into
codengine:masterfrom
cheerfulnut:feature/net10-upgrade

Conversation

@cheerfulnut

Copy link
Copy Markdown

Hi, I recently started playing SOTF and came across your editor when trying to make some config changes. I noticed it was built on .Net8 which is EoL in November, so I updated it to use .Net10 instead.

Full confession - I'm not a dev, I used claude code to make these edits, but they're fairly minimal so I don't think there's anything broken. I tested it against an existing save game of mine and didn't run into any issues - I edited a save, loaded it in game and confirmed the changes applied, then made a new save in game and confirmed the editor read it back correctly. The map, zoom and pan all work too.

What changed (per CC):

  • global.json — SDK 8.0 → 10.0 (rollForward/allowPrerelease unchanged)
  • SOTFEdit, ZoomControl, SOTFEdit.Tests — net8.0-windows → net10.0-windows
  • SOTFEdit.Companion.Shared, SOTFEdit.Companion.Shared.Tests — net8.0 → net10.0
  • README.md — required Desktop Runtime and download link updated

The CI workflows didn't need any changes since they already pick up the SDK version from global.json.

Not verified: win-x86 and the Companion mod websocket integration (mod not installed).

Note: I'll submit a second follow-up PR because there were some warning/vulnerabilities that CC flagged regarding MessagePack advisories that dotnet restore now surfaces, but I'm keeping it separate from this framework change PR.

🤖 Generated with Claude Code

.NET 8 reaches end of support on 2026-11-10. .NET 10 is the current LTS
release, supported until November 2028.

- global.json: SDK 8.0 -> 10.0
- All five projects: net8.0 / net8.0-windows -> net10.0 / net10.0-windows
- README: update the required Desktop Runtime and its download link

No code or dependency changes. The CI workflows need no edits because they
already resolve the SDK via global-json-file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
actions/setup-dotnet rejects a two-part version when rollForward is
specified: "When 'rollForward' is specified, a full SDK version is
required."

This also affects the existing "8.0" value on master, so CI fails there
too. setup-dotnet@v5 is a moving tag and has tightened this validation
since the last push to master in December 2025.

rollForward is left as latestMinor, so any 10.0.x SDK still satisfies it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cheerfulnut

Copy link
Copy Markdown
Author

Small follow-up commit - CI was failing at the Setup .NET step because actions/setup-dotnet rejects a two-part version when rollForward is set ("a full SDK version is required"). Changed it to 10.0.100 and left rollForward as latestMinor, so any 10.0.x still works.

I believe master has the same problem with "8.0" - setup-dotnet@v5 is a moving tag and tightened this since your last push in Dec 2025, so it's been broken for a while without anyone noticing. This PR fixes it as a side effect.

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