Migrated an existing project from Nuke.* → Fallout.* on nuget.org — recipe #64
ChrisonSimtian
started this conversation in
Show and tell
Replies: 1 comment
|
Follow-up after merging the migration on my side — a couple of extra notes for the guide that surfaced post-recipe:
PR on my side: ErpForFactoryGames#184 (merged). ADR-0021 link in the original post above stays valid. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Migrated an existing project from
Nuke.*→Fallout.*on nuget.org — recipeI migrated ErpForFactoryGames (a .NET 10 Blazor + Aspire app with a small NUKE pipeline) from the private
Nuke.*packages on theChrisonSimtianGitHub Packages feed to the new publicFallout.*packages on nuget.org. Posting the steps here so the next consumer who tries this can copy/paste, and so #37 has a real-world recipe to point at.For my project this was a Path-B migration in the language of
docs/rebrand-plan.md: clean cutover, not theNuke.*shim bridge.Starting point
build/_build.csprojreferencedNuke.Common 10.2.1from a private GitHub Packages feed (the old ChrisonSimtian/nuke fork).nuget.confighad apackageSourceMappingroutingNuke.*to that feed, plusGITHUB_TOKENplumbing in CI andbuild.ps1to satisfy GitHub Packages' "auth-required even for public packages" rule.build/Build.cs+build/Configuration.csusedNuke.*namespaces and derived fromNukeBuild.Steps that worked
build/_build.csproj— swap thePackageReference:nuget.config— drop theNuke.*mapping. Keep the GitHub Packages feed only if it still serves other packages (mine still serves SatisfactorySaveNet). Otherwise delete the source entirely:<packageSource key="github-chrisonsimtian"> <package pattern="SatisfactorySaveNet" /> <package pattern="SatisfactorySaveNet.*" /> - <package pattern="Nuke.*" /> </packageSource>build/Build.cs+build/Configuration.cs— strict 1:1 rename per the rebrand plan:Build once —
./build.ps1 Compile. The source generator regenerates.nuke/build.schema.jsonautomatically (theNukeBuilddefinition becomesFalloutBuild); commit the regenerated schema.That's the whole change. Compile + restore green on first try, no surprises.
Things worth calling out for the migration guide
MSBuild properties keep their
Nuke*names.<NukeRootDirectory>,<NukeScriptDirectory>,<NukeTelemetryVersion>were not renamed — the rebrand plan covers namespaces + assemblies only, and Fallout's ownbuild/_build.csprojstill uses them. I left mine unchanged and the build was happy. Might be worth a one-liner in the guide so people don't tidy them up out of misplaced consistency..nuke/build.schema.jsonregenerates. The diff afterCompilewas justNukeBuild→FalloutBuildin two spots. Mildly surprising to see a "generated" file in the diff — flagging in case the guide wants to mention "commit the regenerated schema, it's expected".NoWarn=NU5104stayed relevant. I'd added it to suppress the SemVer-prerelease noise from the old fork's-beta01packages. The currentFallout.Common 10.2.15is a stable SemVer, so I could probably drop it — left it for now in case future prereleases reintroduce the warning.Auth deletion. Once
Nuke.*was the only thing pulling from the private feed, dropping the package-source mapping let me delete a chunk ofGITHUB_TOKENplumbing in my CI workflow and dev README. Big quality-of-life win — could be worth highlighting in the guide as the "ROI" of the migration for projects that were only using GH Packages for NUKE.Documentation on my side
I wrote this up as ADR-0021 for traceability. Happy to link from the migration guide once #37 lands.
Thanks for the rebrand — the 1:1 mapping made this completely mechanical, which is exactly what you'd want.
All reactions