Hi Frank, I just removed the Kernel from the package list on purpose because it would be confusing with too many lines around. Anyway you can include it if you like, this is the script to generate the graph: | packages all allNames | packages := #('AST' 'Announcements' 'AsmJit' 'Athens' 'Balloon' 'ClassOrganizer' 'CodeImport' 'Compiler' 'EventModel' 'FileSystem' 'Files' 'FreeType' 'Fuel' 'Gofer' 'HelpSystem' 'Keymapping' 'Manifest' 'Metacello' 'NECompletion' 'Ring' 'System' 'Text' 'Tools'). allNames := RPackageOrganizer default packageNames. all := (packages collect: [: pkgName | allNames select: [ : pkg | pkg asString beginsWith: pkgName ] ] ) gather: [ : c | c ]. (PDGraphPackageAnalyzer onPackagesNamed: all) save: 'pharo-3.dot'. A cycle (red) between two packages is shown when any kind of inheritance, reference or extension is found between. Cheers, Hernán 2013/12/7 Frank Shearar <frank.shearar@gmail.com>
On 7 December 2013 20:21, Hernán Morales Durand <hernan.morales@gmail.com> wrote:
You could be interested in viewing some circular dependencies (red lines) in Pharo 3 generated with GraphViz/PackageDependencies using http://www.smalltalkhub.com/#!/~hernan/GraphViz
https://drive.google.com/file/d/0B7XMfmjGRcXASHB1c2xLSFdLR2s/edit?usp=sharin...
downloaded with
$ wget -O- get.pharo.org/30+vm | bash
Cool! I suspect the graph shows just the cycles and the neighbours of packages involved in the cycles? Because I can't find any Kernel packages, and there are a bunch of packages that have "no" dependencies. All packages _must_ have a dependency on _something_, because all classes ultimately inherit from Object, which obviously sits in a package.
frank
Cheers,
Hernán