Revision history for DBIx::Class::MockData v1.0.0 2026-06-21 [ENHANCEMENTS] - Switched to dotted-decimal versioning (v-strings). [DOCUMENTATION] - Small pod changes. 0.05 2026-03-23 [NEW FEATURES] - Added truncate() method for fast, safe table emptying (preserves structure) - Added quiet flag to suppress non-fatal warnings - Added start_year/end_year parameters for configurable date ranges - Added --truncate and --quiet options to CLI tool [ENHANCEMENTS] - Improved dependency graph detection for complex relationships - Better cycle detection with clear error messages - State-based templates in _contextual_string for better performance - Strict argument validation with meaningful error messages - Configurable date ranges (default: 2010-2026) [FIXES] - Fixed closure variable capture in template generators - Fixed SQLite sequence reset in truncate() - Fixed email format to keep salt in local part - Fixed only/exclude filter handling in truncate() - Fixed CLI exit codes on bulk insert failures [DOCUMENTATION] - Clear comparison of truncate vs wipe vs deploy - Documented date range configuration [INTERNAL] - Refactored _generate_value to support pluggable generators - Optimised template matching with state variables - Improved test coverage - Added comprehensive CLI tests for truncate and quiet options 0.04 2026-03-17 [NEW FEATURES] - Added rows_per_table parameter to specify different row counts per table - Added generators parameter for custom column value generation Supports static values, row interpolation ({row}), and Perl code references [ENHANCEMENTS] - Bulk insert using populate() for up to 10x faster performance - Salt value now randomised even when seed is set (ensures cross-run uniqueness) - Better handling of unique constraints across all column types - Improved error handling with graceful failure recovery [DOCUMENTATION] - Added comprehensive examples for rows_per_table and generators - Documented performance improvements and best practices [INTERNAL] - Refactored _generate_value to support custom generators - Added rows_per_table support in generate() loop - Updated CLI tool with --rows-per-table and --generators options - Comprehensive test coverage for all new features 0.03 2026-03-12 New features: - generate() now accepts an 'only' argument (arrayref of source names) to restrict data generation to a specific subset of tables. - generate() now accepts an 'exclude' argument (arrayref of source names) to skip selected tables while populating the rest. - Both filters preserve FK-safe insertion order within the active set. - Both filters are respected by dry_run() as well as generate(). - Passing both 'only' and 'exclude' to new() croaks immediately with a clear error message. - Passing an unknown source name in either argument croaks with a descriptive error identifying the offending name(s). CLI tool: - Added --only