Public API Baselines (removed)
July 3, 2026 ยท View on GitHub
Status: removed 2026-06. The
Microsoft.CodeAnalysis.PublicApiAnalyzersgate and its checked-inPublicAPI.*.txtbaselines no longer exist in this repository. This page is kept only so existing links resolve and to record why the gate was retired.
What was removed
- The
Microsoft.CodeAnalysis.PublicApiAnalyzersPackageReference (and theRS0016/RS0017/RS0025/RS0026rules it enforced) fromLidarr.Plugin.Common.csprojandLidarr.Plugin.Abstractions.csproj. - The checked-in baselines
src/PublicAPI/<tfm>/PublicAPI.{Shipped,Unshipped}.txtandsrc/Abstractions/PublicAPI/<tfm>/PublicAPI.{Shipped,Unshipped}.txt. - The
Update-PublicApiBaselines.ps1helper and thePreparePublicApiBaselines/VerifyPublicApiAdditionalFilesMSBuild targets.
Why
Lidarr.Plugin.Common is ILRepack-merged with Internalize=true into each
plugin's shipped DLL, so its public surface is not a consumed package boundary
the way a normal library's is. Maintaining a per-TFM checked-in API baseline
added review friction and frequent baseline churn without protecting a real
consumer contract. The genuinely host-facing surface
(Lidarr.Plugin.Abstractions) is small and changes rarely.
What replaces it
- Semantic versioning +
CHANGELOG.mdrecord intentional public-surface changes (the release policy checklist enforces a CHANGELOG entry). - Packaging-closure validation (
ValidatePackageClosure, run by the merged build) keeps the shipped plugin DLL free of assembly references the Lidarr host does not provide โ the property the merged build actually depends on.