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
Switch the machine's global tool during migration, and target the kept id
Two changes to what fallout-migrate does about the tool package id.
Point the migration at Fallout.GlobalTool. #581 settled on keeping the
NUKE-era id rather than moving to Fallout.GlobalTools, so the current id and
the retired list swap places:
current: fallout.globaltool
retired: nuke.globaltool, fallout.cli, fallout.globaltools
A consumer already pinning fallout.globaltool now migrates to nothing, which is
the point of keeping that id. Covered by a spec.
Add SwitchGlobalToolStep. Rewriting .config/dotnet-tools.json only fixes the
repo. A machine-wide install of a retired tool stays behind, and two packages
providing the `fallout` command conflict, so the repo-only fix left the machine
broken. The new step reads `dotnet tool list --global`, uninstalls each retired
id that is installed, then installs the current one at the resolved version.
It runs after RewriteToolManifestStep: repo first, so an interrupted run still
leaves the committed state correct. Every command is best-effort — no dotnet on
PATH, no global install, or an unreachable feed produces a Summary warning
naming the command to run by hand, never a failed migration. --dry-run prints
the commands without running them.
Introduces CliWrap (3.10.3, central pin) for the process calls: buffered output
and a cancellation token without hand-rolled ProcessStartInfo plumbing. Scoped
to Fallout.Migrate on purpose. Fallout.Common has its own ProcessTasks layer
that build authors consume, and that is not changing. Added to
docs/dependencies.md under a new Console / process section.
Also flips .config/dotnet-tools.json to fallout.globaltool 10.3.49. The pin
could not move while the id was Fallout.GlobalTools, because nothing was
published there above 10.4.0-rc.4. Verified: `dotnet tool restore` resolves it.
docs/migration/tool-package-id.md rewritten around the kept id. It is now a
"move off a retired id" page, and most readers need no action at all.
Verified: Fallout.Migrate.Specs 63/63; solution builds; dry-run against a
scratch repo pinning fallout.cli rewrites the manifest as expected.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,7 +64,7 @@ The CLI installs as `fallout`. Verify with `fallout --help`.
64
64
> dotnet tool uninstall -g Fallout.GlobalTools
65
65
>```
66
66
>
67
-
>If a repo pins the old id in`.config/dotnet-tools.json`, change the version too — the pin you have does not exist under the new id.`fallout-migrate` does both. See [Fallout.GlobalTool → Fallout.GlobalTools](docs/migration/tool-package-id.md).
67
+
>Same fora repo that pins a retired idin`.config/dotnet-tools.json`: change the version along with the id, because the pin you have does not exist under `Fallout.GlobalTool`.`fallout-migrate` does both, and switches your global install too. See [Moving off a retired tool package id](docs/migration/tool-package-id.md).
68
68
69
69
For per-repo manifest pinning (`.config/dotnet-tools.json`), project setup, and shell completion, see the [Installation guide on docs.fallout.build](https://docs.fallout.build/getting-started/installation).
Copy file name to clipboardExpand all lines: docs/dependencies.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,6 +64,13 @@ Central package versions are pinned in `Directory.Packages.props`; this page lin
64
64
|---|---|
65
65
|`NuGet.Packaging`| Read .nupkg metadata. Used by `NuGetVersionResolver`, `ProjectUpdater`. |
66
66
67
+
## Console / process
68
+
69
+
| Package | Purpose | Used by |
70
+
|---|---|---|
71
+
|`Spectre.Console` (+ `.Cli`) | Console rendering and command-line parsing |`Fallout.Migrate`|
72
+
|`CliWrap`| Run an external process and buffer its output, with a cancellation token and no manual `ProcessStartInfo` plumbing |`Fallout.Migrate` — `SwitchGlobalToolStep` shells out to `dotnet tool`. Deliberately not used in `Fallout.Common`, which has its own `ProcessTasks` layer that build authors consume. |
description: The dotnet-tool NuGet package id changed. The fallout command did not. This page shows how to move an existing install or manifest.
2
+
title: Moving off a retired tool package id
3
+
description: The Fallout CLI ships as Fallout.GlobalTool. Three other package ids were used along the way and are now retired. This page shows how to move an install or a manifest onto the current one.
4
4
---
5
5
6
-
The dotnet-tool NuGet package id is now **`Fallout.GlobalTools`**. The **command stays `fallout`**, so
7
-
build scripts, CI steps, and shell invocations do not change. Only the install or restore reference
8
-
moves.
6
+
The Fallout CLI ships as **`Fallout.GlobalTool`**. This is the same package id NUKE users have had
7
+
pinned since the rebrand, so most readers have nothing to do.
9
8
10
-
If you have never installed the tool, you do not need this page. Follow
0 commit comments