📖 Documentation: docs.fallout.build
📦 Fallout is the successor to NUKE. Migrating from NUKE →
Build automation for C#/.NET — the hard-fork successor to NUKE.
Important
Rebrand in progress + roadmap published. This repository is being renamed from NUKE to Fallout as part of a hard fork. URLs, package names, and namespaces are migrating in stages.
Versioning & channels. Fallout ships on calendar versions (YYYY.MINOR.PATCH; the major is the year) via a maturity ladder: experimental is the fast, intentionally-unstable alpha lane; main is the deliberate preview trunk; the release/YYYY production line carries non-breaking minors/patches after the yearly cut. GitHub Packages = test/preview; nuget.org = production. See ADR-0004 and docs/branching-and-release.md.
What's next: the rebrand completes and the internal foundation for a plugin architecture lands on the 2026 line; a later major ships the public Fallout.Plugin.Sdk. The full plan is in docs/roadmap.md. Five RFCs are open now to shape the SDK — your input matters most before it firms up.
Track the work in milestone #6 (rebrand + plugin foundation) and milestone #7 (public plugin SDK).
Fallout is the successor to NUKE, originally created by Matthias Koch (@matkoch) and many contributors. Fallout continues NUKE's mission as a C#-first build automation framework for .NET — under new maintenance, with an enterprise-CI/CD focus.
The original NUKE code is preserved here under the MIT License with attribution. Major version 10.x was the last NUKE release; everything from this fork forward carries the Fallout identity.
If you maintain a NUKE-based build, docs/migration/from-nuke.md walks you through it. The short version:
dotnet tool install -g Fallout.Migrate
cd path/to/your-nuke-repo
fallout-migratedotnet tool install -g Fallout.GlobalToolsThe CLI installs as fallout. Verify with fallout --help.
Note
Upgrading from Fallout.GlobalTool? The dotnet-tool package is now Fallout.GlobalTools — same fallout command. Uninstall the old one first so you don't end up with two tools claiming the same command:
dotnet tool uninstall -g Fallout.GlobalToolFor per-repo manifest pinning (.config/dotnet-tools.json), project setup, and shell completion, see the Installation guide on docs.fallout.build.
Note
Channels. Stable releases ship on calendar versions (YYYY.MINOR.PATCH, e.g. 2026.1.3; the major is the year) from the release/YYYY production line — published to GitHub Packages, with nuget.org publishing opt-in per release. Two faster, intentionally-unstable test lanes publish to GitHub Packages only: experimental → …-alpha.… (bleeding edge) and main → …-preview.…; opt in by adding the GitHub Packages feed and a prerelease version range. The legacy NUKE 10.x line (support/v10) stays on semver and receives security/critical fixes only. See ADR-0004 and docs/branching-and-release.md for the full model.
Solid and scalable CI/CD pipelines are an essential pillar for being competitive and creating a great product. But why are most of us a little afraid of touching YAML files and don't even dare to look at build scripts? Much of this is because C# developers are spoiled with a great language and smart IDEs, and they don't like missing their buddy for code-completion, ease of debugging, refactorings, and code formatting.
Fallout (NUKE's successor) brings your build automation to an even level with every other .NET project. How? It's a regular console application allowing all the OOP goodness! Besides, it solves many common problems in build automation, like parameter injection, path separator abstraction, access to solution and project models, and build step sharing across repositories. Fallout can also generate CI/CD configurations (YAML, etc.) that automatically parallelize build steps on multiple agents to optimize throughput!
CI runs on every PR targeting experimental, main, release/*, or support/* across ubuntu-latest — the only required status check. After merge, post-merge validation runs on windows-latest and macos-latest, and a prerelease is published to GitHub Packages under the reserved Fallout.* prefix — …-alpha from experimental, …-preview from main. Stable releases fire from release/YYYY tags via .github/workflows/release.yml (GitHub Packages + GitHub Releases by default; nuget.org opt-in per release). Docs-only PRs are served by a no-op companion workflow (ubuntu-latest-docs) so branch protection is satisfied without spending CI minutes on a real build.
| Workflow | Status | Trigger |
|---|---|---|
ubuntu-latest |
PR to experimental / main / release/* / support/* (code paths) — required check |
|
windows-latest |
push to those branches (post-merge validation) | |
macos-latest |
push to those branches (post-merge validation) | |
experimental |
push to experimental → …-alpha prerelease to GitHub Packages |
|
preview |
push to main → …-preview prerelease to GitHub Packages |
|
release |
tag push on release/YYYY (stable) or support/* (legacy/retired) — nuget.org opt-in |
Multi-provider CI support (Azure Pipelines, GitLab, TeamCity, AppVeyor) was removed during the takeover and is being revived demand-driven — see #8.
Generated by Repobeats.
Generated by repostars.dev. Auto-updates as new stargazers arrive.
Fallout is volunteer-run. There's no donation channel yet, but we want to be transparent about what running the project costs — see costs.md for the full list. If you or your organisation would like to help offset those costs, open an issue and we'll work out the details.
- Matthias Koch and the NUKE contributors — for creating and maintaining NUKE through version 10.x.
If you maintained or contributed to NUKE and want to be credited differently here, please open an issue.