The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perinci-Sub-Wrapper

0.42     2013-08-06 (SHARYANTO)

         - Handle (ignore) property 'x' in arg spec.


0.41     2013-04-11 (SHARYANTO)

         - Handle (ignore) property 'x' (new in Rinci 1.1.35).


0.40     2013-03-11 (SHARYANTO)

         - Allow function arguments in the form of 'abc.def' (e.g. produced by
           Perinci::Sub::Gen::AccessTable).


0.39     2013-01-16 (SHARYANTO)

         - No functional changes. Move test to Perinci-Sub-PropertyUtil to avoid
           circular dependency [RT#82712].


0.38     2013-01-15 (SHARYANTO)

         - No functional changes. Update module name in test script [RT#82712].


0.37     2013-01-11 (SHARYANTO)

         [ENHANCEMENTS]

         - Observe PERINCI_WRAPPER_VALIDATE_ARGS.

         - Observe LINENUM.

         [BUG FIXES]

         - Declare variables needed by validator code.

         - Use Data::Sah 0.10.


0.36     2012-11-07 (SHARYANTO)

         - No functional changes. Fix handling argument name that is not
           alphanum-only (e.g. 'foo.is', 'bar.contains', these are generated by
           Perinci::Sub::Gen::AccessTable).


0.35     2012-11-03 (SHARYANTO)

         - No functional changes. Minor optimization for generated code, add FAQ
           item.


0.34     2012-11-03 (SHARYANTO)

         [ENHANCEMENTS]

         - Follow Rinci 1.1.32.

         - Wrapper code now validates result.

         - Wrapper code now rejects invalid args (like 'foo bar') unless new
           option 'allow_invalid_args' is turned on.

         - Wrapper code now rejects unknown args (those not specified in 'args'
           metadata property), unless new option 'allow_unknown_args' is turned
           on.

         - Add options 'validate_args' to allow skipping validating arguments,
           'validate_result' to allow skipping validating result, 'skip' to skip
           certain properties, 'allow_unknown_args', 'allow_invalid_args'.

         - Most wrapping options can now be specified in the metadata attributes
           ('_perinci.sub.wrapper.*', e.g.
           '_perinci.sub.wrapper.validate_args').

         [REMOVED FEATURES]

         - Move caller() to Perinci-Util (Perinci::Sub::Util) to reduce startup
           overhead modules which only need caller() and not the whole wrapper.


0.33     2012-10-26 (SHARYANTO)

         [ENHANCEMENTS]

         - Wrapper code now validates arguments!


0.32     2012-08-16 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - Change logger setting variable $Log_{Perinci_,}Wrapper_Code
           (convention).


0.31     2012-08-16 (SHARYANTO)

         - No functional changes. Remove sub entry/exit log. Users should now
           use Log::Any::For::Package for this.

         - Wrapper code is only logged if $Log_Perinci_Wrapper_Code is true. You
           can set via environment variable LOG_PERINCI_WRAPPER_CODE.


0.30     2012-08-09 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - Now looks for property handler in Perinci::Sub::Property::* instead
           of Perinci::Sub::property::* (fix casing).


0.29     2012-08-08 (SHARYANTO)

         - Add caller() function.


0.28     2012-08-04 (SHARYANTO)

         - Add wrapped() function.


0.27     2012-08-02 (SHARYANTO)

         - No functional changes. Update to new Perinci::Role::MetaAccessor
           interface (0.26).


0.26     2012-08-01 (SHARYANTO)

         [ENHANCEMENTS]

         - Add wrap_all_subs().


0.25     2012-07-31 (SHARYANTO)

         [FIXES]

         - Change handling of 'result_naked' property so that 'dies_on_error'
           property can get result status + message properly.

         [ENHANCEMENTS]

         - Add argument: sub_name (also so that 'dies_on_error' property can
           display proper die message showing subroutine name).

         - Add argument: forbid_tags.


0.24     2012-07-31 (SHARYANTO)

         [INCOMPATIBLE CHANGES]

         - Introduce protocol version which must be specified by all property
           handlers (assumed to be 1 if unspecified). This is bumped whenever an
           incompatible change at the basic structure of wrapper code is
           introduced. Bumping the protocol version will force all existing
           property handlers to be updated.

         - Bump protocol version from 1 to 2: to return result immediately,
           handler must now say 'goto RETURN_RES' instead of 'return $res'
           directly. This is so that some handlers get the last chance to do
           something to $res before it is returned.

         [ENHANCEMENTS]

         - Introduce section: 'before_return_res'.


0.23     2012-07-29 (SHARYANTO)

         [ENHANCEMENTS]

         - When encountering an unknown property, automatically try to require
           Perinci::Sub::property::PROP first. So you don't have to manually
           use() the property modules.

         - Add wrap_sub() argument 'debug' to show debugging in generated code.
           Currently show the handler from which each line comes from.

         - Check known arg spec key.


0.22     2012-06-21 (SHARYANTO)

         - features: Require transaction ('-tx_manager' argument) if
           features->{tx}{req} is 1.


0.21     2012-06-07 (SHARYANTO)

         [FIXES]

         - deps: '-undo_trash_dir' argument is not needed when '-tx_manager'
           argument is given.


0.20     2012-06-07 (SHARYANTO)

         - Update to Rinci 1.1.18 (some new deps introduced: 'tmp_dir',
           'trash_dir', 'undo_trash_dir'; some removed: 'undo_storage').


0.19     2012-03-22 (SHARYANTO)

         [ENHANCEMENTS]

         - 'default_lang' also converts language properties in tag metadata in
           'tags'.


0.18     2012-03-21 (SHARYANTO)

         - No functional changes. Rebuild with Perinci PodWeaver plugin enabled.


0.17     2012-03-21 (SHARYANTO)

         [ENHANCEMENTS]

         - Convert 'default_lang' property.

         - 'remove_internal_properties' now also removes internal properties in
           'result', 'examples', and 'links'.


0.16     2012-03-16 (SHARYANTO)

         [ENHANCEMENTS]

         - Convert 1.0 - 1.1: Set argument spec's summary from argument schema.


0.15     2012-02-28 (SHARYANTO)

         [NEW FEATURES]

         - Handle 'cmdline_aliases' (Rinci 1.1.8+)

         - Convert 1.0 'arg_aliases' to 'cmdline_aliases'

         - Add 'remove_internal_properties' wrap option.


0.14     2012-02-23 (SHARYANTO)

         [NEW FEATURES]

         - Automatically convert metadata v1.0 to v1.1. Finally all the old
           Sub::Spec specs are now usable again.


0.13     2012-02-22 (SHARYANTO)

         [NEW FEATURES]

         - Sah schemas in 'args' and 'result' are now normalized in the new
           metadata, this is to make it simpler for other code to use the schema
           (e.g. Perinci-Access when completing args). New metadata is now a
           deep clone of the old (instead of just a shallow copy), this might
           increase memory usage.


0.12     2012-02-15 (SHARYANTO)

         [REMOVED FEATURES]

         - Remove 'force' argument. wrap_sub() still mark wrapping by blessing
           the generated wrapper, but will gladly double wrap. I believe caching
           should be done in the upper layers.


0.11     2012-02-13 (SHARYANTO)

         [ETC]

         - Add tweak to work better with 'retry' property wrapper.


0.10     2012-02-13 (SHARYANTO)

         [NEW FEATURES]

         - Add wrap option 'compile'.


0.09     2012-02-13 (SHARYANTO)

         [BUG FIXES]

         - Fix indenting in generated code.


0.08     2012-02-12 (SHARYANTO)

         [BUG FIXES]

         - Convert keys are now respected even though meta does not have that
           key.


0.07     2012-02-12 (SHARYANTO)

         - Add (or re-enable) unshift_lines()

         - Extract test routine to Test::Perinci::Sub::Wrapper to make it usable
           from other Perinci-Sub-property-* distributions.


0.06     2012-02-12 (SHARYANTO)

         - Rename distribution from Sub-Spec-Wrapper to Perinci-Sub-Wrapper.


0.05     2012-01-21 (SHARYANTO)

         - No functional changes. Mark Sub-Spec-Wrapper deprecated.


0.04     2011-10-19 (SHARYANTO)

         - No functional changes. Add missing dependency to
           Sub::Spec::ConvertArgs::Array [thanks cpant & Andreas].


0.03     2011-09-22 (SHARYANTO)

         [ENHANCEMENTS]

         - Support 'args_as' spec clause (hash/hashref/array/arrayref supported,
           but object not yet).


0.02     2011-08-31 (SHARYANTO)

         - Build and POD fixes.


0.01     2011-08-31 (SHARYANTO)

         - First release.