Releases: urfave/cli
Releases · urfave/cli
Release 2.0.0
V2 was merged in #892, which included the work of all of these contributors: @asahasrabuddhe, @meatballhat, @jszwedko, @lynncyrin, @AudriusButkevicius, @saschagrunert, @rliebz, @johnweldon, @nlewo, @grubernaut, @OneOfOne, @VMitov, @cbranch, @marwan-at-work, @uudashr, @bfreis
Discuss the state of V2 here => #826
Added
- Added
NewStringSliceandNewIntSlicefor creating their related types - Added
Float64SliceFlagfor unmarshaling a list of floats from the user - Added
Context.Lineageto get all contexts from current up to global - Added
Context.LocalFlagNamesto get the flag names from only the current context - Added
BoolFlag.Valueto handle both default-false and default-true - Added
IsSetmethod to theFlaginterface which allows us to detect whether or not a flag has been set
Changed
- Occurrences of
[]Commandhave been changed to[]*Command - Occurrences of
[]cli.Flaghave been changed to[]*cli.Flag Context.FlagNamesnow returns all flags in the context lineageContext.IsSetnow considers the full context lineage
Removed
- Removed
Global*flags since all flags are now global- when updating, replace
GlobalBoolwithBool - and
GlobalIntwithInt - and
GlobalStringwithString - and so on for any other global flags
- when updating, replace
- Removed
Context.Parentmethod, as this is now available viaContext.Lineage- when updating, replace
Context.Parent()withContext.Lineage()[1]
- when updating, replace
- Removed the
App.AuthorandApp.Email- these have been replaced with the
Authors []*Authorfield
- these have been replaced with the
- Removed the ability to specify multiple entries in the
Command.Namefield- when updating, replace
Name: "a, b, c"withName: "a", Aliases: []string{"b", "c"}
- when updating, replace
- Removed the
Command.ShortNamefield- when updating, replace
ShortName: "i"withAliases: []string{"i"}
- when updating, replace
- Removed all
Context.Global*methods, as the non-global versions now traverse up
the context lineage automatically. - Removed the ability to specify
&StringSlice{...string}or&IntSlice{...int}. - Removed adapter code for deprecated
Actionfunc signature - Removed
BoolTFlagand related code, as this is now available viaBoolFlag.Value
Release 1.22.2
Fixed
- Fix v1.21.0 pass through regression in urfave/cli/pull/872 via @lynncyrin
- Fix infinite loop when parsing invalid flags for apps with short option handling in urfave/cli/pull/911 via @rliebz
- Fix zsh autocomplete in urfave/cli/pull/906 via @gnowxilef
- Fix typo in
DocGenerationFlag.TakesValue()docstring in urfave/cli/pull/902 via @benmoose - Avoid panic for missing flag value in urfave/cli/pull/893 via @rliebz
Changed
- Simplify
HelpPrinterandCustomHelpPrinterbehaviors in urfave/cli/pull/912 via @rliebz
Release 2.0.0 Alpha 2
This is a pre-release meant for internal testing purposes. Please do not use this until you really know what you are doing.
Release 2.0.0 Alpha
This is a pre-release meant for internal testing purposes. Please do not use this until you really know what you are doing.
Release 1.22.1
🚧 Watch out! There's a known regression in this release! #850 🚧
Fixed
- Hide output of hidden commands on man pages in urfave/cli/pull/889 via @crosbymichael
- Don't generate fish completion for hidden commands urfave/cli/pull/891 via @saschagrunert
- Using short flag names for required flags throws an error in urfave/cli/pull/890 via @asahasrabuddhe
Changed
- Remove flag code generation logic, legacy python test runner in urfave/cli/pull/883 via @asahasrabuddhe
- Enable Go Modules support, drop support for
Go 1.10add support forGo 1.13in urfave/cli/pull/885 via @asahasrabuddhe
Release 1.22.0
🚧 Watch out! There's a known regression in this release! #850 🚧
Fixed
- Fix Subcommands not falling back to
app.ExitEventHandlerin urfave/cli/pull/856 via @FaranIdo
Changed
- Clarify that altsrc supports both TOML and JSON in urfave/cli/pull/774 via @whereswaldon
- Made the exit code example more clear in urfave/cli/pull/823 via @xordspar0
- Removed the use of python for internal flag generation in urfave/cli/pull/836 via @asahasrabuddhe
- Changed the supported go versions to
1.10,1.11,1.12in urfave/cli/pull/843 via @lafriks - Changed the v1 releases section in the readme in urfave/cli/pull/862 via @russoj88
- Cleaned up go modules in urfave/cli/pull/874 via @saschagrunert
Added
- Added
UseShortOptionHandlingfor combining short flags in urfave/cli/pull/735 via @rliebz - Added support for flags bash completion in urfave/cli/pull/808 via @yogeshlonkar
- Added the
TakesFileindicator to flag in urfave/cli/pull/851 via @saschagrunert - Added fish shell completion support in urfave/cli/pull/848 via @saschagrunert
Release 1.21.0
🚧 Watch out! There's a known regression in this release! #850 🚧
Fixed
- Fix using "slice" flag types with
EnvVarin urfave/cli/pull/687 via @joshuarubin - Fix regression of
SkipFlagParsingbehavior in urfave/cli/pull/697 via @jszwedko - Fix handling
ShortOptionsandSkipArgReorderin urfave/cli/pull/686 via @baude - Fix args reordering when bool flags are present in urfave/cli/pull/712 via @windler
- Fix parsing of short options in urfave/cli/pull/758 via @vrothberg
Added / Changed
- Added "required flags" support in urfave/cli/pull/819 via @lynncyrin
- Cleaned up help output in urfave/cli/pull/664 via @maguro
- Case is now considered when sorting strings in urfave/cli/pull/676 via @rliebz
- Backport JSON
InputSourceto v1 in urfave/cli/pull/598 via @jszwedko - Allow more customization of flag help strings in urfave/cli/pull/661 via @rliebz
- Allow custom
ExitErrorhandler function in urfave/cli/pull/628 via @phinnaeus - Allow loading a variable from a file in urfave/cli/pull/675 via @jmccann
- Allow combining short bool names in urfave/cli/pull/684 via @baude
cli v1.19.1
Fixed
- Fixes regression introduced in 1.19.0 where using an
ActionFuncas
theActionfor a command would cause it to error rather than calling the
function. Should not have a affected declarative cases usingfunc(c *cli.Context) err). - Shell completion now handles the case where the user specifies
--generate-bash-completionimmediately after a flag that takes an argument.
Previously it call the application with--generate-bash-completionas the
flag value.
cli v1.19.0
Added
FlagsByNamewas added to make it easy to sort flags (e.g.sort.Sort(cli.FlagsByName(app.Flags)))- A
Descriptionfield was added toAppfor a more detailed description of
the application (similar to the existingDescriptionfield onCommand) - Flag type code generation via
go generate - Write to stderr and exit 1 if action returns non-nil error
- Added support for TOML to the
altsrcloader SkipArgReorderwas added to allow users to skip the argument reordering.
This is useful if you want to consider all "flags" after an argument as
arguments rather than flags (the default behavior of the stdlibflag
library). This is backported functionality from the removal of the flag
reordering in the unreleased version
2- For formatted errors (those implementing
ErrorFormatter), the errors will
be formatted during output. Compatible withpkg/errors.
Changed
- Raise minimum tested/supported Go version to 1.2+
Fixed
- Consider empty environment variables as set (previously environment variables
with the equivalent of""would be skipped rather than their value used). - Return an error if the value in a given environment variable cannot be parsed
as the flag type. Previously these errors were silently swallowed. - Print full error when an invalid flag is specified (which includes the invalid flag)
App.Writerdefaults tostdoutwhennil- If no action is specified on a command or app, the help is now printed instead of
panicing App.Metadatais initialized automatically now (previously wasnilunless initialized)- Correctly show help message if
-his provided to a subcommand context.(Global)IsSetnow respects environment variables. Previously it
would returnfalseif a flag was specified in the environment rather than
as an argument- Removed deprecation warnings to STDERR to avoid them leaking to the end-user
altsrcs import paths were updated to usegopkg.in/urfave/cli.v1. This
fixes issues that occurred whengopkg.in/urfave/cli.v1was imported as well
asaltsrcwhere Go would complain that the types didn't match
cli v1.18.1
Fixed
- Removed deprecation warnings to STDERR to avoid them leaking to the end-user (backported)