Error (_, e) term evaluation results are formatted. Instead of treating e as text, treat it as formatted lines.Pervasives deprecation.Makefile bootstrap build reproducible. Thanks to Thomas Leonard for the patch.Term.with_used_args. Thanks to Jeremie Dimino for the patch.Makefile bootstrap build in opam file.Makefile bootstrap build.Makefile from the distribution.Makefile to build and install cmdliner without topkg and opam .install files. Helps bootstraping opam in OS package managers. Thanks to Hendrik Tews for the patches.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.
Term.exit[_status] and Term.exit_status_of[_status]_result. improves composition with Pervasives.exit.Term.term_result and Term.cli_parse_result improves composition with terms evaluating to result types.Arg.parser_of_kind_of_string.Arg.pos_left (see #76 for details).Term.man_format in favor of Arg.man_format.--cmdliner option for library use. This is unused for now but will be in the future.The following changes affect the end-user behaviour of all binaries using cmdliner.
--help[=FMT] option. FMT no longer defaults to pager if unspecified. It defaults to the new value auto which prints the help as pager or plain whenever the TERM environment variable is dumb or undefined (#43). At the API level this changes the signature of the type Term.ret and values Term.ret, Term.man_format (deprecated) and Manpage.print to add the new `Auto case to manual formats. These are now represented by the Manpage.format type rather than inlined polyvars.?envs optional argument to Term.info. Documents environment variables that influence a term's evaluation and automatically integrate them in the manual.?exits optional argument to Term.info. Documents exit statuses of the program. Use Term.default_exits if you are using the new Term.exit functions.?man_xrefs optional argument to Term.info. Documents references to other manpages. Automatically formats a SEE ALSO section in the manual.Manpage.escape to escape a string from the documentation markup language.Manpage.s_* constants for standard man page section names. `Blocks case to Manpage.blocks to allow block splicing (#69). This avoids having to concatenate block lists at the toplevel of your program.Arg.env_var, change default environment variable section to the standard ENVIRONMENT manual section rather than ENVIRONMENT VARIABLES. If you previously manually positioned that section in your man page you will have to change the name. See also next point.NAME section can now also be overriden manually.an macros directly in the man page via .mso this makes man pages self-describing and avoids having to call groff with the -man option.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.
$(var) that are mentioned in the docs ($(docv), $(opt), etc.) and the markup directives $({i,b},text). Any other unknown $(var) will generate errors on standard error during documentation generation.$({i,b},text) treat text as is, modulo escapes; see next point.$, (, ) and \ can respectively be escaped by \$, \(, \) and \\. Escaping $ and \ is mandatory everywhere. Escaping ) is mandatory only in markup directives. Escaping ( is only here for your symmetric pleasure. Any other sequence of character starting with a \ is an illegal sequence.$(mname) and $(tname) are now marked up with bold when substituted. If you used to write $(b,$(tname)) this will generate an error on standard output, since $ is not escaped in the markup directive. Simply replace these by $(tname).Manpage.block type which can break existing programs. Thanks to Guillaume Bury for suggesting and help.env optional argument to the Arg.info function which can break existing programs.$(opt) can be used to refer to the name of the option being documented and $(env) for the name of the option's the environment variable.Term.pure in favor of Term.const.$(undef) would be turned into undef.Not_found exceptions into Invalid_arg. These can be triggered by client programming errors (e.g. an unclosed variable in a documentation string).ocamlfind. The package no longer depends on ocamlfind. Thanks to Louis Gesbert for the patch.tar -xvzf archive.tgz or tar -xvzfarchive.tgz. Previously this resulted in an error, all the short flags had to be specified separately. Backward compatible in the sense that only more command lines are parsed. Thanks to Hugo Heuzard for the patch.Arg.doc_{quote,alts,alts_enum}, documentation string helpers.Term.eval_peek_opts function for advanced usage scenarios.Arg.enum now raises Invalid_argument if the enumeration is empty.Oo (was used to get program uuid).$MANPAGER aswell. Thanks to Raphaël Proust for the patch.SYNOPSIS sections.Arg.pos_right.$(tname) and $(mname) can be used in a term's man page to respectively refer to the term's name and the main term name.Manpage.print.Term.man_format, to facilitate the definition of help commands.Incompatible API changes:
Term.eval and Term.eval_choice changed to make it more regular: the given term and its info must be tupled together even for the main term and the tuple order was swapped to make it consistent with the one used for arguments.