Revision history for Perinci-CmdLine

0.87     2013-09-08 (SHARYANTO)

         [REMOVED FEATURES]

         - 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 (SHARYANTO)

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

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


0.85     2013-08-15 (SHARYANTO)

         [BUG FIXES]

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


0.84     2013-08-11 (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 (SHARYANTO)

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


0.82     2013-07-26 (SHARYANTO)

         [ENHANCEMENTS]

         - 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 (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 (SHARYANTO)

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

         - Handle error when COLOR=0.


0.79     2013-05-18 (SHARYANTO)

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


0.78     2013-05-10 (SHARYANTO)

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

         - Update 'id' translation.


0.77     2013-05-10 (SHARYANTO)

         [BUG FIXES]

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


0.76     2013-05-10 (SHARYANTO)

         [ENHANCEMENTS]

         - 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.

         [REMOVED FEATURES]

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


0.75     2013-05-04 (SHARYANTO)

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

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


0.74     2013-04-16 (SHARYANTO)

         - No functional changes. Avoid perl undef warning.


0.73     2013-04-15 (SHARYANTO)

         - Provide format_row().


0.72     2013-04-14 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

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

         [ENHANCEMENTS]

         - 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 (SHARYANTO)

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


0.70     2013-04-05 (SHARYANTO)

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


0.69     2013-03-15 (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 (SHARYANTO)

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


0.67     2012-10-29 (SHARYANTO)

         - No functional changes. Fix dependencies.


0.66     2012-10-24 (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 (SHARYANTO)

         - Remove example script bin/symlink-u due to circular dependency
           [RT#79482].


0.64     2012-09-04 (SHARYANTO)

         - Automatically set verbose when --dry-run.


0.63     2012-08-29 (SHARYANTO)

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


0.62     2012-08-28 (SHARYANTO)

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


0.61     2012-08-08 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - 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 (SHARYANTO)

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

         - Show cmdline_aliases in help message.


0.59     2012-07-27 (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 (SHARYANTO)

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


0.57     2012-07-26 (SHARYANTO)

         - Add 'extra_opts' attribute.


0.56     2012-07-25 (SHARYANTO)

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


0.55     2012-07-23 (SHARYANTO)

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


0.54     2012-07-19 (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 (SHARYANTO)

         [ENHANCEMENTS]

         - 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
           defined.

         [BUG FIXES]

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

         [OTHER]

         - Example script 'symlink-with-undo' renamed to 'u-symlink' (to make it
           consistent with the upcoming 'u-trash' script; see
           File::Trash::Undoable).


0.52     2012-06-26 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - 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
           collisions.

         [FIXES]

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


0.51     2012-06-22 (SHARYANTO)

         [ENHANCEMENTS]

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


0.50     2012-06-22 (SHARYANTO)

         [ENHANCEMENTS]

         - 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 (SHARYANTO)

         [ENHANCEMENTS]

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


0.48     2012-06-15 (SHARYANTO)

         [ENHANCEMENTS]

         - Add module: Perinci::CmdLine::Easy


0.47     2012-04-03 (SHARYANTO)

         [FIXES]

         - 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',
           etc.


0.46     2012-03-30 (SHARYANTO)

         - No functional changes. Fix typo.


0.45     2012-03-30 (SHARYANTO)

         [REFACTORING]

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

         [INCOMPATIBLE CHANGE]

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


0.44     2012-03-29 (SHARYANTO)

         [ENHANCEMENTS]

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

         [INCOMPATIBLE CHANGE]

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

         [FIXES]

         - 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 (SHARYANTO)

         [ENHANCEMENTS]

         - Show default argument value in --help message.


0.42     2012-03-16 (SHARYANTO)

         [ENHANCEMENTS]

         - 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 (SHARYANTO)

         [BUG FIXES]

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


0.40     2012-03-08 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

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

         [ENHANCEMENTS]

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


0.39     2012-03-03 (SHARYANTO)

         [ENHANCEMENTS]

         - 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).

         [FIXES]

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

         [REMOVED]

         - 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 (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 (SHARYANTO)

         - No functional changes. Mark deprecation.


0.36     2011-08-25 (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 (SHARYANTO)

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


0.34     2011-08-03 (SHARYANTO)

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


0.33     2011-07-26 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - Refactoring: move parse_argv() to
           Sub::Spec::GetArgs::Argv::get_args_from_argv().

         [ENHANCEMENTS]

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


0.32     2011-07-10 (SHARYANTO)

         [BUG FIXES]

         - runpm: fix -I.


0.31     2011-07-10 (SHARYANTO)

         [ENHANCEMENTS]

         - 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 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

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


0.29     2011-06-01 (SHARYANTO)

         - No functional changes.

         [ETC]

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


0.28     2011-04-14 (SHARYANTO)

         [BUG FIXES]

         - Remove extra name line in usage message.


0.27     2011-04-14 (SHARYANTO)

         [ENHANCEMENTS]

         - 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

         [ETC]

         - 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 (SHARYANTO)

         - Require Sub::Spec::Runner 0.09.


0.25     2011-02-28 (SHARYANTO)

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


0.24     2011-02-28 (SHARYANTO)

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


0.23     2011-02-23 (SHARYANTO)

         - Fix dependency (Sub::Spec version).

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


0.22     2011-02-22 (SHARYANTO)

         - Use Sub::Spec::Utils.


0.21     2011-02-21 (SHARYANTO)

         - Add some more documentation.

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


0.20     2011-02-18 (SHARYANTO)

         - Escape completion output since BashComplete now doesn't.

         - Added some doc.


0.19     2011-02-18 (SHARYANTO)

         - Provide runpm script.


0.18     2011-02-18 (SHARYANTO)

         - run(): More fixes for completion.

         - spec: cmdline_aliases is renamed to arg_aliases.

         - Fix test [CT].


0.17     2011-02-17 (SHARYANTO)

         - run(): Fixed stupid parenthesis bug.


0.16     2011-02-17 (SHARYANTO)

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

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


0.15     2011-02-17 (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
           Sub::Spec::BashComplete.


0.14     2011-02-17 (SHARYANTO)

         - Fixes for bash completion.


0.13     2011-02-17 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

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

         [IMPROVEMENTS]

         - 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 (SHARYANTO)

         - Fixes for bash completion.

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

         - Other bug fixes.


0.11     2011-02-16 (SHARYANTO)

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


0.10     2011-02-16 (SHARYANTO)

         - Add strict=>0 option in parse_argv(), for use by
           Sub::Spec::BashComplete.

         - Some small refactoring.


0.09     2011-02-15 (SHARYANTO)

         - Add --version.


0.08     2011-02-15 (SHARYANTO)

         - Fixes for subcommands support.

         - Respect spec clause: cmdline_suppress_output.


0.07     2011-02-11 (SHARYANTO)

         - Formatting fix: missing newline in error message.


0.06     2011-02-11 (SHARYANTO)

         - Add 'cmd' option to gen_usage().

         - Formatting tweaks.


0.05     2011-02-11 (SHARYANTO)

         - Remove 'required_args'.


0.04     2011-02-10 (SHARYANTO)

         - Formatting fixes.


0.03     2011-02-10 (SHARYANTO)

         - Formatting tweaks.

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


0.02     2011-02-09 (SHARYANTO)

         - Incompatible change: rename arg_order to arg_pos.

         - Documentation.


0.01     2011-02-09 (SHARYANTO)

         - First release.