Skip to content

feat!: drop net8.0/net9.0 and bump dependencies (→ 2.4.0) - #10

Merged
poxet merged 7 commits into
masterfrom
chore/dependency-patch-bumps
Jul 26, 2026
Merged

poxet merged 7 commits into
masterfrom
chore/dependency-patch-bumps

Conversation

@poxet

@poxet poxet commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Patch-level external bumps plus internal Tharga.* bumps to consume the tier-0 releases.

External (patch):

  • System.Drawing.Common 10.0.8 -> 10.0.10
  • Microsoft.SourceLink.GitHub 10.0.300 -> 10.0.301

Internal:

  • Tharga.Test.Toolkit 1.14.10 -> 1.14.11 (tests)

Note: Aspose.BarCode 26.5.0 -> 26.6.0 deliberately excluded (minor, not patch).

Verified locally: dotnet test -c Release passes.

External (patch):
- System.Drawing.Common 10.0.8 -> 10.0.10
- Microsoft.SourceLink.GitHub 10.0.300 -> 10.0.301

Internal:
- Tharga.Test.Toolkit 1.14.10 -> 1.14.11 (tests)

Note: Aspose.BarCode 26.5.0 -> 26.6.0 deliberately excluded (minor, not patch).
@codecov

codecov Bot commented Jul 26, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
Tharga.Reporter/Entity/UnitValue.cs 0.00% 2 Missing ⚠️
Tharga.Reporter/Entity/UnitRectangle.cs 0.00% 1 Missing ⚠️

📢 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.Reporter: net8.0;net9.0;net10.0 -> net10.0
- Tharga.Reporter.Console already net10.0

Bumps MAJOR_MINOR 2.3 -> 2.4 so this ships as a minor release, not a
patch — a patch that removes a target framework would break consumers
taking a routine update.
@poxet poxet changed the title chore(deps): bump patch-level and internal Tharga.* versions feat!: drop net8.0/net9.0 and bump dependencies (→ 2.4.0) Jul 26, 2026
poxet added 4 commits July 26, 2026 11:43
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.
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.
UnitRectangle defines ==/!= and overrides Equals but had no GetHashCode,
which the compiler reported as CS0659 and CS0661. Equal rectangles
produced different hash codes, so the type misbehaved in any hash-based
container. It now hashes the same six values Equals compares.

UnitValue is a struct, so the reference and null checks in its ==/!=
operators were dead code: boxing a value type never yields null, and
boxing both operands never yields the same reference. Both paths already
fell through to Equals, so the operators now call it directly, which is
equivalent and avoids the boxing.
@poxet
poxet merged commit 0bb44fd into master Jul 26, 2026
6 of 8 checks passed
@github-actions

Copy link
Copy Markdown

Released as v2.4.0 — https://github.com/Tharga/Reporter/releases/tag/2.4.0

This branch had an error being deployed

1 failed deployment
prerelease — aee78160 Deployed Jul 26, 2026 by poxet via prerelease #19
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.

1 participant