The interactive graph is cool. Some suggestions: * Mark nodes of dependencies you want to prune in red. * Allow nodes to be pinned * http://bl.ocks.org/GerHobbelt/3637711 * http://stackoverflow.com/questions/11584757/interactively-fixing-a-node-in-a... * http://stackoverflow.com/questions/12496851/d3-force-graph-sticky-nodes * http://bl.ocks.org/mbostock/3750558 * Node size to reflect size of package. A small number of dependencies to a fat node might be best to tackle first. * Highlighting & Fisheye * http://www.coppelia.io/2014/07/an-a-to-z-of-extra-features-for-the-d3-force-... * Mark in bootstrap-dependency-report-graph-data.csv <https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/ws/bootstrap-depe...> which dependencies you want to eliminate, so that others might have a play with visualisation. More exotic... * Serve the bootstrap-dependency-report-graph.html <https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/ws/bootstrap-depe...> and bootstrap-dependency-report-graph-data.csv <https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/ws/bootstrap-depe...> out from Zinc, so I can point my browser at my local Pharo Image, and when a dependency is deleted, the graph updates automagically * When I double-click a node in the graph, it selects that item in the dependency analyzer in Image. * I guess the same might be done with two local Images - Moose as the observer and Pharo as the subject. cheers -ben On Wed, Sep 9, 2015 at 5:33 PM, Christophe Demarey < Christophe.Demarey@inria.fr> wrote:
Hi,
We now have a best overview of bootstrap dependencies. You can check the latest report at https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/Dependencies_HTML... . With Max, we reused Dijkstra algo in Moose to help finding dependencies leading to Morphic and co. It is now possible to have a visualization that is usable (there is also a button to open it in the report): https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/Dependencies_HTML...
Next steps are to cut dependencies in red in the report table.
Christophe.
ps: by the way the dependency analyzer (with fixes asked) will be introduced soon in the image.
Le 4 sept. 2015 à 15:13, Christophe Demarey a écrit :
Hi,
I created a job to automatically generate a report of the Pharo image dependencies as well as current bootstrap dependencies. You can find them here:
- https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/Dependencies_HTML... - https://ci.inria.fr/pharo/job/Pharo-5.0-DependencyAnalysis/Dependencies_HTML...
There are a lot (too many) dependencies but you can focus on some of them with the search field. Dependencies inside orange boxes are dependencies that are there but that we ignore (for example, an example method adds an extra-dependency). It should be fixed later but is not a problem for now. Ignored dependencies are declared in the package manifest in #ignoredDependencies. Dependencies inside red boxes are dependencies we want to remove for the bootstrap. For now, they are listed in the bootstrap dependency report.
People that are willing to help to have a more modular Pharo could first take a look at the bootstrap dependency report and check dependencies that we should cut. Once we know, we can open issues on fogbugz in the 'bootstrap category' and update manifests accordingly. To investigate more deeply dependencies, you can use the DependencyAnalyzer (in the Pharo Catalog) to actually check dependencies (inheritance, reference, extension, traits, message send).
Regards, Christophe.