Revision history for Perl extension Makefile::GraphViz.
0.21 2014-12-07
Most of the changes are contributed by Alexander Kriegisch.
* now we use the 2-clause BSD license. also updated the copyright years.
* Differentiate between 'end_with' nodes and tree leaves
- 'end_with' nodes get link URLs and another colour, but normal tree leaves
(prerequisites without target definitions) should look just like any other
normal node.
- Fix tests to reflect this change.
* 'end_with' nodes without prerequisites are no real end nodes
So they should be treated like normal nodes, i.e. we
- do not paint them green,
- do not add URLs to them,
- do not call end node callbacks for them which might otherwise cause the
creation of trivial, one-node sub-graphs,
Please note that there also is one incompatible little change in behaviour:
'end_with' nodes, no matter if with or without prerequisites, now get their
commands/recipes printed because this is what a user would expect for a node
occurring in a graph with 'trim_mode == false'. One test file was changed to
reflect this new behaviour.
* New API hook 'end_with_callback' for handling 'end_with' events
Now users can call 'plot' like this to recursively create sub-graphs for
'end_with' nodes:
%targets=( "all" => 0, "install" => 0 );
@targets_to_do = keys %targets;
while (@targets_to_do)
{
$target = @targets_to_do[0];
$gv = $parser->plot(
$target,
end_with => [ "foo", qr{^.+-bar$} ],
no_end_with => [ $target ],
end_with_callback => sub($)
{
my $target = shift;
$targets{$target} = 0 unless exists $targets{$target};
},
...
);
...
$targets{$target} = 1;
@targets_to_do = grep { ! $targets{$_} } keys %targets;
}
* Set graph name (useful when creating image maps or PS/PDF with links, looks
nicer in browser)
* New options 'normal_end_node_style' and 'vir_end_node_style' (defaulting to
light green instead of light yellow background) visually indicate 'end_with'
nodes, so the user immediately detects that those nodes have (hidden) sub-nodes
which might be accessible via mouse click in image map or SVG scenarios.
* New option 'url_fct' with default implementation '_url' sets target URLs for
'end_with' nodes, assuming that they will be linked to other graphs starting
where the current graph ends. This is useful when generating interlinked SVG
files (mode 'svg') or graphics + image maps (mode 'cmapx'). This way users can
create hierarchies or webs of graphs and sub-graphs.
* Change 'fillcolor' to similar, but web-safe yellow #ffff99.
* Set default font to Arial because when generating SVG the default would
otherwise be Times New Roman which looks kinda ugly.
* New options 'node_trim_fct' and 'cmd_trim_fct' enable user-specified trimming
functions for target names/paths and command node content. The previous,
hard-wired behaviour is now just a default.
* Bugfix: Do not falsely display "|" as a node name anymore because it is not a
dependency but just a separator between normal and order-only dependencies.
* Display 'end_with' nodes with surrounding square brackets (e.g. "[my_target]")
to visually indicate that the node contains dependent targets which are not
displayed.
* Make sure code nodes have left-justifies rather than centered text by adding
"\l" to each end of line instead of "\n", so as for GraphViz to know what we
want.
* Add new options 'no_end_with' and 'no_exclude', specifying exceptions for
'end_with' and 'exclude'. Regex and string matches are allowed. This is
especially helpful if the make target name matches an 'end_with' regex pattern
but should not be a graph end point. The result would be a single node - not
very insightful. ;-) So just add $ARGV[1] (or wherever the caller stores the
target name) to 'no_end_with' and you are safe.
* Changed default layout from top-down to left-right (rankdir=1). This is better
for most medium-sized to large graphs.
* Changed default GraphViz font size to 10.
* Changed node style for code to "note" shape (looks like a paper sheet),
Monospace font (size 8), light grey background (#dddddd).
0.20 2011-11-29
* bugfix: dot complained about the "edge;" syntax error when no --edge-len
option is not specified while running the "gvmake" utility.
thanks Jasmin Jessich.
0.19 2011-08-18
* updated docs with new author name, author email address, and new git repository address.
* updated tests for Makefile::Parser 0.214.
0.18 2008-06-20
* now we use Getopt::Long rather than Getopt::Std for command line option handling and.
* we've added two new options --debug and --edge-len (for neato).
0.17 2008-03-16
* added support for double-colon rules.
* now we require Makefile::Parser for support of double-colon rules
and multiple single-colon instances.
0.16 2007-03-16
* minor POD fixes
* bumped the Makefile::Parser version we require here to 0.16
0.15 2007-03-12
* lowered the version number for the building prerequisites
* bumped the Makefile::Parser version to 0.14
0.14 2007-03-10
* minor POD fixes
* requires Makefile::Parser 0.13 now
0.13 2007-03-03
* fixed a bottle-neck in sub plot_all (the roots method is now called instead of the targets method)
* updated the tests accordingly.
0.12 2007-03-03
* index script/ as before
* minor POD tweaks
0.11 2007-03-03
* implemented the plot_all method mentioned in the SYNOPSIS (RT bug #24828)
(Ken Williams)++
* added t/plot_all.t to test this new method
* improved the POD a bit
* added the -a option to gvmake to plot all the goals in the input Makefile
* used "#!/usr/bin/env perl" in gvmake to improve portability.
* updated the author's email address
* added missing files to MANIFEST (make distcheck now passes)
* Makefile.PL now requires Test::More 0.62
* updated Test::Cover report in the POD
0.10 10/28/2005
* Move the repository to http://svn.berlios.de/svnroot/repos/makefilegv.
The OpenFoundtry seems to have been down for weeks.
* Update the POD doc accordingly
* Changed the colors used in the output inspired by Jack Shen's works. Jack++
* Updated the samples accordingly.
* Put the ~ in front of standard output file names, so TortoiseSVN won't skip them.
* Updated the tester accordingly.
0.09 10/20/2005
* Remove blib from the repository.
0.08 10/17/2005
* Make the pictures cmintest.png and doc.png used by
samples.html up to date.
* Move the sample pictures to a new folder named samples,
and update the links in samples.html accordingly.
* Updated META.yml to the current version.
* Tested against Makefile::Parser 0.11 and all tests passed.
0.07 10/16/2005
* Update the version number to 0.07
* Remove the .pl extention from the gvmake script. Slaven++
* Add TODOs to gvmake
* Update the SYNOPSIS section in gvmake's POD doc
* Fix a bug concerning CR in test files in Cygwin. Now
file comparison in the tests ingores all the CR, LF, and
\s characters, leading full passing rate under Cygwin.
Slaven++
0.06 10/15/2005
* Force this module to use Makefile::Parser 0.09. A serious
bug concerning suffix rule parsing is fixed in
Makefile::Parser 0.09
* Add more tests for Makefiles that uses implicit rules
extensively.
0.05 10/15/2005
* Fix a tiny bug in script/gvmake.pl, suppressing a stupid
warning caused by the default Makefile name.
* Fix a bug in trim_cmd. It now functions properly
* Append ``...'' to trimmed command so as to make a difference
in appearance.
* Force this module to use the lastes Makefile::Parser 0.08 so
as to get support for implicit rules.
0.04 10/5/2005
* Force this module to use the latest Makefile::Parser 0.07
* Host this module to the SVN server at OSSF.
* Strip CR from t/* and use File::Compare::compare_text to
compare files.
0.03 2005-10-4
* Add options "end_with" and "exclude" to the ->plot method,
giving even more control over the size of the rendered tree.
* Rename option "vir_tars" to "vir_nodes".
* Add option "normal_nodes" to rewrite the default behavior.
* Add gvmake.pl to /script directory
* Use DOT format instead of PNG in the test script,
reducing space requirements significantly.
0.02 10/4/2005
* Fix the CR/LF problem in the test file, making the module
working on Cygwin and other platforms.
* Add command node to the output graphs.
* Provide "trim_mode" option to the ->plot method so as to
determine whether plot command nodes.
* Provide various options to ->plot, such as "edge_style",
"normal_node_style", "vir_node_style", "cmd_style",
"init_args", "vir_tars", and "gv". So the users get a
much more controls over the output graphic format.
* Fix the back-slash problem in GraphViz labels.
0.01 Fri Sep 30 21:12:10 2005
* original version; created by h2xs 1.23 with options
-AX Makefile::GraphViz