Repository navigation
Start 4.0: .NET Framework 4.7.2 floor, .NET 10 tests, preview version and agent definitions - #376
Merged
Merged
Conversation
Untagged builds now carry 4.0.0 as their version placeholder, and BreakingChanges.txt gets a 3.1-to-4.0 section (3.1.0 has shipped). Add Claude Code subagent definitions under .claude/agents, sized for cost: Sonnet does mechanical and implementation work, and Opus only validates. AGENTS.md documents the routing and the packet format, and records the repo hazards that every agent needs: CRLF and UTF-16 files, the -c Debug OutputPath quirk, examples needing MSBuild 18, culture- dependent tests, Fallout lockstep. It also records the Gatsby 5 dependency constraints. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Marko Lahma <marko.lahma@gmail.com>
- TargetFullFrameworkVersion net462 -> net472 (src, test, examples); example csproj TargetFrameworkVersion v4.6.2 -> v4.7.2 and net462 HintPaths -> net472. - Test/benchmark TFM net8.0 -> net10.0 (including TFM-conditioned items). - Spring.Core: on net472 Microsoft.CSharp becomes a framework Reference; Microsoft.CSharp/System.Reflection.Emit(.Lightweight) packages now only for netstandard2.0 (in-box on net472). Microsoft.Bcl.HashCode kept. - System.Configuration.ConfigurationManager 4.7.0 -> 8.0.1: 4.7.0 transitively pulls System.Drawing.Common 4.7.0 (critical advisory, NU1904 now an error for net10.0 test projects under NuGet audit). - Tests: reference System.Runtime.Serialization.Formatters on net10.0 so the BinaryFormatter round-trip tests keep running. - Fallout Test target: non-Windows framework net6.0 -> net10.0. - README/AGENTS.md updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Marko Lahma <marko.lahma@gmail.com>
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.
This PR starts the 4.0 cycle. It merges before the Parlot parser (#375), so that branch can drop its
net462workarounds.Frameworks
TargetFullFrameworkVersionis nownet472insrc/,test/andexamples/. The example web projects and their HintPaths follow.net8.0tonet10.0, since .NET 8 and 9 are leaving support. That covers 11 test projects and the benchmark. The non-Windows framework inBuild.Test.cswas a stalenet6.0and is nownet10.0.netstandard2.0;net472. Anet10.0library target is planned as its own PR.Spring.Coreno longer references theMicrosoft.CSharp,System.Reflection.EmitandSystem.Reflection.Emit.Lightweightpackages onnet472, because the framework has them.System.Configuration.ConfigurationManagergoes from 4.7.0 to 8.0.1. 4.7.0 pulls inSystem.Drawing.Common4.7.0, which has a critical advisory (GHSA-rxg9-xrhp-64gj). That reaches consumers throughSpring.Core, and thenet10.0audit turned it into a build error.[Serializable]types through it. The test projects referenceSystem.Runtime.Serialization.Formattersonnet10.0only. No test was disabled, ignored or excluded with#if. The library itself has no BinaryFormatter use.4.0 groundwork
Untagged builds are versioned
4.0.0-preview-*, with assembly version 4.0.0.0.BreakingChanges.txthas a "3.1 to 4.0" section. The old "3.0.x to next release" heading becomes "3.0.x to 3.1", since 3.1.0 has shipped.Claude Code subagent definitions are in
.claude/agents/:spring-grunt(Sonnet) does mechanical work.spring-implementer(Sonnet) writes code and its tests.spring-reviewer(Opus, read-only) validates.spring-ci-triage(Sonnet) handles CI failures and Dependabot PRs.AGENTS.md gets the routing rules, the packet format and an "Agent hazards" section: line endings, the
-c Debugoutput path, the examples needing MSBuild 18, culture-dependent tests and Fallout's version lockstep. It also records the Gatsby 5 constraints on website dependencies.Tests
Run locally on Windows:
Cells are passed / failed / skipped. The one failure is
DateTimeFormatterTests.FormatUsingDefaults, which also fails onmainon that machine because of a regional-settings override.These projects also pass on both targets:
These pass on
net472, the only target they have:The examples weren't built locally; CI's
CompileExamplescovers them.🤖 Generated with Claude Code