Yeah agreed. I think joining forces would be great :) but don't know how to make that happen :). Maybe something to talk about at the hackathon (assuming I could make it).
The ascii dep graph was mostly a fun christmas break project for me. It's intended for small graphs. The graph below is for the mpileaks tool, which depends on adept-utils. You can graph adept-utils independently: $ spack graph adept-utils o adept-utils |\ o | mpi / o boost But no, it's not going to handle QIME. But that is why it also does dot output. Here's the rather illegible Qt, just to illustrate that point. Dot output is attached, and is quite a bit clearer because, you know, two dimensions. $ spack graph qt o qt |\ | |\ | | |\ | | | |\ | | | | |\ | | | | | |\ | | | | | | |\ | | | | | | | |\ | | | | | | | | |\ | | | | | | | | | |\ | | | o | | | | | | | libxcb | | | |\ \ \ \ \ \ \ \ | | | | o | | | | | | | python | | | | |\ \ \ \ \ \ \ \ | | | | | |\ \ \ \ \ \ \ \ | | | | | | |\ \ \ \ \ \ \ \ | | | | | | | |\ \ \ \ \ \ \ \ | | | | | | o | | | | | | | | | openssl | |_|_|_|_|/ / / / / / / / / / |/| | | | | | | | | | | | | | | | o | | | | | | | | | | | | libxml2 | |/| | | | | | | | | | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | o | | | | libmng | |_|_|_|_|_|_|_|_|/| | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | |\| | | | | | | | | | | | | | o | | | | lcms | |_|_|_|_|_|_|_|_|/| | | | | |/| | | | | | | | |/| | | | | | | | | | | | | |/| | | | | | | | | | | | | | | | |/ / / / | | | | | | | | | | | o | | gtkplus | | | | | | | | | | | |\ \ \ | | | | | | | | | | | | |\ \ \ | | | | | | | | | | | | o | | | gdk-pixbuf | | | | | | | | | |_|_|/| | | | | | | | | | | | |/| |_|/| | | | | | | | | | | | | |/| |/| | | | | | | | | | | | | | |/| | | | | | | | | | | | | | | | | | |/ / | | | | | | | | | | | | |/| | | | | | | | | | o | | | | | | libtiff | |_|_|_|_|_|_|/| | | | | | | |/| | |_|_|_|_|/| | | | | | | | | |/| | | | | | | | | | | | | | | | | | | | | |/ / / / / | | | | | | | | |/| | | | | o | | | | | | | | | | | | | zlib / / / / / / / / / / / / / | o | | | | | | | | | | | xz | / / / / / / / / / / / | o | | | | | | | | | | xcb-proto | / / / / / / / / / / | o | | | | | | | | | sqlite | / / / / / / / / / | o | | | | | | | | readline | |/ / / / / / / / | | | | | o | | | pango | | | | | |\ \ \ \ | | | | | | o | | | cairo | | | | | |/| | | | | | | | |/| | | | | | | | | | | |\| | | | | | | | | |\ \ \ \ | | | | | | o | | | | pixman | | | | | |/ / / / / | | | | |/| | | | | | o | | | | | | | | ncurses | / / / / / / / / o | | | | | | | | mesa |\ \ \ \ \ \ \ \ \ o | | | | | | | | | llvm / / / / / / / / / | | | | o | | | | harfbuzz | | | | |\ \ \ \ \ | | | | | |\ \ \ \ \ | | | | | | |_|/ / / | | | | | |/| | | | | | | | | | | o | | fontconfig | | | | | | |/ / / | | | | | | o | | freetype | | | | |_|/ / / | | | |/| | | | | | | o | | | | libpng | | | / / / / | | | | | o | atk | | | | |/ / | | | | o | glib | | | | o | libffi | | | | / o | | | | libdrm / / / / | o | | jpeg | / / | o | icu | / | o dbus | o bzip2 From: Kenneth Hoste <[email protected]> Reply-To: "[email protected]" <[email protected]> List-Post: [email protected] Date: Wednesday, March 11, 2015 at 12:19 PM To: "[email protected]" <[email protected]> Subject: Re: [easybuild] Dependency tree > > > On 11/03/15 20:05, Todd Gamblin wrote: >> If you guys want an ASCII graph plotter, you could rip off the code here: >> >> https://github.com/scalability-llnl/spack/blob/master/lib/spack/spack/graph.p >> y#L31 > > As Todd and I have discussed before: joining forces would be great, rather > than ripping bits and pieces out of each others tool. > But it's not clear how we could make that work in practice. >> >> It prints little ascii graphs of dependencies, like git log --graph. >> Example: >> >> o mpileaks >> >> |\ >> >> | |\ >> >> | o | callpath >> >> |/| | >> >> | |\| >> >> | |\ \ >> >> | | |\ \ >> >> | | | | o adept-utils >> >> | |_|_|/| >> >> |/| | | | >> >> o | | | | mpi >> >> / / / / >> >> | | o | dyninst >> >> | |/| | >> >> |/|/| | >> >> | | |/ >> >> | o | libdwarf >> >> |/ / >> >> o | libelf >> >> / >> >> o boost >> >> > > This certainly looks interesting, but may be too complicated? Is this a single > dep graph for adept-utils? > > I was thinking about just indenting dependencies as they are deeper down the > dep graph, but I'm not sure if that's sufficient/doable. > >> It gets more complicated with things like qt :). > > Can it handle QIIME? That would certainly convince me if that's still > readable. ;-) > http://users.ugent.be/~kehoste/QIIME.pdf > > > regards, > > Kenneth > >> >> >> From: Geert Jan BEX <[email protected]> >> Reply-To: "[email protected]" <[email protected]> >> Date: Wednesday, March 11, 2015 at 6:44 AM >> To: "[email protected]" <[email protected]> >> Subject: Re: [easybuild] Dependency tree >> >>> Hi all, >>> >>> Being faced with similar questions (which module depends on which) I wrote a >>> small utility to compute dependencies from a directory of module files >>> (hence it is not specific to EasyBuild). Given a module name, it will >>> recursively list all dependencies or reverse dependencies. >>> >>> It is certainly rough around the edges, but it serves my needs. If you like >>> to try it, feel free: >>> https://github.com/gjbex/vsc-module-dependencies >>> >>> It requires Python 2.7.x. >>> >>> Best regards, -gjb- >>> >>> >>> On Tue, Mar 10, 2015 at 9:49 PM, Kenneth Hoste <[email protected]> >>> wrote: >>>> Hi Kilian, >>>> >>>> On 10/03/15 18:32, Kilian Cavalotti wrote: >>>>> > On Tue, Mar 10, 2015 at 10:18 AM, Stuart Barkley <[email protected]> >>>>> wrote: >>>>>> >> Is there a good way to see a dependency tree with easybuild (I'm now >>>>>> >> running 2.0.0)? I'm trying to reconcile different dependency >>>>>> >> requirements for my large build and am finding it difficult to >>>>>> >> determine what packages are requiring other packages. >>>>> > +1 on that. And that would be a good start to implement an "uninstall" >>>>> > option, as described in >>>>> > https://github.com/hpcugent/easybuild-framework/issues/590 >>>>> > BTW, this was supposed to be part of EB 2.0 (cf. #1000), but it >>>>> > apparently got postponed. >>>> >>>> Just to clarify: having support for uninstalling installations performed >>>> with EasyBuild was never part of the release plan for EasyBuild v2.0 >>>> (see the description in >>>> https://github.com/hpcugent/easybuild-framework/issues/1000), it was >>>> just mentioned by someone that this may be interested/useful to have it >>>> in there. >>>> >>>> There are a couple of issues that make support for uninstalling stuff >>>> difficult, or even impossible, to get right (as was discussed during the >>>> last hackathon, I believe): >>>> >>>> - it requires support for enabling reverse dependency tracking (not >>>> trivial, but doable) >>>> - it requires to be able to generate reverse dependency info for an >>>> existing install base; either the reverse deps information is complete, >>>> or useless (not that easy) >>>> - even with reverse dependency tracking in place, there's never a >>>> guarantee that something can be removed without damaging other >>>> installations that depend on what's being removed (consider software >>>> stacks installed in different installation prefixes, but with >>>> cross-dependencies) >>>> >>>> The main issue is that nobody has really picked up on this yet, so no >>>> work is being done on it actively. >>>> Unfortunately, features (and the documentation to go with them) don't >>>> appear out of thin air. ;-) >>>> >>>> The guys in Jülich have done some scripting related to this (see >>>> https://github.com/hpcugent/easybuild-framework/pull/1190), some ideas >>>> can be stolen from there to incorporate into the EasyBuild framework to >>>> add support for uninstalling stuff, but it's never going to be perfect >>>> (in the sense that it'll probably always need to be combined with >>>> --force together with getting a warning thrown at you when using >>>> --uninstall). >>>> >>>> >>>> regards, >>>> >>>> Kenneth >>> >>> >>> >>> -- >>> - dr. Geert Jan BEX >>> - HPC analyst/consultant Hasselt University & University of Leuven >>> - email: [email protected] >>> - homepage: http://alpha.uhasselt.be/~gjb/ >>> <http://alpha.uhasselt.be/%7Egjb/> >>> - PGP public key: http://alpha.uhasselt.be/~gjb/pgp.txt >>> <http://alpha.uhasselt.be/%7Egjb/pgp.txt> >>> --------------------------------------------------------- >
qt.pdf
Description: Adobe PDF document

