Tarmil/FSharp.Data.LiteralProviders
61.0
Adequate · 2 October 2026
440
lines of production code
F#
primary language
2
measurements over time
What this system is
FSharp.Data.LiteralProviders is an F\# library that provides compile-time type providers for exposing environment variables, text file contents, build dates, and external command outputs as strongly-typed literals. It supports conditional logic and value parsing at compile time, with design-time and runtime components targeting .NET 8 and .NET Framework 4.7.2.
Features
Initial release of FSharp.Data.LiteralProviders
This entry introduces the FSharp.Data.LiteralProviders library, a collection of F\# type providers that expose compile-time literals. The release includes providers for reading environment variables (\Env\), loading text file contents (\TextFile\), and executing external programs (\Exec\). It also adds conditional literal providers under the \String\, \Int\, and \Bool\ sub-namespaces (e.g., \IF\, \EQ\, \AND\) and a \BuildDate\ provider. The \Env\ and \TextFile\ providers support optional parameters such as \DefaultValue\, \Encoding\, and \EnsureExists\ to control behavior when values are missing or to enforce their presence at compile time.
(repo-wide) · high confidence
Introduce design-time type providers for environment variables, text files, build dates, and external commands
The design-time assembly now exposes compile-time literal providers that allow F\# code to access environment variables (Env), text files (TextFile), build timestamps (BuildDate), and external command execution results (Exec) as strongly-typed literals. The Env provider supports loading from .env files and includes an EnsureExists check; the TextFile provider handles multiple encodings, strips BOMs, supports parent directory traversal (..), and also offers an EnsureExists option; the BuildDate provider exposes UTC and local times with a customizable format; and the Exec provider runs external processes, capturing stdout/stderr and exit codes with configurable timeouts and success enforcement. Additionally, a Conditional provider adds compile-time IF, equality, comparison, and boolean logic operations for strings, booleans, and integers, while the Value module automatically exposes parsed int and bool variants for string literals.
src/FSharp.Data.LiteralProviders.DesignTime · high confidence
Removals
Removal of Env type provider and build configuration
The Env type provider, which previously generated compile-time types for all system environment variables, has been removed from the FSharp.Data.LiteralProviders library. Additionally, the associated paket.template build configuration file has been deleted, indicating a change in how this specific provider is packaged or integrated.
src/FSharp.Data.LiteralProviders · high confidence
Behavioural changes
Removal of Paket restore infrastructure
The project has removed the legacy Paket bootstrapper and MSBuild integration files (Paket.Restore.targets, paket.bootstrapper.proj, and paket.bootstrapper.props). This eliminates the automatic download and execution of the Paket package manager during the build process, indicating a shift away from the classic Paket restore mechanism.
.paket · high confidence
Runtime library structure and .NET target updates
The runtime component is now structured with explicit assembly metadata and a type provider assembly attribute pointing to the design-time DLL. The project targets .NET Framework 4.7.2 (up from 4.6) and .NET Standard 2.0, and includes DotEnvFile as a dependency for the design-time provider.
src/FSharp.Data.LiteralProviders.Runtime · high confidence
Test coverage
Expanded test coverage for literal providers and environment handling
Added comprehensive unit tests for the F\# literal provider library, including validation of build date formatting, conditional logic for strings, booleans, and integers, and execution of external commands with proper stdout capture and timeout handling. Tests also verify text file reading features such as BOM stripping, parent directory traversal, and parsing text as integers or booleans, alongside environment variable loading from .env files and fallback defaults.
tests · high confidence
Dependencies
Upgrade to .NET 8 and F\# 6 with modernized build infrastructure
The project has been upgraded to target .NET 8.0 and .NET Framework 4.7.2, replacing the previous .NET Core 2.2 target, and updated to F\# 6.0. This change introduces a new build structure separating design-time and runtime components, migrates from DotNetEnv to DotEnvFile for environment variable loading, and updates the test suite to run on .NET 8.0 using the Unquote assertion library.
(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
Score
- CAI 54 → 61 (+7.0)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 99 → 99 (+0.0)
- Architecture 66 → 69 (+3.3)
- Maturity 59 → 59 (+0.0)
- Readiness 60 → 60 (+0.0)
- Security 43 → 58 (+14.2)
Findings
- No change — the same findings as the prior survey.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Tarmil/FSharp.Data.LiteralProviders 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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit d18ddfdff415e1b23565a6b4da0e650865df360b — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-351388015767.