You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
No release since 2.4.5-pre.3 (Oct 12): pack fails package validation (93 errors, CP0016/CP0014/CP0001) after the Polyfill 11.4.5 bump #118
Every CI run on main since the Polyfill 11.4.5 bump (#107, Oct 14) fails in ci / .NET / Analyze & Release at dotnet pack. Package validation (Microsoft.NET.ApiCompat.ValidatePackage.targets(39,5)) reports 93 errors. The latest scheduled run is 41251274153, on dfe79a3.
Baseline diffs between lib/net7.0 and lib/net8.0: 45 errors, mostly CP0016 on DeepClone's own types, for example T:ktsu.DeepClone.IDeepCloneable:[T:System.Runtime.CompilerServices.NullableContextAttribute] and T:ktsu.DeepClone.DeepCloneable1<0>:[…NullableAttribute]`
Baseline diffs between lib/netstandard2.1 and lib/net5.0: 3 errors
Polyfill-type diffs: CP0014 and CP0015 on System.Diagnostics.CodeAnalysis.ExperimentalAttribute (UrlFormat get/set) and on System.Runtime.CompilerServices.DefaultInterpolatedStringHandler, plus 6 × CP0001
3 × "Unnecessary suppressions found": DeepClone/CompatibilitySuppressions.xml no longer matches what Polyfill 11.4.5 emits
The last published release is v2.4.5-pre.3 (2026-10-12). VERSION.md on main reads 2.4.5-pre.4, which never shipped.
Why it matters
Nothing merged since Oct 12 can publish. The next fix to any of the open DeepClone bugs (#89, #90, #96, and the rest) will merge and then silently never reach NuGet.
This is the same failure already tracked in other repos (Containers #123, RunCommand #126, ImGuiProvider #83, CaseConverter #149, SvnToGit #151, Sorting #72, FuzzySearch #128, AppDataStorage #358). DeepClone has no issue for it yet.
Suggested fix
Regenerate the suppression file against the current SDK and Polyfill:
Then commit the updated DeepClone/CompatibilitySuppressions.xml. Before committing, check that the new CP0016 and CP0001 entries on ktsu.DeepClone.* types are only nullable-metadata differences between TFMs and not real API removals. If one is a real removal, fix the API rather than suppress it.
Acceptance criteria
dotnet pack -c Release on main succeeds with no ApiCompat errors
The next CI run on main publishes a new version to NuGet and creates the GitHub release
Priority: High. Nothing merged since 2026-10-12 can publish to NuGet. Every fix to the open DeepClone bugs merges and then never ships until this is fixed.
Suggested assignment: CI / packaging (repository maintainer). This is a CompatibilitySuppressions.xml regeneration, not a library code change.
Notes: The fix in the issue body is right. Pay attention to its caveat: 45 of the 93 errors are CP0016 on DeepClone's own types (IDeepCloneable, DeepCloneable<T>) between net7.0 and net8.0. Before suppressing them, confirm that they are only NullableContextAttribute / NullableAttribute metadata differences. The Polyfill-type diffs (CP0014, CP0015 and CP0001 on ExperimentalAttribute and DefaultInterpolatedStringHandler) are safe to suppress.
Activity
matt-edmondson commentedon Nov 1, 2026
Triage
CompatibilitySuppressions.xmlregeneration, not a library code change.dotnet packfailure, and their changes will not ship until this lands.Notes: The fix in the issue body is right. Pay attention to its caveat: 45 of the 93 errors are CP0016 on DeepClone's own types (
IDeepCloneable,DeepCloneable<T>) betweennet7.0andnet8.0. Before suppressing them, confirm that they are onlyNullableContextAttribute/NullableAttributemetadata differences. The Polyfill-type diffs (CP0014, CP0015 and CP0001 onExperimentalAttributeandDefaultInterpolatedStringHandler) are safe to suppress.Generated by Claude Code