Skip to content


Choose a tag to compare
@jpmcb jpmcb released this 21 Jun 02:37

Spring 2022 Release πŸŒ₯️

Hello everyone! Welcome to another release of cobra. Completions continue to get better and better. This release adds a few really cool new features. We also continue to patch versions of our dependencies as they become available via dependabot. Happy coding!

Active help πŸ‘πŸΌ

Shout out to @marckhouzam for a big value add: Active Help #1482. With active help, a program can provide some inline warnings or hints for users as they hit tab. Now, your CLIs can be even more intuitive to use!

Currently active help is only supported for bash V2 and zsh. Marc wrote a whole guide on how to do this, so make sure to give it a good read to learn how you can add this to your cobra code!

Group flags πŸ§‘πŸΌβ€πŸ€β€πŸ§‘πŸΌ

Cobra now has the ability to mark flags as required or exclusive as a group. Shout out to our newest maintainer @johnSchnake for this! #1654 Let's say you have a username flag that MUST be partnered with a password flag. Well, now, you can enforce those as being required together:

rootCmd.Flags().StringVarP(&u, "username", "u", "", "Username (required if password is set)")
rootCmd.Flags().StringVarP(&pw, "password", "p", "", "Password (required if username is set)")
rootCmd.MarkFlagsRequiredTogether("username", "password")

Flags may also be marked as "mutally exclusive" with the MarkFlagsMutuallyExclusive(string, string ... ) command API. Refer to our user guide documentation for further info!

Completions πŸ‘€

  • Add backwards-compatibility tests for legacyArgs() by @marckhouzam in #1547
  • feat: Add how to load completions in your current zsh session by @ondrejsika in #1608
  • Introduce FixedCompletions by @emersion in #1574
  • Add shell completion to flag groups by @marckhouzam in #1659
  • Modify brew prefix path in macOS system by @imxw in #1719
  • perf(bash-v2): use backslash escape string expansion for tab by @scop in #1682
  • style(bash-v2): out is not an array variable, do not refer to it as such by @scop in #1681
  • perf(bash-v2): standard completion optimizations by @scop in #1683
  • style(bash): out is not an array variable, do not refer to it as such by @scop in #1684
  • perf(bash-v2): short-circuit descriptionless candidate lists by @scop in #1686
  • perf(bash-v2): speed up filtering entries with descriptions by @scop in #1689
  • perf(bash-v2): speed up filtering menu-complete descriptions by @scop in #1692
  • fix(bash-v2): skip empty completions when filtering descriptions by @scop in #1691
  • perf(bash-v2): read directly to COMPREPLY on descriptionless short circuit by @scop in #1700
  • fix: Don't complete _command on zsh by @twpayne in #1690
  • Improve fish_completions code quality by @t29kida in #1515
  • Fix handling of descriptions for bash v3 by @marckhouzam in #1735
  • undefined or nil Args default to ArbitraryArgs by @umarcor in #1612
  • Add Command.SetContext by @joshcarp in #1551
  • Wrap printf tab with quotes by @PapaCharlie in #1665

Documentation πŸ“

Testing & CI βš™οΈ

Beep boop, bot commits πŸ€–

Misc πŸ’­

Shoutout to ALL our contributors (and all the new first time contributors!!) - great work everyone!! Cobra and it's huge impact wouldn't be possible without you πŸ‘πŸΌ πŸš€ 🐍

Full Changelog: v1.4.0...v1.5.0