1[Module] 2Name=Tree::DAG_Node 3Changelog.Creator=Module::Metadata::Changes V 2.12 4Changelog.Parser=Config::IniFiles V 3.000003 5 6[V 1.32] 7Date=2021-02-01T15:56:00 8Comments=- Update Makefile.PL and POD to change RT to github. 9 10[V 1.31] 11Date=2018-02-14T09:08:00 12Comments= <<EOT 13- Clarify licence issue by changing the reference in the DAG_Node.pm file from Artistic V 2 14to Perl, so it now matches what I preemptively put in Makefile.PL and the LICENSE file. 15Sean Burke has kindly agreed to this change. 16$thanx x $many to Gregor Herrmann (Debian Perl Group) for reporting this via github. 17EOT 18 19[V 1.30] 20Date=2018-01-26T15:32:00 21Comments= <<EOT 22- Explicitly escape { and } in a regexp because unescaped { issues a warning now and will become 23a fatal error in Perl V 5.32. 24- Adopt new repo structure. See 25http://savage.net.au/Ron/html/My.Workflow.for.Building.Distros.html. 26EOT 27 28[V 1.29] 29Date=2016-03-01T13:39:00 30Comments= <<EOT 31- After another email exchange with Kent Fredric (via RT) and Karen Etheridge (via the 32cpan-testers-discuss mailing list), I've edited Makefile.PL, again, to indicate that 33Test::Pod is needed neither for building nor testing this module, but is only needed for 34development. Specifically, it's used by xt/author/pod.t, and not elsewhere. See 35https://metacpan.org/pod/CPAN::Meta::Spec#PREREQUISITES for more details. 36EOT 37 38[V 1.28] 39Date=2016-03-01T08:43:00 40Comments= <<EOT 41- No code changes. 42- Rework Makefile.PL so File::Spec, File::Temp, Test::More and Test::Pod are in TEST_REQUIRES. 43Many thanx to Kent Fredric in RT#112568 for this suggestion. 44- Expand the SYNOPSIS. 45- Update MANIFEST.SKIP to include .gitignore. 46- Finally add lightweight git tags to distros, so that if you have a Bash alias such as: 47alias gl='git log --decorate=full' you'll see something like these 5 lines: 48commit 2501bd9672244fe698c0f3e48e142637e92eb7e5 (HEAD, tag: refs/tags/1.28, refs/heads/master) 49Author: ronsavage <ron@savage.net.au> 50Date: Tue Mar 1 09:16:46 2016 +1100 51Update distmeta 52The command used to generate the tags looks like: 53git tag -afm 'V 1.28 @ Tue Mar 1 09:16:46 2016' 1.28 54EOT 55 56[V 1.27] 57Date=2015-07-12T11:01:00 58Comments= <<EOT 59- Remove the line which reads 'use open qw(:std :utf8);'. As Tom Molesworth says: 60"Specifically, it turns on the UTF-8 encoding layer on STDIO when any code does 61'use Tree::DAG_Node'. That's no good when code is expecting a different encoding 62(raw, etc.)". See RT#105798. Karen Etheridge followed up with a comment about it appearing 63in another module of mine. Then I checked all my modules (including some not intended for 64publication - Local::*) and found about 28 offenders, with some using it inn multiple files. 65The original idea came from adopting what Tom Christiansen calls his 'Standard Preamble': 66http://www.perl.com/pub/2012/04/perlunicook-standard-preamble.html 67All tests still work after removing that line. 68- Remove Build.PL. Ship only Makefile.PL. 69EOT 70 71[V 1.26] 72Date=2015-04-12T13:37:00 73Comments= <<EOT 74- Fix bug in string2hashref(), which failed on some strings, such as {a => 'b, c'}. 75string2hashref() is called by read_tree(). 76Escaped chars are still not handled. 77- Add t/string2hash.t to test new code. 78EOT 79 80[V 1.25] 81Date=2015-03-22T11:42:00 82Comments= <<EOT 83- I've deleted the undocumented sub _dump_quote(), which butchered Unicode characters 84when it tried to convert ASCII control characters into printable strings (on the assumption 85all data is ASCII). Thanx to Dr. Petra Steiner (Germany) for discussion and some testing. 86I hope no-one was relying on this sub in output redirected to disk files, or otherwise 87saved for later comparisons. 88Methods which used to call _dump_quote() now just output the node's name by calling 89quote_name(), which is discussed next. Undefined names are output as the string 'undef'. 90- Add method quote_name(), which simply returns its input string surrounded by single-quotes. 91- Add method decode_lol(). This converts the output of tree_to_lol() and tree_to_simple_lol() 92into something which is easy to read. See scripts/read.tree.pl for sample usage. 93- Reorder a couple of methods called tree_*(), so that they are in alphabetical order. 94- Expand the docs for methods tree_to_*(), re undefined node names. 95- Add scripts/write.tree.pl, which creates the test input file t/tree.utf8.attributes.txt. 96Note: This latter file is now much more complex that in previous versions. 97- Add scripts/read.tree.pl, and it's output file scripts/read.tree.log. This program 98demonstrates the output produced by various methods. 99- Fix the faulty syntax I had used in Build.PL to identify the github repo. 100- Delete and re-create github repo after 'git push' failed to upload the new version. 101- Add LICENSE file to MANIFEST. 102EOT 103 104[V 1.24] 105Date=2015-01-25T14:17:00 106Comments= <<EOT 107- Clean up discussion in docs of original author's reluctance to allow parameters to new(). 108- Rewrite bareword filehandles (INX) to use a variable (my $fh). 109- Rename github repo from Tree--DAG_Node to Tree-DAG_Node - My new standard. 110Update Build.PL and Makefile.PL to match. 111- Reformat the docs, and this file, slighty, to be <= 100 chars per line - My new standard. 112- Change horizontal indentation used by node2string() to add 1 space, so '|' lines up underneath 113the first char of the previous node's name. Use scripts/cut.and.paste.subtrees.pl 114to see the difference. 115EOT 116 117[V 1.23] 118Date=2014-10-20T18:12:00 119Comments= <<EOT 120- Change output format when using node2string(), which is called by tree2string(). 121Indentation which used to be '|---' is now '|--- '. So, a tree which used to be printed as: 122|---:default 123| |---::= 124| |---action 125| |---=> 126| |---[values] 127Is now printed as: 128|--- :default 129| |--- ::= 130| |--- action 131| |--- => 132| |--- [values] 133This makes the difference between node names ''/'-', '1'/'-1', etc, much clearer. 134Apologies to anyone who runs tests which compare the output with pre-existing files. 135EOT 136 137[V 1.22] 138Date=2014-02-13T13:14:00 139Comments=- t/read.tree.t was still using File::Slurp :-(. 140 141[V 1.21] 142Date=2014-02-13T11:14:00 143Comments=- Switch from File::Slurp to File::Slurp::Tiny, on the advice of Karen Etheridge. See RT#92976. 144 145[V 1.20] 146Date=2014-01-31T09:46:00 147Comments= <<EOT 148- After a private email from Paul Howarth (yea!) I see I need File::Temp V 0.19 because that's 149the version which introduced the newdir() method, as used in the test suite. Sorry for the 150churn. 151EOT 152 153[V 1.19] 154Date=2014-01-30T09:24:00 155Comments= <<EOT 156- Set pre-req File::Temp version # to 0 (back from 0.2301). See D A Golden's blog entry: 157http://www.dagolden.com/index.php/2293/why-installing-distzilla-is-slow-and-what-you-can-do-about-it/. 158EOT 159 160[V 1.18] 161Date=2013-09-19T14:24:00 162Comments= <<EOT 163- No changes, code or otherwise, except for the version # in the *.pm, this file, and 164Changelog.ini. 165- Somehow a corrupted version got uploaded to search.cpan.org, so I've just changed the 166version #. The file on MetaCPAN was fine. 167- Thanx to Rob (Sisyphus) for reporting this. 168EOT 169 170[V 1.17] 171Date=2013-09-16T15:24:00 172Comments= <<EOT 173- Write test temp files in :raw mode as well as utf-8, for MS Windows users. 174- Take the opportunity to change all utf8 to utf-8, as per the docs for Encode, 175except for 'use warnings qw(FATAL utf8);', which doesn't accept utf-8 :-(. 1761.16 Mon Sep 9 09;26:00 2013 177- Accept a patch (slightly modified by me) from Tom Molesworth (see RT#88501): 178Remove 'use open qw(:std :utf8);' because of its global effect. 179Replace Perl6::Slurp with File::Slurp, using the latter's binmode option for the encoding. 180Fix docs where I'd erroneously said File::Slurp didn't support utf8. 181EOT 182 183[V 1.15] 184Date=2013-09-06T11:10:00 185Comments= <<EOT 186- Replace Path::Tiny with File::Spec, because the former's list of dependencies is soooo long. 187Changed files: t/read.tree.t, Build.PL and Makefile.PL. 188See: RT#88435 for an explanation. 189- Move t/pod.t to xt/author/pod.t. 190EOT 191 192[V 1.14] 193Date=2013-09-04T13:44:00 194Comments= <<EOT 195- Document the copy() method. 196- Patch the copy() method so it respects the {no_attribute_copy => 1} option. 197- Add method read_tree(), for text files. It uses Perl6::Slurp (which supports utf8). 198- Add methods read_attributes() and string2hashref($s) for use by read_tree(). 199- Add t/read.tree.t to test read_tree(). 200- Add t/tree.utf8.attrbiutes.txt, in utf8, for use by t/read.tree.t. 201- Add t/tree.with.attributes.txt and t/tree.without.attributes.txt for use by t/read.tree.t. 202- Make Perl V 5.8.1 a pre-req so we have access to the utf8 pragma. 203EOT 204 205[V 1.13] 206Date=2013-08-12T17:16:00 207Comments= <<EOT 208- Change the values accepted for the no_attributes option from undef and 1 to 0 and 1. 209If undef is used, it becomes 0, so pre-existing code will not change behaviour. 210This makes it easier to pass 0 or 1 from the command line, since there is no default value 211available. 212EOT 213 214[V 1.12] 215Date=2013-07-03T16:38:00 216Comments= <<EOT 217- Change text in README referring to licence to match text in body of source, since it was in 218conflict with the Artistic Licence V 2.0. 219This was requested by Petr Pisar who packages stuff for Red Hat. 220- Rename CHANGES to Changes as per CPAN::Changes::SPEC. 221- Various spelling fixes in the docs, as kindly reported by dsteinbrunner. 222EOT 223 224[V 1.11] 225Date=2013-02-04T09:50:00 226Comments= <<EOT 227- Correct the date (2012 -> 2013) in this file used for V 1.10. 228- Correct the text at L<Tree::DAG_Node/AUTHOR> so it refers to Artistic License 2.0, 229which now matches what it says in Build.PL and Makefile.PL. Resolves RT#83088. 230EOT 231 232[V 1.10] 233Date=2013-02-01T08:53:00 234Comments= <<EOT 235- Change t/pod.t to look for Test::Pod 1.45, but comment out Test::Pod in Build.PL and 236Makefile.PL. This means Test::Pod is not used at all if it is not installed. 237As per RT#83077. 238EOT 239 240[V 1.09] 241Date=2012-11-08T12:38:00 242Comments= <<EOT 243- No code changes. 244- Oops. The changes in V 1.08 we made in the other 10 distros, but not in this one. 245My apologies. 246EOT 247 248[V 1.08] 249Date=2012-11-08T12:38:00 250Comments= <<EOT 251- No code changes. 252- For pre-reqs such as strict, warnings, etc, which ship with Perl, set the version # to 0. 253Reported as RT#80663 by Father Chrysostomos for Tree::DAG_Node. 254EOT 255 256[V 1.07] 257Date=2012-11-01T12:47:00 258Comments= <<EOT 259- New maintainer: Ron Savage 260- Pre-emptive apologies for any changes which are not back-compat. No such problems are 261expected, but the introduction of new methods may disconcert some viewers. 262- Fix RT#78858, reported by Gene Boggs. Audit code for similar problems. 263- Fix RT#79506. reported by Ron Savage. 264- Rename ChangeLog to CHANGES, and add Changelog.ini. 265- Replace all uses of cyclicity_fault() and Carp::croak with die. 266- Remove unused methods: decommission_root(), cyclicity_allowed(), cyclicity_fault(), 267inaugurate_root(), no_cyclicity() and _update_links(). OK - cyclicity_fault() was called 268once. It just died. 269- Add methods: format_node(), hashref2string(), is_root(), node2string(), tree2string(). 270tree2string($opts, $node) - unlike draw_ascii_tree() - can optionally print the tree 271starting at any node. Override format_node(), hashref2string(), and node2string() if 272desired. 273- Reformat the POD big-time. 274- Add Build.PL. 275- Re-write Makefile.PL. 276- Remove use vars(@ISA $Debug $VERSION). Replace latter 2 with 'our ...'. 277- Rename t/00_about_verbose.t to t/about.perl.t. 278- Add scripts/cut.and.paste.subtrees.pl. Warning: Some trees get into an infinite loop. 279- Add t/cut.and.paste.subtrees.t. Warning: Some trees get into an infinite loop. 280- Document the options (discouraged by Sean) supported in the call to new($hashref). 281EOT 282 283[V 1.06] 284Date=1998-12-02T12:00:00 285Comments= <<EOT 286- New maintainer: David Hand. 287- No code changes. 288EOT 289 290[V 1.05] 291Date=1998-12-29T12:00:00 292Comments= <<EOT 293- Just repackaging. 294- No code changes. 295EOT 296 297[V 1.04] 298Date=1998-02-23T12:00:00 299Comments= <<EOT 300- Bugfix: Olegt@dreamtime.net notes a bug in 301depth_under that apparently always makes it return 0. 302EOT 303 304[V 1.03] 305Date=1998-05-13T12:00:00 306Comments= <<EOT 307- Superficial changes: 308Minor doc spiffing-up. 309Noting my new email address. 310- In order to keep its symbol table clean, DAG_Node no longer 311imports routines from Carp and UNIVERSAL. Should have no effect on existing code. 312- I went and commented out all the places where I have asserts for 313non-cyclicity. I once had the idea that DAG_Node could be a base 314class for graphs that /could/ allow cyclicity, or something like 315that, so those assertions would apply for methods that work only 316for acyclic networks. But, in time, I realized that almost 317everything in DAG_Node would have to have such assertions. Moral 318of the story: DAG_Node has nearly no code that it could share with 319a class for anything but DAGs. And since DAG_Node does everything it 320can to /keep/ you from making cyclicities, there's no point in 321constantly having assertions of noncyclicity (especially when 322these assertions are rather expensive to check). 323EOT 324 325[V 1.02] 326Date=1998-03-05T12:00:00 327Comments= <<EOT 328- Minor bugfixes: 329Fixed a typo in the docs: corrected one "right_sisters" to "right_sister" 330Initialized a variable to '' to avoid warnings under -w. Thanks to Gilles Lamiral. 331EOT 332 333[V 1.01] 334Date=1998-05-14T12:00:00 335Comments= <<EOT 336- Major additions: 337Scads of new methods. Still (as far as I know) backward 338compatible with all previous versions. Some minor changes in 339coding, not affecting the interface. 340- Hopefully more friendly to users that use -w (warnings). 341- Cautionary tale: I started making big changes to this right around 342mid-November 1998. But I kept thinking "oh, ONE MORE change and 343then I'll release it." Famous last words! Other things came up, 344I forgot what was new and what was different in this module 345(which is why you don't see a detailed list of differences here), 346altho apparently somehow I managed to document all the new methods. 347EOT 348 349[V 0.75] 350Date=1998-11-03T12:00:00 351Comments= <<EOT 352- Minor changes: 353New methods new_daughter, new_daughter_left. 354$obj->new constructor syntax now documented. 355Internal accesses to "daughter" and "mother" attribs are now direct, for efficiency's sake. 356- Minor improvements to the docs. 357EOT 358 359[V 0.74] 360Date=1998-10-28T12:00:00 361Comments= <<EOT 362- Whoops, forgot to bundle the README. 363- No change in the code. 364EOT 365 366[V 0.73] 367Date=1998-10-27T12:00:00 368Comments=- First release. 369