Updated NEWS file as release is getting near
[deps.git] / NEWS
blobbfa6e42f47628fb7438cbf80a4c99f15849becea
1 Version 0.12 - UNRELEASED
3  End-user-visible changes
5  * Start of a renaming of the whole toolkit to DEPS (Dependency
6    Extraction and Processing System), graph-includes being only the
7    current user frontend.
9  * Graphs of grouped nodes now only include the defined groups.  The
10    new --consolidate flag is now available to merge such graphs in a
11    manner such that nodes of a given group-level, not included in any
12    higher-level group, are shown as well.  As a side-effect, this flag
13    also controls the highest group-level of the nodes to be drawn, in
14    place of the --group flag.
16  * The --group flag to render groups as node clusters is not available
17    any more.  It will come back in a later release, under a more suitable
18    name.
20  * The documentation previously found in the README file is now
21    available in DocBook XML format, in the doc/ directory.
23  Bugs fixed:
25  * Fixed the uniqueincludes project class, which has been broken since
26    the 0.6 reorganization.
28  * Calculation of edge weights was wrong.
30  Changes for the class writer:
32  * A project is now made of a set of graphs, themselves connected as a
33    graph representing the transformations used to produce them from the
34    other graphs.  Most APIs changed consequently.
36  * Projects are now expected to provide a nlevels() method matching
37    the number of grouping levels defined, and the filelabel() methods
38    are now allowed to return undef when a node does not belong to any
39    group at the requested level.
41  * Arbitrary transformations and styles can now be defined, although
42    no facility is provided yet by the master graph-includes script to
43    apply them, short of editing the script.  Currently available
44    transformations are "compatgroup" (use the old filelabel() mechanism
45    to define grouping levels), "consolidate" (merge several group levels
46    in a single graph to show non-grouped nodes as well), and
47    "transitivereduction".  The only currently available styler allows to
48    apply style attributes (like colors) to a node according to the group
49    it belongs to at a given grouping level.
51  Under the hood:
53  * Objects now get their hash locked in the constructors, to catch
54    typos, unwanted modifications, and other errors likely to occur
55    during subsequent refactorings.
57  * Introduced graph, node, and edge objects (splitted out from
58    project, along with relevant methods).  A project now has a stack
59    of graphs.
61  * Many other changes, fixing some bugs, and introducing brand new ones.
63 ==================================================
65 Version 0.11 - 2005-12-06
67  End-user-visible changes
69  * Generalized support for node coloring, with renderer::dot
70    supporting 2 coloring levels (background and outline)
72  * Improved portability to non-UNIX platforms, was successfully run on
73    win32.
75  * The C extractor now looks in for system headers in /usr/include by
76    default.
78  * The Perl extractor uses the default @INC value to locate system
79    headers.
81  Changes for the class writer:
83  * Per-language extractors can now declare a default system-include
84    path.
86  Bugs fixed:
88  * The --color flag was broken.
90 ==================================================
92 Version 0.10 - 2005-11-29
94  End-user-visible changes
96  * Added a --renderer flag to select another renderer than dot.
98  * Added preliminary support to use tulip as renderer.
100 ==================================================
102 Version 0.9.2 - 2005-11-2
104  * Start of a "tutorial" or "how to use" section in the doc.
106  * Explicitely written down the plan for the upcoming redesign.
108 ==================================================
110 Version 0.9.1 - 2005-06-01
112  Bugs fixed:
114  * Fixed a typo preventing the recursive search to see .c and .h
115    files.
117 ==================================================
119 Version 0.9 - 2005-06-01
121  Bugs fixed:
123  * Now fails nicely when no dependencies are found for any reason.
125  Other end-user-visible changes
127  * Command-line and version are now logged in the report file.
129  * New --version flag.
131  * Can now be run from source dir with no effort.
133  * Exit with usage on command-line.
135  * Updated usage summary with recent options.
137 ==================================================
139 Version 0.8 - 2005-05-26
141  End-user-visible changes
143  * Directory arguments are now searched for files, allowing to handle
144    projects with a large number of files.
146  * New --fileregexp option to override the per-language regexp used to
147    look for files inside directories.
149  * More statistics are available in the report file.
151  Changes for the class writer:
153  * extractors' getdeps methods cannot rely any more on @ARGV
154    containing the files list, and must get it from the FILES instance
155    variable.
157 ==================================================
159 Version 0.7 - 2005-05-10
161  Bugs fixed:
163  * The '.graph-includes.report' suffix used when using --output did
164    not include the first dot.
166  Other end-user-visible changes
168  * Visible edges are now labelled with the number of real dependencies
169    they represent, so we have some visual feedback of transitive
170    reduction.
172  * Huge performance boost for the transitive reduction.
174  * When cycles are present, the specific reduction selected is usually
175    a different one than in 0.6.1 and below, as a side-effect of
176    implementation changes.
178  * More documentation has been written.
180  Changes for the class writer:
182  * project::record_missing_dep was split out of project::record_dep.
184  * Dependencies are now stored in a hash instead of an array.
186  * The "label" special_edge attribute is now an array of strings, to
187    be presented on several lines.
189 ==================================================
191 Version 0.6.1 - 2005-04-26
193  Bugs fixed:
195  * Fixed the distribution which misses the C and perl extractors.
197 ==================================================
199 Version 0.6 - 2005-04-24
201  Bugs fixed:
203  * A typo in the graphincludes::params package prevented the
204    parameters default values to be used.
206  Command-line changes:
208  * New --language flag to select syntax of source files.
210  * Preliminary support for extracting perl dependencies, using
211    "--language perl"
213  Changes for the class writer:
215  * C-specific behaviour is now located in new extractor::C class.
217  * Changed special_edge() return value to an hash of graphviz node
218    attribute/value pairs
220  * More methods were moved from project::default up to ancestor
221    classes.
223 ==================================================
225 Version 0.5 - 2005-04-20
227  Command-line changes:
229  * --Include is now recognized as long form for -I.
231  * New --sysInclude option to specify system directories.  Included
232    files not found in the project, but found in those directories are
233    not considered as "not found".
235  Other end-user-visible changes
237  * Removed inconditional duplicate warnings flooding the output.
239  * Verbose diagnostics are now output unconditionally into a
240    graph-includes.report (or <file>.graph-includes.report) file.
242  Changes for the class writer:
244  * The constructor for the project classes now uses named parameters,
245    instead of positional parameters.
246  * Global parameters were moved to a new graphincludes::params package.
248 ==================================================
250 Version 0.4 - 2005-04-17
252  Command-line changes:
254  * Implemented cpp-like "-I <dir>" syntax for #include lookup,
255    dropping the infamous former ad-hoc heuristic.
257  Other end-user-visible changes
259  * `#include "..."' are now analyzed using the standard cpp semantics,
260    and `#include <...>' line are now considered as well.
262  Under the hood
264  * Many code cleanups.
266 ==================================================
268 Version 0.3 - 2005-04-14
270  Bugs fixed:
272  * Fixed a bug in the ad-hoc #include resolver which caused some
273    dependencies to be ignored
275  Command-line changes:
277  * New --paper option to get a graph printable on paper (for now, only
278    a4, a3 and letter)
280  Other end-user-visible changes
282  * More documentation has been written.
284 ==================================================
286 Version 0.2 - 2005-04-01
288  Bugs fixed:
290  * --output would reject its argument.
292  * --focus and --showdropped caused invalid output.
294  Command-line changes:
296  * New --prefixstrip option to make the graph more readable by
297    stripping a common prefix from all filenames.
299  * Obsolete (pre 0.1 !) --allfiles option was completely dropped.
301  Other end-user-visible changes
303  * More documentation has been written.
305  * The default project-class (and the sample wesnoth class) now
306    provide default singleton level-2 groups (so "--group 2-2" should
307    work on all projects).
309  Changes for the class writer:
311  * The tool expect a project class to build its dependency graph in an
312    init() method, instead of in the constructor.
314  * The project class constructor now takes an additional prefixstrip
315    argument.  More changes to come in this area to cause such changes
316    to be less disruptive in the future.
318  * A project class can now specify excuses for abusive dependencies,
319    to be shown in as edges of a different color, and with the excuse
320    as a label.
322 ==================================================
324 Version 0.1 - 2005-03-28
326  Initial public release.