Repository navigation
feat!: drop net8.0/net9.0 and bump dependencies (→ 1.16.0) - #43
Merged
Merged
Conversation
External (patch): - Microsoft.Extensions.DependencyInjection.Abstractions 10.0.8 -> 10.0.10 - Microsoft.Extensions.Options 10.0.8 -> 10.0.10 - Microsoft.Extensions.Options.ConfigurationExtensions 10.0.8 -> 10.0.10 - Microsoft.SourceLink.GitHub 10.0.300 -> 10.0.301 - Microsoft.Extensions.Configuration, .Binder, .DependencyInjection 10.0.8 -> 10.0.10 (tests) Internal: - Tharga.Test.Toolkit 1.14.10 -> 1.14.11 (tests, x2)
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
BREAKING CHANGE: removes the net8.0 and net9.0 target frameworks. Consumers must be on .NET 10. Both frameworks reach end of support on 2026-11-10, so they are dropped together rather than in two steps. - Tharga.Toolkit: net8.0;net9.0;net10.0 -> net10.0 - Tharga.Toolkit.Standard (netstandard2.0) unchanged Bumps MAJOR_MINOR 1.15 -> 1.16 so this ships as a minor release, not a patch — a patch that removes a target framework would break consumers taking a routine update.
The package version is computed by CI and passed as -p:PackageVersion at pack time, so the <Version> in each csproj was never used for the published package — it only misled. Mcp read 0.1.0 while the build shipped 0.1.x/0.2.x. Removing it makes the build the single source of truth for the version.
The backlog path was hardcoded to c:\Users\danie\SynologyDrive\..., which only resolves on one machine under one account. Shared instructions say to resolve $DOC_ROOT from ~/.claude/settings.json, where it is defined. 10 of 15 sub-projects had the hardcoded form; the other 5 already used $DOC_ROOT. This aligns them.
The GitHub Actions workflow was not reachable from the solution, so editing it meant leaving the IDE. LICENSE likewise. Both are now listed under Solution Items.
…vOps Dependencies - Tharga.Test.Toolkit 1.14.11 -> 1.14.12 in both test projects. Assembly version - The version is now computed before the build and passed as -p:Version. Passing it only to `dotnet pack` set PackageVersion alone, so published assemblies reported 1.0.0.0 regardless of release. A `Resolve build version` step picks the pre-release version on pull requests and the stable one otherwise, so the assembly and the package cannot disagree, and the two conditional Pack steps collapse into one. Version tag lookup - Guarded the `grep` in the tag lookup with `|| true`. It exits 1 when no tag matches, which is what happens the first time a repo starts a new MAJOR_MINOR series. Azure DevOps - Deleted azure-pipelines.yml and buildnumber.yml. They were dormant but not harmless: the pipeline still had an active nuget.org push and a stale majorMinor of 1.15 while the repo ships 1.16, so re-enabling it in Azure DevOps would have published a conflicting version series. Removed the matching solution items too. Packaging - NU5048 added to NoWarn. PackageIconUrl is deliberate; Tharga packages reference their icon from https://thargelion.net/assets/ so icons are maintained centrally and can change without republishing. CI - SDK install narrowed to 10.0.x.
Enumeration.GetHashCode returned base.GetHashCode(), a reference-based hash, while Equals compares the concrete type and Id. Two equal values therefore hashed differently, so Enumeration misbehaved as a Dictionary key or in a HashSet. It now hashes the same values Equals compares. CompareExtensions called GetEnumerator() on the non-generic IEnumerable in three places and never disposed the result, leaking whatever the source enumerators held open. They are now disposed in a finally. GetMatchFromList had a latent infinite loop: when the cast to IEnumerable produced null the loop condition never changed, so it spun forever. Every current caller passes an IEnumerable, so it was unreachable in practice, but it now returns early instead. ManagedTimer wrote _running outside the lock that guards the matching test-and-set in TimerEngine, so a restart on another thread was not guaranteed to see the timer had stopped. The write is now under the same lock, which is only ever held for that short guard and never while the task body runs, so it cannot deadlock.
|
Released as v1.16.0 — https://github.com/Tharga/Toolkit/releases/tag/1.16.0 |
This branch had an error being deployed
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.
Patch-level external bumps plus internal
Tharga.*bumps to consume the tier-0 releases.External (patch):
Internal:
Verified locally:
dotnet test -c Releasepasses.