Add AnalyzerReleases.Shipped.md for DesignPatterns.Analyzers#212
Merged
Conversation
Create AnalyzerReleases.Shipped.md with the 10 analyzer-shipped rules (DP006, DP023, DP024, DP025, DP033, DP036, DP044, DP060, DP061, DP062) under release 0.2.2. Create a separate AnalyzerReleases.Unshipped.md for the Analyzers project (previously shared SourceGenerators/Unshipped.md). Suppress RS2003 in DesignPatterns.Analyzers.csproj with an explanatory comment: the release tracking analyzer cannot verify shipped rule IDs because IncludeBuildOutput=false prevents it from reflecting the compiled assembly's SupportedDiagnostics, and the diagnostic descriptors are linked via <Compile Include> rather than a project reference. SourceGenerators and CodeFixes continue to use the shared AnalyzerReleases.Unshipped.md (all 62 rules) without a Shipped.md, which is correct because IIncrementalGenerator diagnostics are not registered via SupportedDiagnostics and the release tracking analyzer does not validate unshipped rules. Closes #211
Skymly
commented
Jul 4, 2026
Skymly
left a comment
Owner
Author
There was a problem hiding this comment.
Review: PR #212 — AnalyzerReleases.Shipped.md
Clean and correct. A few observations:
What's good
- Creates
AnalyzerReleases.Shipped.mdforDesignPatterns.Analyzerswith all 10 shipped analyzer rules (DP006, DP023, DP024, DP025, DP033, DP036, DP044, DP060, DP061, DP062) under release 0.2.2. - Creates empty
AnalyzerReleases.Unshipped.md(header only, no rules) for future rules. - Changes
AdditionalFilesfrom a linked reference to..\DesignPatterns.SourceGenerators\AnalyzerReleases.Unshipped.mdto local files — correct, since Analyzers has its own set of rules separate from SourceGenerators. NoWarn RS2003is justified with a clear comment explaining why the release tracking analyzer can't verify shipped rule IDs (IncludeBuildOutput=false, descriptors linked via Compile Include not project reference).
Question
- The Shipped.md lists rules under "Release 0.2.2". Were all these rules actually shipped in 0.2.2, or were some added earlier? If some were in earlier releases, they should be listed under their respective release versions. However, since this is the first Shipped.md file, grouping them under the current release is acceptable.
No blocking issues. Approve.
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
AnalyzerReleases.Shipped.mdforDesignPatterns.Analyzerswith the 10 analyzer-shipped rules (DP006, DP023, DP024, DP025, DP033, DP036, DP044, DP060, DP061, DP062) under release 0.2.2.AnalyzerReleases.Unshipped.mdfor the Analyzers project (previously sharedSourceGenerators/Unshipped.mdwith all 62 rules).DesignPatterns.Analyzers.csprojwith an explanatory comment: the release tracking analyzer cannot verify shipped rule IDs becauseIncludeBuildOutput=falseprevents it from reflecting the compiled assembly'sSupportedDiagnostics, and the diagnostic descriptors are linked via<Compile Include>rather than a project reference.Why only DesignPatterns.Analyzers gets a Shipped.md
The Roslyn release tracking analyzer (RS2003/RS2007/RS2008) validates shipped rules by reflecting
SupportedDiagnosticsfromDiagnosticAnalyzersubclasses. This only works forDesignPatterns.Analyzerswhich definesDiagnosticAnalyzerclasses.DesignPatterns.SourceGeneratorsusesIIncrementalGenerator— its diagnostics are not registered viaSupportedDiagnostics, so the release tracking analyzer cannot validate them. Adding aShipped.mdthere triggers RS2003 for every rule. TheSourceGeneratorsandCodeFixesprojects continue to use the sharedAnalyzerReleases.Unshipped.md(all 62 rules) without aShipped.md, which is correct because unshipped rules are not validated.RS2003 suppression
RS2003 is suppressed in
DesignPatterns.Analyzers.csprojbecause the release tracking analyzer cannot resolve the rule IDs at compile time. TheShipped.mdfile is maintained manually and verified by ensuring entries matchDiagnosticIds.cs.Related Issue
Closes #211
Solution module
DesignPatterns.Analyzers/+DesignPatterns.CodeFixes/)Type of change
Test plan
dotnet build DesignPatterns.slnx -c Release— 0 errors, 0 warningsdotnet test DesignPatterns.slnx -c Release --no-build— all 641 tests passBreaking changes