From 0cd196a76b1821f0c7081c8eb6ce18df37e9edb2 Mon Sep 17 00:00:00 2001 From: Stuart Meeks Date: Sat, 20 Jun 2026 01:49:16 +0000 Subject: [PATCH] Release 0.2.0: multi-target net8.0;net10.0 Add a net8.0 target alongside net10.0 so the package supports a broader range of consuming runtimes. Switch the internal lock primitive from System.Threading.Lock (net9+) to object so the same source compiles on net8.0. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 13 +++++++++++++ Directory.Build.props | 1 - .../NextIteration.SpectreConsole.Settings.csproj | 4 ++-- .../Persistence/SettingsStore.cs | 2 +- .../SettingsBase.cs | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a73c3c5..2e8f30d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- +## [0.2.0] — 2026-06-20 + +### Added + +- Multi-targeting: the package now ships `net8.0` and `net10.0` assemblies (previously + `net10.0` only), broadening the range of consuming runtimes. + +### Changed + +- Switched the internal synchronization primitive from `System.Threading.Lock` (net9+) + to `object` so the same source compiles on `net8.0`. + ## [0.1.1] — 2026-06-10 ### Changed @@ -60,5 +72,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `TreatWarningsAsErrors=true`, `AnalysisLevel=latest` — zero-warning public API. - Package icon, with the editable source vector kept under `design/icons/`. +[0.2.0]: https://github.com/StuartMeeks/NextIteration.SpectreConsole.Settings/releases/tag/v0.2.0 [0.1.1]: https://github.com/StuartMeeks/NextIteration.SpectreConsole.Settings/releases/tag/v0.1.1 [0.1.0]: https://github.com/StuartMeeks/NextIteration.SpectreConsole.Settings/releases/tag/v0.1.0 diff --git a/Directory.Build.props b/Directory.Build.props index e844269..08993bb 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,5 @@ - net10.0 enable true Stuart Meeks diff --git a/src/NextIteration.SpectreConsole.Settings/NextIteration.SpectreConsole.Settings.csproj b/src/NextIteration.SpectreConsole.Settings/NextIteration.SpectreConsole.Settings.csproj index 6d42c4d..e684bd2 100644 --- a/src/NextIteration.SpectreConsole.Settings/NextIteration.SpectreConsole.Settings.csproj +++ b/src/NextIteration.SpectreConsole.Settings/NextIteration.SpectreConsole.Settings.csproj @@ -1,7 +1,7 @@ - net10.0 + net8.0;net10.0 enable enable en @@ -11,7 +11,7 @@ NextIteration.SpectreConsole.Settings - 0.1.1 + 0.2.0 Stuart Meeks Strongly-typed, JSON-persisted settings for CLI tools, with automatic or explicit persistence and ready-made Spectre.Console settings commands. true diff --git a/src/NextIteration.SpectreConsole.Settings/Persistence/SettingsStore.cs b/src/NextIteration.SpectreConsole.Settings/Persistence/SettingsStore.cs index ca8da46..2042ac6 100644 --- a/src/NextIteration.SpectreConsole.Settings/Persistence/SettingsStore.cs +++ b/src/NextIteration.SpectreConsole.Settings/Persistence/SettingsStore.cs @@ -13,7 +13,7 @@ namespace NextIteration.SpectreConsole.Settings.Persistence /// internal sealed class SettingsStore : ISettingsStore { - private readonly Lock _gate = new(); + private readonly object _gate = new(); private readonly Dictionary _descriptors; private readonly Dictionary _entries = new(); private readonly List _registrations; diff --git a/src/NextIteration.SpectreConsole.Settings/SettingsBase.cs b/src/NextIteration.SpectreConsole.Settings/SettingsBase.cs index a671f2d..3f7c605 100644 --- a/src/NextIteration.SpectreConsole.Settings/SettingsBase.cs +++ b/src/NextIteration.SpectreConsole.Settings/SettingsBase.cs @@ -31,7 +31,7 @@ namespace NextIteration.SpectreConsole.Settings /// public abstract class SettingsBase { - private readonly Lock _gate = new(); + private readonly object _gate = new(); private ISettingsPersister? _persister; private PersistenceMode _persistenceMode = PersistenceMode.Automatic;