Multi-target net8.0 and net10.0#4
Merged
Merged
Conversation
Ship lib/net8.0 and lib/net10.0 assets from all three provider packages (previously net10.0 only), mirroring the core NextIteration.SpectreConsole.Auth 0.7.0 and Spectre.Console 0.56.0 surfaces so net8.0 consumers can reference the providers without being forced onto net10.0. - Directory.Build.props: drop singular <TargetFramework> so plural <TargetFrameworks> in each csproj is honoured. - src csprojs: <TargetFrameworks>net8.0;net10.0</TargetFrameworks>. - Directory.Packages.props: raise core floor to [0.7.0,1.0.0) — 0.7.0 is the first core release with a net8.0 asset. - Bump versions (Adobe/Airtable 0.2.4, SoftwareOne 0.3.4) + CHANGELOG. netstandard2.0 is not viable: the core package ships no ns2.0 asset and its net8.0+ surface (AesGcm, LibraryImport P/Invoke) precludes one. Test projects stay net10.0; the shared source is validated against both TFMs by the build.
Add the missing version-reference links so every changelog entry heading (0.2.4, 0.2.3, 0.2.2, and the SoftwareOne 0.3.0 entry) resolves.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
All three provider packages now ship
lib/net8.0/andlib/net10.0/assets (previously net10.0 only), mirroring the coreNextIteration.SpectreConsole.Auth0.7.0 andSpectre.Console0.56.0 surfaces. net8.0 consumers can now reference the providers without being forced onto net10.0.Why not netstandard2.0?
The original goal was
netstandard2.0;net8.0;net10.0, but ns2.0 is infeasible: the coreNextIteration.SpectreConsole.Authpackage ships no ns2.0 asset and can't — its source usesAesGcm,LibraryImportsource-gen P/Invoke, and other net8.0+ APIs. A provider can't target a TFM its dependency lacks.net8.0;net10.0is the right set and exactly matches the core package's v0.7.0.Changes
Directory.Build.props— removed the singular<TargetFramework>net10.0</TargetFramework>(a non-empty singular value makes MSBuild ignore plural<TargetFrameworks>and silently stay single-targeted).<TargetFrameworks>net8.0;net10.0</TargetFrameworks>.Directory.Packages.props— core floor raised[0.6.1,1.0.0)→[0.7.0,1.0.0)(0.7.0 is the first core release with a net8.0 asset; the next-major cap is unchanged).Test projects stay net10.0; the shared provider source is validated against both TFMs by the build.
Verification
dotnet build -c Release— both TFMs compile, 0 warnings (TreatWarningsAsErrorson).dotnet test— 155 passed (Adobe 60, Airtable 36, SoftwareOne 59) on net10.0.dotnet pack— each.nupkgcontains bothlib/net8.0/andlib/net10.0/; package validation (EnablePackageValidation) passed; nuspec declares net8.0 + net10.0 dependency groups with the[0.7.0,1.0.0)core floor.