Skip to content

Sync main into vectors and fix .NET 10 build#100

Merged
matt-edmondson merged 31 commits into
vectorsfrom
fix/vectors-sync-main-net10-build
Jun 25, 2026
Merged

Sync main into vectors and fix .NET 10 build#100
matt-edmondson merged 31 commits into
vectorsfrom
fix/vectors-sync-main-net10-build

Conversation

@matt-edmondson

Copy link
Copy Markdown
Contributor

Why

The vectors branch (the 2.0 rewrite) had diverged from main by 96 ahead / 29 behind and did not build under the current .NET 10 SDK (98 errors). The missing 29 commits were largely the tooling that fixes it: ktsu.Sdk 2.10.2 (vectors pinned 2.8.0), Polyfill bumps, the System.Text.Json package refs, and main's earlier analyzer-error fixes. This brings vectors up to date and green.

What

  • Merged origin/main into vectors. Three conflicts, all resolved toward main's newer/fixed versions while preserving the generator-only packages vectors adds (Microsoft.Bcl.AsyncInterfaces, Microsoft.CodeAnalysis.*, ktsu.CodeBlocker):
    • Directory.Packages.props — Polyfill 10.11.0, keep generator packages.
    • Semantics.Strings.csproj — add System.Text.Json ref (Polyfill already present).
    • SemanticString.cs — take main's Ensure.NotNull nullable fix.
    • global.json auto-merged to SDK 2.10.2.
  • Fixed the remaining .NET 10 analyzer errors (warnings-as-errors):
    • IDE0040 — explicit public on IUnit/IPhysicalQuantity members.
    • CS1591 — XML docs on UnitConversionException constructors.
    • CS1710 — removed the duplicate <typeparam name="T"> from the hand-written logarithmic partials (Cents, Semitones, Decibels, Gain, DirectionalityIndex, PH) so T is documented once (the generated half keeps it).
    • CS0105/IDE0005 — deduped using directives in 8 test files that the merge duplicated.

Result

Follow-ups (not in this PR)

claude and others added 30 commits June 12, 2026 06:45
The scheduled CI build failed with 32 IDE0370 (suppression is
unnecessary) errors raised by the .NET SDK 10.0.301 analyzers with
warnings treated as errors.

- SemanticQuantity.cs: remove null-forgiving operators on
  Create<TResult>(...) calls; Create returns a non-nullable TQuantity
  so the suppressions were never needed.
- SemanticString.cs: replace null-forgiving operators in
  FromStringInternal with Ensure.NotNull, which is valid in both the
  nullable-annotated (net5.0+) and oblivious (netstandard2.x) builds
  where IDE0370 flagged the suppressions.

https://claude.ai/code/session_01LBGrmJHgP4RpMC9dQ2Pdox
Fix IDE0370 build errors from .NET 10 SDK analyzer
Bumps ktsu.Sdk from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.Android from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.App from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.ConsoleApp from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.iOS from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.Linux from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.macOS from 2.9.0 to 2.10.0
Bumps ktsu.Sdk.Windows from 2.9.0 to 2.10.0

---
updated-dependencies:
- dependency-name: ktsu.Sdk
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.Android
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.App
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.ConsoleApp
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.iOS
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.Linux
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.macOS
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
- dependency-name: ktsu.Sdk.Windows
  dependency-version: 2.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ktsu
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: Polyfill
  dependency-version: 10.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
updated-dependencies:
- dependency-name: Polyfill
  dependency-version: 10.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
# Conflicts:
#	Directory.Packages.props
#	Semantics.Strings/SemanticString.cs
#	Semantics.Strings/Semantics.Strings.csproj
Add explicit accessibility modifiers to IUnit/IPhysicalQuantity members
(IDE0040), document UnitConversionException constructors (CS1591), remove
the duplicate <typeparam> across generated and hand-written partials so the
logarithmic types document T once (CS1710), and dedupe using directives in
the test project introduced by the main merge (CS0105/IDE0005).
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots
9.2% Coverage on New Code (required ≥ 80%)
D Reliability Rating on New Code (required ≥ A)
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@matt-edmondson matt-edmondson merged commit 62df286 into vectors Jun 25, 2026
4 of 7 checks passed
@matt-edmondson matt-edmondson deleted the fix/vectors-sync-main-net10-build branch June 25, 2026 05:34
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