diff --git a/.nuke/build.schema.json b/.fallout/build.schema.json
similarity index 88%
rename from .nuke/build.schema.json
rename to .fallout/build.schema.json
index 42be27abc..8d7001157 100644
--- a/.nuke/build.schema.json
+++ b/.fallout/build.schema.json
@@ -58,7 +58,7 @@
"Quiet"
]
},
- "NukeBuild": {
+ "FalloutBuild": {
"properties": {
"Continue": {
"type": "boolean",
@@ -112,6 +112,13 @@
"Verbosity": {
"description": "Logging verbosity during build execution. Default is 'Normal'",
"$ref": "#/definitions/Verbosity"
+ },
+ "BuildProjectFile": {
+ "type": [
+ "null",
+ "string"
+ ],
+ "description": "Path to the build project (.csproj) relative to the repository root. Defaults to 'build/_build.csproj' when unset. Read by the Fallout global tool's in-tool runner."
}
}
}
@@ -125,11 +132,11 @@
},
"Configuration": {
"type": "string",
- "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
"enum": [
"Debug",
"Release"
- ]
+ ],
+ "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)"
},
"GithubToken": {
"type": "string",
@@ -142,12 +149,12 @@
"SonarToken": {
"type": "string",
"description": "The key to push to sonarcloud",
- "default": "Secrets must be entered via 'nuke :secrets [profile]'"
+ "default": "Secrets must be entered via 'fallout :secrets [profile]'"
}
}
},
{
- "$ref": "#/definitions/NukeBuild"
+ "$ref": "#/definitions/FalloutBuild"
}
]
}
diff --git a/.nuke/parameters.json b/.fallout/parameters.json
similarity index 59%
rename from .nuke/parameters.json
rename to .fallout/parameters.json
index 512285103..bba249120 100644
--- a/.nuke/parameters.json
+++ b/.fallout/parameters.json
@@ -1,4 +1,5 @@
{
"$schema": "build.schema.json",
+ "BuildProjectFile": "Pipeline/Build.csproj",
"Solution": "Mockolate.slnx"
}
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 15b9d36d1..39b08e4b7 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -20,9 +20,9 @@ updates:
commit-message:
prefix: chore
groups:
- nuke:
+ fallout:
patterns:
- - "Nuke*"
+ - "Fallout*"
xunit:
patterns:
- "xunit*"
diff --git a/.gitignore b/.gitignore
index 355619c97..47a099db7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,9 @@
/Artifacts
/TestResults
+# Fallout temporary files
+.fallout/temp/
+
# Temporary files from Sonarqube
.sonarqube/
diff --git a/AGENTS.md b/AGENTS.md
index cf1d42e35..4de2825d8 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -50,5 +50,5 @@ Correctness is a must. The other goals are strong defaults and win in this order
## References
- [Design goals](Docs/agents/design-goals.md): the goals and code rules for every change, the checks before a commit and the goals of this repository.
-- [Workflows](Docs/agents/workflows.md): build, test, snapshot, benchmark, mutation, AOT and documentation commands, the Nuke targets in `Pipeline/` and the CI workflows.
+- [Workflows](Docs/agents/workflows.md): build, test, snapshot, benchmark, mutation, AOT and documentation commands, the Fallout targets in `Pipeline/` and the CI workflows.
- [Project structure](Docs/agents/project-structure.md): projects, architecture and where code lives.
diff --git a/Directory.Packages.props b/Directory.Packages.props
index c12dfeb02..4ff7250fe 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -8,10 +8,11 @@
-
-
+
+
+
diff --git a/Docs/agents/project-structure.md b/Docs/agents/project-structure.md
index a4bc65fad..6f7d9b95f 100644
--- a/Docs/agents/project-structure.md
+++ b/Docs/agents/project-structure.md
@@ -7,7 +7,7 @@
| `Source/` | The shipped projects |
| `Tests/` | Test projects and the AOT smoke test app |
| `Benchmarks/` | BenchmarkDotNet comparison with other mocking libraries |
-| `Pipeline/` | Nuke build (`Build.csproj`) and the benchmark report generator |
+| `Pipeline/` | Fallout build (`Build.csproj`) and the benchmark report generator |
| `Docs/pages/` | User docs published to https://docs.testably.org/Mockolate/ |
| `Docs/agents/` | Guides for contributors and agents (this folder) |
| `.github/` | CI workflows, Dependabot and Mergify configuration |
diff --git a/Docs/agents/workflows.md b/Docs/agents/workflows.md
index ceddf8d94..3c8da5c91 100644
--- a/Docs/agents/workflows.md
+++ b/Docs/agents/workflows.md
@@ -104,9 +104,9 @@ Stryker mutates `Source/Mockolate` against `Mockolate.Tests` and `Mockolate.Inte
Reports go to `Artifacts/Stryker`. The `MutationTests` target also prepares the PR comment and expects to run in GitHub Actions.
-## Build Pipeline (Nuke)
+## Build Pipeline (Fallout)
-`Pipeline/Build.csproj` is a Nuke build, started through `build.ps1`, `build.sh` or `build.cmd`. Always name a target: without one, Nuke runs the defaults `ApiChecks`, `Benchmarks` and `CodeAnalysis`. `./build.ps1 --help` lists the targets. The configuration is Debug locally and Release on CI. Every run cleans `Artifacts/` and `TestResults/` first.
+`Pipeline/Build.csproj` is a Fallout build, started through `build.ps1`, `build.sh` or `build.cmd`. Always name a target: without one, Fallout runs the defaults `ApiChecks`, `Benchmarks` and `CodeAnalysis`. `./build.ps1 --help` lists the targets. The configuration is Debug locally and Release on CI. Every run cleans `Artifacts/` and `TestResults/` first.
| Target | Purpose |
|---|---|
diff --git a/Pipeline/Build.ApiChecks.cs b/Pipeline/Build.ApiChecks.cs
index d1b95bb19..fee643576 100644
--- a/Pipeline/Build.ApiChecks.cs
+++ b/Pipeline/Build.ApiChecks.cs
@@ -1,8 +1,8 @@
-using Nuke.Common;
-using Nuke.Common.ProjectModel;
-using Nuke.Common.Tooling;
-using Nuke.Common.Tools.DotNet;
-using static Nuke.Common.Tools.DotNet.DotNetTasks;
+using Fallout.Common;
+using Fallout.Solutions;
+using Fallout.Common.Tooling;
+using Fallout.Common.Tools.DotNet;
+using static Fallout.Common.Tools.DotNet.DotNetTasks;
// ReSharper disable AllUnderscoreLocalParameterName
diff --git a/Pipeline/Build.Benchmarks.cs b/Pipeline/Build.Benchmarks.cs
index f70e688e3..641852ec4 100644
--- a/Pipeline/Build.Benchmarks.cs
+++ b/Pipeline/Build.Benchmarks.cs
@@ -3,14 +3,14 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
-using Nuke.Common;
-using Nuke.Common.IO;
-using Nuke.Common.Tooling;
-using Nuke.Common.Tools.DotNet;
-using Nuke.Common.Tools.Git;
+using Fallout.Common;
+using Fallout.Common.IO;
+using Fallout.Common.Tooling;
+using Fallout.Common.Tools.DotNet;
+using Fallout.Common.Tools.Git;
using Octokit;
using Serilog;
-using static Nuke.Common.Tools.DotNet.DotNetTasks;
+using static Fallout.Common.Tools.DotNet.DotNetTasks;
// ReSharper disable AllUnderscoreLocalParameterName
@@ -101,7 +101,7 @@ partial class Build
Log.Debug("Pull request number: {PullRequestId}", prNumber);
if (int.TryParse(prNumber, out int prId))
{
- GitHubClient gitHubClient = new(new ProductHeaderValue("Nuke"));
+ GitHubClient gitHubClient = new(new ProductHeaderValue("Fallout"));
Credentials tokenAuth = new(GithubToken);
gitHubClient.Credentials = tokenAuth;
IReadOnlyList comments =
diff --git a/Pipeline/Build.CodeAnalysis.cs b/Pipeline/Build.CodeAnalysis.cs
index 4e94a5ddc..ec5c70199 100644
--- a/Pipeline/Build.CodeAnalysis.cs
+++ b/Pipeline/Build.CodeAnalysis.cs
@@ -1,5 +1,5 @@
-using Nuke.Common;
-using Nuke.Common.Tools.SonarScanner;
+using Fallout.Common;
+using Fallout.Common.Tools.SonarScanner;
// ReSharper disable AllUnderscoreLocalParameterName
diff --git a/Pipeline/Build.CodeCoverage.cs b/Pipeline/Build.CodeCoverage.cs
index 230874e6b..7631d451a 100644
--- a/Pipeline/Build.CodeCoverage.cs
+++ b/Pipeline/Build.CodeCoverage.cs
@@ -1,7 +1,7 @@
-using Nuke.Common;
-using Nuke.Common.Tooling;
-using Nuke.Common.Tools.ReportGenerator;
-using static Nuke.Common.Tools.ReportGenerator.ReportGeneratorTasks;
+using Fallout.Common;
+using Fallout.Common.Tooling;
+using Fallout.Common.Tools.ReportGenerator;
+using static Fallout.Common.Tools.ReportGenerator.ReportGeneratorTasks;
// ReSharper disable AllUnderscoreLocalParameterName
diff --git a/Pipeline/Build.Compile.cs b/Pipeline/Build.Compile.cs
index f035ffa10..1cd95957d 100644
--- a/Pipeline/Build.Compile.cs
+++ b/Pipeline/Build.Compile.cs
@@ -1,13 +1,13 @@
using System;
using System.Linq;
-using Nuke.Common;
-using Nuke.Common.IO;
-using Nuke.Common.Tools.DotNet;
-using Nuke.Common.Tools.GitVersion;
-using Nuke.Common.Utilities;
-using Nuke.Common.Utilities.Collections;
+using Fallout.Common;
+using Fallout.Common.IO;
+using Fallout.Common.Tools.DotNet;
+using Fallout.Common.Tools.GitVersion;
+using Fallout.Common.Utilities;
+using Fallout.Common.Utilities.Collections;
using Serilog;
-using static Nuke.Common.Tools.DotNet.DotNetTasks;
+using static Fallout.Common.Tools.DotNet.DotNetTasks;
// ReSharper disable AllUnderscoreLocalParameterName
diff --git a/Pipeline/Build.MutationTests.cs b/Pipeline/Build.MutationTests.cs
index e2545ebb1..dedfd0bb3 100644
--- a/Pipeline/Build.MutationTests.cs
+++ b/Pipeline/Build.MutationTests.cs
@@ -5,15 +5,15 @@
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
-using Nuke.Common;
-using Nuke.Common.IO;
-using Nuke.Common.Tooling;
-using Nuke.Common.Tools.DotNet;
+using Fallout.Common;
+using Fallout.Common.IO;
+using Fallout.Common.Tooling;
+using Fallout.Common.Tools.DotNet;
using Octokit;
using Serilog;
-using static Nuke.Common.Tools.DotNet.DotNetTasks;
+using static Fallout.Common.Tools.DotNet.DotNetTasks;
using ProductHeaderValue = Octokit.ProductHeaderValue;
-using Project = Nuke.Common.ProjectModel.Project;
+using Project = Fallout.Solutions.Project;
// ReSharper disable UnusedMember.Local
// ReSharper disable AllUnderscoreLocalParameterName
@@ -176,7 +176,7 @@ await client.PutAsync(
string body = File.ReadAllText(ArtifactsDirectory / "PR_Comment.md");
if (int.TryParse(prNumber, out int prId))
{
- GitHubClient gitHubClient = new(new ProductHeaderValue("Nuke"));
+ GitHubClient gitHubClient = new(new ProductHeaderValue("Fallout"));
Credentials tokenAuth = new(GithubToken);
gitHubClient.Credentials = tokenAuth;
IReadOnlyList comments =
diff --git a/Pipeline/Build.Pack.cs b/Pipeline/Build.Pack.cs
index 3118eb3b1..16df45eda 100644
--- a/Pipeline/Build.Pack.cs
+++ b/Pipeline/Build.Pack.cs
@@ -2,10 +2,10 @@
using System.IO;
using System.Linq;
using System.Text;
-using Nuke.Common;
-using Nuke.Common.IO;
-using Nuke.Common.ProjectModel;
-using Nuke.Common.Utilities.Collections;
+using Fallout.Common;
+using Fallout.Common.IO;
+using Fallout.Solutions;
+using Fallout.Common.Utilities.Collections;
using static Serilog.Log;
// ReSharper disable AllUnderscoreLocalParameterName
diff --git a/Pipeline/Build.UnitTest.cs b/Pipeline/Build.UnitTest.cs
index 78f32d740..6b1533e9e 100644
--- a/Pipeline/Build.UnitTest.cs
+++ b/Pipeline/Build.UnitTest.cs
@@ -1,9 +1,9 @@
using System.Linq;
-using Nuke.Common;
-using Nuke.Common.ProjectModel;
-using Nuke.Common.Tooling;
-using Nuke.Common.Tools.DotNet;
-using static Nuke.Common.Tools.DotNet.DotNetTasks;
+using Fallout.Common;
+using Fallout.Solutions;
+using Fallout.Common.Tooling;
+using Fallout.Common.Tools.DotNet;
+using static Fallout.Common.Tools.DotNet.DotNetTasks;
// ReSharper disable AllUnderscoreLocalParameterName
diff --git a/Pipeline/Build.cs b/Pipeline/Build.cs
index 439c929bf..8f0a9ad27 100644
--- a/Pipeline/Build.cs
+++ b/Pipeline/Build.cs
@@ -1,8 +1,8 @@
-using Nuke.Common;
-using Nuke.Common.CI.GitHubActions;
-using Nuke.Common.IO;
-using Nuke.Common.ProjectModel;
-using Nuke.Common.Tools.GitVersion;
+using Fallout.Common;
+using Fallout.Common.CI.GitHubActions;
+using Fallout.Common.IO;
+using Fallout.Solutions;
+using Fallout.Common.Tools.GitVersion;
namespace Build;
@@ -12,7 +12,7 @@ namespace Build;
AutoGenerate = false,
ImportSecrets = [nameof(GithubToken),]
)]
-partial class Build : NukeBuild
+partial class Build : FalloutBuild
{
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
diff --git a/Pipeline/Build.csproj b/Pipeline/Build.csproj
index b30b9d14f..cd7dc33f4 100644
--- a/Pipeline/Build.csproj
+++ b/Pipeline/Build.csproj
@@ -4,9 +4,8 @@
Exe
net10.0
CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006;CS8632;NU1901;NU1902;NU1903
- ..
- ..
- 1
+ ..
+ ..
false
@@ -21,8 +20,9 @@
-
-
+
+
+
diff --git a/Pipeline/BuildExtensions.cs b/Pipeline/BuildExtensions.cs
index 7e6f762e2..2c1decfa4 100644
--- a/Pipeline/BuildExtensions.cs
+++ b/Pipeline/BuildExtensions.cs
@@ -7,9 +7,9 @@
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
-using Nuke.Common.CI.GitHubActions;
-using Nuke.Common.Tools.GitVersion;
-using Nuke.Common.Tools.SonarScanner;
+using Fallout.Common.CI.GitHubActions;
+using Fallout.Common.Tools.GitVersion;
+using Fallout.Common.Tools.SonarScanner;
using Serilog;
namespace Build;
diff --git a/Pipeline/Configuration.cs b/Pipeline/Configuration.cs
index 82b0beadc..5a4d2e493 100644
--- a/Pipeline/Configuration.cs
+++ b/Pipeline/Configuration.cs
@@ -1,5 +1,5 @@
using System.ComponentModel;
-using Nuke.Common.Tooling;
+using Fallout.Common.Tooling;
[TypeConverter(typeof(TypeConverter))]
public class Configuration : Enumeration
diff --git a/Source/Directory.Build.props b/Source/Directory.Build.props
index fa71b8e77..25e8d1b5a 100644
--- a/Source/Directory.Build.props
+++ b/Source/Directory.Build.props
@@ -74,7 +74,7 @@
+ In the build pipeline it is overwritten with the actual version in the `fallout Compile` step -->
255.255.255.255
diff --git a/build.ps1 b/build.ps1
index 8b218a560..a8e1ed7c4 100644
--- a/build.ps1
+++ b/build.ps1
@@ -14,7 +14,7 @@ $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
###########################################################################
$BuildProjectFile = "$PSScriptRoot\Pipeline\Build.csproj"
-$TempDirectory = "$PSScriptRoot\\.nuke\temp"
+$TempDirectory = "$PSScriptRoot\\.fallout\temp"
$DotNetGlobalFile = "$PSScriptRoot\\global.json"
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1"
@@ -65,10 +65,5 @@ else {
Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)"
-if (Test-Path env:NUKE_ENTERPRISE_TOKEN) {
- & $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null
- & $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null
-}
-
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet }
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }
diff --git a/build.sh b/build.sh
index 46f2bac0a..131453d33 100755
--- a/build.sh
+++ b/build.sh
@@ -10,7 +10,7 @@ SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
###########################################################################
BUILD_PROJECT_FILE="$SCRIPT_DIR/Pipeline/Build.csproj"
-TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp"
+TEMP_DIRECTORY="$SCRIPT_DIR//.fallout/temp"
DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json"
DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh"
@@ -58,10 +58,5 @@ fi
echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)"
-if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "$NUKE_ENTERPRISE_TOKEN" != "" ]]; then
- "$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true
- "$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true
-fi
-
"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet
"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@"
diff --git a/global.json b/global.json
index 9cfde950a..00ba24c2b 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "10.0.300",
- "rollForward": "latestMinor"
+ "rollForward": "latestPatch"
}
}