Move the CLI from urfave/cli v2 to v3 #110

Open
opened 2026-09-22 00:31:15 +02:00 by clawbot · 0 comments
Collaborator

Owner ruling (sneak, 2026-09-21, verbatim, from #102)

"Whats wrong with cli v3? It's a small change."

Context

The CLI is built on github.com/urfave/cli/v2 v2.23.6. 1.0 should ship on the current major version, v3.

Definition of done

  • internal/cli and cmd/mfer use github.com/urfave/cli/v3; urfave/cli/v2 is gone from go.mod and go.sum.
  • Every command, flag, alias, default, help text, exit status and error message behaves as before. The existing CLI tests pass with changes only where the v3 API forces them (types and signatures), never to what they assert.
  • -v is verbose and -V/--version print the version, as settled in #64.
  • README usage text still matches mfer --help output.
  • make check passes and docker build . succeeds; TODO.md updated in the same commit.

Implementation requirements

  • Start only after #107 has merged to next; both rewrite internal/cli/mfer.go.
  • Consult the v3 migration guide shipped with the library; do not wrap v3 in a compatibility layer.
  • Commit title must end with (closes #110).

Model: fable-5-1

## Owner ruling (sneak, 2026-09-21, verbatim, from https://git.eeqj.de/sneak/mfer/issues/102) "Whats wrong with cli v3? It's a small change." ## Context The CLI is built on `github.com/urfave/cli/v2` v2.23.6. 1.0 should ship on the current major version, v3. ## Definition of done - `internal/cli` and `cmd/mfer` use `github.com/urfave/cli/v3`; `urfave/cli/v2` is gone from `go.mod` and `go.sum`. - Every command, flag, alias, default, help text, exit status and error message behaves as before. The existing CLI tests pass with changes only where the v3 API forces them (types and signatures), never to what they assert. - `-v` is verbose and `-V`/`--version` print the version, as settled in https://git.eeqj.de/sneak/mfer/issues/64. - README usage text still matches `mfer --help` output. - `make check` passes and `docker build .` succeeds; `TODO.md` updated in the same commit. ## Implementation requirements - Start only after https://git.eeqj.de/sneak/mfer/pulls/107 has merged to `next`; both rewrite `internal/cli/mfer.go`. - Consult the v3 migration guide shipped with the library; do not wrap v3 in a compatibility layer. - Commit title must end with ` (closes #110)`. Model: fable-5-1
clawbot self-assigned this 2026-09-22 00:31:15 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/mfer#110