fsprojects/FSharp.UMX
64.5
Adequate · 17 September 2026
90
lines of production code
F#
primary language
1
measurement over time
What this system is
FSharp.UMX is a library that enables the use of F\# units of measure with primitive non-numeric types, such as strings, GUIDs, and dates. It provides functionality to tag, untag, and cast these types to ensure type safety in F\# applications. The system supports .NET 6 and is compatible with Fable for JavaScript compilation.
Features
Expanded support for primitive types and .NET 6 types in Units of Measure
The FSharp.UMX library now supports tagging, untagging, and casting units of measure for additional primitive types including bool, byte, int16, float32, Guid, string, TimeSpan, DateTime, and DateTimeOffset. For projects targeting .NET 6.0 or later, support is also extended to DateOnly, TimeOnly, and System.Half types, allowing these specific types to be used with the library's measure annotations.
src · high confidence
Behavioural changes
Project renamed to FSharp.UMX with updated documentation and build infrastructure
The library has been renamed from UnitsOfMeasure.Extra to FSharp.UMX, reflected in the solution file, project references, and README. The project now includes a Makefile for build, test, and NuGet push operations, alongside a Build.fsx script for Fable publishing. The README has been expanded to include installation instructions, usage examples with F\# units of measure, and badges for build status and NuGet version.
(repo-wide) · high confidence
Test coverage
Added unit tests for F\# unit of measure conversions
Added a new test file, tests/FSharp.UMX.Tests.fs, which verifies the library's ability to tag and untag various primitive types using F\# units of measure. The tests cover conversions for Guid, string, int, float32, byte, int16, Half, DateTime, DateOnly, and TimeOnly, ensuring that casting operators and the UMX.tag function work correctly across these types.
tests · high confidence
Dependencies
Initial release of FSharp.UMX with .NET 6 and Fable support
This change introduces the FSharp.UMX library, providing Units of Measure for primitive non-numeric types that are compatible with Fable. The project is initialized with a .NET 6 target framework (alongside netstandard2.0), integrating FSharp.Core 4.3.4 and Microsoft.SourceLink.GitHub. It includes a test suite using xUnit 2.4.0 and sets up the necessary Node.js dependencies (fable-compiler-js, fable-publish-utils) to support the Fable compilation workflow.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 65.
Lenses
- Code Health 94
- Architecture 100
- Maturity 48
- Readiness 68
- Security 86
Changes since last survey
- 69 commits — 65 feature/other, 4 fixes
By area
- (root) — 29 commits
- (repo) — 21 commits
- src/FSharp.UMX.fs — 8 commits
- src/UnitsOfMeasure.Extra.fsproj — 5 commits
- .github/workflows — 2 commits
- src/UnitsOfMeasure.Extra.fs — 2 commits
- src/FSharp.UMX.fsproj — 1 commit
- tests/FSharp.UMX.Tests.fs — 1 commit
Notable commits
- fix: Fix #3: Remove Fable.Core dependency
- fix: Fix int16
- fix: Fix nuget link
- fix: fix unboxing
- change: Add int16 support
- change: Added DateOnly & TimeOnly
- change: Added missing float32 primative type support
- change: Bump lodash from 4.17.11 to 4.17.14
- change: Bump lodash from 4.17.14 to 4.17.19
- change: Bump lodash from 4.17.19 to 4.17.21
- change: Bump minimist from 1.2.0 to 1.2.5
- change: Bump minimist from 1.2.5 to 1.2.6
- change: Bump path-parse from 1.0.6 to 1.0.7
- change: Changed compiler flag to NET6_0_OR_GREATER
- change: Create build.yml
- change: First release
- change: Initial commit
- change: IsPackable=false
- change: Merge branch 'master' into update-tfms
- change: Merge pull request #1 from eiriktsarpalis/use-operator
- …and 49 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
fsprojects/FSharp.UMX was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b2a5e16d1cb7afb5ef7f797b18ddf6a479422cfd — the exact code this score is about.
- Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.