Skip to content

fix: pin net10.0 DevTools to the lowest marketplace release 16.10.2902954 - #24

Merged
Arthurvdv merged 1 commit into
masterfrom
fix/net10-devtools-lowest-marketplace
Oct 20, 2026
Merged

Arthurvdv merged 1 commit into
masterfrom
fix/net10-devtools-lowest-marketplace

Conversation

@Arthurvdv

@Arthurvdv Arthurvdv commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Summary

Pin the net10.0 DevTools reference to the lowest net10.0 marketplace release, VSIX 16.10.2902954 (SDK 16.10.44.19458), instead of 18.0.2726309 (18.0.41.39415). Files changed: csproj comment, both workflows (version and removal of the path-in-archive override), CLAUDE.md DevTools table, .claude/rules/devtools-tfm.md (new "Which version to pin" section and layout-probe checklist item).

Mechanism

The Analyzers CI compiles its cops against the lowest available SDK per TFM. That floor moves down whenever Microsoft publishes a build of a TFM for an older AL major. Net10.0 VSIXes now exist for AL 16.10 and 17.10, so the floor is 16.10.44.19458. A RoslynTestKit lib compiled against 18.0.41.39415 fails every consumer test leg between those versions with CS1705 (hard compiler error), and the runtime would refuse to bind a lower assembly version anyway. Compiling against the lowest release keeps the lib usable on all newer SDKs. The 16.10 VSIX uses the legacy extension/bin/Analyzers layout, so the explicit path-in-archive: 'extension/bin' is removed (the action input stays for AL 18+).

Verification

  • a. dotnet restore and dotnet pack -c Release succeed; nupkg contains lib/netstandard2.1, lib/net8.0, lib/net10.0 RoslynTestKit.dll. net10.0 DLLs were fetched with the repo's three scripts from VSIX 16.10.2902954 (FileVersion 16.10.44.19458).
  • b. Referenced assembly versions (System.Reflection.Metadata):
    • netstandard2.1: Nav.CodeAnalysis and .Workspaces 12.0.11.58921
    • net8.0: 16.0.22.22232
    • net10.0: 16.10.44.19458
  • c. Consumer smoke test (Analyzers origin/main, throwaway worktree, SDK folder with net10.0 = 16.10.44.19458): dotnet test ALCops.LinterCop.Test with RoslynTestKit 1.5.0 fails with CS1705 (RoslynTestKit uses Nav.CodeAnalysis 18.0.41.39415, higher than the referenced 16.10). With the packed 1.5.1 package it passes: Passed 392, Failed 0, Skipped 4.

Review notes

  • Microsoft.CodeAnalysis.Common 4.14.0 / ApprovalTests 7.0.0 against the 16.10 SDK: the three-TFM pack against the 16.10 DLLs succeeded and the consumer smoke test passed 392 tests on SDK 16.10.44.19458; Analyzers test projects pin Microsoft.CodeAnalysis.Common 4.14.0 on every leg too.
  • No CI assertion of the extracted DLL version: the 16.10 layout was verified by probing the archive, and a wrong layout fails the pack (missing HintPath target) rather than passing silently. A version assertion would be a pre-existing gap shared by all TFMs, out of scope.
  • net8.0 and netstandard2.1 pins are at or below the consumer floors (16.0.22.22232 < 16.0.27.57058; 12.0.11.58921 < 12.0.13.24028).

Release

Merging to master publishes ALCops.RoslynTestKit 1.5.1 to NuGet.org and GitHub Packages (+semver: patch).

🤖 Generated with Claude Code

…2954

The Analyzers CI compiles its cops against the lowest available SDK per
TFM. That floor moves down whenever Microsoft publishes a build of a TFM
for an older AL major. Microsoft now ships net10.0 VSIXes for AL 16.10
and 17.10, so the net10.0 floor dropped from 18.0.41.39415 to
16.10.44.19458. A RoslynTestKit lib compiled against 18.0.41.39415 fails
consumer test builds on the 16.10/17.10 SDKs with CS1705, and the runtime
refuses to bind a lower assembly version anyway.

Pin net10.0 to VSIX 16.10.2902954 (SDK 16.10.44.19458), the same
lowest-release convention as netstandard2.1 and net8.0. The 16.10 VSIX
uses the legacy extension/bin/Analyzers layout, so the explicit
path-in-archive override is dropped from both workflows. Document the
pinning policy and the layout probe in the DevTools rules.

+semver: patch

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Arthurvdv
Arthurvdv force-pushed the fix/net10-devtools-lowest-marketplace branch from 7b47766 to 7e8bac1 Compare October 20, 2026 10:23
@Arthurvdv
Arthurvdv merged commit 56652f4 into master Oct 20, 2026
1 check passed
@Arthurvdv
Arthurvdv deleted the fix/net10-devtools-lowest-marketplace branch October 20, 2026 10:26
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