Revision history for Perl extension Form::Tiny. 2.26 Sat Feb 1 2025 - add field_def attribute to Error class (gh#18) - attribute field from Error class is no longer used for anything other than producing an error message - add a note about lack of support for roles and a link to a possible workaround (gh#17) 2.25 Sat Sep 7 2024 - strict plugin now collects and reports the names of fields which are unexpected (each field in its own error) - Error class has new method get_error, which returns full error message (old error method result may be incomplete) 2.24 Tue Mar 26 2024 - fix error when validation fails on deeply nested field (two levels down or more) 2.23 Fri Dec 29 2023 - fix incorrect usage of a type library in tests 2.22 Thu Nov 23 2023 - include subform errors in an exception if the default value is not a valid subform input 2.21 Wed Aug 23 2023 - fix adding errors from subform's array fields to the main form - minor code refactorization - minor performance improvements for nested form fields - add metamodel documentation 2.20 Tue Aug 22 2023 - fix memory leak in deep structure traversal 2.19 Mon Aug 14 2023 - fix inline form behavior in some edge cases - rewrite Plugin::Strict to use recently added blueprint metaobject method 2.18 Mon Aug 14 2023 - fix: field's addons (internal) are no longer assignable by the constructor - fix: FieldDefinitionBuilder's "data" is now named "build_data" not to clash with FieldDefinition's "data" - simplify and optimize Plugin::Strict - improved subform behavior with default and adjust options: see Manual::Compatibility (gh#11) - documentation improvements and fixes (gh#9) 2.17 Sat Jan 7 2023 - resolve deprecation of Form::Tiny::Filter (removed the package) - documentation improvements 2.16 Mon Dec 19 2022 - Empty child forms now produce a proper error message (gh#8) 2.15 Sun Oct 30 2022 - Add new method 'value' to forms 2.14 Sun Sep 18 2022 - Form::Tiny import functionality is now implemented as core plugins - added setters to many attributes in Form::Tiny::FieldDefinition - inline forms now accepts hashref 'fields' (instead of 'field_defs' arrayref) - form blueprints output can now be controlled with 'recurse' and 'transform' options - Form::Tiny::Filter has been moved to Form::Tiny::Plugin::Filtered::Filter: see Manual::Compatibility - drop namespace::clean dependency 2.13 Tue Aug 2 2022 - fix plugin array being modified by import routines - switch to Dist::Zilla 2.12 Sun May 8 2022 - improve performance and maintainability 2.11 Sun May 8 2022 - add missing VERSION to Form::Tiny::Plugin - fix compatibility with perl version 5.10 2.10 Sat May 7 2022 - remove deprecated is_validated and clear_valid methods - remove check if field default value passes field type test - fix reapplying form roles from plugins to child forms - add new metaobject method: blueprint (documented in Form::Tiny::Manual::Internals) - improve documentation and add more internals documentation 2.09 Tue Feb 1 2022 - is_validated and clear_valid methods are deprecated: see Manual::Compatibility - bugfix: only run after_validate hook if the validation occured at all - hook calls during validation have been inlined (optimization) 2.08 Sat Jan 29 2022 - cleanup and further optimization 2.07 Fri Jan 28 2022 - Form::Tiny package is no longer a role (revert change made in 2.06) - form_meta method is now installed by a metaclass upon setting the package name - Form::Tiny::Meta can now properly finalize itself with ->bootstrap method - inheritance candidates are now chosen based on their meta classes - add Sub::Util dependency and use it to prevent namespace::autoclean from removing form_meta method 2.06 Thu Jan 27 2022 - Form::Tiny package is now a role providing form_meta method - form_meta method is now namespace::autoclean resistant - Form::Tiny no longer automatically cleans up all previously defined symbols (revoke change made in 2.04) 2.05 Wed Jan 26 2022 - Module optimization - forms now keep track of whether they are flat (to apply optimizations) - style changes 2.04 Sat Jan 22 2022 - added plugins system: standarized way of extending the module - new import parameter: plugins => [] - subroutine parameters are now consistent by default - -consistent import flag is now a no-op - resolve the rest of pending deprecations - all symbols imported by Form::Tiny or before it is imported are now cleaned from the namespace - form inheritance now properly transfers meta roles (still experimental though) 2.03 Sat Oct 23 2021 - new import flag: -consistent - subroutine parameters are now consistent across the system with -consistent flag - deprecate forms without -consistent flag (transition period) - deprecate Error::DoesNotExist in favor of Error::Required - improved default built in error messages - new DSL keyword: form_message - configures built in error messages - new method: errors_hash - error messages keyed by field name - minor improvement: keep dynamic field data throughout validation - minor improvement: check whether error field name exists in form - new documentation: Manual::Cookbook - new documentation: Manual::Performance 2.02 Sat Sep 18 2021 - new feature: additional field validators - deprecate three parameter field filter - deprecate Form::Tiny::Filter 'field' property - fix and document Corinna compatibility 2.01 Fri May 28 2021 - new feature: field filters - new feature: after_error hook - bugfix: remove dclone on input - see Form::Tiny::Manual::Compatibility - minor bugfixes - improved documentation, examples and test cases 2.00 Sun May 23 2021 - module rewrite to form metaobject model - see Form::Tiny::Manual::Compatibility for a list of incompatible changes 1.14 Wed May 19 2021 - add module rewrite alert: see Form::Tiny documentation 1.13 Sat May 15 2021 - improve documentation - move documentation on bare-bones to Manual::Internals - fix distribution metadata 1.12 Wed Jan 6 2021 - form_field now accepts coderefs - add default value configuration for form fields - field coercions now eval errors and add them as form errors - build_fields sub is now optional 1.11 Tue Jan 5 2021 - fix broken release 1.10 Tue Jan 5 2021 - add syntactic sugar mode with -flag import - improve documentation 1.01 Mon Sep 28 2020 - fix Type::Tiny dependency minimum version - fix and improve documentation 1.00 Sun Sep 27 2020 - first version