Revision history for Perl extension GraphViz2.
2.06 Thu Nov 8 12:38:00 2012
- No code changes.
- For pre-reqs such as strict, warnings, etc, which ship with Perl, set the version # to 0.
Reported as RT#80663 by Father Chrysostomos for Tree::DAG_Node.
2.05 Tue Oct 2 10:20:00 2012
- No fundamental code changes, so no need to upgrade, unless you need the following new features.
- After a request from Jack Maney, author of the Perl module Hypatia:
o Document the mutator node_hash(), which returns a hashref keyed by node name.
Use this to get a list of all nodes and their attributes.
o Add a new mutator, edge_hash(), which also returns a hashref keyed by node name.
The node is the one at the arrow/tail/ end of the edge, i.e. where the edge starts from.
Use this to learn all sorts of things about the edge.
o Add scripts/report.nodes.and.edges.pl (a version of scripts/html.labels.pl) to demonstrate
how to access this data.
o Update to POD to match.
2.04 Fri Aug 17 10:48:00 2012
- Add Perl V 5.14.2 to the pre-reqs, for the utf8 stuff.
- Re-write the subgraph handling code, which was broken up to V 2.03.
Add samples, script/rank.sub.graph.[1234].pl, to demonstrate subgraph name effects and node rankings.
script/rank.sub.graph.[12].pl use subgraphs to force a set of nodes to be horizontally aligned.
script/rank.sub.graph.[34].pl show the effects of subgraph name changes on the same data.
2.03 Mon Jun 18 9:47:00 2012
- Switch from double to single quotes in line 22 of GraphViz2::Parse::Regexp, so the resultant string,
treated as Perl code, runs on Windows. Reported by Max Maischein as RT#77869.
- Also, slightly reformat line 39 of that module.
2.02 Thu Apr 19 11:51:00 2012
- 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.
2.01 Wed Mar 7 08:50:00 2012
- 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.
2.00 Tue Mar 6 16:02:00 2012
- 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.
1.13 Sun Dec 25 10:33:00 2011
- 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.
1.12 Wed Dec 14 11:22:00 2011
- 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.
1.11 Tue Nov 8 10:21:00 2011
- 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.
1.10 Thu Sep 1 10:45:00 2011
- 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.
1.09 Thu Jul 21 14:13:00 2011
- Patch parameter validation to allow for output image types such as png:gd etc.
Only the prefix before the first ':' is validated.
1.08 Thu Jul 21 11:53:00 2011
- 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.
1.07 Mon Jul 4 15:46:00 2011
- Use Date::Format to add a date stamp at the end of html/index.html, as output by generate.index.pl.
1.06 Tue Jun 28 11:10:00 2011
- 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.
1.05 Fri Jun 24 12:40:00 2011
- 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
1.04 Wed Jun 22 9:36:00 2011
- 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.
1.03 Sun Jun 19 16:27:00 2011
- Tweak File::Temp -> new to be File::Temp ->new(EXLOCK => 0) for BSD-based systems.
1.02 Fri Jun 17 8:36:00 2011
- 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.
1.01 Wed Jun 15 15:00:00 2011
- 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.
1.00 Wed Jun 15 14:26:00 2011
- 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.