Skip to content

Latest commit

 

History

History
103 lines (69 loc) · 3.4 KB

CHANGELOG.org

File metadata and controls

103 lines (69 loc) · 3.4 KB

2023-05-19

Version 0.5.0 has been tagged.

New conditions added:

  • CLINGON:BASE-ERROR
  • CLINGON:EXIT-ERROR (sub-class of CLINGON:BASE-ERROR)

New generic functions added:

  • CLINGON:HANDLE-ERROR

The CLINGON:BASE-ERROR condition can be used as the base for new user-defined conditions, which can be signalled by command handlers.

Whenever a CLINGON:BASE-ERROR condition is signalled, the CLINGON:RUN method will invoke CLINGON:HANDLE-ERROR, which allows developers to provide custom logic for reporting and handling of app specific errors.

Make sure to check the Custom Errors section from the documentation for some examples on how to create user-defined conditions.

The utility function CLINGON:EXIT will not exit if the REPL is connected via SLY or SLIME, which allows for better interactive testing of the final application.

2023-01-24

clingon version 0.4.0 has been tagged.

  • Added Github Actions to automatically test the clingon system.
  • Exported CLINGON:PARSE-INTEGER-OR-LOSE
  • Export symbols to control the default list of options for newly created commands. See issue #4
  • CLINGON:FIND-OPTION can now search for options by their keys
  • CLINGON:GETOPT returns three values – the option value, a boolean indicating whether the option was set, and the command which provided the option.
  • If --version is specified for any command, then clingon will try to find a parent command with an associated version string, if the sub-command does not provide it’s own version string.
  • Added CLINGON:GETOPT* which will return the first value from the command’s lineage, for which the option was defined and set.
  • Added CLINGON:IS-OPT-SET-P* predicate
  • Additional tests related to CLINGON:GETOPT and CLINGON:GETOPT*
  • Added support for persistent options. A persistent option is an option which is propagated from parent to all sub-commands. Please refer to the documentation for more details and examples.
  • CLINGON:PRINT-DOCUMENTATION can generate the tree representation for commands in Dot format.

This is how the generated tree for the clingon-demo app looks like.

./images/clingon-demo-tree.png

2022-03-25

Added support for pre-hook and post-hook actions for commands.

The CLIGON:COMMAND class now accepts the :pre-hook and :post-hook initargs, which allows specifying a function to be invoked before and after the respective handler of the command is executed.

The generic function CLINGON:APPLY-HOOKS have been added, which takes care of applying the pre-hook and post-hook hooks.

Version of clingon system has been bumped to 0.3.5.

2022-03-24

Add support for grouping related options into categories.

The :category initarg for CLINGON:OPTION is used for specifying the option’s category.

New option kind has been added - :list/filepath.

The clingon-demo and clingon-intro binaries are now installed into the bin/ directory.

Additional utility functions have been implemented as part of the CLINGON.UTILS package.

clingon system updated to version 0.3.3.

2021-12-26

clingon system updated to version v0.3.1.

Added support for FILEPATH option kinds.

2021-11-19

Added support for Zsh completions.

clingon system version bumped to v0.3.0.

2021-07-26

Initial release of clingon version v0.1.0.