[opam-devel] printing detailed dependency analysis

Ashish Agarwal agarwal1975 at gmail.com
Wed Mar 27 15:32:49 GMT 2013


We have a package Flow (pinned to a local copy), which when I try to
install it, I'm told requires downgrading lwt to 2.4.2. I see no reason why
this should be, so I tried running your command to investigate:

$ opam upgrade --cudf=flow flow
flow is not installed.
Already up-to-date.

$ dot -Tpng flow.dot > flow.png

However, the resulting png doesn't have a node for Flow. I guess only
installed packages are depicted.

So I pinned lwt to the currently installed version 2.4.3, then managed to
successfully install Flow. Now, the output shows that Flow depends on lwt
2.4.3.

Unfortunately, I need to see why opam thought Flow depends on lwt 2.4.2 in
the original case. Unfortunately, the output doesn't help investigate this.

Precisely, what we need is to see---when `opam install` says such and such
packages must be upgraded, installed, downgraded---to know exactly what
sequence of dependencies led to that end result. I appreciate this may not
be easy to provide.


On Wed, Mar 27, 2013 at 10:50 AM, Thomas Gazagnaire <thomas at ocamlpro.com>wrote:

> Remark: this is really just a hack, I agree it would be good to move that
> thing into a proper command later.
>
> We've discussed about creating 'opam-check' which will do this kind of
> computations using opam-lib, but we've never really had the time to do this
> properly. As always, contributions are welcome as this is quite distinct
> from the core of OPAM (eg. the mechanics of installing/removing packages).
>
> Thomas
>
>
> On Mar 27, 2013, at 3:47 PM, Thomas Gazagnaire wrote:
>
> > You can try:
> >
> > $ opam upgrade --cudf=foo ocamlfind
> >
> > hopefully this is just a no-op which produces foo.dot. Then:
> >
> > $ dot -Tpng foo.dot > foo.png
> >
> > This will build the graph of all available packages where the roots are
> the installed ones.
> >
> > --
> > Thomas
> >
> >
> >
> > On Mar 27, 2013, at 3:31 PM, Ashish Agarwal wrote:
> >
> >> Is there any way to get a detailed print out of a package's dependency
> tree? I'm in a situation that is hard to debug.
> >>
> >> _______________________________________________
> >> opam-devel mailing list
> >> opam-devel at lists.ocaml.org
> >> http://lists.ocaml.org/listinfo/opam-devel
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ocaml.org/pipermail/opam-devel/attachments/20130327/42bd0702/attachment.html>


More information about the opam-devel mailing list