Skip to content

[R27] Pin the tested compiler setup and provision CI SDKs - #32

Open
JetF0x wants to merge 1 commit into
Carsillas:rewritefrom
JetF0x:fix/review-r27
Open

JetF0x wants to merge 1 commit into
Carsillas:rewritefrom
JetF0x:fix/review-r27

Conversation

@JetF0x

@JetF0x JetF0x commented Sep 12, 2026

Copy link
Copy Markdown

Addresses review finding R27.

A net8.0 consumer defaults to C# 12, but Cat.Network declarations and generated field accessors require C# 14. The compiler extensions also reference Roslyn 5.6.0. Setup omitted these requirements, and CI explicitly installed only SDK 8 without selecting a compiler SDK, allowing incidental runner installations to determine builds.

Pin the tested SDK 10.0.400 baseline in global.json, allowing stable patches within the same feature band, and set C# 14 explicitly in the repository projects and consumer example. Document the separate .NET 8 runtime requirement. Both CI jobs now install the pinned compiler SDK plus SDK 8 for the test runtime and show the selected environment. PR checks include rewrite; the existing tag-only publish condition and build/test/pack/upload/push commands are preserved.

Add a standalone net8.0 package consumer that compiles real network properties and executes a dirty-property serialization round trip. CI runs it after packing. Each run restores the exact local package version into a fresh cache, with source mapping requiring Cat.Network to come from the worktree's artifact feed.

Validation:

  • dotnet --version selected 10.0.400 through the new pin.
  • Release restore/build succeeded; all 228 tests passed (155 runtime, 53 analyzer, 20 generator).
  • Release pack succeeded; the consumer passed on .NET 8.0.19 and its restored nupkg hash matched the newly packed artifact.
  • Inspected emitted field accessors. C# 12 and C# 13 controls failed; the documented C# 14 configuration passed.
  • Parsed the workflow and confirmed both SDK setup steps, the rewrite PR filter, and unchanged package upload/publication commands and tag guard.

Runtime targets and package APIs remain unchanged (net8.0 runtime, netstandard2.0 compiler extensions). SDK 10.0.400 is a tested baseline, not a claim that every earlier compiler is incompatible. Hosted GitHub Actions execution was not observed locally. The solution build retains one existing CS8600 warning in MemoryRelayTransport.cs.

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