v1.3.0 2024-05-23 La Forclaz (VS)

v1.2.0 2023-04-10 La Forclaz (VS)

v1.1.1 2022-03-23 La Forclaz (VS)

v1.1.0 2022-02-06 La Forclaz (VS)

New Cmd module and deprecation of the Term evaluation interface

This version of cmdliner deprecates the Term.eval* evaluation functions and Term.info information values in favor of the new Cmdliner.Cmd module.

The Cmd module generalizes the existing sub command support to allow arbitrarily nested sub commands each with its own man page and command line syntax represented by a Term.t value.

The mapping between the old interface and the new one should be rather straightforward. In particular Term.info and Cmd.info have exactly the same semantics and fields and a command value simply pairs a command information with a term.

However in this transition the following things are changed or added:

Finally be aware that if you replace, in an existing tool, an encoding of sub commands as positional arguments you will effectively break the command line compatibility of your tool since options can no longer be specified before the sub commands, i.e. your tool synopsis moves from:

tool cmd [OPTION]… SUBCMD [ARG]…

to

tool cmd SUBCMD [OPTION]… [ARG]…

Thanks to Rudi Grinberg for prototyping the feature in #123.

UTF-8 manpage support

It is now possible to write UTF-8 encoded text in your doc strings and man pages.

The man page renderer used on --help defaults to mandoc if available, then uses groff and then defaults to nroff. Starting with mandoc catches macOS whose groff as of 11.6 still doesn't support UTF-8 input and struggles to render some Unicode characters.

The invocations were also tweaked to remove the -P-c option which entails that the default pager less is now invoked with the -R option.

If you install UTF-8 encoded man pages output via --help=groff, in man directories bear in mind that these pages will look garbled on stock macOS (at least until 11.6). One way to work around is to instruct your users to change the NROFF definition in /private/etc/man.conf from:

NROFF       /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c

to:

NROFF       /usr/bin/mandoc -Tutf8 -c

Thanks to Antonin Décimo for his knowledge and helping with these mangnificent intricacies (#27).

v1.0.4 2019-06-14 Zagreb

v1.0.3 2018-11-26 Zagreb

v1.0.2 2017-08-07 Zagreb

v1.0.1 2017-08-03 Zagreb

v1.0.0 2017-03-02 La Forclaz (VS)

IMPORTANT The Arg.converter type is deprecated in favor of the Arg.conv type. For this release both types are equal but the next major release will drop the former and make the latter abstract. All users are kindly requested to migrate to use the new type and only via the new Arg.[p]conv and Arg.conv_{parser,printer} functions.

End-user visible changes

The following changes affect the end-user behaviour of all binaries using cmdliner.

Doc specification improvements and fixes

Doc language sanitization

This release tries to bring sanity to the doc language. This may break the rendering of some of your man pages. Thanks to Gabriel Scherer, Ivan Gotovchits and Nicolás Ojeda Bär for the feedback.

v0.9.8 2015-10-11 Cambridge (UK)

v0.9.7 2015-02-06 La Forclaz (VS)

v0.9.6 2014-11-18 La Forclaz (VS)

v0.9.5 2014-07-04 Cambridge (UK)

v0.9.4 2014-02-09 La Forclaz (VS)

v0.9.3 2013-01-04 La Forclaz (VS)

v0.9.2 2012-08-05 Lausanne

v0.9.1 2012-03-17 La Forclaz (VS)

Incompatible API changes:

v0.9.0 2011-05-27 Lausanne