Tuesday, September 16, 2008

(repoze.)plone dependecy graph

while reading rss i found this post where there is a nice dependency graph for zope. plone was recently eggified (it will be released in 3.2 version, curretnly only in plone-coredev), but still its dependency in setup.py are missing. for this puporse i'll use repoze.plone package.

get some snack, put on the headphones, surf to your favorite radio and lets start the work...
  1. install repoze.plone

    rok@bestia ~/Projects $ virtualenv -no-site-packages repoze-plone
    rok@bestia ~/Projects $ cd repoze-plone
    rok@bestia ~/
    Projects/repoze-plone $ source bin/activate
    (repoze-plone) rok@bestia ~/Projects/repoze-plone $ easy_install -i http://dist.repoze.org/plone/latest/simple repoze.plone

  2. install eggdeps

    (repoze-plone) rok@bestia ~/Projects/repoze-plone $ easy_install tl.eggdeps

  3. install graphviz accordung to your distro. mine is gentoo, so i'll have time for making myself a coffee before graphiz is installed. someone will call that stupid and unecessary. i call it distro that likes me and makes computing fun again.

    # as root
    - python flag must be enabled
    bestia ~ # emerge -va media-gfx/graphviz

  4. ok i did't fetch coffee instead there is worm cocao'n'milk in my hands. now its time to produce some graphs.

    (repoze-plone) rok@bestia ~/Projects/repoze-plone $ eggdeps -d repoze.plone > repoze.plone.dot
    (repoze-plone) rok@bestia ~/Projects/repoze-plone $ dot -Tjpeg repoze.plone.dot > repoze.plone.jpg

  5. and voila our graph is here ... make you own judgement

maybe this graphs are not important, but i hope in next versions plone will become better python citizen and that i could install plone by simply doing "easy_install plone" and that its dependecy tree would be better looking, why? because style matters


Anonymous said...

While I can't actually read the bubbles, and I haven't tried this myself, that dependency graph is not terribly awful. It's actually sort of pretty.

The real problem with it is that it doesn't reflect reality, because most Plone eggs don't actually name their real dependencies. The actual dependency graph would be far scarier.

Rok Garbas said...

let me uplaod graph using some other web photo service.

i must admit i was quite suprise myself. i was expecting something more extensive (if thats even the right word).

now that eggification was done, would it be wise to name dependencies? i mean, not for the sake of this graph, but for reuse outside of plone world. probably not for older packages but for those with plone.* namespace definitly.

Anonymous said...

You guys just wait until Zope 2 is fully eggified and Plone properly declares its dependencies on the Zope2 egg and the various zope.* eggs. That's when the shit hits the fan.

Rok Garbas said...

why? did i missed something? declaring dependecies is not good?

or is thi just a comment on current numerous zope packages? that zope went from monolitic to 100+puzzle, from one obsession to another?