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
fix(cli): stop numeric --release values from defeating deploy --dry-run (#3146)
A purely numeric release label (--release=1) hung ~76s with 'Operation
timed out' even under --dry-run. Two stacked defects:
1. ArgSpec.toArgv() detected boolean flags with CFML's coercing ==
operator, and "1" == "true" / "0" == "false" evaluate TRUE in
CFML. The value was dropped and re-emitted as a bare --release flag
(likewise "0" became --no-release, and yes/no coerced too).
2. DeployArgsParser's space-separated '--release <value>' arm then
swallowed the next token — --dry-run — as the version, so dryRun was
never set and the dispatch layer opened real SSH connections to the
config stub's placeholder host (192.168.0.1) until the TCP timeout.
Fix: toArgv() now uses an exact string compare (native booleans from
MCP argCollections still stringify to true/false and keep working),
and every value-taking deploy flag refuses to consume a following
'--' token as its value — mirroring the rule Module.cfc's
$deployStripFlags already applied, so the two tokenizers agree.
Specs pin all three layers: the argv round-trip preserves 1/0/yes/no
as values, the parser never swallows a flag, and a strict FakeSshPool
proves a dry-run boot with a numeric version performs zero SSH calls.
Fixes#3111
Signed-off-by: Peter Amiri <peter@alurium.com>
-**CLI**: `wheels deploy ... --release=1 --dry-run` no longer hangs ~76 seconds with `Operation timed out`. CFML's coercing `==` treated the value `1` as the boolean string `true` during the argv round-trip, dropping the release value and letting the deploy flag parser swallow `--dry-run` as the version — so a documented dry run opened real SSH connections. Values are now compared exactly (`1`, `0`, `yes`, `no` stay values), and a value-taking deploy flag never consumes a following `--` flag as its value ([#3111](https://github.com/wheels-dev/wheels/issues/3111))
0 commit comments