feat: add reliability pipeline generator#222
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Test Results 1 files 1 suites 2m 29s ⏱️ Results for commit 37fb78b. |
🔍 PR Validation ResultsVersion: `` ✅ Validation Steps
📊 ArtifactsDry-run artifacts have been uploaded and will be available for 7 days. This comment was automatically generated by the PR validation workflow. |
Code Coverage |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #222 +/- ##
==========================================
+ Coverage 91.73% 96.59% +4.86%
==========================================
Files 265 267 +2
Lines 25051 25277 +226
Branches 3425 3457 +32
==========================================
+ Hits 22981 24417 +1436
+ Misses 911 860 -51
+ Partials 1159 0 -1159
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds a new Roslyn incremental generator to source-generate a “reliability pipeline” (idempotent receiver + inbox + outbox factories), and wires it into the examples/docs/catalogs so the runtime fluent path and generated path can be validated side-by-side.
Changes:
- Introduce
ReliabilityPipelineGeneratorand new generator abstraction attributes (GenerateReliabilityPipeline,ReliabilityHandler,ReliabilityKeySelector) with diagnosticsPKRP001–PKRP005. - Add generator/unit tests plus updated example + DI importability coverage to ensure fluent/generated parity.
- Update docs and production-readiness catalogs to reflect the new generated reliability path (closing the tracked gap for #213).
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/PatternKit.Generators.Tests/ReliabilityPipelineGeneratorTests.cs | Adds generator tests for happy-path generation and key diagnostics. |
| test/PatternKit.Generators.Tests/AbstractionsAttributeCoverageTests.cs | Extends attribute coverage tests to include the new reliability generator attributes. |
| test/PatternKit.Examples.Tests/ProductionReadiness/PatternKitPatternCatalogTests.cs | Removes the previously tracked generator gap entries for reliability patterns. |
| test/PatternKit.Examples.Tests/Messaging/ReliabilityExampleTests.cs | Adds parity assertions (fluent vs generated) and DI importability coverage for the new example. |
| src/PatternKit.Generators/Messaging/ReliabilityPipelineGenerator.cs | Implements the new incremental generator and its diagnostics/config normalization. |
| src/PatternKit.Generators/AnalyzerReleases.Unshipped.md | Registers new diagnostic IDs and descriptions for the reliability pipeline generator. |
| src/PatternKit.Generators.Abstractions/Messaging/ReliabilityAttributes.cs | Adds the public attributes that drive reliability pipeline generation. |
| src/PatternKit.Examples/ProductionReadiness/PatternKitPatternCatalog.cs | Updates reliability pattern catalog entries to point to generator/docs/example instead of the tracked gap issue. |
| src/PatternKit.Examples/ProductionReadiness/PatternKitExampleCatalog.cs | Adds a new example descriptor for “Generated Reliability Pipeline”. |
| src/PatternKit.Examples/Messaging/ReliabilityExample.cs | Splits fluent vs generated runs and introduces a generator-backed pipeline host used by the example. |
| src/PatternKit.Examples/DependencyInjection/PatternKitExampleServiceCollectionExtensions.cs | Adds DI registration for the generated reliability pipeline example. |
| docs/patterns/messaging/reliability.md | Documents the new source-generated reliability pipeline alongside runtime usage. |
| docs/patterns/messaging/enterprise-generators.md | Updates generator overview to include the generated reliability path. |
| docs/guides/pattern-coverage.md | Updates pattern coverage table to reflect generator coverage for reliability patterns. |
| docs/generators/messaging.md | Updates messaging generators docs to include the new reliability pipeline generator and diagnostics. |
| docs/generators/index.md | Adds reliability pipeline to generator index and quick reference. |
| docs/examples/toc.yml | Adds the new “Generated Reliability Pipeline” doc page to examples TOC. |
| docs/examples/index.md | Adds the new example to the examples landing page. |
| docs/examples/generated-reliability-pipeline.md | New doc page describing the generated reliability pipeline example and DI integration. |
| docs/examples/enterprise-messaging-workflows.md | Updates enterprise messaging workflows doc to reference fluent+generated reliability paths and updated test assertions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var keySelectors = GetMarkedMethods(type, "PatternKit.Generators.Messaging.ReliabilityKeySelectorAttribute"); | ||
| if (keySelectors.Count > 1) | ||
| { | ||
| context.ReportDiagnostic(Diagnostic.Create(InvalidKeySelector, node.Identifier.GetLocation(), type.Name)); | ||
| return; | ||
| } |
Summary
Closes #213
Validation
Note: local full test/build is blocked by the known local Roslyn analyzer/compiler mismatch; CI is authoritative for cross-target validation.