4.2 KiB
4.2 KiB
Revision history for butcher
2.0.0.0 -- May 2023
Large internal refactor including some breaking API changes.
- Support ghc-9.0 and ghc-9.2
- Add the "Applicative" interface in addition to the existing "Monadic" one.
This is slightly less expressive but conceptually cleaner/safer (and its
implementation is nicer). For best readability you may need
ApplicativeDo
. - The applicative interface is NOT finished and the test-suite does not cover it.
- Add the
traverseBarbie
construct to elegantly define a parser for a config data-structure.
Introduces a dependency on thebarbies
library. - Refactor the module structure a bit, and change the API of the central
runCmdParser
function. It now returns aPartialParseInfo
. Essentially,runCmdParser
is a combination of the previousrunCmdParser
and the previoussimpleCompletion
. This API design is a curious advantage to laziness: Returning a complex struct is harmless as fields that the user does not use won't be evaluated. The downside is that the core function now looks like a complex beast, but the upside is that there is no need to expose multiple functions that are supposed to be chained in a certain way to get all functionality (if desired), and we still can provide simpler versions that are just projections on thePartialParseInfo
. - Remove deprecated functions
peekCmdDesc
is now guaranteed to yield the proper fullCmdDesc
value for the current command or child-command.- Remove the
mainFromCmdParserWithHelpDesc
function, because it is redundant given the new semantics ofpeekCmdDesc
. - Stop support for an anti-feature: The implicit merging of multiple sub-commands definitions with the same name.
- Internal refactor: The monadic interface now uses two-phase setup: First step is to create a full CommandDesc value, second is running the parser on input while the CommandDesc is chained along
1.3.3.2 -- June 2020
- Support ghc-8.10
- Drop support for ghc < 8.4
- Fix a somewhat hidden issue in the cabal file
- Add support for building / testing via haskell.nix nixpkgs overlay
1.3.3.1 -- April 2020
- Fix a cabal file mistake
1.3.3.0 -- April 2020
- Fix bug with params with default when parsing from commandline
- Add the
descendDescTo
function
1.3.2.3 -- June 2019
- Fix broken build when using deque>=0.3
1.3.2.2 -- June 2019 (broken, disabled on hackage)
- Fix too-shallow descriptions on siblings for partial parses returned for interactive usage
1.3.2.1 -- October 2018
- Adapt/Use latest version of
deque
to fix ghc-8.6 problems
1.3.2.0 -- October 2018
- Fix for simpleCompletion
- Expose some bindings that were forgotten in previous release
- Bounds fixed for ghc-8.6 (also via revision in 1.3.1.1)
1.3.1.1 -- April 2018
- Fixup version bound
1.3.1.0 -- April 2018
- Add/Expose two more functions: addAlternatives and varPartDesc
1.3.0.1 -- April 2018
- Support ghc-8.4
- Drop support for ghc<8
1.3.0.0 -- February 2018
- Experimental: Hidden commandparts (do not appear in help)
- Experimental: Bash completion
- Add addHelpCommandWith to support user-defined column count
- Fix help document printing (ribbons)
- Fix completion behaviour
1.2.1.0 -- November 2017
- Fix bug in 'ppUsageWithHelp'
- some utilities for interactive usage in new module
UI.Butcher.Monadic.Interactive
1.2.0.0 -- October 2017
- Rename some
Monadic.Param.*
, deprecate old versions.addReadParam
->addParamRead
addReadParamOpt
->addParamReadOpt
addStringParam
->addParamString
addStringParamOpt
->addParamStringOpt
addStringParams
->addParamStrings
addRestOfInputStringParam
->addParamRestOfInput
- Add functions
addParamNoFlagString
,addParamNoFlagStringOpt
,addParamNoFlagStrings
- Fix flag parsing behaviour (ignore initial spaces)
1.1.1.0 -- October 2017
- Add
addNullCmd
function that descends into childcommand on an epsilon match - Add
addStringParams
function that reads all remaining words
1.1.0.2 -- September 2017
- Improve 'usage' pretty-printing
1.1.0.1 -- August 2017
- Adapt for ghc-8.2
1.1.0.0 -- May 2017
- First version. Released on an unsuspecting world.