Move the ktsu.Semantics pins to 4.3.1 - #179
Merged
Merged
Conversation
The 4.0.0 pin predates the `angle` dimensional axis, so a unit's `DimensionalFormula` had the seven SI keys and `CppReflectionBuilder.Axes` looked up an eighth that no unit could supply. Every member's dimension was therefore right by accident: the angle exponent was zero because the key was missing, not because the unit said so. Strings and Paths move with it. They are one repository's release and there is no reading under which Schema wants three different versions of it; neither carries a dependency on the other, so the three move together because they are the same release rather than because one requires it. Nothing generated changes yet. The five angular units -- Radian, Degree, Gradian, Milliradian, Revolution -- are listed under `Dimensionless` as well as `AngularDisplacement`, and the units generator resolves that by taking the first, so a radian still reports a dimensionless dimension and still reaches the reflection table as eight zeroes. That is upstream's to fix; this is what has to be true before the fix is visible here. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UGHDsYaaTQdzVR4XBR6miu
|
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.



What
Directory.Packages.props:ktsu.Semantics.Quantities,.Stringsand.Pathsmove from 4.0.0 to 4.3.1.Why
The 4.0.0 pin predates the
angledimensional axis.CppReflectionBuilder.Axesdeclares eight axes —length, mass, time, angle, electricCurrent, temperature, amountOfSubstance, luminousIntensity— and looks each one up in the resolved unit'sDimensionalFormula. Under 4.0.0 that dictionary had the seven SI keys and no unit could supply the eighth, so every member's angle exponent was zero because the key was missing rather than because the unit said so. The generated table happened to be right; nothing made it right.Strings and Paths move with it because they are one repository's release. Neither depends on the other (all three declare empty dependency groups), so they move together because they are the same release rather than because one requires it.
What this does not fix
A radian still reaches the reflection table as
{ 0, 0, 0, 0, 0, 0, 0, 0 }, and the bump alone cannot change that. Five angular units —Radian,Degree,Gradian,Milliradian,Revolution— appear inavailableUnitson bothDimensionlessandAngularDisplacementindimensions.json, andUnitsGeneratorresolves a unit claimed twice by taking the first declared dimension.Dimensionlessis the first entry in the file, soRadian.DimensionisPhysicalDimensions.Dimensionless, whose formula is empty.That is upstream's to fix; it is filed as ktsu-dev/Semantics#223. This PR is what has to be true before that fix is visible here, and the assertion pinning a radian to
{ 0, 0, 0, 1, 0, 0, 0, 0 }belongs in the change that consumes the release carrying it.Testing
dotnet buildover the whole solution (Schema cross-targetsnet10.0;net9.0;net8.0, Schema.Cppnet10.0;net9.0): succeeded, 0 warnings, 0 errors.dotnet test -f net10.0: 708 passed, 0 failed. Thenet9.0/net8.0legs are not runnable in this container, which has only the .NET 10 runtime.🤖 Generated with Claude Code
https://claude.ai/code/session_01UGHDsYaaTQdzVR4XBR6miu