You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not a replacement for the shim packages — the CLI does a clean cutover; shims are for projects that can't migrate yet.
Implementation approach
New project: source/Fallout.Migrate/Fallout.Migrate.csproj, packaged as <PackAsTool>true</PackAsTool>.
Reuse the existing Cake-rewriting infrastructure in source/Nuke.GlobalTool/Rewriting/Cake/ as a template — it already does AST-level rewrites with Roslyn.
Test fixtures: a tests/ directory of mock "pre-migration NUKE repos" and their expected post-migration state. Verify via Verify.Xunit snapshots, matching the rest of the project's testing conventions.
Done when
CLI builds and packs as a dotnet tool
Migrates a vanilla _build.csproj (DotNet only) test fixture cleanly
Migrates a complex multi-CI test fixture (GitHub Actions + custom attributes) cleanly
Tested on a real external NUKE consumer repo (volunteer needed)
Implementation issue spun off from #35 (bridge strategy).
Goal
Ship a
dotnet toolthat migrates an existing NUKE consumer repo to Fallout in one command:dotnet tool install -g Fallout.Migrate cd path/to/my-nuke-repo fallout-migrateAfter the tool exits,
./build.ps1should compile and run identically against Fallout.What it must do
_build.csproj(or equivalent build orchestrator project)PackageReference Include="Nuke.*"→Fallout.*using Nuke.*directives →using Fallout.*across all.csfiles[GitHubActions(...)]etc.)dotnet nuke→dotnet falloutinbuild.ps1,build.sh,build.cmd.nuke/directory and (depending on the [P2] decision in #29) leave it, rename it, or migrate configNon-goals
Implementation approach
source/Fallout.Migrate/Fallout.Migrate.csproj, packaged as<PackAsTool>true</PackAsTool>.source/Nuke.GlobalTool/Rewriting/Cake/as a template — it already does AST-level rewrites with Roslyn.tests/directory of mock "pre-migration NUKE repos" and their expected post-migration state. Verify via Verify.Xunit snapshots, matching the rest of the project's testing conventions.Done when
dotnet tool_build.csproj(DotNet only) test fixture cleanlyDependencies