slaveOftime/Fun.Build
63.9
Adequate · 2 October 2026
3.4k
lines of production code
F#
primary language
2
measurements over time
What this system is
Fun.Build is a CI/CD framework and CLI tool designed for defining and executing build pipelines in F\# projects. It provides a domain-specific language for orchestrating tasks with features like parallel execution, conditional logic, and secure command handling. The system includes an interactive command-line interface for managing pipeline history and supports Ahead-of-Time compilation for constrained environments.
Features
Add FunBuildAot sample demonstrating AOT-compatible build pipelines
A new sample project, FunBuildAot, has been added to the Samples directory. It demonstrates how to define and run build pipelines using the Fun.Build library in an Ahead-of-Time (AOT) compiled context. The sample includes two pipelines: 'demo', which conditionally fetches the Bing homepage using HttpClient, and 'demo2', which simply echoes a message. This provides users with a concrete example of structuring build tasks that are compatible with AOT compilation constraints.
Samples · high confidence
Initial repository structure and build configuration
The repository is initialized with the core Fun.Build solution containing the main library, CLI tool, and test projects. A new .editorconfig enforces F\# formatting rules (e.g., Stroustrup bracket style, specific line widths), and global.json targets the .NET 10 SDK. The project includes a build.fsx script for CI/CD operations (linting, testing, packaging, and NuGet publishing) and several demo scripts (demo.fsx, demo-cmd.fsx, demo-error.fsx) that illustrate the pipeline DSL, including features like parallel stages, conditional execution, and error handling.
(repo-wide) · high confidence
Introduce Fun.Build.Cli for interactive pipeline management
Adds a new .NET CLI tool that provides an interactive interface for managing and executing Fun.Build pipelines. The tool allows users to add and remove source directories, automatically caches pipeline metadata for faster access, and supports running pipelines with custom arguments or re-running previous executions from history. It features a searchable, multi-keyword selection UI for both pipelines and history entries, supports sequential execution of multiple pipelines, and includes options to control cache refresh performance via timeout and parallelism settings.
Fun.Build.Cli · high confidence
Behavioural changes
Fun.Build 1.2.0: Secure command execution and improved output capture
Fun.Build 1.2.0 introduces \RunCommandCaptureAll\ and \RunSensitiveCommandCaptureAll\, which return a \CommandOutput\ record containing the exit code, standard output, standard error, and cancellation status regardless of the exit code. This release fixes a security issue where sensitive commands now mask interpolated secret values in the child process's own standard output and error streams, not just in the logged command. Additionally, standard error is now correctly read and written to the console when output is redirected, and captured standard output no longer includes an extra trailing empty line. The \Process.StartAsync\ method has been updated to return the \CommandOutput\ record directly, which is a source and binary breaking change for direct callers.
Fun.Build · high confidence
Test coverage
Added comprehensive unit tests for Fun.Build pipeline execution
Added a new test suite in Fun.Build.Tests covering core pipeline behaviors, including command execution with cancellation tokens, conditional stage evaluation (whenCmd, whenEnv, whenCmdArg), exception handling for PipelineFailedException and PipelineCancelledException, sequential and parallel stage execution, timeout enforcement at pipeline, stage, and step levels, and context utilities like RunCommandCaptureOutput and RunCommandCaptureAll.
Fun.Build.Tests · high confidence
Dependencies
Initial release of Fun.Build CI/CD framework and CLI tool
This change introduces the Fun.Build project, a CI/CD framework for F\# projects and scripts, along with its command-line interface (Fun.Build.Cli). The core library targets .NET Standard 2.0 and depends on Spectre.Console (0.46.0), Fun.Result (2.0.9), and FSharp.Core (6.0.0). The CLI tool targets .NET 8.0 and is packaged as a global tool named 'fun-build'. A sample project (FunBuildAot) demonstrates Ahead-of-Time (AOT) publishing capabilities using the new framework.
(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 64 → 64 (+0.0)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 75 → 75 (+0.0)
- Architecture 100 → 100 (+0.1)
- Maturity 55 → 55 (+0.0)
- Readiness 57 → 57 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
slaveOftime/Fun.Build 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 b0acdc06e852210c6ba350ca729b3dcca2b1a109 — 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.