[Module]
Name=Tree::Simple
Changelog.Creator=Module::Metadata::Changes V 2.12
Changelog.Parser=Config::IniFiles V 3.000003

[V 1.34]
Date=2021-02-02T12:22:00
Comments= <<EOT
- Reformat Makefile.PL.
- Update Makefile.PL and POD to change RT to github.
EOT

[V 1.33]
Date=2018-01-06T16:57:00
Comments= <<EOT
- Fix traverse() so it does not assume user functions and traverse() itself return a defined
value. This stops undef warnings when the return value is tested for error propagation.
Thanx to Jason Tibbitts for reporting this.
- Add t/00.versions.* to display the version #s of all pre-reqs.
EOT

[V 1.32]
Date=2017-12-19T15:20:00
Comments= <<EOT
- Change traverse() to handle the case of its 1st parameter returning 'ABORT'. This code was
from a pull request.
EOT

[V 1.31]
Date=2017-04-17T09:11:00
Comments= <<EOT
- Add 3 new methods: getSiblingCount(), isFirstChild() and isLastChild().
Warning: getSiblingCount() does not include the invocant, unlike getAllSiblings().
- Add t/24_Tree_Simple_sibling_test.t.
- These methods are used by Tree::Simple::View::HTML V 0.19 to output HTML compatible with the
HTML5 standard for nested lists. See https://www.w3.org/wiki/HTML_lists#Nesting_lists.
Thanx to Ekkehard Plicht for suggesting this, and for the patches, which I have reworked.
See RT#121099.
EOT

[V 1.30]
Date=2017-03-15T09:45:00
Comments= <<EOT
- Add convenience method generateChild($scalar) which simply does addChild(new($scalar) ).
Thanx to Rene Nyffenegger for this suggestion.
Add matching test t/22_Tree_Simple_generate_child.t.
- Reduce pre-req version of Test::More from 1.001014 to 1.001002.
1.29 2016-05-04T08;15:00
- Correct physical address of Free Software Foundation in LICENSE file. See RT#114149.
Thanx to Petr Pisar.
EOT

[V 1.28]
Date=2016-04-27T17:35:00
Comments= <<EOT
- No code changes.
- Adopt workflow techniques suggested by Kent Fredric. This means a cleaner workdir and a
much more reliable dist. The latter now has auto-generated MANIFEST and META.* files.
EOT

[V 1.27]
Date=2016-04-25T09:26:00
Comments= <<EOT
- No code changes.
- Fix my licence (sic) mess so all references are to Perl. This involves edits to Makefile.PL
and LICENSE. See RT#113949. Thanx Kent Fredric.
- Fix Makefile.PL so modules only used for testing are in TEST_REQUIRES and not PREREQ_PM.
See RT#113948. Thanx Kent Fredric.
- Fix README so it more-or-less conforms to the Perl Foundation's guidelines at
http://www.perlfoundation.org/cpan_licensing_guidelines.
EOT

[V 1.26]
Date=2015-11-28T09:30:00
Comments= <<EOT
- No code changes.
- Accept patches from Manwar via github. See https://github.com/stevan/tree-simple/pull/10.
- I (Ron) followed github's advice on handling merge conflicts from the command line, but could
not see the patches after the merge.
- So, create github repo https://github.com/ronsavage/Tree-Simple.
- Remove Build.PL.
- Reformat dates in this file.
- Oops. Can't get Test::Stream to work in 10_Tree_Simple_test.t. Logged issue, but it's
probably a problem with the way I tried to use Test::Stream. Revert to Test::More.
- Add xt/author/changes.t to MANIFEST.
EOT

[V 1.25]
Date=2014-01-13T08:51:00
Comments= <<EOT
- Fix logic in sub DESTROY for when children are/are not present. Reported by astortz.
See https://github.com/stevan/tree-simple/issues/8.
EOT

[V 1.24]
Date=2014-09-06T09:27:00
Comments= <<EOT
- Abandon Test::Version and hence delete t/version.t. Putting version.t in xt/author/ is not a
solution, because Test::Version has problems with Test::EOL and Test::Builder.
Thanx to Kent Fredric for the github issue which started me investigating this issue.
EOT

[V 1.23]
Date=2013-11-09T10:43:00
Comments= <<EOT
- No code changes.
- Accept spelling corrections from the Debian Perl Group, with thanx. See RT#90171.
Note: The change to lib/Tree/Simple/Visitor.pm had already been made.
- Add t/version.t, which uses Test::Version, to cross-check version #s.
EOT

[V 1.22]
Date=2013-09-30T08:35:00
Comments= <<EOT
- Metadata fixes in Build.PL and correct bugtracker queue in Makefile.PL. Thanx to dsteinbrunner
(via github).
EOT

[V 1.21]
Date=2013-09-26T13:08:00
Comments=- Fix syntax error in Makefile.PL.

[V 1.20]
Date=2013-09-26T11:16:00
Comments= <<EOT
- Merge source from https://github.com/stevan/tree-simple.
- Close github issues.
- Add bugtracker and license to Build.PL and Makefile.PL.
EOT

[V 1.19]
Date=2013-09-23T08:26:00
Comments= <<EOT
- Maintenance now by Ron Savage.
- Rectify datestamp format in this file.
- Add Changelog.ini.
- Make Simple.pm and Visitor.pm have the same version #.
- Reformat Build.PL and Makefile.PL.
- Move t/pod* into xt/author/.
- Minor doc patches.
- Add t/17_Tree_Simple_width_test.t. This code was attached to RT#40407, to demonstrate a bug in
keeping a running total of the width (leaf count) of a tree during node additions to leaves.
Thanx to David Cryer for the test code and patch.
- Add t/21_Tree_Simple_Visitor_test.t. This code was attached to RT#30032, to demonstrate a bug
in including the root in a traversal after calling $visitor -> includeTruck(1).
- RT#30032: Adopt patch from Moses Amaro. With thanx.
- RT#38607: Reject. Suppressing deep recursion warnings should not normally be done. Sub-class!
- RT#40407: Adopt patch from David Cryer. With thanx.
- RT#84797: Reject. Changing the return value of setUID could break any amount of code.
EOT

[V 1.18]
Date=2007-11-11T12:00:00
Comments=- fixing version string to not choke on 5.10 (RT #29746).

[V 1.17]
Date=2006-10-23T12:00:00
Comments= <<EOT
- Make loading of Scalar::Util::weaken, completely optional
- Added a $post_func optional arg to &traverse. Thanks to Mark Lawrence for the patch, docs and
tests :).
EOT

[V 1.16]
Date=2006-02-06T12:00:00
Comments= <<EOT
- Converted to use Module::Build (Rob Kinyon)
- Refactored &addChild and &addChildren to be implemented in terms of &insertChild and
&insertChildren (Rob Kinyon)
- Other misc. refactorings (Rob Kinyon)
- Updated Scalar::Util version dependency (Stevan Little)
- Updated copyrights for the new year (Stevan Little)
EOT

[V 1.15]
Date=2005-05-26T12:00:00
Comments= <<EOT
- Added optional use of weakened parent references and improved the old circular reference
DESTROY model to make more sense. See the documentation for more info.
- Fixed bug in the fixDepth() function.
EOT

[V 1.14]
Date=2004-11-18T12:00:00
Comments= <<EOT
- Now using Scalar::Util::blessed() instead of the convoluted UNIVERSAL::isa() stuff.
- Added Scalar::Util as a dependency.
EOT

[V 1.13]
Date=2004-11-15T12:00:00
Comments= <<EOT
- Added width functionality (with getWidth). Thanks to Mark Thomas for his insight/suggestions.
- Added tests for this.
- Added documentation for this.
- Improved the height functionality, thanks again to Mark Thomas for his insight/suggestions.
- Deprecated the 'height' method in favor of the more consistent 'getHeight' method.
- Added tests for this.
- Added documentation for this.
- Added some info in the docs to explain the depth value for ROOT trees.
- Cleaned up and improved the following test files:
11_Tree_Simple_fixDepth_test.t
13_Tree_Simple_clone_test.t
EOT

[V 1.12]
Date=2004-10-07T12:00:00
Comments= <<EOT
- Fixed the clone method, it was not correctly cloning parental relationships.
- Added tests and docs for this.
- Improved clone and cloneShallow with the addition of the _cloneNode utility function, we now
deep clone the nodes.
- Added test and docs for this.
EOT

[V 1.11]
Date=2004-10-04T12:00:00
Comments=- Some documentation changes, no code changes.

[V 1.10]
Date=2004-08-31T12:00:00
Comments= <<EOT
- Streamlined the DESTROY method to avoid method calls as this can sometimes cause issues
during global destruction with subclasses.
EOT

[V 1.09]
Date=2004-08-31T12:00:00
Comments= <<EOT
- Fixed DESTROY to avoid memory leaks (RT-BUG: #7512).
- Added documentation to explain when to call the DESTROY method to properly clean up any
circular references.
- Added test (14_Tree_Simple_leak_test.t) to verify this fix. Needs Test::Memory::Cycle to run.
EOT

[V 1.08]
Date=2004-08-25T12:00:00
Comments= <<EOT
- Added the 'height' and 'size' methods.
- Added tests for these.
- Added documentation for these.
EOT

[V 1.07]
Date=2004-07-28T12:00:00
Comments= <<EOT
- Added the getUID and setUID methods to Tree::Simple. Thanks to Brett Nuske for that
suggestion.
- Added documentation for these methods.
- Added tests for those methods.
- Added t/pod.t and t/pod_coverage.t to the test suite.
EOT

[V 1.06]
Date=2004-07-06T12:00:00
Comments= <<EOT
- Changed what the Tree::Simple accept method accepts.
- Added tests for this.
- Completely Revised the Tree::Simple::Visitor object so that it is a better base class.
This coincides with the release of the Tree::Simple::VisitorFactory collection of Visitor
objects.
- Added tests for this.
EOT

[V 1.05]
Date=2004-06-06T12:00:00
Comments= <<EOT
- Fixed some vagueness in the documentation as well as made sure that the ROOT constant could
be given as a the $parent argument.
EOT

[V 1.04]
Date=2004-05-18T12:00:00
Comments= <<EOT
- The second argument to the Tree::Simple constructor was a parent, and that argument was not
getting properly type checked before attempting to call 'addChild' on it. Now it is
properly type checked and will throw an exception if it is not correct.
EOT

[V 1.03]
Date=2004-05-09T12:00:00
Comments= <<EOT
- I have added a new method 'getIndex', which will fetch the index of the current tree within
it's parent's child list. I have also added documentation and tests for this.
EOT

[V 1.02]
Date=2004-05-02T12:00:00
Comments= <<EOT
- I thought about the API change, and I decided that the new method (removeChildAt($index) )
did not make sense. It made more sense for removeChild to accept both $child and an $index,
and do the right thing based upon which one was given. This of course is how it works
anyway since I maintained backwards compatibility. But take note, removeChildAt($index)
will not be supported. The method is still there, but it will very soon go away.
I think this is a cleaner way to do this in the end.
EOT

[V 1.01]
Date=2004-04-28T12:00:00
Comments= <<EOT
- Made API change:
- removeChild($index) is now removeChildAt($index) and removeChild($child) has replaced it.
See the documentation for more info.
- Backwards compatibility maintained under change.
- New tests written to test the new code and to test the backwards compatibility.
- Test suite is not at 99% coverage (with 415 tests).
- Moved object initialization code from Tree::Simple::Visitor::new to
Tree::Simple::Visitor::_init. This keeps in line with the Tree::Simple code and the
seperation of object creation and initialization.
EOT

[V 1.00]
Date=2004-04-05T12:00:00
Comments= <<EOT
- I dont know why, but I was wary of calling this 1.0 but that is really what it is. I think
too many module	avoid that number, but I am not gonna do that. So here goes, its 1.0 baby!!
- Note: Being new to this versioning thing, I was actually going for a "minor" version thing
with the jump from 0.3 to 0.14. I realized that was not only dumb, but incorrect. But in
realizing this, I decided this is really 1.0 code anyway and took the plunge.
EOT

[V 0.15]
Date=2004-04-05T12:00:00
Comments= <<EOT
- Made a few adjustments:
- Changed to UNIVERSAL::isa($object, "Class") so as to avoid warnings if non-object refs are
passed.
- Added more tests to the Tree::Simple::Visitor object.
- Added more tests to check for non-object-refs passed where they shouldn't be.
EOT

[V 0.14]
Date=2004-04-04T12:00:00
Comments= <<EOT
- I feel this module is ready for serious use. I have been using it in production environments
for almost 2 years now, and I have recently beefed up the test suite as well. It now
has 371 tests with approx. 95% code coverage. I feel the code is solid as is the API
(although some people dont like my Java-esque naming style, but hey whatta ya do). Most of
this release is just tweaking and fine tuning of code, and updating of the documentation.
EOT

[V 0.03]
Date=2004-04-01T12:00:00
Deploy.Action=Upgrade
Deploy.Reason=Security
Comments= <<EOT
- Like an idiot I forgot to change the version number from version 0.01 to 0.02 and because of
CPAN's security-type restriction about uploading files with a duplicate name I have to up
the version number.
EOT

[V 0.02]
Date=2004-04-01T12:00:00
Comments= <<EOT
- First revision:
- Fixed a few bugs.
- Improved error messages.
- Added tests:
- Test for exceptions.
- Checked test coverage with Devel::Cover.
EOT

[V 0.01]
Date=2004-03-11T10:46:33
Comments=- Original version; created by h2xs 1.22 with options -X -n Tree::Simple.
