Skip to content

Upgrade PublicApiAnalyzers to 5.6.0 + reconcile PublicAPI manifest#194

Merged
Chris-Wolfgang merged 2 commits into
mainfrom
deps/publicapi-analyzers-5
Jul 4, 2026
Merged

Upgrade PublicApiAnalyzers to 5.6.0 + reconcile PublicAPI manifest#194
Chris-Wolfgang merged 2 commits into
mainfrom
deps/publicapi-analyzers-5

Conversation

@Chris-Wolfgang

Copy link
Copy Markdown
Owner

Fixes the RS0016 flood that blocks the Dependabot group bump #192.

Root cause

Microsoft.CodeAnalysis.PublicApiAnalyzers was effectively dormant at 3.3.4 (it didn't analyze record-generated members). #192's bump to 5.6.0 reactivated it, and it immediately flagged RS0016 for the compiler-generated members of the AuditUser (record struct) and AuditValueColumn (record class) records — the hand-maintained PublicAPI.Unshipped.txt never listed them.

Change

  • Bump PublicApiAnalyzers 3.3.4 → 5.6.0 in the 3 src csproj (per-project ref; non-protected).
  • Add the 15 record members (Equals/GetHashCode/==/!=/ToString/Deconstruct, plus <Clone>$ on the class) to Abstractions/PublicAPI.Unshipped.txt. Symbols verbatim from analyzer output, ~-prefixes preserved, consistent across all TFMs.
  • No runtime/API change — these members shipped in v0.1.0; this only records them. EFCore/TestKit declare no records → manifests unchanged.

Verified all 3 src projects build Release-clean across every TFM with the analyzer active.

Relation to #192

Delivers the PublicApiAnalyzers portion of the Dependabot group. The remaining #192 items (EF Core 8→9, SqlClient 6→7, BannedApiAnalyzers 4→5 in the protected Directory.Build.props) are separate decisions — handle after this lands.

PublicApiAnalyzers 5.x properly analyzes record-generated members, which the
dormant 3.3.4 did not. Bumping it (unblocking the Dependabot group bump in #192)
surfaced RS0016 for the compiler-generated members of the AuditUser (record
struct) and AuditValueColumn (record class) records — Equals/GetHashCode/
==/!=/ToString/Deconstruct and, for the class, <Clone>$.

Add those 15 members to Abstractions/PublicAPI.Unshipped.txt so the declared
public-API surface matches the actual surface. Symbols taken verbatim from the
analyzer output (including nullable-oblivious ~ prefixes, consistent across all
TFMs). No runtime/API change — the members already shipped in v0.1.0; this only
documents them. EntityFrameworkCore and TestKit.Xunit declare no records, so
their manifests are unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 4, 2026 23:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Upgrades Microsoft.CodeAnalysis.PublicApiAnalyzers to re-enable accurate public API surface tracking, and reconciles the Abstractions public API manifest to eliminate RS0016 noise caused by record-generated members.

Changes:

  • Bump Microsoft.CodeAnalysis.PublicApiAnalyzers from 3.3.45.6.0 in the three src/ projects that reference it.
  • Add missing compiler-generated record members for AuditUser and AuditValueColumn to src/Wolfgang.AuditTrail.Abstractions/PublicAPI.Unshipped.txt.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/Wolfgang.AuditTrail.TestKit.Xunit/Wolfgang.AuditTrail.TestKit.Xunit.csproj Bumps PublicApiAnalyzers to 5.6.0 for the TestKit project.
src/Wolfgang.AuditTrail.EntityFrameworkCore/Wolfgang.AuditTrail.EntityFrameworkCore.csproj Bumps PublicApiAnalyzers to 5.6.0 (scoped to net10.0).
src/Wolfgang.AuditTrail.Abstractions/Wolfgang.AuditTrail.Abstractions.csproj Bumps PublicApiAnalyzers to 5.6.0 for Abstractions.
src/Wolfgang.AuditTrail.Abstractions/PublicAPI.Unshipped.txt Records missing record-generated public members to satisfy analyzer baselines.

Comment thread src/Wolfgang.AuditTrail.Abstractions/PublicAPI.Unshipped.txt
@Chris-Wolfgang
Chris-Wolfgang merged commit 0e72046 into main Jul 4, 2026
15 checks passed
@Chris-Wolfgang
Chris-Wolfgang deleted the deps/publicapi-analyzers-5 branch July 4, 2026 23:47
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.

2 participants