Skip to content

build: baseline recommended analyzers#402

Merged
JerrettDavis merged 1 commit into
mainfrom
fix/analyzer-workspace-loading
May 28, 2026
Merged

build: baseline recommended analyzers#402
JerrettDavis merged 1 commit into
mainfrom
fix/analyzer-workspace-loading

Conversation

@JerrettDavis

Copy link
Copy Markdown
Owner

Summary

  • enable built-in .NET analyzers in Recommended mode for production package projects
  • add path-scoped analyzer baselines for the current production API warning families
  • keep source-generated examples and benchmarks compatible with workspace loading by leaving EnforceCodeStyleInBuild out of the solution path
  • pin the benchmark analyzer project reference to the generator's netstandard2.0 target
  • document the supported analyzer, format, build, test, and docs validation shape

Closes #398.
Closes #399.

Validation

  • dotnet format PatternKit.slnx --verify-no-changes --verbosity minimal
  • dotnet build PatternKit.slnx --configuration Release --no-restore -m:1
  • dotnet test PatternKit.slnx --configuration Release --no-build -p:TestTfmsInParallel=false --logger "console;verbosity=minimal"
  • docfx docs\docfx.json --warningsAsErrors

Copilot AI review requested due to automatic review settings May 28, 2026 02:47
@github-actions

github-actions Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR establishes a supported static-analysis baseline for PatternKit production package projects while preserving source-generator workspace compatibility for examples and benchmarks.

Changes:

  • Enables built-in .NET analyzers in Recommended mode for selected production projects.
  • Adds path-scoped .editorconfig suppressions for the current analyzer baseline.
  • Pins benchmark source-generator analyzer references to netstandard2.0 and documents quality-gate expectations.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
Directory.Build.props Adds analyzer settings for production package projects.
.editorconfig Adds path-scoped CA analyzer baseline suppressions.
benchmarks/PatternKit.Benchmarks/PatternKit.Benchmarks.csproj Pins the generator analyzer project reference to netstandard2.0.
docs/guides/quality-gates.md Documents analyzer policy, validation gates, and source-generator workspace constraints.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actions Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Test Results

    12 files      12 suites   9m 55s ⏱️
 3 513 tests  3 513 ✅ 0 💤 0 ❌
10 550 runs  10 550 ✅ 0 💤 0 ❌

Results for commit 2c90a41.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

🔍 PR Validation Results

Version: ``

✅ Validation Steps

  • Build solution
  • Run tests
  • Build documentation
  • Dry-run NuGet packaging

📊 Artifacts

Dry-run artifacts have been uploaded and will be available for 7 days.


This comment was automatically generated by the PR validation workflow.

@codecov

codecov Bot commented May 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.63%. Comparing base (413c47c) to head (2c90a41).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #402      +/-   ##
==========================================
+ Coverage   89.56%   95.63%   +6.07%     
==========================================
  Files         530      530              
  Lines       42899    42899              
  Branches     6203     6203              
==========================================
+ Hits        38423    41027    +2604     
+ Misses       2023     1872     -151     
+ Partials     2453        0    -2453     
Flag Coverage Δ
unittests 95.63% <ø> (+6.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@JerrettDavis JerrettDavis changed the title Build: baseline recommended analyzers build: baseline recommended analyzers May 28, 2026
@JerrettDavis JerrettDavis force-pushed the fix/analyzer-workspace-loading branch from d069ab8 to 532693d Compare May 28, 2026 03:00
Copilot AI review requested due to automatic review settings May 28, 2026 04:14
@JerrettDavis JerrettDavis force-pushed the fix/analyzer-workspace-loading branch from 532693d to 2c90a41 Compare May 28, 2026 04:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Summary
  Generated on: 05/28/2026 - 04:23:21
  Coverage date: 05/28/2026 - 04:19:22 - 05/28/2026 - 04:23:09
  Parser: MultiReport (12x Cobertura)
  Assemblies: 5
  Classes: 1613
  Files: 649
  Line coverage: 94.6%
  Covered lines: 42063
  Uncovered lines: 2386
  Coverable lines: 44449
  Total lines: 97120
  Branch coverage: 75.5% (12375 of 16380)
  Covered branches: 12375
  Total branches: 16380
  Method coverage: 96% (8425 of 8770)
  Full method coverage: 88.1% (7732 of 8770)
  Covered methods: 8425
  Fully covered methods: 7732
  Total methods: 8770

PatternKit.Core                                                                                                     95.4%
  PatternKit.Application.ActivityTracking.ActivityGateState                                                          100%
  PatternKit.Application.ActivityTracking.ActivityLease                                                              100%
  PatternKit.Application.ActivityTracking.ActivityRecord                                                             100%
  PatternKit.Application.ActivityTracking.ActivityTracker                                                            100%
  PatternKit.Application.AntiCorruption.AntiCorruptionLayer<T1, T2>                                                 90.4%
  PatternKit.Application.AntiCorruption.AntiCorruptionResult<T>                                                      100%
  PatternKit.Application.AuditLog.AuditLogAppendResult<T>                                                           85.7%
  PatternKit.Application.AuditLog.InMemoryAuditLog<T1, T2>                                                          95.4%
  PatternKit.Application.DataMapping.DataMapper<T1, T2>                                                             94.6%
  PatternKit.Application.DataMapping.DataMapperError                                                                  90%
  PatternKit.Application.DataMapping.DataMapperResult<T>                                                            84.6%
  PatternKit.Application.DomainEvents.DomainEventDispatcher<T>                                                      95.4%
  PatternKit.Application.DomainEvents.DomainEventDispatchResult                                                      100%
  PatternKit.Application.EventSourcing.EventStoreAppendResult                                                        100%
  PatternKit.Application.EventSourcing.InMemoryEventStore<T1, T2>                                                   97.9%
  PatternKit.Application.EventSourcing.StoredEvent<T1, T2>                                                            80%
  PatternKit.Application.FeatureToggles.FeatureToggleDecision                                                       87.5%
  PatternKit.Application.FeatureToggles.FeatureToggleRule<T>                                                         100%
  PatternKit.Application.FeatureToggles.FeatureToggleSet<T>                                                         96.9%
  PatternKit.Application.IdentityMap.IdentityMap<T1, T2>                                                             100%
  PatternKit.Application.IdentityMap.IdentityMapResult<T>                                                           92.8%
  PatternKit.Application.MaterializedViews.MaterializedView<T1, T2>                                                 98.4%
  PatternKit.Application.Repository.InMemoryRepository<T1, T2>                                                      92.8%
  PatternKit.Application.Repository.RepositoryResult<T>                                                             93.3%
  PatternKit.Application.ServiceLayer.ServiceLayerOperation<T1, T2>                                                 96.7%
  PatternKit.Application.ServiceLayer.ServiceLayerResult<T>                                                         94.7%
  PatternKit.Application.ServiceLayer.ServiceLayerRule<T>                                                            100%
  PatternKit.Application.Specification.Specification<T>                                                              100%
  PatternKit.Application.Specification.SpecificationRegistry<T>                                                     93.3%
  PatternKit.Application.TableDataGateway.InMemoryTableDataGateway<T1, T2>                                            86%
  PatternKit.Application.TableDataGateway.TableGatewayResult<T>                                                     82.3%
  PatternKit.Application.TransactionScript.TransactionScript<T1, T2>                                                  97%
  PatternKit.Application.TransactionScript.TransactionScriptError                                                     90%
  PatternKit.Application.TransactionScript.TransactionScriptResult<T>                                                100%
  PatternKit.Application.UnitOfWork.UnitOfWork                                                                      90.9%
  PatternKit.Application.UnitOfWork.UnitOfWorkResult                                                                94.7%
  PatternKit.Application.UnitOfWork.UnitOfWorkRollbackResult                                                         100%
  PatternKit.Application.UnitOfWork.UnitOfWorkStep                                                                   100%

@JerrettDavis JerrettDavis merged commit d2b4b20 into main May 28, 2026
13 checks passed
@JerrettDavis JerrettDavis deleted the fix/analyzer-workspace-loading branch May 28, 2026 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

2 participants