Skip to content

Solution Update July 2026 - #50

Merged
feO2x merged 2 commits into
mainfrom
update-july-2026
Jul 25, 2026
Merged

Solution Update July 2026#50
feO2x merged 2 commits into
mainfrom
update-july-2026

Conversation

@feO2x

@feO2x feO2x commented Jul 25, 2026

Copy link
Copy Markdown
Owner
  • updates dependencies
  • switches to Microsoft.Testing.Platform
  • updates and cleans up AGENTS.md

feO2x and others added 2 commits July 25, 2026 07:52
Move the toolchain and all NuGet dependencies to their current versions:
.NET SDK 10.0.302, ASP.NET Core 10.0.10, Verify 31.27.0, Polyfill 11.0.1,
Microsoft.NET.Test.Sdk 18.8.1, and SourceLink 10.0.301.

Pin Microsoft.OpenApi to 2.11.0 through central transitive pinning. The 2.0.0
that Microsoft.AspNetCore.OpenApi 10.0.10 pulls in transitively is affected by
GHSA-v5pm-xwqc-g5wc, which is patched in 2.7.5 and later. Staying on the 2.x
line is deliberate: Microsoft.OpenApi 3.x introduces IOpenApiMediaType and
retypes OpenApiResponse.Content to it, which the XML comment source generator
shipped inside Microsoft.AspNetCore.OpenApi 10.0.10 does not compile against
(CS0200 on the read-only IOpenApiMediaType.Example in the generated
OpenApiXmlCommentSupport.generated.cs), and which would fail at runtime anyway
because that assembly binds against Microsoft.OpenApi 2.0.0.0.

Migrate the test suite to Microsoft.Testing.Platform: replace xunit.v3 and
coverlet.collector with xunit.v3.mtp-v2 and
Microsoft.Testing.Extensions.CodeCoverage, hoist the settings and package
references that every test project repeated into a new
tests/Directory.Build.props, and select the runner in global.json.

Protect the Verify snapshots from editor and checkout reformatting: a new
.gitattributes pins them to LF and UTF-8, and .editorconfig exempts them from
insert_final_newline and trim_trailing_whitespace. Verify 31.27.0 no longer
writes a trailing newline, so the three affected snapshots were re-accepted.

Rewrite the AGENTS.md instruction files, folding src/AGENTS.md into the root
one, and drop the .github and ai-plans folders from the solution file.

Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J3XDa1pb1kWhmQCktztnFX
The workflow still drove the test run the VSTest way. Under MTP the `--settings`
option is not recognised, so the run reported "Zero tests ran" for all eight test
projects and the job failed with exit code 5. Pass `--coverage` and the settings
file after the `--` separator instead, using an absolute path because each test
app runs with its own output directory as the working directory.

Convert coverage.runsettings from the XPlat Code Coverage collector to the
Code Coverage one that Microsoft.Testing.Extensions.CodeCoverage uses, and port
the old ExcludeByFile rule to a Sources/Exclude regular expression. The exclusion
is not cosmetic: without it the source-generated files under obj/ are counted and
total line coverage drops from 95% to 81%, with
Light.PortableResults.AspNetCore.MinimalApis reported at 16% because the
generated System.Text.Json context dwarfs the hand-written code.

MTP writes TestResults/<guid>.cobertura.xml rather than a fixed file name, so
match the reports by extension when merging them.

Also bump actions/upload-artifact to v7 so it shares a major version with the
actions/download-artifact@v7 that consumes the artifact, and ignore the local
TestResults and coverage-merged output directories.

Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J3XDa1pb1kWhmQCktztnFX
@feO2x feO2x self-assigned this Jul 25, 2026
@feO2x feO2x added the chore Internal cleanup work label Jul 25, 2026
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Light.PortableResults 97% 93% 2291
Light.PortableResults.AspNetCore.MinimalApis 89% 75% 25
Light.PortableResults.AspNetCore.Mvc 89% 75% 25
Light.PortableResults.AspNetCore.OpenApi 93% 79% 494
Light.PortableResults.AspNetCore.Shared 100% 100% 26
Light.PortableResults.Validation 97% 89% 2886
Light.PortableResults.Validation.OpenApi 98% 91% 146
Light.PortableResults.Validation.OpenApi.SourceGeneration 88% 83% 778
Summary 95% (11905 / 12485) 89% (5022 / 5634) 6671

Minimum allowed line rate is 60%

@feO2x
feO2x merged commit a2c8c5b into main Jul 25, 2026
2 checks passed
@feO2x
feO2x deleted the update-july-2026 branch July 25, 2026 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Internal cleanup work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant