Revision history for Concierge-Users

v0.9.0  2026-06-05
    - get_field_hints: add format_as to returned hashref
    - Add format_as property to all built-in field definitions (core,
      standard, system); enum fields use 'options', others use the
      type-appropriate convention (text, boolean, date, datetime)
    - format_as is not validated by Concierge; apps may supply their own
      native format codes via app_fields or field_overrides during setup
      and retrieve them unchanged via get_field_hints()
    - Conventional format_as values: text, options, boolean, number,
      date, datetime, time
    - Fix stale POD VERSION sections in Database, File, and YAML backends
      (were v0.8.2, now in sync at v0.9.0)

v0.8.5  2026-05-31
    - Refactor: replace field_use => 'system' with system => 1 boolean on
      last_mod_date and created_date; remove field_use => 'identity' from
      user_id (identity field identified by name only)
    - Move last_login_date from Standard Fields (12) to System Fields (3);
      system fields bypass validation
    - get_field_hints: returns system => 1/0 for all fields
    - config_to_yaml: emits system: 1 instead of field_use: system

v0.8.4  2026-05-31
    - Fix version consistency: bump Database, File, and YAML backend modules
      to v0.8.4 (were not bumped during v0.8.3 release)
    - Update Makefile.PL provides section to v0.8.4

v0.8.3  2026-05-27
    - get_field_hints: add default, null, and validate_as to returned hashref;
      document required semantics (service-layer, not app-level conditional)
    - Enum options: support value:Label syntax; v_options and default detection
      strip :Label suffix to extract bare stored value
    - show_default_config / show_config: return service hashrefs
      { success, config, ... } instead of printing to STDOUT
    - Separate data type from operational role: user_id type=>text +
      field_use=>identity; last_mod_date / created_date type=>timestamp +
      field_use=>system
    - Add %Concierge::Users::Meta::field_types with the eight canonical data
      types; moniker and name remain in type_validator_map as validate_as
      targets only
    - config_to_yaml: emit field_use when present
    - __DATA__: fix inconsistent tab indentation on validate_as lines

v0.8.2  2026-05-25
    - Replace real personal data in examples/__DATA__ with mock data
      (fictional names, 555- phone numbers, @example.com addresses)

v0.8.1  2026-05-25
    - Expand test coverage across all test files

v0.8.0  2026-02-15
    - Fixed distribution issue with MANIFEST.SKIP

v0.7.4 2026-02-12
    - Rebuilt tarball with GNU tar (fixes PaxHeader issue on CPAN)

v0.7.1 2026-02-12
    - Fixed use of Capture::Tiny in tests

v0.7.1 2026-02-11
    - Documentation fixes: include_standard_fields default behavior, core enum override via field_overrides
    - Moved scalability benchmarks to xt/ author tests

v0.7.0 2026-02-11
    - Initial release to CPAN
    - SQLite, CSV/TSV, and YAML storage backends
    - Field validation with multiple validators (email, phone, date, timestamp, boolean, enum, moniker, name)
    - Field overrides and custom application fields
    - Automatic data archiving on re-setup
    - Service layer pattern with structured hashref returns
    - Comprehensive test suite (115 tests)
v0.7.2 2026-02-11
    - Improved documentation