Skip to content

v0.7.0: multi-target net8.0 and net10.0#4

Merged
StuartMeeks merged 1 commit into
mainfrom
release/0.7.0
Jun 20, 2026
Merged

v0.7.0: multi-target net8.0 and net10.0#4
StuartMeeks merged 1 commit into
mainfrom
release/0.7.0

Conversation

@StuartMeeks

Copy link
Copy Markdown
Owner

Summary

Broadens the package from net10.0-only to multi-target net8.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 ship net8.0 assets, so the dependency graph is unchanged and no conditional package references were needed.

Changes

  • LibsecretInterop.cs — the only API blocking net8.0 was System.Threading.Lock (net9+) guarding libsecret native-symbol resolution; swapped for a plain object lock. Behaviour is identical.
  • Directory.Build.props — removed the global <TargetFramework>net10.0</TargetFramework>; a non-empty singular TargetFramework makes MSBuild ignore TargetFrameworks and silently stay single-targeted.
  • src/…csproj<TargetFramework>net10.0</TargetFramework><TargetFrameworks>net8.0;net10.0</TargetFrameworks>; Version 0.6.30.7.0.
  • CHANGELOG.md — added [0.7.0] entry; backfilled the missing [0.6.3] link reference.

Verification

  • dotnet build -c Release — both net8.0 and net10.0 compile cleanly, 0 warnings / 0 errors (with TreatWarningsAsErrors + AnalysisLevel=latest).
  • dotnet pack0.7.0.nupkg contains both lib/net8.0/ and lib/net10.0/ assemblies + XML docs; .snupkg produced.
  • dotnet test -c Release145/145 passed (on net10; the net8.0 build is compile-verified — the only source delta between the two builds is the one lock line).

No public API change.

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.
@StuartMeeks StuartMeeks merged commit cf4d1ee into main Jun 20, 2026
3 checks passed
@StuartMeeks StuartMeeks deleted the release/0.7.0 branch June 20, 2026 01:08
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.

2 participants