v0.7.0: multi-target net8.0 and net10.0#4
Merged
Merged
Conversation
The package now ships assemblies for both net8.0 (current LTS) and net10.0 so consumers no longer need the newest runtime to take a dependency. All dependencies already provide net8.0 assets, so the dependency graph is unchanged. The only source adjustment was swapping the net9.0+ System.Threading.Lock guarding libsecret symbol resolution for a plain object lock; behaviour is identical. - Directory.Build.props: drop the global single-TargetFramework so the src project can multi-target. - src csproj: TargetFramework -> TargetFrameworks net8.0;net10.0; bump Version to 0.7.0. - CHANGELOG: add 0.7.0 entry; backfill missing 0.6.3 link reference.
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
Broadens the package from
net10.0-only to multi-targetnet8.0;net10.0(net8.0 = current LTS), so consumers no longer need the newest runtime to take a dependency.All dependencies (Spectre.Console, Spectre.Console.Cli,
Microsoft.Extensions.*v10,System.Security.Cryptography.ProtectedData) already shipnet8.0assets, so the dependency graph is unchanged and no conditional package references were needed.Changes
LibsecretInterop.cs— the only API blocking net8.0 wasSystem.Threading.Lock(net9+) guarding libsecret native-symbol resolution; swapped for a plainobjectlock. Behaviour is identical.Directory.Build.props— removed the global<TargetFramework>net10.0</TargetFramework>; a non-empty singularTargetFrameworkmakes MSBuild ignoreTargetFrameworksand silently stay single-targeted.src/…csproj—<TargetFramework>net10.0</TargetFramework>→<TargetFrameworks>net8.0;net10.0</TargetFrameworks>;Version0.6.3→0.7.0.CHANGELOG.md— added[0.7.0]entry; backfilled the missing[0.6.3]link reference.Verification
dotnet build -c Release— bothnet8.0andnet10.0compile cleanly, 0 warnings / 0 errors (withTreatWarningsAsErrors+AnalysisLevel=latest).dotnet pack—0.7.0.nupkgcontains bothlib/net8.0/andlib/net10.0/assemblies + XML docs;.snupkgproduced.dotnet test -c Release— 145/145 passed (on net10; the net8.0 build is compile-verified — the only source delta between the two builds is the onelockline).No public API change.