Support usage as plugin for tools like kubectl by @nirs in https://github.com/spf13/cobra/pull/2018 - this means that programs that utilize a "plugin-like" structure have much better support and usage (like for completions, command paths, etc.)
Add 'one required flag' group by @marevers in https://github.com/spf13/cobra/pull/1952 - this includes a new MarkFlagsOneRequired API for flags which can be used to mark a flag group as required and cause command failure if at least one is not used when invoked.
Customizable error message prefix by @5ouma in https://github.com/spf13/cobra/pull/2023 - This adds the SetErrPrefix and ErrPrefix APIs on the Command struct to allow for setting a custom prefix for errors
Fixes a panic when AddGroup isn't called before AddCommand(my-sub-command) is executed. This can happen within more complex cobra file structures that have many different inits to be executed. Now, the check for groups has been moved to ExecuteC and provides more flexibility when working with grouped commands - @marckhouzam (and shout out to @aawsome, @andig and @KINGSABRI for a deep investigation into this! 👏🏼)
Some exciting changes make their way to Cobra! Command completions continue to get better and better (including adding --help and --version automatic flags to the completions list). Grouping is now possible in your help output as well! And you can now use the OnFinalize method to cleanup things when all "work" is done. Checkout the full changelog below:
ExactValidArgs is deprecated (but not being removed entirely). This is abit nuanced, so checkout #1643 for further information and the updated user_guide.md on how this may affect you (and how you can take advantage of the correct behavior in the validators): @umarcor#1643
Note: Per #1804, we will be moving away from "seasonal" releases and doing more generic point release targets. Continue to track the milestones and issues in the spf13/cobra GitHub repository for more information!
Great work everyone! Cobra would never be possible without your contributions! 🐍
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 https://github.com/spf13/cobra/pull/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! https://github.com/spf13/cobra/blob/master/active_help.md
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! https://github.com/spf13/cobra/pull/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!
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 👏🏼🚀🐍
The core Cobra library no longer requires Viper and all of its indirect dependencies. This means that Cobra's dependency tree has been drastically thinned! The Viper dependency was included because of the cobra CLI generation tool. This tool has migrated to spf13/cobra-cli.
It's pretty unlikely you were importing and using the bootstrapping CLI tool as part of your application (after all, it's just a tool to get going with core cobra).
But if you were, replace occurrences of
"github.com/spf13/cobra/cobra"
with
"github.com/spf13/cobra-cli"
And in your go.mod, you'll want to also include this dependency:
github.com/spf13/cobra-cli v1.3.0
Again, the maintainers do not anticipate this being a breaking change to users of the core cobra library, so minimal work should be required for users to integrate with this new release. Moreover, this means the dependency tree for your application using Cobra should no longer require dependencies that were inherited from Viper. Huzzah! 🥳
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/cobra](https://github.com/spf13/cobra) | require | minor | `v1.3.0` -> `v1.8.0` |
---
### Release Notes
<details>
<summary>spf13/cobra (github.com/spf13/cobra)</summary>
### [`v1.8.0`](https://github.com/spf13/cobra/releases/tag/v1.8.0)
[Compare Source](https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0)
#### ✨ Features
- Support usage as plugin for tools like kubectl by [@​nirs](https://github.com/nirs) in https://github.com/spf13/cobra/pull/2018 - this means that programs that utilize a "plugin-like" structure have much better support and usage (like for completions, command paths, etc.)
- Move documentation sources to site/content by [@​umarcor](https://github.com/umarcor) in https://github.com/spf13/cobra/pull/1428
- Add 'one required flag' group by [@​marevers](https://github.com/marevers) in https://github.com/spf13/cobra/pull/1952 - this includes a new `MarkFlagsOneRequired` API for flags which can be used to mark a flag group as required and cause command failure if at least one is not used when invoked.
- Customizable error message prefix by [@​5ouma](https://github.com/5ouma) in https://github.com/spf13/cobra/pull/2023 - This adds the `SetErrPrefix` and `ErrPrefix` APIs on the `Command` struct to allow for setting a custom prefix for errors
- feat: add getters for flag completions by [@​avirtopeanu-ionos](https://github.com/avirtopeanu-ionos) in https://github.com/spf13/cobra/pull/1943
- Feature: allow running persistent run hooks of all parents by [@​vkhoroz](https://github.com/vkhoroz) in https://github.com/spf13/cobra/pull/2044
- Improve API to get flag completion function by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/2063
#### 🐛 Bug fixes
- Fix typo in fish completions by [@​twpayne](https://github.com/twpayne) in https://github.com/spf13/cobra/pull/1945
- Fix grammar: 'allows to' by [@​supertassu](https://github.com/supertassu) in https://github.com/spf13/cobra/pull/1978
- powershell: escape variable with curly brackets by [@​Luap99](https://github.com/Luap99) in https://github.com/spf13/cobra/pull/1960
- Don't complete --help flag when flag parsing disabled by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/2061
- Replace all non-alphanumerics in active help env var program prefix by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1940
#### 🔧 Maintenance
- build(deps): bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1971
- build(deps): bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1976
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/2021
- build(deps): bump actions/setup-go from 3 to 4 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1934
- build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.2 to 2.0.3 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/2047
- build(deps): bump actions/checkout from 3 to 4 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/2028
- command: temporarily disable G602 due to [securego/gosec#1005](https://github.com/securego/gosec/issues/1005) by [@​umarcor](https://github.com/umarcor) in https://github.com/spf13/cobra/pull/2022
#### 🧪 Testing & CI/CD
- test: make fish_completions_test more robust by [@​branchvincent](https://github.com/branchvincent) in https://github.com/spf13/cobra/pull/1980
- golangci: enable 'unused' and disable deprecated replaced by it by [@​umarcor](https://github.com/umarcor) in https://github.com/spf13/cobra/pull/1983
- cleanup: minor corrections to unit tests by [@​JunNishimura](https://github.com/JunNishimura) in https://github.com/spf13/cobra/pull/2003
- ci: test golang 1.21 by [@​nunoadrego](https://github.com/nunoadrego) in https://github.com/spf13/cobra/pull/2024
- Fix linter errors by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/2052
- Add tests for flag completion registration by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/2053
#### ✏️ Documentation
- doc: fix typo, Deperecated -> Deprecated by [@​callthingsoff](https://github.com/callthingsoff) in https://github.com/spf13/cobra/pull/2000
- Add notes to doc about the execution condition of \*PreRun and \*PostRun functions by [@​haoming29](https://github.com/haoming29) in https://github.com/spf13/cobra/pull/2041
***
Thank you everyone who contributed to this release and all your hard work! Cobra and this community would never be possible without all of you!!!! 🐍
**Full Changelog**: https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0
### [`v1.7.0`](https://github.com/spf13/cobra/releases/tag/v1.7.0)
[Compare Source](https://github.com/spf13/cobra/compare/v1.6.1...v1.7.0)
##### ✨ Features
- Allow to preserve ordering of completions in `bash`, `zsh`, `pwsh`, & `fish`: [@​h4ck3rk3y](https://github.com/h4ck3rk3y) [#​1903](https://github.com/spf13/cobra/issues/1903)
- Add support for PowerShell 7.2+ in completions: [@​oldium](https://github.com/oldium) [#​1916](https://github.com/spf13/cobra/issues/1916)
- Allow sourcing zsh completion script: [@​marckhouzam](https://github.com/marckhouzam) [#​1917](https://github.com/spf13/cobra/issues/1917)
##### 🐛 Bug fixes
- Don't remove flag values that match sub-command name: [@​brianpursley](https://github.com/brianpursley) [#​1781](https://github.com/spf13/cobra/issues/1781)
- Fix powershell completions not returning single word: [@​totkeks](https://github.com/totkeks) [#​1850](https://github.com/spf13/cobra/issues/1850)
- Remove masked `template` import variable name: [@​yashLadha](https://github.com/yashLadha) [#​1879](https://github.com/spf13/cobra/issues/1879)
- Correctly detect completions with dash in argument: [@​oncilla](https://github.com/oncilla) [#​1817](https://github.com/spf13/cobra/issues/1817)
##### 🧪 Testing & CI/CD
- Deprecate Go 1.15 in CI: [@​umarcor](https://github.com/umarcor) [#​1866](https://github.com/spf13/cobra/issues/1866)
- Deprecate Go 1.16 in CI: [@​umarcor](https://github.com/umarcor) [#​1926](https://github.com/spf13/cobra/issues/1926)
- Add testing for Go 1.20 in CI: [@​umarcor](https://github.com/umarcor) [#​1925](https://github.com/spf13/cobra/issues/1925)
- Add tests to illustrate unknown flag bug: [@​brianpursley](https://github.com/brianpursley) [#​1854](https://github.com/spf13/cobra/issues/1854)
##### 🔧 Maintenance
- Update main image to better handle dark backgrounds: [@​Deleplace](https://github.com/Deleplace) and [@​marckhouzam](https://github.com/marckhouzam) [#​1883](https://github.com/spf13/cobra/issues/1883)
- Fix `stale.yaml` mispellings: [@​enrichman](https://github.com/enrichman) [#​1863](https://github.com/spf13/cobra/issues/1863)
- Remove stale bot from GitHub actions: [@​jpmcb](https://github.com/jpmcb) [#​1908](https://github.com/spf13/cobra/issues/1908)
- Add makefile target for installing dependencies: [@​umarcor](https://github.com/umarcor) [#​1865](https://github.com/spf13/cobra/issues/1865)
- Add Sia to projects using Cobra: [@​mike76-dev](https://github.com/mike76-dev) [#​1844](https://github.com/spf13/cobra/issues/1844)
- Add `Vitess` and `Arewefastyet` to projects using cobra: [@​frouioui](https://github.com/frouioui) [#​1932](https://github.com/spf13/cobra/issues/1932)
- Fixup for Kubescape github org: [@​dwertent](https://github.com/dwertent) [#​1874](https://github.com/spf13/cobra/issues/1874)
- Fix route for GitHub workflows badge: [@​sh-cho](https://github.com/sh-cho) [#​1884](https://github.com/spf13/cobra/issues/1884)
- Fixup for GoDoc style documentation: [@​yashLadha](https://github.com/yashLadha) [#​1885](https://github.com/spf13/cobra/issues/1885)
- Various bash scripting improvements for completion: [@​scop](https://github.com/scop) [#​1702](https://github.com/spf13/cobra/issues/1702)
- Add Constellation to projects using Cobra: [@​datosh](https://github.com/datosh) [#​1829](https://github.com/spf13/cobra/issues/1829)
##### ✏️ Documentation
- Add documentation about disabling completion descriptions: [@​Shihta](https://github.com/Shihta) [#​1901](https://github.com/spf13/cobra/issues/1901)
- Improve `MarkFlagsMutuallyExclusive` example in user guide: [@​janhn](https://github.com/janhn) [#​1904](https://github.com/spf13/cobra/issues/1904)
- Update `shell_completions.md`: [@​gusega](https://github.com/gusega) [#​1907](https://github.com/spf13/cobra/issues/1907)
- Update copywrite year: [@​umarcor](https://github.com/umarcor) [#​1927](https://github.com/spf13/cobra/issues/1927)
- Document suggested layout of subcommands: [@​lcarva](https://github.com/lcarva) [#​1930](https://github.com/spf13/cobra/issues/1930)
- Replace deprecated ExactValidArgs with MatchAll in doc: [@​doniacld](https://github.com/doniacld) [#​1836](https://github.com/spf13/cobra/issues/1836)
***
This release contains several long running fixes, improvements to powershell completions, and further optimizations for completions.
Thank you everyone who contributed to this release and all your hard work! Cobra and this community would never be possible without all of you! 🐍
Full changelog: https://github.com/spf13/cobra/compare/v1.6.1...v1.7.0
### [`v1.6.1`](https://github.com/spf13/cobra/releases/tag/v1.6.1)
[Compare Source](https://github.com/spf13/cobra/compare/v1.6.0...v1.6.1)
##### Bug fixes 🐛
- Fixes a panic when `AddGroup` isn't called before `AddCommand(my-sub-command)` is executed. This can happen within more complex cobra file structures that have many different `init`s to be executed. Now, the check for groups has been moved to `ExecuteC` and provides more flexibility when working with grouped commands - [@​marckhouzam](https://github.com/marckhouzam) (and shout out to [@​aawsome](https://github.com/aawsome), [@​andig](https://github.com/andig) and [@​KINGSABRI](https://github.com/KINGSABRI) for a deep investigation into this! 👏🏼)
### [`v1.6.0`](https://github.com/spf13/cobra/releases/tag/v1.6.0)
[Compare Source](https://github.com/spf13/cobra/compare/v1.5.0...v1.6.0)
##### Summer 2022 Release
Some exciting changes make their way to Cobra! Command completions continue to get better and better (including adding `--help` and `--version` automatic flags to the completions list). Grouping is now possible in your help output as well! And you can now use the `OnFinalize` method to cleanup things when all "work" is done. Checkout the full changelog below:
***
##### Features 🌠
- Add groups for commands in help: [@​aawsome](https://github.com/aawsome) [@​marckhouzam](https://github.com/marckhouzam) [#​1003](https://github.com/spf13/cobra/issues/1003)
- Support for case-insensitive command names: [@​YuviGold](https://github.com/YuviGold) [#​1802](https://github.com/spf13/cobra/issues/1802)
- Expose `ValidateRequiredFlags` and `ValidateFlagGroups`: [@​skeetwu](https://github.com/skeetwu) [#​1760](https://github.com/spf13/cobra/issues/1760)
- Add `--version` flag to help output: [@​fnickels](https://github.com/fnickels) [#​1707](https://github.com/spf13/cobra/issues/1707)
- Add `--help` and `--version` flag in completions: [@​marckhouzam](https://github.com/marckhouzam) [#​1813](https://github.com/spf13/cobra/issues/1813)
- Add `OnFinalize` method: [@​yann-soubeyrand](https://github.com/yann-soubeyrand) [#​1788](https://github.com/spf13/cobra/issues/1788)
- Allow user to add completion for powershell alias: [@​marckhouzam](https://github.com/marckhouzam) [#​1621](https://github.com/spf13/cobra/issues/1621)
- Make `InitDefaultcompletionCmd` public: [@​gssbzn](https://github.com/gssbzn) [#​1467](https://github.com/spf13/cobra/issues/1467)
##### Deprecation 👎🏼
- `ExactValidArgs` is deprecated (but not being removed entirely). This is abit nuanced, so checkout [#​1643](https://github.com/spf13/cobra/issues/1643) for further information and the [updated `user_guide.md`](https://github.com/spf13/cobra/blob/main/user_guide.md) on how this may affect you (and how you can take advantage of the *correct* behavior in the validators): [@​umarcor](https://github.com/umarcor) [#​1643](https://github.com/spf13/cobra/issues/1643)
##### Bug fixes 🐛
- Fix (bash-v2) `activeHelp` length check syntax: [@​scop](https://github.com/scop) [#​1762](https://github.com/spf13/cobra/issues/1762)
- Fix correct command path in `see_also` for yaml documentation: [@​zregvart](https://github.com/zregvart) [#​1771](https://github.com/spf13/cobra/issues/1771)
- Fix showing flags that shadow parent persistent flag in child help messaging: [@​brianpursley](https://github.com/brianpursley) [#​1776](https://github.com/spf13/cobra/issues/1776)
##### Dependencies 🗳️
- Upgrade to use `gopkg.in/yaml.v3`: [@​tklauser](https://github.com/tklauser) [#​1766](https://github.com/spf13/cobra/issues/1766)
##### Testing 🤔
- Test on Golang 1.19: [@​umarcor](https://github.com/umarcor) & [@​jpmcb](https://github.com/jpmcb) [#​1782](https://github.com/spf13/cobra/issues/1782)
- Renamed powershell completion tests: [@​marckhouzam](https://github.com/marckhouzam) [#​1803](https://github.com/spf13/cobra/issues/1803)
- Use `action/setup-go` cache: [@​umarcor](https://github.com/umarcor) [#​1783](https://github.com/spf13/cobra/issues/1783)
- Add `workflow_dispatch` to CI actions: [@​umarcor](https://github.com/umarcor) [#​1387](https://github.com/spf13/cobra/issues/1387)
- Add minimum GitHub token permissions for workflows: [@​varunsh-coder](https://github.com/varunsh-coder) [#​1792](https://github.com/spf13/cobra/issues/1792)
##### Docs ✏️
- Fixup spelling for GitHub CLI: [@​eltociear](https://github.com/eltociear) [#​1744](https://github.com/spf13/cobra/issues/1744)
- Clarify `SetContext` documentation: [@​katexochen](https://github.com/katexochen) [#​1748](https://github.com/spf13/cobra/issues/1748)
- Instruct user to `go install` for binary: [@​marckhouzam](https://github.com/marckhouzam) [#​1726](https://github.com/spf13/cobra/issues/1726)
- User guide cleanup: [@​marckhouzam](https://github.com/marckhouzam) [#​1656](https://github.com/spf13/cobra/issues/1656)
- Document option to hide the default completion command: [@​marckhouzam](https://github.com/marckhouzam) [#​1779](https://github.com/spf13/cobra/issues/1779)
##### Misc 💭
- Add KubeVirt, CloudQuery, Cilium, Okteto, Zitadel, Allero to projects using cobra: [@​maiqueb](https://github.com/maiqueb) [#​1741](https://github.com/spf13/cobra/issues/1741), [@​yevgenypats](https://github.com/yevgenypats) [#​1742](https://github.com/spf13/cobra/issues/1742), [@​tklauser](https://github.com/tklauser) [#​1745](https://github.com/spf13/cobra/issues/1745), [@​jLopezbarb](https://github.com/jLopezbarb) [#​1759](https://github.com/spf13/cobra/issues/1759), [@​fforootd](https://github.com/fforootd) [#​1772](https://github.com/spf13/cobra/issues/1772), [@​dimabru](https://github.com/dimabru) [#​1819](https://github.com/spf13/cobra/issues/1819)
- Use correct stale action `exempt` yaml keys: [@​jpmcb](https://github.com/jpmcb) [#​1800](https://github.com/spf13/cobra/issues/1800)
- Add missing license headers: [@​umarcor](https://github.com/umarcor) [#​1809](https://github.com/spf13/cobra/issues/1809)
*Note:* Per [#​1804](https://github.com/spf13/cobra/issues/1804), we will be moving away from "seasonal" releases and doing more generic point release targets. Continue to track the milestones and issues in the `spf13/cobra` GitHub repository for more information!
Great work everyone! Cobra would never be possible without your contributions! 🐍
**Full Changelog**: https://github.com/spf13/cobra/compare/v1.5.0...v1.6.0
### [`v1.5.0`](https://github.com/spf13/cobra/releases/tag/v1.5.0)
[Compare Source](https://github.com/spf13/cobra/compare/v1.4.0...v1.5.0)
#### 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](https://github.com/marckhouzam) for a big value add: Active Help https://github.com/spf13/cobra/pull/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! https://github.com/spf13/cobra/blob/master/active_help.md
#### Group flags 🧑🏼🤝🧑🏼
Cobra now has the ability to mark flags as required or exclusive as a ***group***. Shout out to our newest maintainer [@​johnSchnake](https://github.com/johnSchnake) for this! https://github.com/spf13/cobra/pull/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:
```go
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](https://github.com/spf13/cobra/blob/master/user_guide.md) for further info!
#### Completions 👀
- Add backwards-compatibility tests for legacyArgs() by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/1547
- feat: Add how to load completions in your current zsh session by [@​ondrejsika](https://github.com/ondrejsika) in https://github.com/spf13/cobra/pull/1608
- Introduce FixedCompletions by [@​emersion](https://github.com/emersion) in https://github.com/spf13/cobra/pull/1574
- Add shell completion to flag groups by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/1659
- Modify brew prefix path in macOS system by [@​imxw](https://github.com/imxw) in https://github.com/spf13/cobra/pull/1719
- perf(bash-v2): use backslash escape string expansion for tab by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1682
- style(bash-v2): out is not an array variable, do not refer to it as such by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1681
- perf(bash-v2): standard completion optimizations by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1683
- style(bash): out is not an array variable, do not refer to it as such by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1684
- perf(bash-v2): short-circuit descriptionless candidate lists by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1686
- perf(bash-v2): speed up filtering entries with descriptions by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1689
- perf(bash-v2): speed up filtering menu-complete descriptions by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1692
- fix(bash-v2): skip empty completions when filtering descriptions by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1691
- perf(bash-v2): read directly to COMPREPLY on descriptionless short circuit by [@​scop](https://github.com/scop) in https://github.com/spf13/cobra/pull/1700
- fix: Don't complete \_command on zsh by [@​twpayne](https://github.com/twpayne) in https://github.com/spf13/cobra/pull/1690
- Improve fish_completions code quality by [@​t29kida](https://github.com/t29kida) in https://github.com/spf13/cobra/pull/1515
- Fix handling of descriptions for bash v3 by [@​marckhouzam](https://github.com/marckhouzam) in https://github.com/spf13/cobra/pull/1735
- undefined or nil Args default to ArbitraryArgs by [@​umarcor](https://github.com/umarcor) in https://github.com/spf13/cobra/pull/1612
- Add Command.SetContext by [@​joshcarp](https://github.com/joshcarp) in https://github.com/spf13/cobra/pull/1551
- Wrap printf tab with quotes by [@​PapaCharlie](https://github.com/PapaCharlie) in https://github.com/spf13/cobra/pull/1665
#### Documentation 📝
- Fixed typos in completions docs - [@​cuishuang](https://github.com/cuishuang) https://github.com/spf13/cobra/pull/1625
- Removed `CHANGELOG.md` as it isn't updated - [@​johnSchnake](https://github.com/johnSchnake) https://github.com/spf13/cobra/pull/1634
- Minor typo fix in `shell_completion.md` - [@​danieldn](https://github.com/danieldn) https://github.com/spf13/cobra/pull/1678
- Changed branch name in the cobra generator link to 'main' - [@​skywalker2909](https://github.com/skywalker2909) https://github.com/spf13/cobra/pull/1645
- Fix Command.Context comment by [@​katexochen](https://github.com/katexochen) in https://github.com/spf13/cobra/pull/1639
- Change appropriate links from http:// to https:// where applicable - [@​deining](https://github.com/deining) https://github.com/spf13/cobra/pull/1695
#### Testing & CI ⚙️
- Test on Golang 1.18 - [@​umarcor](https://github.com/umarcor) https://github.com/spf13/cobra/pull/1635
- Use `RICHGO_FORCE_COLOR` - [@​umarcor](https://github.com/umarcor) https://github.com/spf13/cobra/pull/1647
- Adds size labeler GitHub action by [@​jpmcb](https://github.com/jpmcb) in https://github.com/spf13/cobra/pull/1610
- Update `stale-bot` settings - [@​jpmcb](https://github.com/jpmcb) https://github.com/spf13/cobra/pull/1609
#### Beep boop, bot commits 🤖
- Bumped golangci/golangci-lint-action from 3.1.0 to 3.2.0 - [@​dependabot](https://github.com/dependabot) https://github.com/spf13/cobra/pull/1697
- Bump codelytv/pr-size-labeler from 1.8.0 to 1.8.1 - [@​dependabot](https://github.com/dependabot) https://github.com/spf13/cobra/pull/1661
- Bump actions/stale from 1 to 5 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1618
- Bump actions/cache from 2 to 3 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1640
- Bump actions/labeler from 3 to 4 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1620
- Bump golangci/golangci-lint-action from 2 to 3.1.0 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1615
- Bump actions/checkout from 2 to 3 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1619
- Bump github.com/cpuguy83/go-md2man/v2 from 2.0.1 to 2.0.2 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1688
- Bump actions/setup-go from 2 to 3 by [@​dependabot](https://github.com/dependabot) in https://github.com/spf13/cobra/pull/1660
#### Misc 💭
- Use `errors.Is()` to check for errors - [@​Luap99](https://github.com/Luap99) https://github.com/spf13/cobra/pull/1730
- Prefer ReplaceAll instead of Replace(..., -1) by [@​WhyNotHugo](https://github.com/WhyNotHugo) in https://github.com/spf13/cobra/pull/1530
- Add Kubescape to projects - [@​avinashupadhya99](https://github.com/avinashupadhya99) https://github.com/spf13/cobra/pull/1642
- Add Pulumi as a project using cobra by [@​iwahbe](https://github.com/iwahbe) in https://github.com/spf13/cobra/pull/1720
- Add Polygon Edge as a project using Cobra by [@​zivkovicmilos](https://github.com/zivkovicmilos) in https://github.com/spf13/cobra/pull/1672
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**: https://github.com/spf13/cobra/compare/v1.4.0...v1.5.0
### [`v1.4.0`](https://github.com/spf13/cobra/releases/tag/v1.4.0)
[Compare Source](https://github.com/spf13/cobra/compare/v1.3.0...v1.4.0)
### Winter 2022 Release ❄️
Another season, another release!
#### Goodbye viper! 🐍 🚀
The core Cobra library no longer requires Viper and all of its indirect dependencies. This means that Cobra's dependency tree has been drastically thinned! The Viper dependency was included because of the `cobra` CLI generation tool. [This tool has migrated to `spf13/cobra-cli`](https://github.com/spf13/cobra-cli/releases/tag/v1.3.0).
It's *pretty unlikely* you were importing and using **the bootstrapping CLI tool** as part of your application (after all, it's just a tool to get going with core `cobra`).
But if you were, replace occurrences of
"github.com/spf13/cobra/cobra"
with
"github.com/spf13/cobra-cli"
And in your `go.mod`, you'll want to also include this dependency:
github.com/spf13/cobra-cli v1.3.0
Again, the maintainers *do not anticipate* this being a breaking change to users of the core `cobra` library, so minimal work should be required for users to integrate with this new release. Moreover, this means the dependency tree for your application using Cobra should no longer require dependencies that were inherited from Viper. Huzzah! 🥳
If you'd like to read more
- issue: https://github.com/spf13/cobra/issues/1597
- PR: https://github.com/spf13/cobra/pull/1604
#### Documentation 📝
- Update Go Doc link and badge in README: https://github.com/spf13/cobra/pull/1593
- Fix to install command, now targets `@latest`: https://github.com/spf13/cobra/pull/1576
- Added MAINTAINERS file: https://github.com/spf13/cobra/pull/1545
#### Other 💭
- Bumped license year to 2022 in golden files: https://github.com/spf13/cobra/pull/1575
- Added Pixie to projects: https://github.com/spf13/cobra/pull/1581
- Updated labeler for new labeling scheme: https://github.com/spf13/cobra/pull/1613 & syntax fix: https://github.com/spf13/cobra/pull/1624
Shoutout to our awesome contributors helping to make this cobra release possible!!
[@​spf13](https://github.com/spf13) [@​marckhouzam](https://github.com/marckhouzam) [@​johnSchnake](https://github.com/johnSchnake) [@​jpmcb](https://github.com/jpmcb) [@​liggitt](https://github.com/liggitt) [@​umarcor](https://github.com/umarcor) [@​hiljusti](https://github.com/hiljusti) [@​marians](https://github.com/marians) [@​shyim](https://github.com/shyim) [@​htroisi](https://github.com/htroisi)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
CSRBot
requested review from volker.raschek 2024-04-08 06:05:43 +02:00
CSRBot
scheduled this pull request to auto merge when all checks succeed 2024-04-08 06:05:44 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v1.3.0->v1.8.0Release Notes
spf13/cobra (github.com/spf13/cobra)
v1.8.0Compare Source
✨ Features
MarkFlagsOneRequiredAPI for flags which can be used to mark a flag group as required and cause command failure if at least one is not used when invoked.SetErrPrefixandErrPrefixAPIs on theCommandstruct to allow for setting a custom prefix for errors🐛 Bug fixes
🔧 Maintenance
🧪 Testing & CI/CD
✏️ Documentation
Thank you everyone who contributed to this release and all your hard work! Cobra and this community would never be possible without all of you!!!! 🐍
Full Changelog: https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0
v1.7.0Compare Source
✨ Features
bash,zsh,pwsh, &fish: @h4ck3rk3y #1903🐛 Bug fixes
templateimport variable name: @yashLadha #1879🧪 Testing & CI/CD
🔧 Maintenance
stale.yamlmispellings: @enrichman #1863VitessandArewefastyetto projects using cobra: @frouioui #1932✏️ Documentation
MarkFlagsMutuallyExclusiveexample in user guide: @janhn #1904shell_completions.md: @gusega #1907This release contains several long running fixes, improvements to powershell completions, and further optimizations for completions.
Thank you everyone who contributed to this release and all your hard work! Cobra and this community would never be possible without all of you! 🐍
Full changelog: https://github.com/spf13/cobra/compare/v1.6.1...v1.7.0
v1.6.1Compare Source
Bug fixes 🐛
AddGroupisn't called beforeAddCommand(my-sub-command)is executed. This can happen within more complex cobra file structures that have many differentinits to be executed. Now, the check for groups has been moved toExecuteCand provides more flexibility when working with grouped commands - @marckhouzam (and shout out to @aawsome, @andig and @KINGSABRI for a deep investigation into this! 👏🏼)v1.6.0Compare Source
Summer 2022 Release
Some exciting changes make their way to Cobra! Command completions continue to get better and better (including adding
--helpand--versionautomatic flags to the completions list). Grouping is now possible in your help output as well! And you can now use theOnFinalizemethod to cleanup things when all "work" is done. Checkout the full changelog below:Features 🌠
ValidateRequiredFlagsandValidateFlagGroups: @skeetwu #1760--versionflag to help output: @fnickels #1707--helpand--versionflag in completions: @marckhouzam #1813OnFinalizemethod: @yann-soubeyrand #1788InitDefaultcompletionCmdpublic: @gssbzn #1467Deprecation 👎🏼
ExactValidArgsis deprecated (but not being removed entirely). This is abit nuanced, so checkout #1643 for further information and the updateduser_guide.mdon how this may affect you (and how you can take advantage of the correct behavior in the validators): @umarcor #1643Bug fixes 🐛
activeHelplength check syntax: @scop #1762see_alsofor yaml documentation: @zregvart #1771Dependencies 🗳️
gopkg.in/yaml.v3: @tklauser #1766Testing 🤔
action/setup-gocache: @umarcor #1783workflow_dispatchto CI actions: @umarcor #1387Docs ✏️
SetContextdocumentation: @katexochen #1748go installfor binary: @marckhouzam #1726Misc 💭
exemptyaml keys: @jpmcb #1800Note: Per #1804, we will be moving away from "seasonal" releases and doing more generic point release targets. Continue to track the milestones and issues in the
spf13/cobraGitHub repository for more information!Great work everyone! Cobra would never be possible without your contributions! 🐍
Full Changelog: https://github.com/spf13/cobra/compare/v1.5.0...v1.6.0
v1.5.0Compare Source
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 https://github.com/spf13/cobra/pull/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! https://github.com/spf13/cobra/blob/master/active_help.md
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! https://github.com/spf13/cobra/pull/1654 Let's say you have a
usernameflag that MUST be partnered with apasswordflag. Well, now, you can enforce those as being required together: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 👀
Documentation 📝
CHANGELOG.mdas it isn't updated - @johnSchnake https://github.com/spf13/cobra/pull/1634shell_completion.md- @danieldn https://github.com/spf13/cobra/pull/1678Testing & CI ⚙️
RICHGO_FORCE_COLOR- @umarcor https://github.com/spf13/cobra/pull/1647stale-botsettings - @jpmcb https://github.com/spf13/cobra/pull/1609Beep boop, bot commits 🤖
Misc 💭
errors.Is()to check for errors - @Luap99 https://github.com/spf13/cobra/pull/1730Shoutout 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: https://github.com/spf13/cobra/compare/v1.4.0...v1.5.0
v1.4.0Compare Source
Winter 2022 Release ❄️
Another season, another release!
Goodbye viper! 🐍 🚀
The core Cobra library no longer requires Viper and all of its indirect dependencies. This means that Cobra's dependency tree has been drastically thinned! The Viper dependency was included because of the
cobraCLI generation tool. This tool has migrated tospf13/cobra-cli.It's pretty unlikely you were importing and using the bootstrapping CLI tool as part of your application (after all, it's just a tool to get going with core
cobra).But if you were, replace occurrences of
with
And in your
go.mod, you'll want to also include this dependency:Again, the maintainers do not anticipate this being a breaking change to users of the core
cobralibrary, so minimal work should be required for users to integrate with this new release. Moreover, this means the dependency tree for your application using Cobra should no longer require dependencies that were inherited from Viper. Huzzah! 🥳If you'd like to read more
Documentation 📝
@latest: https://github.com/spf13/cobra/pull/1576Other 💭
Shoutout to our awesome contributors helping to make this cobra release possible!!
@spf13 @marckhouzam @johnSchnake @jpmcb @liggitt @umarcor @hiljusti @marians @shyim @htroisi
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.
ed7ca3fb64to5251b3bbc9