Skip to content

v10.4.0

Latest

Choose a tag to compare

@ChrisonSimtian ChrisonSimtian released this 07 Aug 02:42

v10.4

It has been a while since we released a new version and we've been cooking a bit in the background, going from me being the sole maintainer and contributor to onboarding new people into this project and revitalising the Nuke or rather now the Fallout community with new life.
First of all, thanks to those who have decided to come forward and partake in keeping the vision of Nuke alive! And welcome to those who are brave enough to migrate their projects from Nuke to Fallout.
With this long awaited release, we're bringing you mostly stabilisation, long awaited PR merges and minor improvements, while we're preparing the architectural structure to move Fallout into a new future.

Please let us know if anything is missing, broken or not quite working as intended. The easiest way to do so is to create an issue here on Github.

What's Changed

✨ New Features

  • Add project-scoped skill for restructuring PR commit history by @dennisdoomen in #416
  • Adds a public Env property to GitHubActionsAttribute by @avidenic in #417
  • Use different ansi escape code for yellow on gitlab by @ITaluone in #390
  • Emit custom runs-on label arrays for self-hosted runners (#387) by @avidenic in #418
  • Control the shell for run steps via DefaultShell by @avidenic in #430
  • Allow arbitrary extra with: inputs on the checkout step of [GitHubActions] by @avidenic in #431
  • Allow UTF-8 console input by @ITaluone in #425
  • Support for Windows not on the C drive by @ITaluone in #462
  • Properly implement FancyNames feature for solution generator by @ITaluone in #455
  • Add ClickOnce settings definition for MSBuild by @ITaluone in #466
  • Add .slnx support in GlobalTool's setup by @ITaluone in #461
  • [GitHubActions] generator: typed workflow_dispatch inputs (string, boolean, number, choice, environment) by @avidenic in #440
  • Support git worktrees by @ITaluone in #465
  • Emit build-graph.json for editor tooling by @ChrisonSimtian in #486
  • Add a typed step-injection pipeline to the GitHub Actions generator by @avidenic in #475
  • Add XmlAdd extension to XmlTasks by @ITaluone in #489
  • Add missing ArtifactsPath property to dotnet restore by @IT-VBFK in #506
  • Add tool definition for cmake by @IT-VBFK in #504
  • Add SetBinaryLog support to DotNetPackSettings by @IT-VBFK in #502
  • Add tool wrapper definition for Stryker by @IT-VBFK in #503
  • Improve fallout-migrate: NuGet-scoped version pin, TFM warning/bump, confirmation prompt, async pipeline by @dennisdoomen in #509

🐛 Bug Fixes

  • Handle numeric fields in GitVersion 6.x JSON output (#218) by @dennisdoomen in #222
  • Re-brand the mermaid execution plan (--plan) by @ITaluone in #382
  • Fix CS1734 warning in TransitionShimGenerator attribute XML doc by @SonnyRR in #415
  • Fix errors/warnings for pre-existing code smells after reintroducing editorconfig et al by @ChrisonSimtian in #393
  • Fix MSBuild tool resolve for VS2026 by @ITaluone in #420
  • Handle missing changelog (sections) during pack by @dennisdoomen in #433
  • Fix Pack when CHANGELOG.md is missing by @dennisdoomen in #437
  • Relax DotNetTasks diagnostic ID log level patterns to reduce false negatives by @taiscrummaster in #467
  • Treat lower case npm warn also as warning by @ITaluone in #463
  • Fix bug, where a string stated as content is handled like a path by @ITaluone in #490
  • Escape single quotes correctly in YAML CI writers by @YousifSala7 in #493
  • Fix crash when git branch config has a duplicate key by @dennisdoomen in #511
  • Promote main onto the 10.4 release line and fix release version stamping by @ChrisonSimtian in #563
  • Make the workflow_dispatch publish path actually publish by @ChrisonSimtian in #566
  • Point the nuget-org environment at the real nuget.org profile by @ChrisonSimtian in #569
  • Cherry-pick the Fallout.Common.ProjectModel migration path onto 10.4 by @ChrisonSimtian in #590
  • Cherry-pick the Fallout.GlobalTool package id onto 10.4 by @ChrisonSimtian in #593
  • [Backport/10.4]: Add an additional type converter for System.Text.Json by @ITaluone in #611

📖 Documentation

  • chore(release)!: bump version.json 10.3 → 11.0 + add semver policy to CLAUDE.md by @ChrisonSimtian in #220
  • docs(agents): adopt AGENTS.md as canonical AI brief; restructure into TOC + sub-files by @ChrisonSimtian in #247
  • docs(agents): release-branch model + branch-protection policy for release/vN by @ChrisonSimtian in #278
  • docs: release-branch model — CONTRIBUTING + branching-and-release runbook + ADR by @ChrisonSimtian in #295
  • docs: adopt calendar versioning + dual-pace edge/stable channels (ADR-0004) by @ChrisonSimtian in #301
  • docs(experimental): establish [Experimental] API convention + FALLOUT0xx registry by @ChrisonSimtian in #316
  • docs: align CONTRIBUTING/README/roadmap with CalVer + dual-pace channels (ADR-0004) by @ChrisonSimtian in #317
  • docs: correct edge version shape to the as-built NB.GV form by @ChrisonSimtian in #319
  • Fix remaining stale ChrisonSimtian repo URLs missed by #379 by @ChrisonSimtian in #412
  • Replace remaining nuke command text with fallout by @dennisdoomen in #424
  • Add obsolete-APIs diagnostic-ID registry (FALLOUTOBS0xx) by @avidenic in #472
  • Make release.yml the PR-label source of truth; label PRs at creation by @ChrisonSimtian in #480
  • Drop gh-pages from ADR-0008 steady-state branches by @ChrisonSimtian in #484
  • Align docs on evergreen target/vCurrent + target/vNext labels by @ChrisonSimtian in #485

New Contributors

Full Changelog: 10.3.47...v10.4.0


⚠️ Breaking Changes since v10.3

Solution, SolutionAttribute, Project, and the solution-graph extension methods moved from Fallout.Common.ProjectModel to Fallout.Solutions.

A transition shim re-exports Solution and SolutionAttribute, so this keeps compiling unchanged:

using Fallout.Common.ProjectModel;

[Solution] readonly Solution Solution;

The shim covers the common case only. It does not cover Project or the extension methods. A build that reads the project graph — Solution.GetProject(…), Solution.AllProjects — fails to compile:

error CS0246: The type or namespace name 'Project' could not be found

Fix it with fallout-migrate, which rewrites the namespace and everything else the rename touched:

dotnet tool install -g Fallout.Migrate --version 10.4.0
fallout-migrate <path-to-your-repo>

fallout-migrate is not only for moving from NUKE to Fallout. It also handles upgrades between Fallout versions. If you prefer to do it by hand, the change is one line: using Fallout.Common.ProjectModel; becomes using Fallout.Solutions;.

See #619 for the full analysis.

Security

This release resolves five high-severity advisories in System.Security.Cryptography.Xml. 10.4.0 depends on the patched 10.0.10; 10.3.x pinned 10.0.6. If you migrated a repo while on 10.3.x and hit NU1903 on restore, upgrading to 10.4.0 clears it. See #618.

Global tool package id

The tool ships as Fallout.GlobalTool — the same id 10.3.x consumers already pin, so dotnet tool update reaches 10.4.0 with no manifest edit.

Fallout.GlobalTools (plural) existed briefly at 10.4.0-rc.4 and is now unlisted and deprecated. If you installed from it, switch back:

dotnet tool uninstall -g Fallout.GlobalTools
dotnet tool install -g Fallout.GlobalTool

See #575.