chore: bump dependencies with analyzer compiler-reference pin - #53
Merged
Conversation
…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>
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.
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:
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 withExcludeAssets="runtime" PrivateAssets="all". Verified the tool output directories contain no MSBuild-family dlls (onlyMicrosoft.Build.Locator.dll, which belongs there).Microsoft.CodeAnalysis.CSharpto 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
MSBuildWorkspacesolution load + full 3,786-source corpus run on the new dependency set; manifest byte-identical across the Roslyn bump.Microsoft.Bcl.AsyncInterfaces 10.0.0.11proving the new dependencies are bundled) consumed by the engine from a local feed: clean build, 829 + 708 tests green, emitted generated files stamped3.0.0.0.🤖 Generated with Claude Code