Revision history for Catmandu 1.2020 2023-02-08 16:29:37 CET - Reordering documentation focussing on command line functionality - Adding Catmandu::PerAPI documentation - Updating Catmandu::Introduction - Supporting fix on an Catmandu::Iterable (obs nichtich) 1.2019 2022-03-21 16:21:54 CET - wrap ->isa in eval - remove release tests from github actions matrix 1.2018 2022-03-09 16:26:23 CET - bump required version of Parser::MGC 1.2017 2022-03-09 15:59:27 CET - remove weird io test 1.2016 2021-09-17 09:07:55 CEST - new mapping fix - bump minimum required version of perl to 5.14, some dependencies already require this 1.2015 2021-01-22 16:23:42 CET - fix applying Readonly to bags that are not Droppable 1.2014 2021-01-15 15:29:19 CET - Path::Simple value argument is never stringified 1.2013 2020-07-09 09:47:03 CEST - rewritten Exporter::Count uses optimized count when available 1.2012 2020-05-25 14:14:08 CEST - support quote_space option in CSV exporter 1.2011 2019-12-20 14:08:54 CET - give commands access to the logger 1.2010 2019-11-26 12:20:03 CET - new Iterable every method - updated Iterable, Fix pod 1.2009 2019-11-04 16:03:36 CET - new is_float utility function - fix some bugs in emitting of strings that look like numbers 1.2008 2019-10-23 15:14:27 CEST - new disassoc fix - add missing dependency 1.2007 2019-09-25 15:48:32 CEST - Searchable stores get a new maximum_offset option to avoid deep paging if needed 1.2006 2019-09-19 17:38:31 CEST - add missing dependencies 1.2005 2019-09-19 11:04:58 CEST - switch to UUID::Tiny 1.2004 2019-08-28 14:00:59 CEST - new Flushable role for bags 1.2003 2019-08-19 13:47:43 CEST - switch to Data::UUID::MT to avoid file related problems (see https://github.com/rjbs/Data-UUID/issues/5 and https://github.com/rjbs/Data-UUID/issues/33). We now use the UUID v4 method instead of v3. 1.2002 2019-05-27 16:01:17 CEST - a Catmandu::Error can now build it's own message 1.2001 2019-05-22 15:32:43 CEST - new IterableOnce role for iterators that can only run once like importers - fix replacing the root object itself in the new builder versions of copy_field and move_field 1.20 2019-05-21 10:02:02 CEST - Fix::Builder and Path make writing fixes much easier - new eval fix - new cp,mv and rm shortcuts for copy_field, move_field and remove_field - CSV exporter accepts escaped whitespace literals as sep_char just like the TSV exporter - fix --transaction option in copy and import commands - bump required version of List::MoreUtils 1.10_03 2019-05-17 10:44:49 CEST - new cp,mv and rm shortcuts for copy_field, move_field and remove_field - CSV exporter accepts escaped whitespace literals as sep_char just like the TSV exporter - fix --transaction option in copy and import commands - fix bug in Emit 1.10_02 2018-11-09 09:09:02 CET - bump required version of List::MoreUtils 1.10_01 2018-11-08 15:38:48 CET - Fix::Builder and Path make writing fixes much easier - new eval fix 1.10 2018-08-30 10:38:16 CEST - split off Catmandu::FileStore - bring Dockerfile back to this repository - include fix now accepts glob patterns - the export and convert commands get a new --id-file option 1.09 2018-03-06 11:24:35 CET - add validator method to Catmandu - new Mock validator - new validate fix and valid fix condition - JSON importer byte buffer size is now configurable to optimize performance - command line help improvements 1.08 2018-02-02 14:48:51 CET - fix language gets support for namespaces - fix language gets support lexical blocks - filter fix gets a new invert option - Iterable map method can now return multiple values (or none) - cleanup cli error handling code - file store tests are now threadsafe 1.07 2017-11-09 10:03:51 CET - new Readonly plugin - new DKVP importer for delimited key-value pairs - new Store bags method - new Store default_options for bag 1.0606 2017-09-26 10:42:35 CEST - fix bug with numeric strings in fix preprocessing 1.0605 2017-09-21 10:58:21 CEST - fix touch command pod 1.0604 2017-09-21 10:35:26 CEST - new touch command and bag touch method - new Util::now function - remove dependency on LWP::UserAgent::Determined - add a basic vim syntax definiton for fix files - add, copy, join, move, remove, set, sort and split fix shortcuts 1.0603 2017-09-04 10:16:55 CEST - bags can have default plugins applied - add hard dependency on List::MoreUtils::XS 1.0602 2017-06-23 10:16:48 CEST - fix filestore permission bug on Windows 1.0601 2017-06-21 14:49:30 CEST - bugfix release 1.06 2017-06-20 15:48:00 CEST - new FileStores for handling binary data - new iterator bind - better bind performance - more pod 1.0507 2017-05-19 17:32:57 CEST - correctly handle escapes in fix langauge quoted strings 1.0506 2017-05-12 16:36:03 CEST - Catmandu gets new define_importer, define_exporter, define_store and define_fixer convenience methods - Versioning plugin get_version can now also return the current version 1.0505 2017-05-12 12:52:18 CEST - new compact fix - bag gets a convenience exists method - Versioning plugin get_version($id, 1) behaves correctly if no versions have been created yet 1.0504 2017-04-21 12:22:59 CEST - new string fix - new int fix - Datestamps plugin field names are now configurable 1.0503 2017-04-06 15:20:58 CEST - the store wide id_key is also aliased as id_field 1.0502 2017-04-06 15:15:57 CEST - id_key is now also a store wide option 1.0501 2017-04-06 14:34:00 CEST - id_key and version_key aliased as id_field and version_field 1.05 2017-03-31 13:51:48 CEST - Windows build was broken since 1.0304, should now build again - fix language has new elsif statement - fix language has new boolean keywords - fix language do statement aliased as bind - config is now reloadable - Plugin::Datestamps datetime format is now configurable - pod corrections 1.04 2017-03-23 13:56:32 CET - new error fix - new rename fix - new search_in_store fix - new import_from_string fix - new export_to_string fix - new valid fix condition ties Validator to fixes - new CQLSearchable role - new Iterable run method - relevant commands get new transaction, sort and sru-sortkeys options - remove deprecated data command - improved info command - inline use of fixes is now cached by default and much faster - solved memory leak in Fix::Base - the perl code generated by Fix is now a reusable standalone sub - more pod 1.0306 2017-02-09 15:22:04 CET - config command has new fix and preprocess options - memoize loggers 1.0305 2017-01-26 09:32:09 CET - fix command line repeated argument bug 1.0304 2016-11-23 11:21:32 CET - new index fix - fix command line argument utf8 bug 1.0303 2016-10-18 14:45:49 CEST - convert and export commands get a new id option 1.0302 2016-10-04 10:43:51 CEST - Hash store is now transactional for testing purposes 1.0301 2016-09-22 09:33:53 CEST - fix hashmap bind tests 1.03 2016-09-21 10:32:51 CEST - specialized id generators for bags - rewrite of the fix parser using Parser::MGC - Catmandu->fixer($fixer) echoes the $fixer back as expected 1.0201_02 2016-05-27 09:46:53 CEST - rewrite of the fix parser using Parser::MGC - Catmandu->fixer($fixer) echoes the $fixer back as expected 1.0201_01 2016-05-26 14:45:25 CEST - rewrite of the fix parser using Parser::MGC - Catmandu->fixer($fixer) echoes the $fixer back as expected 1.0201 2016-05-23 14:25:25 CEST - faster, simpler vacuum fix - update required version of Marpa 1.02 2016-05-20 11:33:38 CEST - all fixes and fix conditions can be used inline now - more fast type tests - fix type check bug 1.01 2016-05-10 13:03:58 CEST - configurable prefixes for internal store data keys (_id, _version, ...) - fix file or inline fix preprocessing with moustache templates - faster type tests with Ref::Util - is_true and is_false fix conditions have a new strict mode - new is_array, is_object, is_string, is_number and is_null fix conditions - new Importer http_timing and http_retry options - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002_03 2016-04-28 10:00:55 CEST - fix file or inline fix preprocessing with moustache templates - faster type tests with Ref::Util - is_true and is_false fix conditions have a new strict mode - new is_array, is_object, is_string, is_number and is_null fix conditions - new Importer http_timing and http_retry options - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002_02 2016-04-22 09:38:41 CEST - is_true and is_false fix conditions have a new strict mode - new is_array, is_object, is_string, is_number and is_null fix conditions - new Importer http_timing and http_retry options - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002_01 2016-04-14 14:19:42 CEST - better info command - switch to Cpanel::JSON::XS - consistent interpretation of backslash in fixes with regexes - fix bugs relating to perltidy - more and better pod - more tests 1.0002 2016-04-01 13:36:28 CEST - fix debug mode dying if Perl::Tidy is missing - error messages now default to empty string - improved Importer::TSV and Exporter::TSV 1.0001 2016-03-03 16:28:16 CET - fix some pod typos - fix handling multivalued response http headers in Importer 1.00 2016-02-22 16:16:07 CET - fix os-dependent paths in tests - throw an error if an Importer file path doesn't exist - bump required version of URI::Template because we need variable names returned in order - pod fixes - lots of pod - lots of tests - new Exporter::Mock - new Importer::TSV and Exporter::TSV - new 'uri_decode' and 'uri_encode' fixes - new Droppable and Transactional roles for stores - new 'drop' command - switch to MooX::Role::Logger for logging - smarter CSV::Importer - new specialized TabularExporter base role - fix bug in 'array_to_sentence' helper function - fix $append bug in 'data_at' helper function - the 'data' command is deprecated. All it's functionality is now provided by the 'import', 'export', 'convert' and 'copy' commands - rename the 'move' command to the more accurate 'copy' - line delimited JSON is no longer the default for Importer::JSON and Exporter:JSON 1.00_03 2016-02-10 14:34:07 CET - fix os-dependent paths in tests - throw an error if an Importer file path doesn't exist 1.00_02 2016-02-09 10:17:58 CET - bump required version of URI::Template because we need variable names returned in order - pod fixes 1.00_01 2016-02-04 16:30:11 CET - lots of pod - lots of tests - new Exporter::Mock - new Importer::TSV and Exporter::TSV - new 'uri_decode' and 'uri_encode' fixes - new Droppable and Transactional roles for stores - new 'drop' command - switch to MooX::Role::Logger for logging - smarter CSV::Importer - new specialized TabularExporter base role - fix bug in 'array_to_sentence' helper function - fix $append bug in 'data_at' helper function - the 'data' command is deprecated. All it's functionality is now provided by the 'import', 'export', 'convert' and 'copy' commands - rename the 'move' command to the more accurate 'copy' - line delimited JSON is no longer the default for Importer::JSON and Exporter:JSON 0.9505 2015-12-02 10:36:58 CET - expand, collapse and vacuum fixes handle large arrays - more pod 0.9504 2015-11-03 11:30:48 CET - fix dereferencing bug in Util::is_string - move Dockerfile to it's own repository 0.9503 2015-10-29 16:32:28 CET - VERSION for all packages and cleanup 0.9502 2015-10-28 16:48:10 CET - new Store::Multi - new Exporter::Multi - new Importer::Multi - new MultiIterator - remove dependency on Data::Util so we can support perl 5.22 - fix typos - fix Fix::Bind::list single execution bug - .mailmap file 0.9501 2015-10-15 16:30:28 CEST - 'trim' fix remove diacritics mode 0.95 2015-10-08 11:46:02 CEST - Importer can now fetch remote data over http(s) - catmandu run command and executable fixes - catmandu interactive fix interpreter - 'importer' bind - more powerful 'list' and 'hashmap' bind - autocommit option on all addables (Exporter,Store,...) - 'expand_date' fix replaced by 'split_date' in the Catmandu-Fix-Date distribution - more pod and tests 0.9403 2015-09-17 16:44:45 CEST - make 'include' fix load path aware 0.9402 2015-09-16 14:30:07 CEST - rename Iterable 'sort' to 'sorted' to fix name conflict 0.9401 2015-09-15 11:19:57 CEST - new 'uniq' fix - new 'flatten' fix - new 'include' fix to load other fix files - Importer has a new 'data_path' option to import data substructure(s) instead - fix emitted null bug in the 'reject' and 'select' fixes - more pod and many typos corrected 0.94 2015-07-10 13:26:34 CEST - lots more pod and many typos corrected - more fix tests - new Text importer to import data similar to sed and awk - Modules importer supports multiple namespaces and module description - 'help' command now shows importer and exporter options - new utility functions 'pod_section' and 'array_split' - empty path now refers to the root in fixes - new 'assoc' fix - new 'perlcode' fix - new 'with' and 'visitor' binds - new 'in' fix condition - new 'any_equal', 'all_equal' fix conditions - new 'is_bool', 'is_true', 'is_false' fix conditions - utf8 support tests - more robust header detection in CSV exporter - more robust 'copy_field' fix - 'expand' and 'collapse' fixes have a new 'sep_char' option - add .dockerignore file - fix travis.yml - more robust 'lookup' and 'lookup_in_store' fixes - Iterable 'select' method aliased as 'grep' - Hash store has a new 'init_data' option - remove conflicting VERSION sub from CLI 0.9301 2015-02-24 11:17:36 CET - Cmd output test failed sometimes 0.93 2015-02-24 09:54:04 CET - Iterable can now behave like an external iterator (see next and rewind methods) - better Fix::Parser error handling - new hash_merge fix - fix Versioning bugs - more consistent Importer::JSON and Exporter::JSON parameter naming - fix regex bug in emit - new set_array and set_hash fixes - new filter fix - Iterable stop_if method - pod fixes 0.9210 2015-01-06 09:28:23 CET - fix log tests 0.9209 2014-12-04 13:58:02 CET - info command - ignore installed but depreciated commands - improved retain fix will replace retain_field - simple emitting fixes require a bit less boilerplate - JSON::XS is now required to avoid bugs in other implementations 0.9208 2014-11-20 09:50:56 CET - lazy and more robust fix building in Fix.pm 0.9207 2014-11-06 09:53:08 CET - greater_than, less_than fix conditions - fix bug in Paged - Exporter::JSON pod - sort_field fix handles undef values 0.9206 2014-10-07 09:06:43 CEST - remove orphan test 0.9205 2014-10-06 14:09:06 CEST - more pod - combine the various info modules in Importer::Modules - Bind::hashmap fix 0.9204 2014-06-13 09:44:48 CEST - fix issue #93 octal number bug 0.9203 2014-06-13 09:27:54 CEST - fix counting bugs 0.9202 2014-06-10 09:30:24 CEST - fix Logger bug 0.9201 2014-06-06 14:44:33 CEST - Iterable benchmark and format method pod 0.92 2014-06-06 13:06:01 CEST - catmandu debug flag and more informative error messages - more pod - bump required version of Moo - require YAML::XS to avoid YAML weirdness - fix CLI include path load order - MooX::Log::Any replaced by Catmandu::Logger because it doesn't set the correct category - config command can use any Exporter - Importer::JSON multiline is more robust - Exporter::JSON supports canonical, indent, space_before, space_after options - info commands and matching importers 0.9103 2014-05-23 10:24:52 CEST - fix script dir in build script - Fix::Parser handles empty comments - Exporter pod 0.9102 2014-05-20 14:07:46 CEST - Marpa requires Time::Piece 0.9101 2014-05-20 11:58:46 CEST - less_than, greater_than conditions 0.91 2014-05-20 09:29:01 CEST - adding monads in disguise Catmandu::Fix::Bind - much more pod - make travis a bit happier 0.9 2014-05-12 10:18:40 CEST - switch to Dist::Milla - Marpa based fix parser - Config::Onion based config loader - :up load path - move documentation to the Github wiki - Validators 0.8014 2014-04-03 - fix Paged bugs - more tests 0.8013 2014-03-27 - Importer::JSON multiline switch - Importer pod 0.8012 2014-03-24 - add missing List::MoreUtils dependency 0.8011 2014-03-18 - fix Paged bugs - array and hash fixes - more tests - more pod 0.8010 2014-03-11 - bump required version of YAML::Any - use List::Util::sum instead of List::Util::sum0 (not present in older versions) 0.8009 2014-03-07 - sort_field fix - fix undefined lib_path 0.8008 2014-03-05 - split off Catmandu::Exporter::Template 0.8007 2014-03-04 - rewrite Catmandu::Serializer - split off Catmandu::Serializer::storable - split off Catmandu::Serializer::messagepack - tests for Catmandu::Serializer 0.8006 2014-03-04 - expand_date fix - CLI --lib-path option - more tests - remove dependency on Data::SpreadPagination - Importer encoding is now an attribute - fixes inheriting from Fix::Base can now export their functionality as a function 0.8005 2013-12-20 - Catmandu::Plugin:: pod 0.8004 2013-12-18 - Exporter::CSV always_quote option 0.8003 2013-12-18 - fix bug in Store::bags 0.8002 2013-12-09 - fix pod 0.8001 2013-11-19 - add one step install to pod 0.8 2013-11-14 - Fix::Condition now supports otherwise clause - Fix, Fix::Condition bugfixes - TY RIS tag needs to come first for some exporters - fix version command 0.7002 2013-09-12 - sort keys extracted from a hash in Exporter::CSV and Importer::CSV 0.7001 2013-09-09 - fix bug in data command with option values evaling to false 0.7 2013-09-02 - JSON Exporter array option 0.6 2013-09-02 - Util::trim also removes vertical whitespace - updated introduction, developers guide - more tests - sum fix - travis - pod links 0.5004 2013-07-01 - lookup, lookup_in_store fixes handle -delete option with wildcard correctly 0.5003 2013-06-28 - lookup_in_store fix 0.5002 2013-06-26 - count fix - nothing fix 0.5001 2013-06-25 - trim fix nonword option 0.5 2013-06-12 - ArrayIterator pod - split off Store::DBI, - split off Importer::Atom - split off Exporter::Atom - split off Exporter::BibTeX - split off Exporter::XLS - remove dependency on Module::Info 0.4001 2013-06-20 - lookup fix tests, -default, -delete options 0.4 2013-06-19 - to_json fix - from_json fix 0.3 2013-06-18 - Exporter::JSON pod - lookup fix 0.2003 2013-05-27 - remove given/when statements (experimental since perl 5.16) - fix endless loop if iterators returned by Iterable group method are not consumed 0.2002 2013-05-08 - revert to IO::String because open with scalar ref has binmode bugs 0.2001 2013-05-07 - ArrayIterator - fix Util::is_instance() - avoid using IO::String 0.2 2013-04-24 - better config command - convert command - count command - delete command - export command - import command - move command 0.1003 2013-04-16 - fix Exporter::Template dynamic scope 0.1002 2013-04-02 - missing Env::fixers 0.1001 2013-03-28 - don't throw empty messages - bump required version of Throwable 0.1 2013-03-26 - logging with MooX::Log::Any - error hierarchy - Store forwards all Bag methods to the default Bag - make Perl::Tidy optional - namespace::clean - Sane exports Try::Tiny::ByClass - Sane no longer exports confess, use the Error classes - a new Env class takes care of loading the config and other environment related tasks - Buffer and Counter have better encapsulation - Iterable has a new benchmark method - Exporter::RIS AR tag - Exporter::BibTeX articleno field - rename Pager to Paged 0.0901 2013-03-07 - fix makefile 0.09 2013-03-06 - Exporter::Atom - fix pod 0.08 2013-02-26 - compile fixes to perl closure - tests for all fixes - fix typo in Importer::RIS - add doi field to Exporter::BibTeX 0.07 2013-02-07 - conditionals in fixes - append, prepend fixes 0.06 2013-02-05 - Util::io() can now take a callback to read to or write from - fixer method enables named fixers in config - default fixers, importers, exporters equivalent to default store 0.05 2012-12-04 - split off Catmandu::Store::ElasticSearch - split off Catmandu::Store::Solr - split off Plack::Session::Store::Catmandu - split off Dancer::Plugin::Catmandu::OAI - split off Dancer::Plugin::Catmandu::SRU - split off Dancer::Session::Catmandu - Exporter::Template dies if template isn't found - fix accidental creation of non-existing keys in Util::set_data() 0.0402 2012-11-12 - Store::Hash is no longer Searchable - remove dependency on Data::Visitor::Callback - bump required version of Moo to 1.0 - Util::write_file() - Util::join_path() - Util::normalize_path() - Util::segmented_path() - Util prefer io(binmode => ...) to io(encoding => ...) 0.0401 2012-10-24 - split off Store::SBCatDB - more Util docs 0.04 2012-10-24 - Util human output functions - Util xml functions - Util docs 0.0303 2012-10-15 - pass limit option in Store::ElasticSearch::Searcher and Store::Solr::Searcher - fix Exporter::CSV docs - custom header labels in Exporter::CSV and Exporter::XLS 0.0302 2012-09-25 - fix POST support in Dancer::Plugin::Catmandu::OAI - optimize Util::require_package 0.0301 2012-07-09 - fix typo in Catmandu->load 0.03 2012-07-06 - iterative version of CQL::ElasticSearch - Store::ElasticSearch searcher supports sort - faster Datestamps - Iterable->interleave() - Iterable->detect/select/reject(key => ['val', ...]) - Iterable->detect/select/reject(key => 'val') - fix Dancer::Plugin::Catmandu::SRU recordPosition - Cmd::config can take a key to show only a subset 0.02 2012-06-12 - remove guard feature from fixes - load split config files - Catmandu->roots() - support for nested object queries in CQL::ElasticSearch - improve Plugin::Versioning - more docs 0.0106 2012-05-29 - fix Store::DBI transaction method 0.0105 2012-05-21 - more docs 0.0104 2012-05-16 - more docs 0.0103 2012-05-14 - improve Plugin::Versioning - more docs - fix split on \r in tests - fix dependencies: parent.pm is only bundled with perl >= 5.10.1 0.0102 2012-05-09 - pass data to Bag->generate_id() - fix typo in Cmd::data - fix YAML loading 0.0101 2012-05-08 - fix dependencies 0.01 2012-05-05 - initial release