[Module]
Name=GraphViz2
Changelog.Creator=Module::Metadata::Changes V 2.04
Changelog.Parser=Config::IniFiles V 2.68

[V 2.02]
Date=2012-04-19T11:51:00
Comments= <<EOT
- Accept patch from Lee as in RT#76459, to replace the code which writes the dot input file to
a file with binmode, and just pass the data to dot via IPC::Run.
Happily, this allows me to eliminate 'use open qw/:encoding(UTF-8) :std/;' in t/test.t.
- Update the pre-reqs in Build.PL and Makefile.PL.
- Add scripts/utf8.test.pl to the list of scripts shipped with this module.
- Add scripts/utf8* to scripts/generate.*.sh.
- Make scripts/generate.*.sh emit a warning when DBI_DSN is not set.
EOT

[V 2.01]
Date=2012-03-07T08:50:00
Comments= <<EOT
- I only tested V 2.00 by outputting to SVG (a text format), but outputting to a binary format such as PNG was broken.
So, remove the 'use open qw/:encoding(UTF-8) :std/;', and restore binmode, in GraphViz2.pm.
- Remove log to screen in utf8.pl, since Log::Handler doesn't accept utf8 as a logger option.
- Copy scripts/utf8.pl to scripts/utf8.test.pl and edit to display just 5 delta characters. See html/utf8.test.svg. PNG is ok too.
This demonstrates (hopefully) we can get the correct output on a binary format despite the 'Wide character in print...' message.
- Add FAQ topic regarding this 'Wide character in print...' problem.
EOT

[V 2.00]
Date=2012-03-06T16:02:00
Comments= <<EOT
- Support utf8 in labels. This required changes to GraphViz2.pm. See scripts/utf8.pl and html/utf8.svg. I'm using Perl V 5.14.2.
Sample output is online at http://savage.net.au/Perl-modules/html/graphviz2/utf8.svg.
- Add an item to the FAQ about how to write scripts using utf8.
- Re-write GraphViz2::Parse::ISA to draw multiple class hierarchies on 1 graph. This means the API for that class has changed.
Specifically, create() no longer exists. Call add() 1 or more times instead. Then, call generate_graph(). See the docs for details.
Sample output is online at http://savage.net.au/Perl-modules/html/graphviz2/parse.isa.svg.
EOT

[V 1.13]
Date=2011-12-25T10:33:00
Comments= <<EOT
- Change <img...> to <object...> in the demo creation code, to keep poor old FireFox happy.
- Change various things in html/graphviz2.index.tx to we validate as XHTML 1.0 Strict.
- Unreleased.
EOT

[V 1.12]
Date=2011-12-14T11:22:00
Comments= <<EOT
- Add 5 scripts, scripts/macro.*.pl, to demonstrate using a Perl sub as a macro to generate both cluster and non-cluster sub-graphs.
- Update the TODO in GraphViz2.pm, since it erroneously gave the impression the current code did not handle compound clusters.
- Re-generate the demo. See: http://savage.net.au/Perl-modules/html/graphviz2/.
- Adopt Flavio Poletti's suggestion of trying to pipe to dot, in Build.PL/Makefile.PL, rather than using File::Which,
to see if dot (Graphviz) is installed. This (hopefully) solves the problem of using File::Which on systems where it is
not installed, before Build.PL/Makefile.PL has a chance to tell the user that File::Which is required. See: RT#73077.
- No code changes in *.pm files.
EOT

[V 1.11]
Date=2011-11-08T10:21:00
Comments= <<EOT
- Fix bug where double quotes in HTML labels were being escaped and should not have been.
Many thanx to Fitz Elliott for the report and initial patch. See https://rt.cpan.org/Ticket/Display.html?id=72259.
- Patched scripts/html.labels.pl as per Fitz's suggested test code.
- Rename t/lib/Parent.pm to t/lib/Adult.pm to avoid a reported problem with "use parent 'Parent';" under Windows.
This affect various files. See https://rt.cpan.org/Public/Bug/Display.html?id=69076.
EOT

[V 1.10]
Date=2011-09-01T10:45:00
Comments= <<EOT
- Fix bug in GraphViz in handling of nodes whose shape is none or plaintext, and whose label is HTML.
- Fix bug in scripts/generate.png.sh to add png parameter to 'perl -Ilib scripts/generate.demo.pl png'.
- HTML labels work without any code changes, so references to them not working have been removed from the docs.
- GraphViz2 is called by the now-released Graph::Easy::Marpa, so remove that item from the TODO list.
- Fix doc referring to scripts/generate.index.pl. It now refers to scripts/generate.demo.pl.
- Add DOCTYPE and Content-type to html/graphviz.index.tx. Output by scripts/generate.demo.pl, html/index.html, now handles UTF-8 properly.
- Add alt to the <img ...> tags output by scripts/generate.demo.pl.
- Add scripts/html.labels.pl. This code includes a demo of using ports.
- Reorder methods in GraphViz2::Utils to be in alphabetical order.
EOT

[V 1.09]
Date=2011-07-21T14:13:00
Comments= <<EOT
- Patch parameter validation to allow for output image types such as png:gd etc.
Only the prefix before the first ':' is validated.
EOT

[V 1.08]
Date=2011-07-21T11:53:00
Comments= <<EOT
- Change the behaviour of sub log() in GraphViz.pm. Now if called with $level eq 'error', it dies with $message.
- Change references to the color darkblue to blue, so it's compatible with both the X11 and SVG color schemes.
- Likewise change chartreuse to lawngreen.
- Rename scripts/generate.index.pl to scripts/generate.demo.pl, as a more meaningful name.
- Patch scripts/generate.demo.pl to accept the output image type as a command line parameter.
- Use this new feature to generate png files, and upload them to the demo site
http://savage.net.au/Perl-modules/html/graphviz2/ even though png is often uglier than svg.
I did this because Iceweasel (Firefox) V 3.5.16 was not displaying svgs within the index file,
even though they are fine when displayed directly.
- Add scripts/generate.png.sh.
- Note: scripts/jointed.edges.pl must call dot with -Tpng:gd and not -Tpng, for unknown reasons.
- Make both scripts/generate.png.sh and scripts/generate.svg.sh redirect their log files to /tmp,
so that we don't have to ship the logs, and also so they don't keep changing and hence need checking in.
- Remove ./dbi.schema.log from the distro.
EOT

[V 1.07]
Date=2011-07-04T15:46:00
Comments=- Use Date::Format to add a date stamp at the end of html/index.html, as output by generate.index.pl.

[V 1.06]
Date=2011-06-28T11:10:00
Comments= <<EOT
- Change usage of File::Temp -> newdir to fix problems testing on BSD-based systems.
- Add scripts/jointed.edges.pl.
This demo - in Graph::Easy syntax - ships with Graph::Easy::Marpa.
- Re-write generate.index.pl to put all demo data (where available) and images on 1 page.
- Upload demo to (new location) http://savage.net.au/Perl-modules/html/graphviz2/index.html.
EOT

[V 1.05]
Date=2011-06-24T12:40:00
Comments= <<EOT
- Implement GraphViz2::Parse::Marpa, along with scripts/parse.marpa.pl and t/sample.marpa.1.dat.
The output is html/parse.marpa.svg.
- Implement GraphViz2::Parse::STT, along with scripts/parse.stt.pl and t/sample.stt.1.dat.
The output is html/parse.stt.svg.
- Add use File::Spec to t/test.t
EOT

[V 1.04]
Date=2011-06-22T09:36:00
Comments= <<EOT
- Reduce required version of File::Basename to 2.77, which came with Perl 5.10.1.
- Stop trying to write to t/html/, and use File::Temp for a directory instead.
That way, it doesn't matter who owns t/html/, nor whether or not it's writable.
EOT

[V 1.03]
Date=2011-06-19T16:27:00
Comments=- Tweak File::Temp -> new to be File::Temp ->new(EXLOCK => 0) for BSD-based systems.

[V 1.02]
Date=2011-06-17T08:36:00
Comments= <<EOT
- Add the pre-requisite Log::Handler to Build.PL and Makefile.PL.
- Release HTML::Entities::Interpolate V 1.04 and Set::Array V 0.23 to CPAN.
- Add README file.
- Clean up TODO list.
EOT

[V 1.01]
Date=2011-06-15T15:00:00
Comments= <<EOT
- Quote cluster/subgraph names so they may contain weird characters.
- Add method dependency(data => $depend) to GraphViz2.pm, which accepts an object of type
Algorithm::Dependency. See scripts/dependency.pl and html/dependency.svg.
- Add GraphViz2::Parse::ISA, and scripts/parse.isa.pl, and the t/lib/Parent hierarchy.
EOT

[V 1.00]
Date=2011-06-15T14:26:00
Comments= <<EOT
- This is a re-write of GraphViz. The method parameter lists are incompatible.
Sorry, but it now supports all options and attributes in Graphviz V 2.23.6.
- Rewrite GraphViz, GraphViz::Data::Grapher, GraphViz::Parse::RecDescent, GraphViz::Parse::Yacc and GraphViz::Parse::Yapp.
The core code of *::RecDescent, *::Yacc and *::Yapp has been copied from GraphViz, with tiny changes.
- GraphViz2::Data::Grapher uses Tree::DAG_Node to hold information, before calling external plotting programs.
The tree is available for you to process whether or not you actually plot the graph.
- GraphViz::Regex renamed GraphViz2::Parse::Regexp.
- GraphViz::XML renamed GraphViz2::Parse::XML. And it uses XML::Tiny by default.
One demo shows how to use XML::Bare instead.
- All new documentation.
- All new demos, in scripts/*.pl. These are documented in GraphViz's POD.
- All demo output included, in html/*.html and html/*.svg.
EOT
