1.816   2021-08-06  Released-By: PERLANCAR; Urgency: medium

	- Add missing dependency to ColorThemeRole::ANSI (GH#1).

1.815   2021-07-11  Released-By: PERLANCAR; Urgency: medium

	- [ux] Provide key to common options to be able to group them in
	  usage line (ref: Perinci::Sub::To::CLIDocData 0.298).

1.814   2021-05-07  Released-By: PERLANCAR; Urgency: medium

	- Adjust to new BorderStyle and ColorTheme specification (2.x)
	  (resolves RT#135341).

1.813   2019-04-15  Released-By: PERLANCAR

	- Observe argument spec property 'slurpy' in addition to 'greedy'
	  (Rinci 1.1.88).

1.812   2018-05-20  Released-By: PERLANCAR

	- Adjust to Perinci::CmdLine::Base 1.812 (add hook:
	  before_parse_argv). Synchronize version number with ::Base.

1.770   2017-07-31  Released-By: PERLANCAR

	- [Incompatible change] Change per_arg_yaml default from 1 to 0 to
	  be compatible with Perinci::CmdLine::Lite.

1.76    2017-07-14  Released-By: PERLANCAR

	- No functional changes since last dev release.

1.75_001 2017-07-12  Released-By: PERLANCAR

	- Update to Perinci::CmdLine::Base 1.75_001 which handles logger
	  initialization using Log::ger::App. We remove dependency to

	- [Removed] No longer recognize log_any_app attribute or
	  per-subcommand default_log/log_any_app.

1.74    2017-07-10  Released-By: PERLANCAR

	- No functional changes.

	- Replace Log::Any with Log::ger.

1.73    2016-12-15  Released-By: PERLANCAR

	- Observe default=>1 in 'dry_run' feature property in Rinci
	  function metadata.

1.72    2016-12-15  Released-By: PERLANCAR

	- Observe default_dry_run (Perinci::CmdLine::Base 1.65).

1.71    2016-07-20  Released-By: PERLANCAR

	- No functional changes.

	- [dist] Bump prereq versions to force upgrade:
	  Perinci::CmdLine::Base to 1.56.

1.70    2016-06-12  Released-By: PERLANCAR

	- No functional changes.

	- [dist] Bump prereq versions to force installing of updated
	  Data::Sah 0.82+: Perinci::Access::Perl -> 0.87,
	  Perinci::Access::Schemeless -> 0.87, Perinci::Sub::Wrapper ->
	  0.83, Perinci::Tx::Manager -> 0.56.

1.69    2016-03-16  Released-By: PERLANCAR

	- No functional changes.

	- Replace JSON with JSON::MaybeXS.

1.68    2016-03-13  Released-By: PERLANCAR

	- No functional changes.

	- Bump prereq version Data::Unixish to 1.54 [RT#112948].

1.67    2016-02-26  Released-By: PERLANCAR

	- Adjust to Perinci::CmdLine::Base 1.51 (support for

1.66    2016-02-04  Released-By: PERLANCAR

        - Bump prereq version Test::Perinci::CmdLine -> 1.38.

1.65    2016-01-21  Released-By: PERLANCAR

	- Bump prereq version Test::Perinci::CmdLine -> 1.33.

1.64    2016-01-20  Released-By: PERLANCAR

	- No functional changes.

	- Bump prereq version to force updates: Test::Perinci::CmdLine 1.32,
          Perinci::Sub::Wrapper 0.80.

1.63    2016-01-19  Released-By: PERLANCAR

	- No functional changes.

	- Bump prereq version to force update: Log::Any::App to 0.52

1.62    2016-01-14  Released-By: PERLANCAR

	- Tweak how utf8 enabling is determined.

	- Bump prereq version Log::Any::IfLOG to 0.07.

1.61    2015-12-09  Released-By: PERLANCAR

	- No functional changes.

	- Bump prereq version Perinci::CmdLine::Base 1.33 -> 1.42.

	- Bump prereq version Test::Perinci::CmdLine 1.25 -> 1.31 [CT].

1.60    2015-10-20  Released-By: PERLANCAR

	- No functional changes.

	- To reduce deps, make indenting of columns in --help --verbose
	  optional, so we don't have to deps require (only recommends) on

1.59    2015-09-29  Released-By: PERLANCAR

        - [Bugfix] Fix --naked-res.

        - Adjust to Test::Perinci::CmdLine 1.25.

1.58    2015-09-18  Released-By: PERLANCAR

	- Add result_naked common option like in Perinci::CmdLine::Lite.

1.57    2015-09-15  Released-By: PERLANCAR

	- [ux] Prefix error message with program name.

1.56    2015-09-03  Released-By: PERLANCAR

	- No functional changes.

	- [dist] Move spec prereqs from RuntimeRequires to
	  DevelopRecommends to reduce deps but still allow indicating spec

1.55    2015-08-18  Released-By: PERLANCAR

	- No functional changes.

	- Switch from Log::Any to Log::Any::IfLOG.

1.54    2015-07-15  Released-By: PERLANCAR

	- Show dynamic generator modules' (x.dynamic_generator_modules)
	  version in --version.

1.53    2015-07-08  Released-By: PERLANCAR

        - Adjust to Perinci::CmdLine::Base 1.21 (add skip_format attribute).

        - Update Rinci result metadata attributes interpreted by this module:
          x.perinci.cmdline._skip_format -> cmdline.skip_format.

1.52    2015-06-30  Released-By: PERLANCAR

	- Adjust to Perinci::CmdLine::Base 1.17 (extra_urls_for_version).

1.51    2015-06-11  Released-By: PERLANCAR

	- No functional changes.

        - Use Test::Perinci::CmdLine test suite.

1.50    2015-04-11  Released-By: PERLANCAR

	- Add common option: --no-env like in PC:Lite.

1.49    2015-04-09  Released-By: PERLANCAR

	- [Removed feature] Remove bin/peri-func-usage because it's not
          maintained and I'm not using it.

	- Adjust to Perinci::CmdLine::Base 1.06 (renamed run_* methods to

1.48    2015-03-22  Released-By: PERLANCAR

	- No functional changes.

	- [doc] Add more attractive Synopsis, link to tutorial blog series.

1.47    2015-03-10  Released-By: PERLANCAR

	- Change result metadata 'result_format_options' ->

1.46    2015-02-26  Released-By: PERLANCAR

	- [Bugfix] Pass subcommands hash to Perinci::CmdLine::Help even
	  though subcommands list is dynamic (coderef).

1.45    2015-02-06  Released-By: PERLANCAR

        - Rename module/dist from Perinci::CmdLine to Perinci::CmdLine::Classic
          to allow us to refer to it more clearly.

        - Enable --json unconditionally, but remove --yaml and --perl so we are
          more like ::Lite.

1.44    2015-01-11  Released-By: PERLANCAR

	- No functional changes.

	- Adjust to Perinci::CmdLine::Base 0.74+ (old profile syntax in IOD
	  section name no longer supported) [CT].

1.43    2015-01-07  Released-By: PERLANCAR

	- Update old code (_err is no more) and change help hook interface
	  (now pass $r).

1.42    2015-01-03  Released-By: PERLANCAR

        - No functional changes.

        - Remove unneeded dep [RT#101270].

1.41    2014-12-19  Released-By: PERLANCAR

        - No functional changes.

        - Adjust to new pericmd-base (0.68, refactored common bits of default
          common_opts to ::Base to reduce code duplication).

1.40    2014-12-11  Released-By: PERLANCAR

        - No functional changes.

        - Use new name of renamed modules: SHARYANTO::Role::ColorTheme ->
          Color::Theme::Role::ANSI, SHARYANTO::Role::TermAttrs ->

1.39    2014-12-02  Released-By: PERLANCAR

	- No functional changes.

	- Switch Perinci::Sub::To::{CLIOptSpec,CLIDocData}.

1.38    2014-11-21  Released-By: PERLANCAR

        - Use Perinci::Sub::To::CLIOptSpec to avoid code duplication and produce
          nicer list of options for displaying in --help.

        - Tweak --help output.


        - Like in Perinci::CmdLine::Lite, now only provide --no-config instead
          of also --noconfig.

1.37    2014-11-09  Released-By: PERLANCAR

	- [Incompatible change] Rename attribute 'log_any_app' to 'log' for
	  compatibility with Perinci::CmdLine::Lite, old name is still
	  provided for backward compatibility reason but will be removed in
	  the future.

	- Document about x.hint.result_binary.

1.36    2014-10-24  Released-By: PERLANCAR

	- Update dep version (has better binary result/arg support).

	- Format binary result as-is (no newline/send to
	  Perinci::Result::Format) when format is text.

1.35    2014-10-24  Released-By: PERLANCAR

	- Default utf8 to off if outputting binary data.

	- Add attribute: riap_version (and bump Riap client deps with
	  versions which already support riap_version).

	- Typo: unimplemented status is 501, not 502.

1.34    2014-10-14  Released-By: PERLANCAR

	- No functional changes.

	- Include more screenshots.

1.33    2014-10-14  Released-By: PERLANCAR

	- No functional changes.

	- Include screenshots.

1.32    2014-10-03  Released-By: PERLANCAR

	- Avoid error when completing (no use_utf8 method).

1.31    2014-09-16  Released-By: PERLANCAR

	- No functional changes.

        - Move page/stream output functionality to Perinci::CmdLine::Base.

1.30    2014-09-11  Released-By: PERLANCAR

	- Add support for cmdline_src=stdin_line and is_password (Rinci

1.29     2014-09-05  Released-By: PERLANCAR

         - [Bugfix] Forgot another json decode which should've been encode.

1.28     2014-09-04  Released-By: PERLANCAR

         - [Bugfix] Fix bug in displaying 'in' schema property in help.

1.27     2014-09-04  Released-By: PERLANCAR

         - [Bugfix] Fix bugs that caused App::riap to die.

1.26     2014-09-03  Released-By: PERLANCAR

         - No functional changes.

         - Update to Perinci::CmdLine::Base 0.26.

1.25     2014-09-02  Released-By: SHARYANTO

         - [Bugfix] Help on subcommand produced main help (some old code has not
           been adjusted).

1.24     2014-08-27  Released-By: SHARYANTO

         - No functional changes.

         - [Internal] Move cmdline_src handling functionality to

1.23     2014-08-26  Released-By: SHARYANTO

         - No functional changes.

         - Use Perinci::CmdLine::Base 0.22 (change of configuration profile

1.22     2014-08-26  Released-By: SHARYANTO

         - No functional changes.

         - Update translations (id, fr).

         - Fix tests so non-English locale can pass too [CT].

1.21     2014-08-25  Released-By: SHARYANTO


         - Add support for reading configuration file.

1.20     2014-08-24  Released-By: SHARYANTO

         - [Bug fix] Edit to make tx-related actions (--undo, --redo, --history,
           etc) work.

1.19     2014-08-23  Released-By: SHARYANTO


         - Replace result metadata cmdline.display_result with cmdline.result.


         - Add result metadata cmdline.skip_format.

1.18     2014-08-22  Released-By: SHARYANTO

         - [Bugfix] Try to init attributes in BUILD again (previously this is
           moved to hook_before_run because of some weirdness that makes
           accessing attribute from role not work in inner block of BUILD).

1.17     2014-08-22  Released-By: SHARYANTO


         - Remove scripts strip-result-env-* (users can use 'jq' or other tools
           to do this).

         - Move script peri-run to Perinci-CmdLine-Any.

         - Remove --action (see note in the Incompatible Changes section about
           the change in the way command-line options are parsed).

         - Move examples/ to Perinci-CmdLine-Examples, to help reduce


         - To reduce confusion and make things simpler, change the way
           command-line options are parsed. Argument options which happen to
           clash with common options (e.g. --help, --version) are now renamed to
           --help-arg (or --help-arg2 and so on) so no options clash with each
           other. Thus, --action is no longer needed.


         - Refactoring: split some functionality to Perinci::CmdLine::Base (in
           separate dist) for creating Perinci::CmdLine::Lite, a lightweight
           alternative that doesn't use Moo, Perinci::Access, nor
           Perinci::Result::Format. There are now Perinci-CmdLine and
           Perinci-CmdLine-Lite distributions.

         - Refactoring: run() and run_*() now returns enveloped response instead
           of int. All output is now returned as string by run_*() instead of
           printed directly (except for streaming output).

         - Refactoring: No long uses internal attributes like
           $self->{_subcommand}. Instead, now a per-request (per-run())
           stash/hash $r is passed around. This is not unlike the technique used
           in Apache handlers and Data::Sah. It's cleaner because the
           per-request state is isolated from the object itself.

         - Refactoring: help-generating methods now separated into a separate
           role (Perinci::CmdLine::Role::Help), just to be more organized.


         - Split some documentation (FAQ) from Perinci::CmdLine to
           Perinci::CmdLine::Manual and split to Perinci-CmdLine-Base so it can
           be installed without requiring too many dependencies.

         - Write examples Perinci::CmdLine::Manual::Examples.

1.16     2014-07-03  Released-By: SHARYANTO


         - Split Perinci::CmdLine::Easy to its own dist.


         - Tidy up run() so it can safely be called multiple times.

         - Support for Perinci::CmdLine::Server.

1.15     2014-07-02  Released-By: SHARYANTO

         - No functional changes.

         - Adjust to Perinci::Sub::Complete 0.53.

1.14     2014-07-02  Released-By: SHARYANTO

         - No functional changes.

         - Adjust to Complete::Util 0.12.

1.13     2014-06-29  Released-By: SHARYANTO

         - No functional changes.

         - Increase prereq version: Perinci::Sub::Complete 0.50, to allow
           completion routines to return hashref as well as arrayref.

1.12     2014-06-29  Released-By: SHARYANTO

         - No functional changes.

         - Adjust to new completion modules.

1.11     2014-06-20  Released-By: SHARYANTO


         - Adjust to Perinci::Sub::Complete 0.40 (no longer need to do
           'complete_arg_val' Riap request on our own).

         - Add --pass-cmdline-object to peri-run.

         [BUG FIXES]

         - A couple of bug fixes.

1.10     2014-05-17  Released-By: SHARYANTO

         - [ux] Default to 80 (and not wider) column width when displaying
           --help --verbose, unless user sets COLUMNS.

         - Replace File::Slurp with File::Slurp::Tiny.

1.09     2014-04-30  Released-By: SHARYANTO

         - No functional changes.

         - Adjust to Perinci::Access::Perl 0.66 (no longer has

1.08     2014-04-16  Released-By: SHARYANTO

         - Show release date in --version.

1.07     2014-04-16  Released-By: SHARYANTO

         - Send argv to server when parsing argv on the client side returns 501
           (see Perinci::Sub::GetArgs::Argv for more details on this error).
           This feature currently does not work with transaction and dry-run.
           Also, the server side must have a recent Perinci::Access::Perl (0.64)
           which supports accepting 'argv' request key for its 'call' action.

1.06     2014-04-04  Released-By: SHARYANTO


         - [refactor/internal] Rename action 'subcommand' to 'call' because it's
           less confusing and more appropriate. Since --action is
           underdocumented, this should break very few users.

1.05     2014-04-02  Released-By: SHARYANTO

         - Consult Perinci::Sub::Property::* on unknown properties when
           generating help. This allows displaying help for result/table or
           result/object Rinci function metadata property. See corresponding
           Perinci::Sub::Property::result::{table,object} module for more

1.04     2014-04-01  Released-By: SHARYANTO

         - Add common options: --json, --yaml, --perl. But only when user says
           'use Perinci::CmdLine 1.04'.

1.03     2014-03-29  Released-By: SHARYANTO

         - Bugfix: Don't print 'missing foo arg' when on --help, --history, etc.

1.02     2014-02-26  Released-By: SHARYANTO

         - No functional changes.

         - Adjust to Progress::Any 0.13 and
           Progress::Any::Output::TermProgressBarColor 0.08.

1.01     2014-01-21  Released-By: SHARYANTO

         [BUG FIXES]

         - A couple of fixes in parsing cmdline options for argument with
           cmdline_src 'stdin_or_files': avoid printing 'missing arg X' when
           getting argument value from STDIN, and parse '--arg F1' properly (it
           used to get from STDIN instead of F1).

1.00     2013-12-18  Released-By: SHARYANTO

         - No, there's nothing special about the version number.

         - Skip setlocale() at the start of program, as Locale::TextDomain
           (Locale::Messages) already reads from LANG/LANGUAGE. Programs
           requiring setlocale() can do it themselves.

0.99     2013-12-13  Released-By: SHARYANTO

         - No functional changes. Mark more strings as translateable using

0.98     2013-12-13  Released-By: SHARYANTO

         - No functional changes. Use Locale::TextDomain::UTF8.

0.97     2013-12-13  Released-By: SHARYANTO

         - No functional changes. Switch from Locale::Maketext to

0.96     2013-11-26  Released-By: SHARYANTO

         - Slightly reduce completion overhead.

         - Bugfix: Skip non-shell src examples.

0.95     2013-11-08  Released-By: SHARYANTO


         - Fix behavior of 'cmdline_src': now supports 'file' (Rinci 1.1.41),
           'stdin_or_files' now correctly reads from files specified in cmdline
           argument, now supports giving lines to function argument of type

0.94     2013-10-04  Released-By: SHARYANTO


         - Display src examples (Rinci 1.1.39).


         - Adjust to Perinci::Access::Perl 0.53+ (remove disk caching options).

         - Adjust to Perinci::Sub::Complete (replaces Perinci::BashComplete).

0.93     2013-10-04  Released-By: SHARYANTO

         - No functional changes. Force version of SHARYANTO::Role::ColorTheme
           so color_theme_class_prefix can be overriden by subclasses.

0.92     2013-10-03  Released-By: SHARYANTO


         - Change common option: --list (-l) to --subcommands to make it more


         - Reduce startup overhead by caching wrapping result
           (Perinci::Access::Perl 0.50 supports disk_cache option).

         - More tweaks on --help (as well as --subcommands output).


         - Colorize error messages, help, and --subcommands output.


         - Document how utf8 output and logging output is turned on/off.

         - Add French translation. More translations welcome.

         - Show list of (popular) subcommands in help message.

0.91     2013-10-02  Released-By: SHARYANTO

         - This release focuses on making help message prettier: colors,
           sorting, some tweaks/fixes. Details below. Formatting is now done
           using Text::ANSITable. Producing help now causes a slight noticeable
           delay (like 0.3-0.4s) on my PC/laptop, but since it is not annoying
           enough or invoked frequently enough on a daily basis, it'll do for


         - Generate colored help message, yay.

         - Provide two versions of help: compact and verbose (--help --verbose).
           The purpose of compact help is to be short and rarely exceed one
           screen: it only displays usage, examples, and list of options (no
           documentation on each option). The normal help is now the verbose

         - Show examples in help message.

         - Show function description in verbose help message.

         - Don't show 'name - summary' line in help message if summary is not

         - To save a bit of screen space, don't list --help and --version in
           compact help message, since they are already obvious from the usage

         - Observe 'x.perinci.cmdline.negative_summary' Rinci metadata
           attribute. If there is a bool option with default=1 (e.g. --public,
           with summary 'Only show public items') the help message now displays
           '--nopublic' since --public is implicit. The summary should
           accordingly be the negative summary (e.g. 'Only show private items').
           This can now be put in said attribute. It can also be localized (e.g.

         - Add examples/demo-help which contains various options to show how
           --help and '--help --verbose' would display it.

         - For "simple" actions like 'help', 'list', 'version', logging is
           turned off by default to reduce startup overhead. However, you can
           still turn on logging via LOG=1.

0.90     2013-09-23  Released-By: SHARYANTO

         - Add 'args' subcommand specification to prefill function arguments
           when calling (useful for function that serves multiple subcommands).

         - Show positional arguments in usage message.

0.89     2013-09-20  Released-By: SHARYANTO

         - No functional changes. Force upgrade of deps to show previous error
           (Rinci 1.1.38).

0.88     2013-09-11  Released-By: SHARYANTO

         - No functional changes. Demote Perinci::Tx::Manager from
           RuntimeRequires to RuntimeRecommends because not all applications use
           it and it currently does not install on Windows (some deps like
           File::Lock, which deps on Data::Structure::Util, does not build).

         - Now builds on Windows, yay.

0.87     2013-09-08  Released-By: SHARYANTO


         - Remove 'dash_to_underscore' option because it is currently rather
           confusing. If you specify subcommands using underscores, -l will list
           the underscored version but tab completion is using the dashed
           version. To simplify stuffs, now no transformation is done.

         [BUG FIXES]

         - Forgot to pass 'pa' argument to Perinci::BashComplete function.

0.86     2013-09-08  Released-By: SHARYANTO

         - Update to Rinci 1.1.36 (entity_version -> entity_v).

         - Replace Perinci::Access::InProcess with ::Perl and ::Schemeless.

0.85     2013-08-15  Released-By: SHARYANTO

         [BUG FIXES]

         - No functional changes. Add missing dependencies to Perinci::To::Text

0.84     2013-08-11  Released-By: SHARYANTO

         [BUG FIXES]

         - Forgot to update method name which caused '--help' and the
           peri-func-usage to not work properly.

0.83     2013-07-26  Released-By: SHARYANTO

         - No functional changes. Adjust to new SHARYANTO::Role::Doc::Section

0.82     2013-07-26  Released-By: SHARYANTO


         - Allow disabling paging, when cmdline.page_result result metadata is
           active, using PAGER=0.

         - Column width now observes the COLUMNS environment.

         - Add command line script: peri-func-usage to display usage text for
           any Riap function.

0.81     2013-07-26  Released-By: SHARYANTO

         - Change options display in usage text to be more compact (remove blank
           line after --foo line, but indent the options summary/description
           text more deeply).

         - Add FAQ item about modifying the common options.

         - Mark dev version as 'dev' in --help.

0.80     2013-07-06  Released-By: SHARYANTO

         - Add 'use experimental "smartmatch"' for 5.18+.

         - Handle error when COLOR=0.

0.79     2013-05-18  Released-By: SHARYANTO

         - Use Progress::Any::Output::TermProgressBarColor to replace

0.78     2013-05-10  Released-By: SHARYANTO

         - Text in common_opt (category, usage, summary) is now not required to
           be translateable.

         - Update 'id' translation.

0.77     2013-05-10  Released-By: SHARYANTO

         [BUG FIXES]

         - Setting --format-options didn't work.

0.76     2013-05-10  Released-By: SHARYANTO


         - Common options are now modularized instead of hardcoded. You can now
           delete/rename/add common options like --help, --version, etc. See
           documentation for the 'common_opts' attribute.


         - Remove 'extra_opts' attribute because they are now supported via

0.75     2013-05-04  Released-By: SHARYANTO

         - Observe PROGRESS environment (can be set to 0 to disable progress

         - binmode(STDOUT, ":utf8") (TODO: option to opt out from this).

0.74     2013-04-16  Released-By: SHARYANTO

         - No functional changes. Avoid perl undef warning.

0.73     2013-04-15  Released-By: SHARYANTO

         - Provide format_row().

0.72     2013-04-14  Released-By: SHARYANTO


         - format_and_display_result() is split to format_result() and
           display_result() (should not be a problem because it's not yet


         - Support streaming output (function needs to set result metadata
           is_stream => 1 and result needs to be glob/IO::Handle/array/tied
           array, format needs to be text).

         - Observe 'x.perinci.cmdline.default_format' metadata attribute.

0.71     2013-04-05  Released-By: SHARYANTO

         - No functional changes. Workaround problem which causes non-pretty
           text tables to be displayed by default.

0.70     2013-04-05  Released-By: SHARYANTO

         - Add no_getopt_compat Getopt::Long::Configure to disregard "+" as
           option starter.

0.69     2013-03-15  Released-By: SHARYANTO

         - Add 'pa_args' attribute to pass to Perinci::Access (and in turn to
           Perinci::Access::HTTP::Client), e.g. HTTP basic auth information.

         - Several small tweaks.

0.68     2013-01-09  Released-By: SHARYANTO

         - Add workaround for formatter that modifies STDOUT's binmode setting.

0.67     2012-10-29  Released-By: SHARYANTO

         - No functional changes. Fix dependencies.

0.66     2012-10-24  Released-By: SHARYANTO

         - Display progress indicator for function which uses it (see
           Perinci::Access::InProcess 0.36+). For an example of this, see
           Git::Bunch 0.24, function sync_bunch().

         - Show Perinci::CmdLine's version in --version.

0.65     2012-09-06  Released-By: SHARYANTO

         - Remove example script bin/symlink-u due to circular dependency

0.64     2012-09-04  Released-By: SHARYANTO

         - Automatically set verbose when --dry-run.

0.63     2012-08-29  Released-By: SHARYANTO

         - Allow transactional function to be passed --dry-run.

0.62     2012-08-28  Released-By: SHARYANTO

         - Allow setting exit code via result metadata key 'cmdline.exit_code'.

0.61     2012-08-08  Released-By: SHARYANTO


         - Change how array of scalars is parsed, now not as JSON/YAML but using
           repeated options (--foo 1 --foo 2) a la traditional Getopt::Long.

         - Turn on per-argument explicit JSON and YAML parsing, using
           --ARGNAME-json and --ARGNAME-yaml, to make it possible to enter undefs,
           empty arrays, etc.

0.60     2012-08-01  Released-By: SHARYANTO

         - Rename demo script 'u-symlink' to 'symlink-u'.

         - Show cmdline_aliases in help message.

0.59     2012-07-27  Released-By: SHARYANTO

         - Tweak: run_history(): Do not format date/time, let
           Data::Format::Pretty::Console do it for us

         - Fix: --verbose, --quiet, et al didn't work before.

0.58     2012-07-26  Released-By: SHARYANTO

         - Allow setting undo => 0 in subcommand, to disable undo/transaction
           for that subcommand.

0.57     2012-07-26  Released-By: SHARYANTO

         - Add 'extra_opts' attribute.

0.56     2012-07-25  Released-By: SHARYANTO

         - No functional changes. Increase dep version
           Data::Format::Pretty::Console 0.16.

0.55     2012-07-23  Released-By: SHARYANTO

         - Support 'cmdline_src' arg spec key (Rinci 1.1.20+).

0.54     2012-07-19  Released-By: SHARYANTO

         - No functional changes. Add dependencies to
           Perinci::Access::TCP::{Server,Client} for convenience. Requires
           Perinci::Sub::GetArgs::Argv 0.18 which supports parsing nonscalar
           arguments as JSON as well as YAML, also for convenience.

0.53     2012-07-12  Released-By: SHARYANTO


         - Add 'default_subcommand' attribute. If set, subcommand name will be
           taken from this instead of first command-line argument. To access
           other subcommands, users will need to give --cmd command-line option.

         - Common options --list will only be added if there are subcommands

         [BUG FIXES]

         - A couple of fixes to tab completion and perl undef warnings.


         - Example script 'symlink-with-undo' renamed to 'u-symlink' (to make it
           consistent with the upcoming 'u-trash' script; see

0.52     2012-06-26  Released-By: SHARYANTO


         - Remove options --yaml, --json, --text, --text-pretty, --text-simple;
           use --format for now. This is to reduce the possibility of collision
           with function argument options (especially things like --text are
           common as function arguments). In general Perinci::CmdLine should
           introduce as few command-line options as possible to avoid


         - Fix typo that cause list of known result formats to be empty in error
           message when passed --format=BOGUS

0.51     2012-06-22  Released-By: SHARYANTO


         - Don't use transactions when dry run, so transaction list is not full
           with dry run calls.

0.50     2012-06-22  Released-By: SHARYANTO


         - Interpret --dry-run (or environment DRY_RUN=1) and pass -dry_run=>1
           to functions that have the dry_run feature.

         - Don't treat 304 status as error (still return exit code 0).

0.49     2012-06-22  Released-By: SHARYANTO


         - Implement undo (--undo, --redo, --history, --clear-history).

0.48     2012-06-15  Released-By: SHARYANTO


         - Add module: Perinci::CmdLine::Easy

0.47     2012-04-03  Released-By: SHARYANTO


         - Better handle case when common options like --help, --list, --version
           clash with function arguments with the same name. Now the behavior is
           to invoke common action (like help, version), unless
           --action=subcommand is specified, where it will set function
           arguments instead. Note that this is a non-issue when none of the
           function arguments happen to have names of 'help', 'list', 'version',

0.46     2012-03-30  Released-By: SHARYANTO

         - No functional changes. Fix typo.

0.45     2012-03-30  Released-By: SHARYANTO


         - Split formatting to Perinci::Result::Format (in Perinci dist).


         - Rename --pretty (-p) and --nopretty (-P) to --text-pretty and

0.44     2012-03-29  Released-By: SHARYANTO


         - Make it easy to add more output formats: added --format and formats()


         - --json now outputs compact JSON instead of pretty ones. To
           pretty-print the output one can pipe it to a formatter program.


         - Bash completion: list of common options was incomplete (but we still
           can't complete common option's value like --format <tab>).

0.43     2012-03-23  Released-By: SHARYANTO


         - Show default argument value in --help message.

0.42     2012-03-16  Released-By: SHARYANTO


         - Localized/translatable messages. English and Indonesian included.

         - Read environment variable PERINCI_CMDLINE_PROGRAM_NAME.

         - peri-run: Accept --subcommand (-s) to specify subcommands.

         - Allow choosing PAGER via result metadata key 'cmdline.pager'.

0.41     2012-03-08  Released-By: SHARYANTO

         [BUG FIXES]

         - Fix do not empty envelope when 'cmdline.display_result' is false.

0.40     2012-03-08  Released-By: SHARYANTO


         - Observe function result metadata: 'cmdline.display_result' (no longer
           observe 'cmdline.result_importance').


         - Observe function result metadata: 'cmdline.page_result' to send
           result to PAGER.

0.39     2012-03-03  Released-By: SHARYANTO


         - Add short options for --yaml (-y), --json (-j), --pretty (-p),
           and --nopretty (-P).

         - Observe function result metadata: 'cmdline.result_importance' (if set
           to 'low', won't display result).


         - Common options (like --yaml, --help, -l) now won't override options
           for function arguments of the same name.


         - Remove support for PHP serialization output (will be re-added later
           via --format, which can use any Data::Format::Pretty::* module).

0.38     2012-02-23  Released-By: SHARYANTO

         - Rename distribution from Sub-Spec-CmdLine to Perinci-CmdLine. Now
           Rinci/Riap-based (transparent remote access). Refactor into OO. Some
           features missing for now. Tests not updated yet.

0.37     2012-01-20  Released-By: SHARYANTO

         - No functional changes. Mark deprecation.

0.36     2011-08-25  Released-By: SHARYANTO

         - No functional changes. gen_usage() split to its own dist:
           Sub-Spec-To-Text. Update to Sub::Spec 0.15.

0.35     2011-08-11  Released-By: SHARYANTO

         - Uses Data::Format::Pretty for result formatting. JSON output is now
           pretty-printed by default.

0.34     2011-08-03  Released-By: SHARYANTO

         - No functional changes. Fixed test script to adjust to new
           Object::BlankStr [CT]. Updated dependencies.

0.33     2011-07-26  Released-By: SHARYANTO


         - Refactoring: move parse_argv() to


         - Localize Getopt::Long::Configure() effect.

0.32     2011-07-10  Released-By: SHARYANTO

         [BUG FIXES]

         - runpm: fix -I.

0.31     2011-07-10  Released-By: SHARYANTO


         - bin/runpm: add --help (-h) and -I (--library) options.

         - run(): add dash_to_underscore option to allow subcommands using
           dashes instead of underscores.

0.30     2011-06-05  Released-By: SHARYANTO


         - To reduce the trap of implicit YAML parsing, parsing is only done for
           nonscalar arguments.

0.29     2011-06-01  Released-By: SHARYANTO

         - No functional changes.


         - Update to latest version of Sub::Spec::Runner.

0.28     2011-04-14  Released-By: SHARYANTO

         [BUG FIXES]

         - Remove extra name line in usage message.

0.27     2011-04-14  Released-By: SHARYANTO


         - run(): For convenience, allow general options (e.g. --version,
           --help, --json, etc) to be specified after subcommand name, if it
           doesn't collide with spec arg


         - Replace Clone::Any with Data::Clone (Clone::Any fallbacks to Storable
           which doesn't support storing Regexp, so tests will fail if Clone is
           not available).

0.26     2011-03-04  Released-By: SHARYANTO

         - Require Sub::Spec::Runner 0.09.

0.25     2011-02-28  Released-By: SHARYANTO

         - On non-success response from sub, print output (error message) even
           if spec enables cmdline_suppress_output.

0.24     2011-02-28  Released-By: SHARYANTO

         - Now based on Sub::Spec::Runner for dependency checking before run.

0.23     2011-02-23  Released-By: SHARYANTO

         - Fix dependency (Sub::Spec version).

         - Don't add error message when Getopt::Long already prints to stderr.

0.22     2011-02-22  Released-By: SHARYANTO

         - Use Sub::Spec::Utils.

0.21     2011-02-21  Released-By: SHARYANTO

         - Add some more documentation.

         - Requires recent versions of Test::More & Sub::Spec::BashComplete.

0.20     2011-02-18  Released-By: SHARYANTO

         - Escape completion output since BashComplete now doesn't.

         - Added some doc.

0.19     2011-02-18  Released-By: SHARYANTO

         - Provide runpm script.

0.18     2011-02-18  Released-By: SHARYANTO

         - run(): More fixes for completion.

         - spec: cmdline_aliases is renamed to arg_aliases.

         - Fix test [CT].

0.17     2011-02-17  Released-By: SHARYANTO

         - run(): Fixed stupid parenthesis bug.

0.16     2011-02-17  Released-By: SHARYANTO

         - run(): A couple more fixes for bash completion.

         - parse_argv(): Also add --nofoo for bool cmdline_aliases.

0.15     2011-02-17  Released-By: SHARYANTO

         - Yet more fixes for bash completion.

         - Fixed: parse_argv(): do not convert all remaining $argv to YAML so
           they can be reused (e.g. parse_argv'd) again

         - run(): add option 'custom_completer' to pass to

0.14     2011-02-17  Released-By: SHARYANTO

         - Fixes for bash completion.

0.13     2011-02-17  Released-By: SHARYANTO


         - run(): rename 'require' argument to 'load'.


         - parse_argv(): Respect arg spec: 'cmdline_aliases' for specifying
           option aliases.

         - run(): Allow 'subcommands' argument to be coderef.

         - run(): Pass more info (arguments) to coderef 'help' argument.

         - run(): Add option 'allow_unknown_args' for non-strict argv parsing.

         - gen_usage(): Add option: 'options_name'.

0.12     2011-02-16  Released-By: SHARYANTO

         - Fixes for bash completion.

         - Add arguments to run(): help, spec, run, per-subcommand category.

         - Other bug fixes.

0.11     2011-02-16  Released-By: SHARYANTO

         - Add support for bash completion (requires Sub::Spec::BashComplete).

0.10     2011-02-16  Released-By: SHARYANTO

         - Add strict=>0 option in parse_argv(), for use by

         - Some small refactoring.

0.09     2011-02-15  Released-By: SHARYANTO

         - Add --version.

0.08     2011-02-15  Released-By: SHARYANTO

         - Fixes for subcommands support.

         - Respect spec clause: cmdline_suppress_output.

0.07     2011-02-11  Released-By: SHARYANTO

         - Formatting fix: missing newline in error message.

0.06     2011-02-11  Released-By: SHARYANTO

         - Add 'cmd' option to gen_usage().

         - Formatting tweaks.

0.05     2011-02-11  Released-By: SHARYANTO

         - Remove 'required_args'.

0.04     2011-02-10  Released-By: SHARYANTO

         - Formatting fixes.

0.03     2011-02-10  Released-By: SHARYANTO

         - Formatting tweaks.

         - Fix schema clause ('in', not 'choices').

0.02     2011-02-09  Released-By: SHARYANTO

         - Incompatible change: rename arg_order to arg_pos.

         - Documentation.

0.01     2011-02-09  Released-By: SHARYANTO

         - First release.