1 Version 0.14 - unreleased
3 End-user-visible changes
5 * Added a preliminar java extractor.
9 Changes for the plugin writer:
11 ==================================================
13 Version 0.13 - 2006-02-08
15 End-user-visible changes
17 * Added a node style to display the number of ingredient nodes and of
18 internal edges in a group (GroupStats), activated by default.
20 * Updated documentation.
24 * Ship all files (the 0.12 tarball missed all transforms and styles !)
26 * The path-handling functions in the default project class were
27 confused by leading "./" in paths and failed to idendify some
30 * The root graph can now be included in arguments to
31 Transform::Consolidate, and "--consolidate 0-<N>" is now valid.
33 * The tulip renderer had been broken by an API change in 0.12.
35 * Workaround for a strange behaviour or ActivePerl 5.8.7 on Windows,
36 which caused dependencies in subdirs not to be found.
38 * Ingredientable::ingredients() method now always returns a list,
39 even in scalar context when there is only one ingredient.
41 Changes for the plugin writer:
43 * New node style attributes "label" and "extralabel" for the dot
46 * Added support for edge styling, and support for "label" attribute
47 in the dot renderer. New WeightLabel edge styler to replace old
50 * Class moves and renames: transforms, styles.
52 ==================================================
54 Version 0.12 - 2006-02-03
56 End-user-visible changes
58 * Start of a renaming of the whole toolkit to DEPS (Dependency
59 Extraction and Processing System), graph-includes being only the
60 current user frontend.
62 * Graphs of grouped nodes now only include the defined groups. The
63 new --consolidate flag is now available to merge such graphs in a
64 manner such that nodes of a given group-level, not included in any
65 higher-level group, are shown as well. As a side-effect, this flag
66 also controls the highest group-level of the nodes to be drawn, in
67 place of the --group flag.
69 * The --group flag to render groups as node clusters is not available
70 any more. It will come back in a later release, under a more suitable
73 * The documentation previously found in the README file is now
74 available in DocBook XML format, in the doc/ directory.
78 * Fixed the uniqueincludes project class, which has been broken since
79 the 0.6 reorganization.
81 * Calculation of edge weights was wrong.
83 Changes for the class writer:
85 * A project is now made of a set of graphs, themselves connected as a
86 graph representing the transformations used to produce them from the
87 other graphs. Most APIs changed consequently.
89 * Projects are now expected to provide a nlevels() method matching
90 the number of grouping levels defined, and the filelabel() methods
91 are now allowed to return undef when a node does not belong to any
92 group at the requested level.
94 * Arbitrary transformations and styles can now be defined, although
95 no facility is provided yet by the master graph-includes script to
96 apply them, short of editing the script. Currently available
97 transformations are "compatgroup" (use the old filelabel() mechanism
98 to define grouping levels), "consolidate" (merge several group levels
99 in a single graph to show non-grouped nodes as well), and
100 "transitivereduction". The only currently available styler allows to
101 apply style attributes (like colors) to a node according to the group
102 it belongs to at a given grouping level.
106 * Objects now get their hash locked in the constructors, to catch
107 typos, unwanted modifications, and other errors likely to occur
108 during subsequent refactorings.
110 * Introduced graph, node, and edge objects (splitted out from
111 project, along with relevant methods). A project now has a stack
114 * Many other changes, fixing some bugs, and introducing brand new ones.
116 ==================================================
118 Version 0.11 - 2005-12-06
120 End-user-visible changes
122 * Generalized support for node coloring, with renderer::dot
123 supporting 2 coloring levels (background and outline)
125 * Improved portability to non-UNIX platforms, was successfully run on
128 * The C extractor now looks in for system headers in /usr/include by
131 * The Perl extractor uses the default @INC value to locate system
134 Changes for the class writer:
136 * Per-language extractors can now declare a default system-include
141 * The --color flag was broken.
143 ==================================================
145 Version 0.10 - 2005-11-29
147 End-user-visible changes
149 * Added a --renderer flag to select another renderer than dot.
151 * Added preliminary support to use tulip as renderer.
153 ==================================================
155 Version 0.9.2 - 2005-11-2
157 * Start of a "tutorial" or "how to use" section in the doc.
159 * Explicitely written down the plan for the upcoming redesign.
161 ==================================================
163 Version 0.9.1 - 2005-06-01
167 * Fixed a typo preventing the recursive search to see .c and .h
170 ==================================================
172 Version 0.9 - 2005-06-01
176 * Now fails nicely when no dependencies are found for any reason.
178 Other end-user-visible changes
180 * Command-line and version are now logged in the report file.
182 * New --version flag.
184 * Can now be run from source dir with no effort.
186 * Exit with usage on command-line.
188 * Updated usage summary with recent options.
190 ==================================================
192 Version 0.8 - 2005-05-26
194 End-user-visible changes
196 * Directory arguments are now searched for files, allowing to handle
197 projects with a large number of files.
199 * New --fileregexp option to override the per-language regexp used to
200 look for files inside directories.
202 * More statistics are available in the report file.
204 Changes for the class writer:
206 * extractors' getdeps methods cannot rely any more on @ARGV
207 containing the files list, and must get it from the FILES instance
210 ==================================================
212 Version 0.7 - 2005-05-10
216 * The '.graph-includes.report' suffix used when using --output did
217 not include the first dot.
219 Other end-user-visible changes
221 * Visible edges are now labelled with the number of real dependencies
222 they represent, so we have some visual feedback of transitive
225 * Huge performance boost for the transitive reduction.
227 * When cycles are present, the specific reduction selected is usually
228 a different one than in 0.6.1 and below, as a side-effect of
229 implementation changes.
231 * More documentation has been written.
233 Changes for the class writer:
235 * project::record_missing_dep was split out of project::record_dep.
237 * Dependencies are now stored in a hash instead of an array.
239 * The "label" special_edge attribute is now an array of strings, to
240 be presented on several lines.
242 ==================================================
244 Version 0.6.1 - 2005-04-26
248 * Fixed the distribution which misses the C and perl extractors.
250 ==================================================
252 Version 0.6 - 2005-04-24
256 * A typo in the graphincludes::params package prevented the
257 parameters default values to be used.
259 Command-line changes:
261 * New --language flag to select syntax of source files.
263 * Preliminary support for extracting perl dependencies, using
266 Changes for the class writer:
268 * C-specific behaviour is now located in new extractor::C class.
270 * Changed special_edge() return value to an hash of graphviz node
271 attribute/value pairs
273 * More methods were moved from project::default up to ancestor
276 ==================================================
278 Version 0.5 - 2005-04-20
280 Command-line changes:
282 * --Include is now recognized as long form for -I.
284 * New --sysInclude option to specify system directories. Included
285 files not found in the project, but found in those directories are
286 not considered as "not found".
288 Other end-user-visible changes
290 * Removed inconditional duplicate warnings flooding the output.
292 * Verbose diagnostics are now output unconditionally into a
293 graph-includes.report (or <file>.graph-includes.report) file.
295 Changes for the class writer:
297 * The constructor for the project classes now uses named parameters,
298 instead of positional parameters.
299 * Global parameters were moved to a new graphincludes::params package.
301 ==================================================
303 Version 0.4 - 2005-04-17
305 Command-line changes:
307 * Implemented cpp-like "-I <dir>" syntax for #include lookup,
308 dropping the infamous former ad-hoc heuristic.
310 Other end-user-visible changes
312 * `#include "..."' are now analyzed using the standard cpp semantics,
313 and `#include <...>' line are now considered as well.
317 * Many code cleanups.
319 ==================================================
321 Version 0.3 - 2005-04-14
325 * Fixed a bug in the ad-hoc #include resolver which caused some
326 dependencies to be ignored
328 Command-line changes:
330 * New --paper option to get a graph printable on paper (for now, only
333 Other end-user-visible changes
335 * More documentation has been written.
337 ==================================================
339 Version 0.2 - 2005-04-01
343 * --output would reject its argument.
345 * --focus and --showdropped caused invalid output.
347 Command-line changes:
349 * New --prefixstrip option to make the graph more readable by
350 stripping a common prefix from all filenames.
352 * Obsolete (pre 0.1 !) --allfiles option was completely dropped.
354 Other end-user-visible changes
356 * More documentation has been written.
358 * The default project-class (and the sample wesnoth class) now
359 provide default singleton level-2 groups (so "--group 2-2" should
360 work on all projects).
362 Changes for the class writer:
364 * The tool expect a project class to build its dependency graph in an
365 init() method, instead of in the constructor.
367 * The project class constructor now takes an additional prefixstrip
368 argument. More changes to come in this area to cause such changes
369 to be less disruptive in the future.
371 * A project class can now specify excuses for abusive dependencies,
372 to be shown in as edges of a different color, and with the excuse
375 ==================================================
377 Version 0.1 - 2005-03-28
379 Initial public release.