Revision history for Data-Schema

0.135   2012-08-08 (SHARYANTO)

        No functional changes. Add deprecated notice in Abstract.


0.134   2012-07-05 (SHARYANTO)

        No functional changes. Add deprecated notice.


0.133   2010-11-05 (SHARYANTO)

        - Remove duplicate pod-coverage.t


0.132   2010-11-04 (SHARYANTO)

        - Build fix: Comment out 'use Carp::Always'

        - Test fix: Storable can't handle Regexp


0.131   2010-11-03 (SHARYANTO)

        - Interim release to replace Data::PrefixMerge with Data::ModeMerge.


0.13    2009-11-25 (SHARYANTO)

        - schema definition of DS schema (in DS::Schema::Schema)

	- new config: debug for debugging complex schemas

	- reintroduced warnings

	- briefer syntax to import plugins, types, schema types: 'use
	  Data::Schema qw(Plugin::Foo Type::Bar Schema::Baz);'

        - new type: typename

        - new attributes. comment, note, default. for scalar types:
          deps. for str: isa_regex. for array: elem_deps_regex. for
          hash: key_deps_regex, conflicting_keys,
          conflicting_keys_regex, codependent_keys,
          codependent_keys_regex.

        - added attribute aliases. for hash: all_values -> of,
          all_keys -> keys_of. dep -> deps.

        - new attribute suffixes. :comment, :note, :warn, :warnmsg.

 	- INCOMPATIBLE CHANGE: keys_regex now obeys
           allow_extra_hash_keys setting, just like keys

	- INCOMPATIBLE CHANGE: 'deps' for hash is renamed to
          'key_deps' (or 'key_dep'). 'deps' also exists for hash,
          but now taken from scalar

	- INCOMPATIBLE CHANGE: 'deps' for array is renamed to
          'element_deps' (or 'elem_dep'). 'deps' also exists for
          array, but now taken from scalar

	- changed: 1st and 3rd argument to 'elem_deps'/'key_deps'
          now become regex instead of plain string

	- int's attribute 'divisible_by' and 'indivisible_by' also
          accept array

	- refactoring, bug fixes, added tests

0.12    2009-11-20 (SHARYANTO)
        - new: DS now can compile schema to Perl code for much
          speedier validation
	- INCOMPATIBLE CHANGE: required_keys_regex and required_keys
          for hash used to require that value is defined. now they
          don't. i.e.: ds_validate({a=>undef},
          [hash=>{required_keys=>['a']}]) used to fail, now
          it will succeed. to require that value be defined, use
          'required=>1' (or 'set=>1').
	- INCOMPATIBLE CHANGE: hash's "of" attribute is now changed to
          mean (become an alias for) "values_of". The original "of"
          meaning is removed because it is easily misused/forgotten.
	- INCOMPATIBLE CHANGE: attribute suffix syntax
          (e.g. minlen.errmsg) now changed to using ':'
          (e.g. minlen:errmsg, minlen:ui) to avoid clash between
          attributeless suffix (':errmsg') and merge prefix '.'
        - spelling change: int's attribute: undivisible_by ->
          indivisible_by
        - new attribute suffix: ':errmsg' for error message
	- new: type attribute 'allow_extra_keys' for hash
	- new: add short_english() in type handler
        - removed: validate() no longer return 'warnings' (they are
          never used anyway)
        - rearrange tests
        - fix bug in attribute hash merging

0.11    2009-11-09 (SHARYANTO)
        - fix broken 0.10 release (HasLength has been replaced)

0.10    2009-11-09 (SHARYANTO)
        - new: type attribute 'deps' for HasElement types, specifying
          interelement dependencies.
        - new: type 'cistr' (case-insensitive string)

0.09    2009-11-08 (SHARYANTO)
        - now requires Data::PrefixMerge 0.06
        - new: type attribute 'forbidden' (the opposite of 'required'), which
          states that data must be undef
        - new: type attribute 'set' which is just an alias for 'required' or
          'forbidden'. set=1 is the same as setting 'required=1', while 'set=0'
          is the same as 'forbidden=0'
        - INCOMPATIBLE CHANGE: setting config is now done via
          $validator->config->foo instead of $validator->config->{foo} to catch
          config name typos at compile time.
        - INCOMPATIBLE CHANGE: when a hash type has 'keys' attribute, it now
          automatically means that only those keys specified in 'keys' are
          allowed (i.e. [hash=>{keys: {a: int, b: str, c: int}}] now
          automatically means [hash=>{keys: {a: int, b: str, c: int},
          allowed_keys: [a, b, c]}]. this is because it is the common case
          anyway. to get the old behaviour, you need to set configuration:
          'allow_extra_hash_keys' to true.

0.08    2009-11-06 (SHARYANTO)
        - refactor: use Moose role: Comparable, Sortable, and HasLength
        - refactor: change type_in_english() to english()
        - add no Moose to every Moose classes

0.07    2009-08-05 (SHARYANTO)
        - optimization: defer loading default type handlers until
          needed (for slightly better startup speed)
        - new feature: add type_in_english() for type handler
        - doc: small fixes & example addition
        - change: ignore all ui.* type attributes

0.06    2009-06-22 (SHARYANTO)
        - use Data::PrefixMerge 0.05
        - allow merge prefix on first attrhash (for KEEP mode merges)

0.05    2009-06-13 (SHARYANTO)
        - changed type attributes for hash: add (keys_of, values_of,
          allowed_values/values_one_of), remove (all_keys), change
          (of)
        - new attributes for array & hash: some_of
        - doc: some more work & fixes on documentation
        - bug fixes

0.04    2009-03-31 (SHARYANTO)
        - doc: some more work on documentation
        - change: remove some attribute synonyms, rename some

0.03    2009-03-30 (SHARYANTO)
        - rename from Schema-Nested to Data-Schema
        - new feature: attribute suffix
        - new config: gettext_function
        - doc: improve & reorganize documentation

0.02    2009-03-30 (SHARYANTO)
        - new feature: add new attribute for array: unique
        - new feature: add attribute alias for Base's one_of: enum
        - doc: fix typos

0.01    2009-03-29 (SHARYANTO)
        First release
