Skip to content

chore: bump dependencies with analyzer compiler-reference pin - #53

Merged
kamronbatman merged 1 commit into
mainfrom
kb/bump_dependencies
Aug 22, 2026
Merged

chore: bump dependencies with analyzer compiler-reference pin#53
kamronbatman merged 1 commit into
mainfrom
kb/bump_dependencies

Conversation

@kamronbatman

Copy link
Copy Markdown
Member

Summary

Dependency refresh (Roslyn workspaces/tooling 5.9, Humanizer 3.0.10, System.Text.Json 10.0.11, Microsoft.Build.Framework 18.9.6, test stack), plus the two fixes the pre-publish validation surfaced — both instances of the historical "solution discovery breaks after a dependency bump" class:

  1. MSBL001 / Microsoft.NET.StringTools: Build.Framework 18.9.6 adds a transitive MSBuild-family dependency, and MSBuildLocator's guard target correctly refuses it — an MSBuild assembly deployed with the tool loads instead of the discovered SDK's copy at runtime, which is exactly what breaks solution/project loading differently per OS. Both Locator consumers (schema tool, DiffTool) now pin the transitive explicitly with ExcludeAssets="runtime" PrivateAssets="all". Verified the tool output directories contain no MSBuild-family dlls (only Microsoft.Build.Locator.dll, which belongs there).
  2. CS9057 / analyzer compiler reference: bumping the generator's Microsoft.CodeAnalysis.CSharp to 5.9.0 made the packaged analyzer unloadable on the current SDK (compiler 5.6.0) — an analyzer's compiler reference sets the minimum SDK every consumer must have. It stays at 5.0.0 with a comment so future bumps don't repeat this; tools and tests host their own Roslyn and keep 5.9.0 (the generator, compiled against 5.0 APIs, runs fine under their newer runtime).

Validation

  • 89/89 tests green; all snapshots byte-identical on Roslyn 5.9.
  • End-to-end MSBuildWorkspace solution load + full 3,786-source corpus run on the new dependency set; manifest byte-identical across the Roslyn bump.
  • Clean-repacked 3.0.0 (assembly versions inside the nupkg verified — including Microsoft.Bcl.AsyncInterfaces 10.0.0.11 proving the new dependencies are bundled) consumed by the engine from a local feed: clean build, 829 + 708 tests green, emitted generated files stamped 3.0.0.0.

🤖 Generated with Claude Code

…inimum

Roslyn workspaces/tooling, Humanizer, System.Text.Json, MSBuild framework,
and the test stack move to current versions, with two fixes the validation
surfaced:

- Microsoft.Build.Framework 18.9.6 introduces a transitive
  Microsoft.NET.StringTools; MSBuildLocator's MSBL001 guard (correctly)
  refuses it without ExcludeAssets=runtime + PrivateAssets=all. Deployed
  MSBuild-family assemblies load instead of the discovered SDK's and break
  solution loading per-OS, so both Locator consumers now pin the
  transitive explicitly with the guards.
- The generator's Microsoft.CodeAnalysis.CSharp reference stays at 5.0.0:
  an analyzer's compiler reference sets the MINIMUM SDK consumers can
  build with, and 5.9.0 produced CS9057 against the current SDK's 5.6.0
  compiler. Tools and tests run their own Roslyn and keep 5.9.0.

Validated end to end: 89/89 tests, MSBuildWorkspace loads the consuming
solution and the 3,786-source manifest is byte-identical across the
Roslyn bump, no MSBuild-family dlls in tool output, and the consuming
engine builds clean against the repacked 3.0.0 with 829/708 tests green
and generated files stamped 3.0.0.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kamronbatman
kamronbatman merged commit 9ad4863 into main Aug 22, 2026
2 checks passed
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