From 6eb3e1558bb544445309a3e66297591b5f5d2ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=BD=E7=AC=94?= <46271592+Skymly@users.noreply.github.com> Date: Thu, 2 Jul 2026 19:39:41 +0800 Subject: [PATCH] Add AnalyzerReleases.Shipped.md for DesignPatterns.Analyzers 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 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 --- .../AnalyzerReleases.Shipped.md | 16 ++++++++++++++++ .../AnalyzerReleases.Unshipped.md | 4 ++++ .../DesignPatterns.Analyzers.csproj | 11 ++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 DesignPatterns.Analyzers/AnalyzerReleases.Shipped.md create mode 100644 DesignPatterns.Analyzers/AnalyzerReleases.Unshipped.md diff --git a/DesignPatterns.Analyzers/AnalyzerReleases.Shipped.md b/DesignPatterns.Analyzers/AnalyzerReleases.Shipped.md new file mode 100644 index 0000000..7207290 --- /dev/null +++ b/DesignPatterns.Analyzers/AnalyzerReleases.Shipped.md @@ -0,0 +1,16 @@ +## Release 0.2.2 + +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- +DP006 | DesignPatterns.Analyzers | Info | Strategy implementation missing RegisterStrategy attribute +DP023 | DesignPatterns.Analyzers | Info | Factory implementation missing RegisterFactory attribute +DP024 | DesignPatterns.Analyzers | Info | Handler implementation missing HandlerOrder attribute +DP025 | DesignPatterns.Analyzers | Info | Registry key is not registered for contract +DP033 | DesignPatterns.Analyzers | Error | Duplicate strategy key across referenced provider assemblies +DP036 | DesignPatterns.Analyzers | Info | State transition edge is not declared +DP044 | DesignPatterns.Analyzers | Info | Event handler implementation missing RegisterEventHandler attribute +DP060 | DesignPatterns.Analyzers | Warning | DI captive dependency: registry lifetime exceeds implementation lifetime +DP061 | DesignPatterns.Analyzers | Info | DI lifetime mismatch: implementation lifetime exceeds registry lifetime +DP062 | DesignPatterns.Analyzers | Warning | Singleton captive dependency on Scoped/Transient service diff --git a/DesignPatterns.Analyzers/AnalyzerReleases.Unshipped.md b/DesignPatterns.Analyzers/AnalyzerReleases.Unshipped.md new file mode 100644 index 0000000..c903787 --- /dev/null +++ b/DesignPatterns.Analyzers/AnalyzerReleases.Unshipped.md @@ -0,0 +1,4 @@ +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- diff --git a/DesignPatterns.Analyzers/DesignPatterns.Analyzers.csproj b/DesignPatterns.Analyzers/DesignPatterns.Analyzers.csproj index 961c6a6..bffe4cb 100644 --- a/DesignPatterns.Analyzers/DesignPatterns.Analyzers.csproj +++ b/DesignPatterns.Analyzers/DesignPatterns.Analyzers.csproj @@ -8,10 +8,19 @@ false false DesignPatterns.Analyzers + + $(NoWarn);RS2003 - + +