Revision history for Data-Roundtrip
0.01 2020-04-13
First version, released on an unsuspecting world.
0.02 2020-04-14
Changed NAME in documentation of the scripts, some
POD errors in lib/Data/Roundtrip.pm and some errors
in the documentation.
0.03 2020-04-15
Makefile.PL changes thanks to marto @ Perlmonks.org
0.04 2020-04-15
Added perl2dump_filtered(), perl2dump_homebrew()
and dump_perl_var_recursively().
Fixed scripts to work with new sub names.
0.05 2020-04-16
Makefile.PL minor modification.
0.07 2020-04-20
Changed default options for scripts so that they don't do pretty
printing by default.
Added import parameters 'no-unicode-escape-permanently'
and 'unicode-escape-permanently' for efficient use of *2dump*
subs.
Added benchmarks to time 2dump subs and inserted target in Makefile.
0.08 2020-04-20
Removed dependency to Sub::Override, overriding subs is done by us now.
Fixed POD mistakes.
0.09 2020-04-20
Added dependency Test::Script and Test::Pod (thank you Slaven Rezić)
0.10 2020-04-20
Added minimum version for Test::Script to be 1.09
to support script_stderr_is. Thank you Slaven Rezić!)
0.11 2020-04-21
Checked failures for test script t/02-random-data-structure.t
and provided a fix and added a warning in CAVEATS section.
0.12 2023-03-09
Wrapped within an eval{}, call to JSON::decode_json in sub json2perl.
This allows graceful death when input json is not valid.
0.13 2023-03-11
In the previous version I had forgotten an erroneous INSTALL_BASE
in Makefile.PL which pointed to $ENV{HOME}/usr.
This resulted in installing this module in installing user's
home dir, under usr/
Now this is fixed. Those who installed the previous version (0.12),
please make sure to uninstall it from $ENV{HOME}/usr.
0.14 2023-03-11
See 0.13.
0.15 2023-04-04
Changed the minimum Perl version required to be 5.008
in all test files and the Makefile.PL.
Aesthetic changes in Makefile.PL.
NOTE: this version has never been released to CPAN.
0.16 2023-05-30
1. Added a CAVEAT/WARNING in the documentation
for dump2perl($input) saying that it does
eval($input) which is a security risk if $input
comes from untrusted sources (e.g. user input).
2. Added a print statement to STDERR in sub dump2perl()
warning about said eval($input) (using a warn '').
This warning also states that dump2perl() will be
removed in the future because of this eval().
3. Added extra tests in t/10-scripts.t to check
that scripts fail when they should. In addition
to testing scripts that they succeed when they should.
0.17 2023-06-02
Requires Test::Script v1.28 because Test::Script::script_fails()
used by t/10-scripts.t was introduced there.
0.18 2023-09-01
Added two extra functions: jsonfile2perl() and yamlfile2perl()
which read JSON and YAML from a file into a perl data structure.
Added a new test file '12-from-file.t' which tests file-related
functionality including said two functions.
Documentation supplemented.
0.19 2023-10-03 01:00
added printing the yaml structure in test file '12-from-file.t'
if it fails to ease debugging.
0.20 2023-10-03 14:00
YAML::Load complains for strings like 'abc\"xyz',
so I have decided to remove all such strings from the
randomly created data structures of test file '12-from-file.t'.
This does not affect the behaviour of yaml2* subs but
only limits the testing range for input strings to yaml2* subs.
0.21 2023-10-03 14:45
Fixed bug in script/yaml2perl.pl to print the data structure.
0.22 2023-10-06 11:00
Switched from YAML to YAML::PP because the former failed on
some tricky input, see https://github.com/ingydotnet/yaml-pm/issues/224
Added extra test file (t/13-yaml-tricky-cases.t) for testing
these cases.
Added extra author test suit (xt/deficiencies run with make deficiencies)
to test the tricky cases for all YAML, YAML::PP, YAML::XS
Enclosed within eval {} all JSON::* calls (which were not already enclosed)
0.23 2023-10-11 11:30
Modified t/12-from-file.t to delete temp dirs on success
but keep them on failure.
I am trying to debug t/12-from-file.t killed on some test environments.
0.24 2023-10-12 12:00
String input to yaml2perl() is now being untainted in order
to avoid a bug with Perls < v5.14 which causes YAML::PP to
loop indefinetely and the OS to kill the script. Until YAML::PP is fixed.
0.25 2023-11-07 12:00
Change untainting yaml string input from ($yaml_string) = each %{{$yaml_string,0}};
to ($yaml_string) = keys %{{$yaml_string,0}}; because it was
warning about "each on anonymous hash will always start from the beginning"
Also a new test file was added (t/14-yaml-tainted-input.t) to
test yaml2perl with tainted yaml string as input.
0.26 2023-12-29 12:00
Clarified the documentation that internally YAML::PP is used and
that it has no problem with handling yaml strings which contain
escaped quotes.
0.27 2024-03-14 11:00
Chnaged the shortcut command-line interface
for the provided scripts so that
-r is equivalent to --terse and -d is equivalent to --indent.
Replaced 'warn()' with 'print STDERR'.
In eval()'ing code which dies (e.g. my $res = eval { YAML::PP::Dump($pv) }; ) I have used this 'if( $@ || ! defined($res) )' which now became if( ! defined($res) )'.