Repository navigation
feat!: drop net8.0/net9.0 and bump dependencies (→ 4.2.0) - #36
Merged
Merged
Conversation
External (patch): - Microsoft.Extensions.Logging 10.0.8 -> 10.0.10 - System.Speech 10.0.8 -> 10.0.10 - System.Text.Json 10.0.8 -> 10.0.10 (sample) Internal: - Tharga.Runtime 0.1.14 -> 0.1.15
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.Console, Tharga.Console.Speech: net8.0;net9.0;net10.0 -> net10.0 - SampleConsole, SampleCoreConsole: net9.0 -> net10.0 - Tharga.Console.Standard (netstandard2.0) unchanged - SampleFrameworkConsole (.NET Framework 4.8) unchanged Bumps MAJOR_MINOR 4.1 -> 4.2 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.
All three packages published their RepositoryUrl as https://github.com/poxet/tharga-console.git, the old personal repo, so "View source" on nuget.org sent people there instead of to this one. PackageProjectUrl was already correct. Takes effect on the next publish.
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.
Dependencies - Tharga.Runtime 0.1.15 -> 1.0.0, Tharga.Test.Toolkit 1.14.11 -> 1.14.12 and Tharga.Mcp 0.1.7 -> 1.0.0, where referenced. Tier 0 is released, so these are the versions the tier builds against. 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. - Verified by packing a distinctive version: 2.3.7 produces an assembly reporting 2.3.7.0, not the 1.0.0.0 default. 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. Steps declaring `shell: bash` run under `bash -eo pipefail`, so that killed the step outright; steps without it use the default `bash -e` and only survived by luck. 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.
TextWriterInterceptor redeclared TextWriter.Null and CoreNewLine with `new`, hiding the base members. Neither was ever assigned, so TextWriterInterceptor.Null was always null instead of TextWriter.Null and the shadowed CoreNewLine was dead. Nothing referenced either, so both are gone and the inherited members apply. IntExtensions.Max called Any() and then Max(), enumerating the source twice, which is wrong for a lazy or single-pass sequence. It now walks the sequence once. VariableStore.Get and ActionCommandBase both dereferenced a lookup that can return null - SingleOrDefault over a reference type, and GetProperty for an unknown name - surfacing as a bare NullReferenceException naming nothing. Both now throw an InvalidOperationException that says what was missing. ConsoleBase.SetLocation probed ContainsKey before assigning, but the indexer already adds or replaces. Removed the extra lookup. ActionConsole, EventConsole and NullConsole overrode Equals and GetHashCode with bodies that only called base, which is the default behaviour. Removed, clearing the reference-equality warnings.
poxet
force-pushed
the
chore/dependency-patch-bumps
branch
from
July 26, 2026 15:07
f2cdacb to
085a129
Compare
|
Released as v4.2.0 — https://github.com/Tharga/Console/releases/tag/4.2.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.