0.552 2021-08-26 Released-By: PERLANCAR; Urgency: medium
- Switch from Text::Table::Tiny to Text::Table::Sprintf.
- Reorder generate '# AUTHORITY', et al to after strict/warnings to
pass perlcritic policy TestingAndDebugging::RequireUseStrict.
0.551 2020-05-18 Released-By: PERLANCAR; Urgency: medium
- Observe PERINCI_CMDLINE_INLINE_DEBUG_DIE.
0.550 2020-05-02 Released-By: PERLANCAR; Urgency: medium
- When outputing streaming output, don't JSON-encode simple
(defined scalar) records.
- Add Log::ger::Output::{Composite,SimpleFile} to prereq
[RT#132474].
0.549 2020-04-29 Released-By: PERLANCAR; Urgency: medium
- Tweak Rinci metadata: replace deprecated
x.schema.{,element_}entity with more specific schema.
0.548 2020-04-05 Released-By: PERLANCAR; Urgency: medium
- Support common option --page-result like in
Perinci::CmdLine::Lite.
0.547 2020-02-18 Released-By: PERLANCAR; Urgency: medium
- Add options:
code_{before_enable_logging,add_extra_log_outputs,after_enable_logging}.
- [ux] Show placeholders '### code_*' in the generated code even though
there is no corresponding code specified, just to show where the
placeholders are.
0.546 2020-02-06 Released-By: PERLANCAR; Urgency: medium
- Adjust to Perinci::CmdLine::Help 0.172 (must now pass
meta_is_normalized=1 or meta will be normalized first).
- [doc] Update comment about Storable 3.08+ now supports Regexp objecs.
0.545 2019-04-15 Released-By: PERLANCAR
- Observe argument spec property 'slurpy' in addition to 'greedy'
(Rinci 1.1.88).
0.544 2018-10-03 Released-By: PERLANCAR
- [test] Specify test dependency to JSON::PP because this core module is
require'd by the generated script [CT].
- Add core_deps to compilation result so module client can use this
information to specify dependency to required core modules.
- When output-ing to stdout, remove cmdline.skip_format result metadata
so it's easier to see raw result just by using --json.
0.543 2018-09-11 Released-By: PERLANCAR
- Add option: stripper.
- [incompatible change] Do not strip code by default, to speed up
generation (stripping involves PPI).
- [bugfix] Schema validation was not being generated due to
referring to wrong variable.
- [workaround] Stringify 'url' argument (URI object) to avoid JSON
encoder croaking.
0.542 2018-03-28 Released-By: PERLANCAR
- [Bugfix] Embed Log::ger (required by Perinci::CmdLine::Util::Config)
[RT#124858].
0.541 2017-08-16 Released-By: PERLANCAR
- Replace :utf8 I/O layer with :encoding(utf8) to make generated
script pass perlcritic test.
0.540 2017-08-12 Released-By: PERLANCAR
- [Bugfix] Avoid double require of Getopt::Long::EvenLess.
- [Bugfix] Properly set argument value from --no-ARG (no
subcommands case).
0.53 2017-07-04 Released-By: PERLANCAR
- [Bugfix] Properly set argument value from --no-ARG.
0.52 2017-07-03 Released-By: PERLANCAR
- No functional changes.
- [test][dist] Add test prereq to Log::ger::Output::Screen 0.004+
to prevent failure reports [CT].
0.51 2017-06-28 Released-By: PERLANCAR
- Switch from Log::Any to Log::ger.
0.50 2017-01-19 Released-By: PERLANCAR
- [Bugfix] Do not add no-longer-used module JSON::Tiny::Subclassable
[CT].
0.49 2017-01-16 Released-By: PERLANCAR
- Bug fix and prefix log messages with program name.
0.48 2017-01-16 Released-By: PERLANCAR
[ENHANCEMENTS]
- Add logging.
- Add option --(no-)use-cleanser to allow skipping cleansing.
- Add option --script-version-from-main-version.
[ETC]
- [dist] Update Data::Clean::JSON to 0.38 (to force update
Data::Clean to 0.48).
- [opt] Don't bother using JSON::Tiny::Subclassable because JSON::PP is
core and we assume it's always available.
- Use canonical(1) when producing #PERICMD_INLINE_SCRIPT for more
consistent content.
[BUG FIXES]
- [Bugfix] Fix generation of cleansing code
0.47 2017-01-12 Released-By: PERLANCAR
- [Incompatible change] Change %_pci_metas to $_pci_metas due to
limitation of %{ do { ... } } syntax.
- [Bugfix] Avoid perl undef warning when printing undefined module
version.
0.46 2017-01-12 Released-By: PERLANCAR
- [dist] Forgot to include to prereqs modules that are used for
embedding.
0.45 2017-01-12 Released-By: PERLANCAR
- Support reading configuration file.
- Support reading environment variable for default options.
0.44 2017-01-11 Released-By: PERLANCAR
- Generate COMPLETION POD section.
- Tweak: put POD after subroutine declarations.
0.43 2017-01-10 Released-By: PERLANCAR
- Generate POD using Perinci::CmdLine::POD.
0.42 2017-01-09 Released-By: PERLANCAR
- Generate #PERICMD_INLINE_SCRIPT_METAS that dumps the Rinci metadata to
be read e.g. by Perinci::CmdLine::Dump. UPDATE 2017-01-12: in 0.45,
replaced by 'my %_pci_metas = ...' line which is in Perl and is also
used by the generated script.
0.41 2017-01-06 Released-By: PERLANCAR
- Support subcommands.
- Add option 'pack_deps' to make it possible to not datapack
dependencies.
- Check that args_as property in metadata is hash/hashref.
0.40 2016-12-28 Released-By: PERLANCAR
- No functional changes.
- [dist] Fix expressing follow-spec prereq relationship with x_spec.
0.39 2016-12-27 Released-By: PERLANCAR
- [dist] Move spec prereq from DevelopRecommends to
DevelopSuggests with _SPEC:: prefix.
- fmt: use Markdown autolink with pm:/prog: URLs in description so
it can be converted to POD's L<...>.
- Tweak metadata: replace x.schema.entity with schema.
0.38 2016-06-02 Released-By: PERLANCAR
[ENHANCEMENTS]
- Add argument validation.
- Add option: allow_prereq.
- [Optimization] Don't include unneeded modules and subroutines to make
resulting script smaller (e.g. no need to include Text::Table::Tiny
and Perinci::Result::Format::Lite if we don't do formatting, no need
for _pci_gen_iter() when we don't accept streaming input or lines from
stdin/file, etc).
- [Optimization] Delay loading _pci_check_args, so --help and --version
can be a bit faster.
[BUG FIXES]
- Data cleansing was stil using (unincluded) Data::Clean::JSON instead
of our own generated cleanser.
0.37 2016-03-16 Released-By: PERLANCAR
- No functional changes.
- Replace JSON with JSON::MaybeXS.
0.36 2016-02-26 Released-By: PERLANCAR
- Implement cmdline_src=stdin_or_args (untested).
0.35 2016-02-04 Released-By: PERLANCAR
- [Bugfix] When streaming input (argument) has schema=array, use its
'of' clause subschema.
- Update to Test::Perinci::CmdLine 1.38.
0.34 2016-01-21 Released-By: PERLANCAR
- Update to Test::Perinci::CmdLine 1.33.
- [Bugfix] Don't render module version during script generation,
let the generated script resolve VERSION and DATE.
0.33 2016-01-15 Released-By: PERLANCAR
- Replace Data::Dumper with Data::Dmp to avoid failure of running
the generated code dump on older perls [CT].
0.32 2016-01-14 Released-By: PERLANCAR
- Add option: use_utf8.
- Bump prereq version Log::Any::IfLOG to 0.07.
0.31 2015-11-28 Released-By: PERLANCAR
- [Bugfix] Handle function which returns naked result.
0.30 2015-11-27 Released-By: PERLANCAR
- Add support for streaming input (most of cmdline_src support are now
implemented too, except for: cmdline_src=stdin_line, the
-cmdline_src_XXX special arguments, and probably some minor quirks).
0.29 2015-11-27 Released-By: PERLANCAR
- Add support for streaming output (streaming input not yet).
0.28 2015-10-03 Released-By: PERLANCAR
- No functional changes.
- Update mentioned module App::fatten (has been renamed to
App::depak).
0.27 2015-09-30 Released-By: PERLANCAR
- Switch from JSON::Tiny to JSON::Tiny::Subclassable because the
latter's interface is more conveniently similar to JSON::{PP,XS}.
0.26 2015-09-30 Released-By: PERLANCAR
- [Bugfix] Embed a JSON encoder/decoder module (we choose JSON::Tiny)
because JSON::PP is not yet core in perl < 5.14 [CT].
0.25 2015-09-29 Released-By: PERLANCAR
- Observe result metadata attributes: cmdline.default_format,
cmdline.result, cmdline.exit_code.
- Support per_arg_json.
- Refactor (use Perinci::Result::Format::Lite instead of doing our own
thing, this reduces code duplication).
- Adjust to Test::Perinci::CmdLine 1.26.
0.24 2015-09-28 Released-By: PERLANCAR
- No functional changes.
- Adjust to Test::Perinci::CmdLine 1.24.
0.23 2015-09-23 Released-By: PERLANCAR
- [ux] Add short option -I for --include.
- Quote hash keys to avoid syntax error when arg is e.g. 'foo.bar'.
0.22 2015-09-23 Released-By: PERLANCAR
- Disallow extraneous arguments, like in pericmd-lite &
pericmd-classic.
0.21 2015-09-12 Released-By: PERLANCAR
- [Incompatible change] Rename program_* arguments to script_* to
be more consistent with App::GenPericmdScript, rename 'summary'
argument to 'script_summary'.
0.20 2015-09-10 Released-By: PERLANCAR
- Add option: code_after_end.
0.19 2015-08-01 Released-By: PERLANCAR
- No functional changes.
- Bump prereq version Module::DataPack 0.09.
0.18 2015-07-31 Released-By: PERLANCAR
- No functional changes.
- Force minimum version of Test::Perinci::CmdLine [CT].
0.17 2015-07-30 Released-By: PERLANCAR
- Dump arguments after #PERICMD_INLINE_SCRIPT directive with JSON
instead of Data::Dmp so it's safer to parse.
0.16 2015-07-30 Released-By: PERLANCAR
- Generate #ABSTRACT.
0.15 2015-07-08 Released-By: PERLANCAR
- Add option: skip_format, like in
Perinci::CmdLine::{Lite,Classic}.
0.14 2015-07-06 Released-By: PERLANCAR
- Interpret function metadata attribute cmdline.skip_format: on
true, skip adding common options --format, --json, --naked-res as
well.
0.13 2015-07-02 Released-By: PERLANCAR
- [fmt] Some formatting tweaks in the generated script (avoid
unnecessary marker, avoid dumping long argument values in the
#PERICMD_INLINE_SCRIPT comment).
- Add #PODNAME in generated script for dzil.
0.12 2015-07-02 Released-By: PERLANCAR
- Add option: code_after_shebang.
0.11 2015-07-02 Released-By: PERLANCAR
- Add options: extra_urls_for_version & log (currently ignored).
- Add option: code_before_parse_cmdline_options.
- Add #DATE & #VERSION in the generated script for when the script is
generated during Dist::Zilla build (see
Dist::Zilla::Plugin::GenPericmdScript & App:GenPericmdScript).
- Add option: program_version (for when the script is generated during
Dist::Zilla build and the script backend module being loaded is the
unbuilt version which might not have $VERSION yet). Used by
DZP:GenPericmdScript.
- Some fixes.
0.10 2015-06-19 Released-By: PERLANCAR
- Switch from using Getopt::Long::Less to Getopt::Long::EvenLess
because... well, just because :-)
0.09 2015-06-18 Released-By: PERLANCAR
- [dzil] Fix misplaced prereqs, all the modules required to embed
into generated CLI script are our RuntimeRequires, not
DevelopRequires.
- Add option: include to include extra modules.
0.08 2015-06-16 Released-By: PERLANCAR
- Replace Getopt::Long with Getopt::Long::Less (embedded) for
slightly lower startup overhead.
0.07 2015-06-16 Released-By: PERLANCAR
- No functional changes.
- Tweak benchmark script: show result for running with perl -c.
0.06 2015-06-16 Released-By: PERLANCAR
- No functional changes.
- Add & show startup overhead benchmark vs Perinci::CmdLine::Lite.
0.05 2015-06-16 Released-By: PERLANCAR
- Tweak generated --version message (prints Perinci::CmdLine::Inline
version too, fix typo).
- Some other fixes to avoid perl warnings/errors.
0.04 2015-06-12 Released-By: PERLANCAR
- Replace Module::FatPack with Module::DataPack.
0.03 2015-06-11 Released-By: PERLANCAR
- Use Test::Perinci::CmdLine test suite.
- Reduce startup overhead by using Module::FatPack and moving most
subroutines to fatpacked modules. 'script --help' or 'script
--version' now only spends 0.020-0.025s on my PC, and 0.022s of that
is loading/compiling Getopt::Long. So Getopt::Long is now the main
overhead and I'll perhaps be looking for a way to reduce this
further.
- Support pass_cmdline_object.
- Add the other Perinci::CmdLine::Base attributes as arguments,
although currently they do nothing, for compatibility with the other
Perinci::CmdLine backends.
0.02 2015-05-25 Released-By: PERLANCAR
- No functional changes.
- Reupload, avoid PAUSE indexer for embedded packages
(Text::Table::Tiny, Data::Check::Structure).
0.01 2015-05-25 Released-By: PERLANCAR
- First release.