Add --subgraphs support (aka. --group is back ;).
[deps.git] / NEWS
blobd654949da765fb26a639dcb86b80320f300c2a2f
1 Version 0.14 - unreleased
3  End-user-visible changes
5  * Add a --subgraphs flag to make --consolidate act like --group used
6    to: display groups as clusters of their constituent nodes (only
7    supported by the dot renderer for now).
9  * Added a preliminar java extractor.
11  Bugs fixed:
13  Changes for the plugin writer:
15  * Nodes can now contain a SUBGRAPH attribute, causing them to be
16    rendered as a cluster.
18 ==================================================
20 Version 0.13 - 2006-02-08
22  End-user-visible changes
24  * Added a node style to display the number of ingredient nodes and of
25    internal edges in a group (GroupStats), activated by default.
27  * Updated documentation.
29  Bugs fixed:
31  * Ship all files (the 0.12 tarball missed all transforms and styles !)
33  * The path-handling functions in the default project class were
34    confused by leading "./" in paths and failed to idendify some
35    dependencies.
37  * The root graph can now be included in arguments to
38    Transform::Consolidate, and "--consolidate 0-<N>" is now valid.
40  * The tulip renderer had been broken by an API change in 0.12.
42  * Workaround for a strange behaviour or ActivePerl 5.8.7 on Windows,
43    which caused dependencies in subdirs not to be found.
45  * Ingredientable::ingredients() method now always returns a list,
46    even in scalar context when there is only one ingredient.
48  Changes for the plugin writer:
50  * New node style attributes "label" and "extralabel" for the dot
51    renderer.
53  * Added support for edge styling, and support for "label" attribute
54    in the dot renderer.  New WeightLabel edge styler to replace old
55    ad-hoc code.
57  * Class moves and renames: transforms, styles.
59 ==================================================
61 Version 0.12 - 2006-02-03
63  End-user-visible changes
65  * Start of a renaming of the whole toolkit to DEPS (Dependency
66    Extraction and Processing System), graph-includes being only the
67    current user frontend.
69  * Graphs of grouped nodes now only include the defined groups.  The
70    new --consolidate flag is now available to merge such graphs in a
71    manner such that nodes of a given group-level, not included in any
72    higher-level group, are shown as well.  As a side-effect, this flag
73    also controls the highest group-level of the nodes to be drawn, in
74    place of the --group flag.
76  * The --group flag to render groups as node clusters is not available
77    any more.  It will come back in a later release, under a more suitable
78    name.
80  * The documentation previously found in the README file is now
81    available in DocBook XML format, in the doc/ directory.
83  Bugs fixed:
85  * Fixed the uniqueincludes project class, which has been broken since
86    the 0.6 reorganization.
88  * Calculation of edge weights was wrong.
90  Changes for the class writer:
92  * A project is now made of a set of graphs, themselves connected as a
93    graph representing the transformations used to produce them from the
94    other graphs.  Most APIs changed consequently.
96  * Projects are now expected to provide a nlevels() method matching
97    the number of grouping levels defined, and the filelabel() methods
98    are now allowed to return undef when a node does not belong to any
99    group at the requested level.
101  * Arbitrary transformations and styles can now be defined, although
102    no facility is provided yet by the master graph-includes script to
103    apply them, short of editing the script.  Currently available
104    transformations are "compatgroup" (use the old filelabel() mechanism
105    to define grouping levels), "consolidate" (merge several group levels
106    in a single graph to show non-grouped nodes as well), and
107    "transitivereduction".  The only currently available styler allows to
108    apply style attributes (like colors) to a node according to the group
109    it belongs to at a given grouping level.
111  Under the hood:
113  * Objects now get their hash locked in the constructors, to catch
114    typos, unwanted modifications, and other errors likely to occur
115    during subsequent refactorings.
117  * Introduced graph, node, and edge objects (splitted out from
118    project, along with relevant methods).  A project now has a stack
119    of graphs.
121  * Many other changes, fixing some bugs, and introducing brand new ones.
123 ==================================================
125 Version 0.11 - 2005-12-06
127  End-user-visible changes
129  * Generalized support for node coloring, with renderer::dot
130    supporting 2 coloring levels (background and outline)
132  * Improved portability to non-UNIX platforms, was successfully run on
133    win32.
135  * The C extractor now looks in for system headers in /usr/include by
136    default.
138  * The Perl extractor uses the default @INC value to locate system
139    headers.
141  Changes for the class writer:
143  * Per-language extractors can now declare a default system-include
144    path.
146  Bugs fixed:
148  * The --color flag was broken.
150 ==================================================
152 Version 0.10 - 2005-11-29
154  End-user-visible changes
156  * Added a --renderer flag to select another renderer than dot.
158  * Added preliminary support to use tulip as renderer.
160 ==================================================
162 Version 0.9.2 - 2005-11-2
164  * Start of a "tutorial" or "how to use" section in the doc.
166  * Explicitely written down the plan for the upcoming redesign.
168 ==================================================
170 Version 0.9.1 - 2005-06-01
172  Bugs fixed:
174  * Fixed a typo preventing the recursive search to see .c and .h
175    files.
177 ==================================================
179 Version 0.9 - 2005-06-01
181  Bugs fixed:
183  * Now fails nicely when no dependencies are found for any reason.
185  Other end-user-visible changes
187  * Command-line and version are now logged in the report file.
189  * New --version flag.
191  * Can now be run from source dir with no effort.
193  * Exit with usage on command-line.
195  * Updated usage summary with recent options.
197 ==================================================
199 Version 0.8 - 2005-05-26
201  End-user-visible changes
203  * Directory arguments are now searched for files, allowing to handle
204    projects with a large number of files.
206  * New --fileregexp option to override the per-language regexp used to
207    look for files inside directories.
209  * More statistics are available in the report file.
211  Changes for the class writer:
213  * extractors' getdeps methods cannot rely any more on @ARGV
214    containing the files list, and must get it from the FILES instance
215    variable.
217 ==================================================
219 Version 0.7 - 2005-05-10
221  Bugs fixed:
223  * The '.graph-includes.report' suffix used when using --output did
224    not include the first dot.
226  Other end-user-visible changes
228  * Visible edges are now labelled with the number of real dependencies
229    they represent, so we have some visual feedback of transitive
230    reduction.
232  * Huge performance boost for the transitive reduction.
234  * When cycles are present, the specific reduction selected is usually
235    a different one than in 0.6.1 and below, as a side-effect of
236    implementation changes.
238  * More documentation has been written.
240  Changes for the class writer:
242  * project::record_missing_dep was split out of project::record_dep.
244  * Dependencies are now stored in a hash instead of an array.
246  * The "label" special_edge attribute is now an array of strings, to
247    be presented on several lines.
249 ==================================================
251 Version 0.6.1 - 2005-04-26
253  Bugs fixed:
255  * Fixed the distribution which misses the C and perl extractors.
257 ==================================================
259 Version 0.6 - 2005-04-24
261  Bugs fixed:
263  * A typo in the graphincludes::params package prevented the
264    parameters default values to be used.
266  Command-line changes:
268  * New --language flag to select syntax of source files.
270  * Preliminary support for extracting perl dependencies, using
271    "--language perl"
273  Changes for the class writer:
275  * C-specific behaviour is now located in new extractor::C class.
277  * Changed special_edge() return value to an hash of graphviz node
278    attribute/value pairs
280  * More methods were moved from project::default up to ancestor
281    classes.
283 ==================================================
285 Version 0.5 - 2005-04-20
287  Command-line changes:
289  * --Include is now recognized as long form for -I.
291  * New --sysInclude option to specify system directories.  Included
292    files not found in the project, but found in those directories are
293    not considered as "not found".
295  Other end-user-visible changes
297  * Removed inconditional duplicate warnings flooding the output.
299  * Verbose diagnostics are now output unconditionally into a
300    graph-includes.report (or <file>.graph-includes.report) file.
302  Changes for the class writer:
304  * The constructor for the project classes now uses named parameters,
305    instead of positional parameters.
306  * Global parameters were moved to a new graphincludes::params package.
308 ==================================================
310 Version 0.4 - 2005-04-17
312  Command-line changes:
314  * Implemented cpp-like "-I <dir>" syntax for #include lookup,
315    dropping the infamous former ad-hoc heuristic.
317  Other end-user-visible changes
319  * `#include "..."' are now analyzed using the standard cpp semantics,
320    and `#include <...>' line are now considered as well.
322  Under the hood
324  * Many code cleanups.
326 ==================================================
328 Version 0.3 - 2005-04-14
330  Bugs fixed:
332  * Fixed a bug in the ad-hoc #include resolver which caused some
333    dependencies to be ignored
335  Command-line changes:
337  * New --paper option to get a graph printable on paper (for now, only
338    a4, a3 and letter)
340  Other end-user-visible changes
342  * More documentation has been written.
344 ==================================================
346 Version 0.2 - 2005-04-01
348  Bugs fixed:
350  * --output would reject its argument.
352  * --focus and --showdropped caused invalid output.
354  Command-line changes:
356  * New --prefixstrip option to make the graph more readable by
357    stripping a common prefix from all filenames.
359  * Obsolete (pre 0.1 !) --allfiles option was completely dropped.
361  Other end-user-visible changes
363  * More documentation has been written.
365  * The default project-class (and the sample wesnoth class) now
366    provide default singleton level-2 groups (so "--group 2-2" should
367    work on all projects).
369  Changes for the class writer:
371  * The tool expect a project class to build its dependency graph in an
372    init() method, instead of in the constructor.
374  * The project class constructor now takes an additional prefixstrip
375    argument.  More changes to come in this area to cause such changes
376    to be less disruptive in the future.
378  * A project class can now specify excuses for abusive dependencies,
379    to be shown in as edges of a different color, and with the excuse
380    as a label.
382 ==================================================
384 Version 0.1 - 2005-03-28
386  Initial public release.