Conversation
NUKE is unmaintained; Fallout (fallout.build) is its maintained hard-fork successor. Applied fallout-migrate 10.4.0 plus the pieces it doesn't cover: - Nuke.Common 10.0.0 -> Fallout.Common 10.4.0 (Directory.Packages.props) - .nuke/ -> .fallout/, Nuke.* -> Fallout.* namespaces, NukeBuild -> FalloutBuild - Replace bootstrap scripts with the canonical Fallout thin shims: dotnet tool restore + dotnet fallout (tool-manifest model); new .config/dotnet-tools.json pins fallout.globaltool 10.4.0 - keep it in lockstep with Fallout.Common in Directory.Packages.props (Dependabot bumps the props file but not tool manifests) - Drop NUKE_ENTERPRISE_TOKEN block and EnableUnsafeBinaryFormatterSerialization - Null-safe GitRepository access in TagVersion (CI clones have no tag context in worktrees; correct regardless) - Update AGENTS.md build-orchestration references Hand-written workflows need no changes: the shims keep the exact ./build.cmd <target> interface and env-var parameter binding. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Marko Lahma <marko.lahma@gmail.com>
Fallout's convention is a root build/ directory, but that name is taken here: Build.cs uses root build/ as the compiled-output directory (Clean recreates it, PackBinaries globs it), and .gitignore's [Bb]uild/ rule covers it. Point Fallout at the new location via BuildProjectFile in .fallout/parameters.json, and negate the unanchored [Bb]uild/ ignore for this one tracked directory so new build-project files aren't silently ignored. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Marko Lahma <marko.lahma@gmail.com>
Unrelated to the Fallout migration, but blocks any CI run: GHSA-4f7c-pmjv-c25w (published 2026-04-10, patched in 3.3.0) fails solution restore with NU1902 under warnings-as-errors. The last green CI run predates the advisory (2025-11-30); the first PR to trigger CI would hit this regardless. log4net is referenced by test projects only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Marko Lahma <marko.lahma@gmail.com>
First fallout run rewrites .fallout/build.schema.json: NukeBuild -> FalloutBuild definitions and the new BuildProjectFile property. The stale "NUKE logo" literal in it is an upstream Fallout string that reappears on every regeneration - left as is on purpose. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Marko Lahma <marko.lahma@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
NUKE is unmaintained; Fallout is its maintained hard-fork successor. This migrates the build orchestration to Fallout 10.4.0 (release notes) and adopts its canonical tool-manifest model.
Note on versions: 10.4.0 is the latest official release. The
11.0.xpackages on nuget.org are an abandoned line and fully unlisted, so Dependabot will never propose them — no ignore rule needed.What changed
fallout-migrate 10.4.0rewrite:Nuke.*→Fallout.*namespaces,NukeBuild→FalloutBuild,.nuke/→.fallout/,<Nuke*>MSBuild properties;Nuke.Common10.0.0 →Fallout.Common10.4.0 inDirectory.Packages.propsdotnet tool restore+dotnet fallout <args>. New.config/dotnet-tools.jsonpinsfallout.globaltool10.4.0 (the CLI; commandfallout). TheNUKE_ENTERPRISE_TOKENfeedz block is gonebuild-support/nuke-build/→build-support/build/, wired viaBuildProjectFilein.fallout/parameters.json. Rootbuild/(Fallout's convention) is not usable here: it's the compiled-output dir thatCleanrecreates andPackBinariesglobs..gitignoregets a!/build-support/build/negation because the unanchored[Bb]uild/rule would silently ignore new files thereTagVersionmade null-safe (GitRepository?.Tags…); droppedEnableUnsafeBinaryFormatterSerialization; AGENTS.md build references updatedCI impact
None by design. All three workflows are hand-written and call
./build.cmd/./build.sh; the shims keep the exact interface — positional targets and env-var parameter binding (NuGetApiKeyin publish.yml) behave identically.Verification
Ran locally end to end: build project compiles clean; shim →
dotnet tool restore→falloutCLI → build-project resolution;Restore,CompileSolution,PackBinaries,Test,Packall exercised (packages produced with correct3.1.0-dev-*versioning); parameter binding verified in both switch form (-Configuration Release) and env-var form.Two local-only failures were root-caused as machine artifacts, not migration fallout (both reproduce without Fallout involved):
CompileExamples: SDK 10.0.302 requires MSBuild ≥ 18; machine only has VS2022 (17.14).windows-latestruns the VS2026 image — fine on CIDateTimeFormatterTests.FormatUsingDefaults: Windows user regional override (yyyy-MM-ddfor en-US) whichnew CultureInfo("en-US")honors; passes on pristine runnersPublishwas not run (it pushes packages); its code path changed by namespace only, and the env→parameter mechanism it depends on was exercised above.Maintenance note
Keep
.config/dotnet-tools.json(fallout.globaltool) in lockstep withFallout.CommoninDirectory.Packages.props— Dependabot bumps the props file but not tool manifests.🤖 Generated with Claude Code