Fallout-build/Fallout

Update Nuke→Fallout codefix to map Common.ProjectModel → Solutions for v11

Open

#253 opened on 2026年5月28日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)C# (1 fork)github user discovery
good first issuetarget/2026

Repository metrics

Stars
 (43 stars)
PR merge metrics
 (PR metrics pending)

説明

Why

The NukeMigrationCodeFix in Fallout.Migrate.Analyzers rewrites NukeFallout token-by-token. Post-v11 (after the vs-solutionpersistence inlining in #248), this produces stale namespace paths:

Input (NUKE-era consumer code) Codefix output today Correct v11 target
using Nuke.Common.ProjectModel; using Fallout.Common.ProjectModel; ❌ (namespace gone) using Fallout.Solutions;
Nuke.Common.ProjectModel.Solution x; Fallout.Common.ProjectModel.Solution x; Fallout.Solutions.Solution x;

Consumers who run fallout-migrate (or the codefix) on pre-rename NUKE code currently get code that doesn't compile against v11. The transition shim (Nuke.Components / Nuke.Common) does mirror Fallout.Solutions.* back to Nuke.Common.ProjectModel.*, so consumers can stay on the shim namespace longer — but the migration codefix should target the canonical v11 namespace.

Action

  • Extend NukeToFalloutRewriter in src/Fallout.Migrate.Analyzers/NukeMigrationCodeFix.cs to handle the qualified-name case Nuke.Common.ProjectModelFallout.Solutions (visit QualifiedNameSyntax or post-process the rewritten tree)
  • Restore the test expectation in tests/Fallout.Migrate.Analyzers.Tests/RealWorldSmokeTests.cs to Fallout.Solutions.Solution + using Fallout.Solutions; (currently reverted to Fallout.Common.ProjectModel.* to keep the test green during #248)
  • Update TargetFalloutStub in that test file to also expose Fallout.Solutions.Solution (the inline stub only defines Fallout.Common.ProjectModel.Solution)
  • Audit other rename-era namespace pairs the codefix might miss (anything else that moved out of Fallout.Common.* in v11)

Done when

  • A NUKE consumer running the codefix gets v11-correct namespace paths
  • RealWorldSmokeTests.RewritesRealisticPreRenameBuildClass expectations reflect the v11 target namespaces
  • No regression on simple NukeFallout cases with no ProjectModel/SolutionModel involvement

コントリビューターガイド