-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
This is a meta-issue meant to track the work in other issues targeting the Release 3.x milestone.
benevolent takeover notes
Hiii I'm working on getting many maintenance tasks addressed including
taking over this issue from @coilysiren 🙇🏼 who is busy with other life adventures ❤️ ~ @meatballhat
I know 2.0 isn't out yet 🙂 (see #826) but I wanted to create a tracking issue for the 3.x series.
Here's some breaking/difficult changes we want to consider for V3:
- Cleanup redundant code in App/Command #1498
- Fix: Help name consistency among app/commands and subcommands #1489
- Replace code generation with generics where possible/maintainable (First cut at using generics for base flag types #1512 )
-
merge altsrc with main package #1058 - Move man page compatibility to separate package #1055
- Add testify, and update tests to use it rather than expect #1695
-
Improve testability of(conflicts with Consolidate all*cli.Context
(via Release 3.x meta/discussion #833 (comment))Context
code intoCommand
#1587) - remove
EnableBashCompletion
in favor ofCompletionShells
-
consider a different release method (eg. not just merging to(this was changed in v2)master
) via Support users who are using GOPATH mode #952 (comment) -
make flags "global" by default, to some degree(this was added into v2) -
Compiled
metadata is not used #753 - Add optional check for duplicated string and int type flags. #1071
-
Cleanup error handling. Make multiError implement ExitCoder - Add integration with golangci-lint #1663
- Strictly limit default dependencies to stdlib #1890 1
- Ensure all exported structs are usable as "zero value" #1775
- Minimize top-level API surface area for both usability clarity and maintenance reduction #1531
- Build out all of the v3 documentation #1891
Please suggest more! I'll add them to this OP
Update ~January 2023: Progress! And yet, yeah, wish lists balanced with releasing usable software is hard to do. If you're the kind of human who finds themselves reading this, there's a v3.0.0-alpha2
tag now, which should play nicely with go get github.com/urfave/cli/v3@latest
. Feedback wanted! ❤️ ~ @meatballhat
Footnotes
-
The documentation-related code that depends on
github.com/russross/blackfriday/v2
andgithub.com/cpuguy83/go-md2man/v2
has been shown to add significant bulk to compiled outputs ↩