Describe the bug
The legacy CommandBox-based box wheels upgrade command at cli/src/commands/wheels/upgrade.cfc:
getAvailableVersions() (line 173) returns a hardcoded static list maxing at "3.1.0". A user on 3.0.0 running box wheels upgrade will not be offered 4.0 — the command will report "You are already on the latest version" instead.
getPostUpgradeRecommendations() (line 320) recommends https://wheels.dev/guides/introduction/upgrading — wrong URL for 4.0. Canonical is https://guides.wheels.dev/v4-0-0/upgrading/3x-to-4x/.
checkBreakingChanges() has no entries for 3.x → 4.x — only handles 1.x → 2.x and 2.x → 3.x.
- The whole flow uses
box install wheels-core@^X machinery, which is no longer the distribution channel for 4.0 (the new path is brew install wheels-dev/wheels/wheels + Homebrew/Scoop/.deb/.rpm).
Why this matters
A 3.x user trying box wheels upgrade to get to 4.0 will see "You are already on the latest version" and be told their app is up to date — when in fact 4.0 has been out for some time and they're missing it. This is the opposite of helpful at exactly the moment the user is reaching for the tool.
The legacy CommandBox wheels-cli module is already deprecated per the 4.0 CHANGELOG (scheduled for removal in v5.0), but it still ships and still runs, so it should fail gracefully rather than silently report success.
Suggested fixes (one of)
-
Add a deprecation banner at the top of the command. Print, immediately on invocation:
⚠️ The CommandBox `box wheels upgrade` command is deprecated and does not know about Wheels 4.0+.
Install the new CLI: brew install wheels-dev/wheels/wheels
Then run: wheels upgrade check
Then: brew upgrade wheels
…and short-circuit before the static ForgeBox list lookup.
-
Update getAvailableVersions() to actually query ForgeBox or GitHub Releases (the existing function comment says "in a real implementation" — it's a stub). Add 3.x → 4.x entries to checkBreakingChanges() matching the canonical 11-breaker list.
-
Delete the command entirely. The CommandBox wheels-cli module is already deprecated for v5.0 removal per the CHANGELOG — removing the stale upgrade command early would be consistent with that direction.
If the command is kept around, fix the recommendation URL to https://guides.wheels.dev/v4-0-0/upgrading/3x-to-4x/.
Source
cli/src/commands/wheels/upgrade.cfc
🤖 Filed by Claude Code while assisting with a 4.0 upgrade testbed
Describe the bug
The legacy CommandBox-based
box wheels upgradecommand atcli/src/commands/wheels/upgrade.cfc:getAvailableVersions()(line 173) returns a hardcoded static list maxing at"3.1.0". A user on 3.0.0 runningbox wheels upgradewill not be offered 4.0 — the command will report "You are already on the latest version" instead.getPostUpgradeRecommendations()(line 320) recommendshttps://wheels.dev/guides/introduction/upgrading— wrong URL for 4.0. Canonical ishttps://guides.wheels.dev/v4-0-0/upgrading/3x-to-4x/.checkBreakingChanges()has no entries for3.x → 4.x— only handles1.x → 2.xand2.x → 3.x.box install wheels-core@^Xmachinery, which is no longer the distribution channel for 4.0 (the new path isbrew install wheels-dev/wheels/wheels+ Homebrew/Scoop/.deb/.rpm).Why this matters
A 3.x user trying
box wheels upgradeto get to 4.0 will see "You are already on the latest version" and be told their app is up to date — when in fact 4.0 has been out for some time and they're missing it. This is the opposite of helpful at exactly the moment the user is reaching for the tool.The legacy CommandBox
wheels-climodule is already deprecated per the 4.0 CHANGELOG (scheduled for removal in v5.0), but it still ships and still runs, so it should fail gracefully rather than silently report success.Suggested fixes (one of)
Add a deprecation banner at the top of the command. Print, immediately on invocation:
…and short-circuit before the static ForgeBox list lookup.
Update
getAvailableVersions()to actually query ForgeBox or GitHub Releases (the existing function comment says "in a real implementation" — it's a stub). Add3.x → 4.xentries tocheckBreakingChanges()matching the canonical 11-breaker list.Delete the command entirely. The CommandBox
wheels-climodule is already deprecated for v5.0 removal per the CHANGELOG — removing the stale upgrade command early would be consistent with that direction.If the command is kept around, fix the recommendation URL to
https://guides.wheels.dev/v4-0-0/upgrading/3x-to-4x/.Source
cli/src/commands/wheels/upgrade.cfc🤖 Filed by Claude Code while assisting with a 4.0 upgrade testbed