Skip to content

No release since v2.3.6-pre.1 (Oct 12): pack fails package validation (CP0014/CP0016/CP0015) after the Polyfill bump, so eight merged fixes (#138–#152) aren't on NuGet #153

Open

Description

@matt-edmondson

What's wrong

Every CI run on main since 2026-10-14 (merge of #140; Polyfill 11.4.5 followed the same day in #141) fails in ci / .NET / Analyze & Release → Release: dotnet pack stops on package validation (Microsoft.NET.ApiCompat.ValidatePackage.targets(39,5)). Tests pass on all three OSes; only the pack/validate step fails. The last release is v2.3.6-pre.1 (2026-10-12), so nothing merged since has reached NuGet.

Errors in the latest run (2026-10-31): 30 × CP0014, 12 × CP0016, 3 × CP0015, 3 × CP0008, plus "Unnecessary suppressions found".

The diagnostics are on Polyfill's embedded shim types rather than this library's own API, e.g.

error CP0015: Cannot change arguments of attribute 'System.Runtime.CompilerServices.NullableContextAttribute' on 'System.Diagnostics.CodeAnalysis.ExperimentalAttribute'.
error CP0014: Cannot remove attribute 'System.Runtime.CompilerServices.NullableContextAttribute(2)' from 'System.Runtime.CompilerServices.DefaultInterpolatedStringHandler'.

The existing CodeBlocker/CompatibilitySuppressions.xml (33 lines) is stale as well: ApiCompat reports some of its entries as unnecessary.

The first red run coincides with the Polyfill 11.4.x → 11.4.5 bump landing on main. That's going by timing; I didn't bisect it.

Why it matters

Suggested fix

Regenerate the API-compat suppressions the way ktsu-dev/Schema#295 did for the same failure. Build with the SDK and compiler CI uses (Windows runner, SDK 10.0.403), run dotnet pack -c Release -p:ApiCompatGenerateSuppressionFile=true on the library project, and commit the updated CompatibilitySuppressions.xml. That adds the Polyfill shim entries and removes stale ones.

Acceptance criteria

  • dotnet pack -c Release of the library succeeds with package validation on and no suppression generation.
  • The next scheduled CI run on main passes Analyze & Release and publishes a release.

Generated by Claude Code

Activity

  1. matt-edmondson commented on Nov 1, 2026

    @matt-edmondson
    ContributorAuthor

    Triage

    • Category: Bug (CI/release)
    • Priority: High. Releases have been blocked since Oct 14, and eight merged fixes (Start a new doc comment line at NEL, LINE SEPARATOR and PARAGRAPH SEPARATOR [patch] #138–Comment every line of a multi-line copyright, and refuse a multi-line region name [patch] #152) aren't on NuGet. ktsu.SourceGeneratorToolkit consumes this package, so its generators don't get those fixes either.
    • Area: Build/packaging: CodeBlocker/CompatibilitySuppressions.xml and ApiCompat package validation
    • Related (org-wide): This is the same Polyfill 11.4.5 package-validation failure that is open in about 16 repos, including SingleAppInstance#207, Invoker#86, DelegateTransform#90, ScopedAction#85, DeepClone#118, IntervalAction#98, Sorting#72, FuzzySearch#128, AppDataStorage#358, CaseConverter#149, Containers#123, GitIntegration#281, Semantics#517 and SvnToGit#151. Open fix PRs elsewhere can serve as templates: ImGuiProvider#84, RunCommand#127, CaseConverter#151, Containers#124, SvnToGit#153, GitIntegration#291 and Semantics#519. Fixing this once in ktsu.Sdk (for example by suppressing CP0014/CP0015/CP0016 on Polyfill shim types by default) may be cheaper than regenerating suppressions repo by repo.
    • Duplicates / in progress: It isn't a duplicate, since each repo needs its own suppression file, and there is no open CodeBlocker PR for it yet.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions