Skip to content

Drop the net7.0, net6.0, net5.0 and netcoreapp3.1 target frameworks - #1037

Open
FreeApophis wants to merge 1 commit into
mainfrom
drop-eol-frameworks
Open

FreeApophis wants to merge 1 commit into
mainfrom
drop-eol-frameworks

Conversation

@FreeApophis

Copy link
Copy Markdown
Member

Closes #1032. The first mechanical breaking change of 4.0.0 (umbrella #1035): the removal that SupportPolicy.md announced for Funcky 4.

Assets per package after this PR

Package Assets
Funcky net11.0, net10.0, net9.0, net8.0, netstandard2.1, netstandard2.0
Funcky.Async same (net10.0 and net11.0 forward to Funcky)
Funcky.Xunit, Funcky.Xunit.v3 net8.0, netstandard2.0

Consumers on a removed framework fall back to the netstandard2.1 asset (or netstandard2.0 below .NET Core 3.0) and lose the members that need a newer base class library; the changelog entry lists the notable ones.

Changes

  • Project files: target frameworks as above; IsTrimmable, EnableTrimAnalyzer and IsAotCompatible now hang on one net8.0 condition, and the exemption of the .NET 6 and 7 ILLink analyzers (which threw on extension blocks) is gone with those targets. The netcoreapp3.1 case of the System.Text.Json reference goes.
  • FrameworkFeatureConstants.props: the netcoreapp3.0, net5.0, net6.0 and net7.0 groups collapse into the net8.0 group. The constants themselves stay, because the netstandard assets still lack those features, so no #if in the sources changes.
  • PublicAPI: the net5.0, net6.0, net7.0 and netcoreapp3.1 folders of Funcky are deleted; PublicApiAnalyzers.targets drops the netcoreapp3.1 case of the RS0041 exemption.
  • CompatibilitySuppressions.xml: package validation compares neighbouring assets, so netstandard2.1 is now next to net8.0. The suppressions for the members the source generator emits only on newer frameworks (Chunk(int), ParseEnumOrNone, ParseCacheControlHeaderValueOrNone) move to that pair; the file was regenerated by ApiCompat and contains the same members as before.
  • SupportPolicy.md: the removed frameworks move to a done section, and the next candidates (net8.0, net9.0, both out of support by the 4.0.0 release) are named for Funcky 5.
  • Changelog entry under 4.0.0, and the xunit chapter names net8.0 as the Funcky.Xunit.v3 target.

Verification

  • dotnet build Funcky.slnx -c Release -warnaserror: clean.
  • Full dotnet test: green on every remaining framework (net11.0 to net8.0, net48).
  • dotnet pack with package validation enabled: all five packages pack with the assets in the table above and no API compatibility errors.

🤖 Generated with Claude Code

The removal SupportPolicy.md announced for Funcky 4: all four are out
of Microsoft's support. Funcky ships net11.0 down to net8.0 plus the
two netstandard assets, Funcky.Async drops net5.0, and Funcky.Xunit and
Funcky.Xunit.v3 replace net6.0 with net8.0.

With net8.0 as the oldest .NET asset, the feature constant groups for
netcoreapp3.0, net5.0, net6.0 and net7.0 collapse into one net8.0 group
(the constants themselves stay, since the netstandard assets still lack
those features), the trim analyzer exemption for the .NET 6 and 7
targeting packs goes, the netcoreapp3.1 cases in the public API targets
and the System.Text.Json reference go, and the four PublicAPI folders
are deleted. Package validation now compares netstandard2.1 directly
with net8.0, so the compatibility suppressions for the members the
source generator only emits on newer frameworks move to that pair.

Closes #1032

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

Drop the target frameworks announced in SupportPolicy.md (net7.0, net6.0, net5.0, netcoreapp3.1)

1 participant