All Versions
40
Latest Version
Avg Release Cycle
91 days
Latest Release
17 days ago

Changelog History
Page 1

  • v2.0.0

    November 21, 2019

    🔀 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 NewStringSlice and NewIntSlice for creating their related types
    • ➕ Added Float64SliceFlag for unmarshaling a list of floats from the user
    • ➕ Added Context.Lineage to get all contexts from current up to global
    • Added Context.LocalFlagNames to get the flag names from only the current context
    • ➕ Added BoolFlag.Value to handle both default-false and default-true
    • ➕ Added IsSet method to the Flag interface which allows us to detect whether or not a flag has been set

    🔄 Changed

    • Occurrences of []Command have been changed to []*Command
    • Occurrences of []cli.Flag have been changed to []*cli.Flag
    • Context.FlagNames now returns all flags in the context lineage
    • Context.IsSet now considers the full context lineage

    ✂ Removed

    • ✂ Removed Global* flags since all flags are now global
      • when updating, replace GlobalBool with Bool
      • and GlobalInt with Int
      • and GlobalString with String
      • and so on for any other global flags
    • ✂ Removed Context.Parent method, as this is now available via Context.Lineage
      • when updating, replace Context.Parent() with Context.Lineage()[1]
    • ✂ Removed the App.Author and App.Email
      • these have been replaced with the Authors []*Author field
    • ✂ Removed the Command.ShortName field
      • when updating, replace ShortName: "i" with Aliases: []string{"i"}
    • ✂ 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 Action func signature
    • ✂ Removed BoolTFlag and related code, as this is now available via BoolFlag.Value
  • v2.0.0-alpha.2

    September 15, 2019

    🚀 This is a pre-release meant for internal testing purposes. Please do not use this until you really know what you are doing.

  • v2.0.0-alpha.1

    September 15, 2019
  • v2.0.0-alpha

    September 13, 2019

    🚀 This is a pre-release meant for internal testing purposes. Please do not use this until you really know what you are doing.

  • v1.22.2

    November 21, 2019

    🛠 Fixed

    🔄 Changed

  • v1.22.1

    September 11, 2019

    🚀 🚧 Watch out! There's a known regression in this release! #850 🚧

    🛠 Fixed

    🔄 Changed

  • v1.22.0

    September 07, 2019

    🚀 🚧 Watch out! There's a known regression in this release! #850 🚧

    🛠 Fixed

    🔄 Changed

    ➕ Added

  • v1.21.0

    August 02, 2019

    🛠 Fixed

    🔄 Changed

    ➕ Added

  • v1.20.0

    August 11, 2017

    🛠 Fixed

    • HandleExitCoder is now correctly iterates over all errors in a MultiError. The exit code is the exit code of the last error or 1 if there are no ExitCoders in the MultiError.
    • 🛠 Fixed YAML file loading on Windows (previously would fail validate the file path)
    • Subcommand Usage, Description, ArgsUsage, OnUsageError correctly propogated
    • ErrWriter is now passed downwards through command structure to avoid the need to redefine it
    • Pass Command context into OnUsageError rather than parent context so that all fields are avaiable
    • 🖨 Errors occuring in Before funcs are no longer double printed
    • 👉 Use UsageText in the help templates for commands and subcommands if defined; otherwise build the usage as before (was previously ignoring this field)
    • IsSet and GlobalIsSet now correctly return whether a flag is set if a program calls Set or GlobalSet directly after flag parsing (would previously only return true if the flag was set during parsing)

    🔄 Changed

    • No longer exit the program on command/subcommand error if the error raised is not an OsExiter. This exiting behavior was introduced in 1.19.0, but was determined to be a regression in functionality. See the PR for discussion.

    ➕ Added

    • CommandsByName type was added to make it easy to sort Commands by name, alphabetically
    • altsrc now handles loading of string and int arrays from TOML
    • 👌 Support for definition of custom help templates for App via CustomAppHelpTemplate
    • 👌 Support for arbitrary key/value fields on App to be used with CustomAppHelpTemplate via ExtraInfo
    • HelpFlag, VersionFlag, and BashCompletionFlag changed to explictly be cli.Flags allowing for the use of custom flags satisfying the cli.Flag interface to be used.
  • v1.19.1

    November 22, 2016

    🛠 Fixed

    • 🛠 Fixes regression introduced in 1.19.0 where using an ActionFunc as the Action for a command would cause it to error rather than calling the function. Should not have a affected declarative cases using func(c *cli.Context) err).
    • Shell completion now handles the case where the user specifies --generate-bash-completion immediately after a flag that takes an argument. Previously it call the application with --generate-bash-completion as the flag value.