This tool is built on top of great existing software like Roassal and Pharo's internal dependency tools.
This tool helps understand/untangle dependencies.
Metacello new
baseline: 'PharoXDependencyVisualizer';
repository: 'github://ironirc/pharox-dependency-visualizer:main/';
load.
Should work in Pharo 11 and 12
To start exploring you could try:
DvRsWorkScope exampleWithZincAndZodiac
This gives you something like:
Observe there's a cycle between Zinc-HTTP and Zinc-Resource-Meta-Core.
Should Zinc-Resource-Meta-Core depend on Zinc-HTTP?
Interact to get more insight:
- Hover a node: green lines show de packages depended upon, red lines show packages depending on hovered node
- If other nodes turn orange (while hovering), there's a cycle somewhere
- Right click to open the already well known dependency browser
- Right click to browser the package in system browser
- Click node to temp highlite it in yellow ( just a temp marker without further functionality)
DvRsWorkScope exampleWithZincAndZodiacGrouped
- Better default layout (force based?)
- Immediate indication of cycles (now already easy to detect on sight)
- Hovering line to display actual dependencies
- Grouping/Ungrouping manipulation directly in graph
- Update without re-opening the window
- Add/remove extra packages to/from scope directly in graph.
- Make graph persistent (already some code in place)
- ...
- long term: Create baselines?