The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.028   2018-12-15 (PERLANCAR)

	- Add standard coercion rules for datenotime and datetime types.


0.027   2018-10-30 (PERLANCAR)

	- Add coercion rule: perl::date::float_epoch_always.


0.026   2018-06-03 (PERLANCAR)

	- [Bugfix] Multiple exclusion (e.g. ["!R1","!R2"]) did not work as
	  advertised.

	- [Bugfix] Didn't sort rules by name.


0.025   2018-06-02 (PERLANCAR)

	[INCOMPATIBLE CHANGE]

        - Bump coerce module's metadata version from 2 to 3. This is to allow
	  the coercer code to return error message (when coercion fails) in
	  addition to coerced data. The metadata property 'might_die' is now
	  replaced by 'might_fail'. The coercer code is not expected to die,
	  unless there's an extraordinary situation in which case the whole
	  coercer code or schema validator code which uses the coercer code will
	  die anyway. Instead, when 'might_fail' is set to true, the coercer
	  code is expected to return an array containing (error_message,
	  coerced_data) instead of just coerced_data. When coercion succeeds,
	  error_message should be set to undef and when coercion fails,
	  error_message is set to a string detailing why coercion fails, and
	  coerced_data is set to undef.


0.024   2018-03-27 (PERLANCAR)

	- Allow space in addition to 'T' as date and time separator, so we
	  can accept MySQL datetime format.


0.023   2017-07-10 (PERLANCAR)

	- No functional changes.

	- [doc] Forgot to replace mention of Log::Any with Log::ger in the
	  doc.


0.022   2017-07-10 (PERLANCAR)

	- No functional changes.

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


0.021   2017-03-14 (PERLANCAR)

	- Add coerce rules: {int,float}::str_percent.


0.020   2016-09-29 (PERLANCAR)

        - [build] Rebuild to remove dependencies on
          Data::Sah::Compiler::perl::TH::* (which was accidentally added by a
          dzil plugin). [RT#118115]


0.019   2016-09-26 (PERLANCAR)

	- Revert from using JSON::MaybeXS to JSON because JSON::MaybeXS is
          currently not depakable (hard dependency to XS module
          Cpanel::JSON::XS).


0.018   2016-06-29 (PERLANCAR)

	- Include nanoseconds when coercing from DateTime::Duration object
	  to float(secs).


0.017   2016-06-13 (PERLANCAR)

	- Load required modules in the generated code, not in
	  Data::Sah::Coerce.


0.016   2016-06-12 (PERLANCAR)

	- Tweak js-bool test to be more flexible of JSON decode result.

	- Adjust to IPC::System::Options 0.27+ (backtick() renamed to
	  readpipe()).

	- [doc] Wording/typo/fmt.


0.015   2016-06-04 (PERLANCAR)

	- Use IPC::System::Options 0.25's backtick() to properly
	  shell-quote on win32.

	- [doc] Mention App::SahUtils & coerce-with-sah.


0.014   2016-05-27 (PERLANCAR)

	- Impart default coerce_to knowledge to each rule, for convenience.


0.013   2016-05-25 (PERLANCAR)

	- No functional changes.

	- [test] Forgot to add test_needs(Time::Duration::Parse::AsHash) to
	  some tests [CT].


0.012   2016-05-24 (PERLANCAR)

	- [Bugfix] Precludes should be checked to all rules, not just rules
	  after the precluding rule.


0.011   2016-05-23 (PERLANCAR)

        - [Incompatible change] Replace 'dont_coerce_from' and 'coerce_from'
          options to 'coerce_rules' which are more flexible.

        - Interpret rule metadata property 'precludes'.

        - [test] Forgot to add test_needs() to a subtest [CT].


0.010   2016-05-22 (PERLANCAR)

        - Introduce rule metadata: v & precludes.

        - [Incompatible change] Bump metadata version from 1 -> 2 to exclude old
          rule modules (i.e. date::int_epoch from 0.005, which generate
          CPANTesters failures).

        - [Internal] Refactor routine: get_coerce_rules() to avoid code
          duplication between Data::Sah::Coerce and Data::Sah::CoerceJS (and
          Data::Sah::Compiler::Prog).


0.009   2016-05-22 (PERLANCAR)

	- [Incompatible change] Replace return_type=bool+val with str+val.


0.008   2016-05-21 (PERLANCAR)

	- No functional changes.

	- [test] Skip js tests when node.js is not available [CT].


0.007   2016-05-20 (PERLANCAR)

        - Add option: return_type. The default is 'val' which is the same as
          before, but another return type 'bool+val' makes the coercer return a
          2-element array instead: the first element is a bool value indicating
          whether value has been coerced, and the second is the (possibly)
          coerced value. This is useful e.g. for testing/debugging.


0.006   2016-05-19 (PERLANCAR)

        [INCOMPATIBLE CHANGES]

        - Rename js rules: date::int_epoch -> date::float_epoch. Rename perl
          rules: date::int_epoch -> date::float_epoch. This means when
          upgrading, you must first uninstall the old version to remove the old
          module names. Sorry for this.

        [ENHANCEMENTS]

        - Introduce ordering ('prio' key in rule metadata). prio is a number
          between 0-100 and the lower the number, the higher the priority is.
          Rules will be sorted using their priority.

        - Add coercion rules for type 'bool'.

        [TESTS]

        - Complete the rest of the test suite (js compiler, duration and bool
          types).


0.005   2016-05-18 (PERLANCAR)

	- No functional changes.

	- Add test suite (so far only for compiler=perl, type=date).


0.004   2016-05-18 (PERLANCAR)

	- js: Add coercion rule for duration from float/float-string.


0.003   2016-05-17 (PERLANCAR)

        - Add coercion rules for type 'duration'.


0.002   2016-05-17 (PERLANCAR)

        - Add js rules for type 'date'.

        - Introduce rule metadata 'might_die'.

        - Add module: Data::Sah::CoerceJS.

        - perl: Tweak error messages to make it more helpfule.

        - Documentationf fixes and addition.


0.001   2016-05-16 (PERLANCAR)

        - First release, incomplete (no JS implementation & test suite yet).