FsHotWatch.Build
0.3.0-alpha.1
dotnet add package FsHotWatch.Build --version 0.3.0-alpha.1
NuGet\Install-Package FsHotWatch.Build -Version 0.3.0-alpha.1
<PackageReference Include="FsHotWatch.Build" Version="0.3.0-alpha.1" />
<PackageVersion Include="FsHotWatch.Build" Version="0.3.0-alpha.1" />
<PackageReference Include="FsHotWatch.Build" />
paket add FsHotWatch.Build --version 0.3.0-alpha.1
#r "nuget: FsHotWatch.Build, 0.3.0-alpha.1"
#:package FsHotWatch.Build@0.3.0-alpha.1
#addin nuget:?package=FsHotWatch.Build&version=0.3.0-alpha.1&prerelease
#tool nuget:?package=FsHotWatch.Build&version=0.3.0-alpha.1&prerelease
FsHotWatch.Build
Plugin that runs a build command when source files change and emits
BuildCompleted events for downstream plugins (like test runners and
coverage checkers).
Why
Without this plugin, each tool would need to trigger its own build. The BuildPlugin centralizes builds so they happen once, and downstream plugins (TestPrune, Coverage) react to the result.
How it works
- You save a file
- BuildPlugin receives
FileChanged - It runs
dotnet build(or your custom command) - On completion, it emits
BuildCompleted(success or failure) - Downstream plugins like TestPrune react to the build result
The plugin guards against concurrent builds -- if a build is already
running and you save again, it skips. It also skips the build entirely
if only test files changed (and emits BuildSucceeded directly).
Configuration
In .fs-hot-watch.json:
{
"build": {
"command": "dotnet",
"args": "build",
"buildTemplate": "dotnet build {projects}"
}
}
Set "build": false to disable the build plugin entirely.
| Field | Type | Default | Description |
|---|---|---|---|
command |
string |
"dotnet" |
Build command. |
args |
string |
"build" |
Arguments to the build command. |
buildTemplate |
string |
-- | Template for incremental builds. {projects} is replaced with changed project paths. |
CLI
# Trigger a build and wait for it
fs-hot-watch build
# Check build status
fs-hot-watch build-status
Programmatic usage
From the FullPipelineExample:
daemon.RegisterHandler(
BuildPlugin.create
"dotnet" // command
"build" // args
[] // environment variables
daemon.Graph // project graph
[] // test project names (to skip build-only-test-changes)
None // build template
None // getCommitId for caching
)
Install
dotnet add package FsHotWatch.Build
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FSharp.Core (>= 10.1.201)
- FsHotWatch (>= 0.3.0-alpha.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0-alpha.1 | 32 | 4/8/2026 |
| 0.2.0-alpha.1 | 35 | 4/8/2026 |
| 0.1.0-alpha.1 | 42 | 4/3/2026 |