Sorry, I realize a simpler explanation is possible: I want to see the dependencies that are actually stated in a package. For example, the output with the suggested commands includes version numbers, but there are no version number constraints stated in Flow's opam file.<br>

<br><div class="gmail_quote">On Wed, Mar 27, 2013 at 11:32 AM, Ashish Agarwal <span dir="ltr"><<a href="mailto:agarwal1975@gmail.com" target="_blank">agarwal1975@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

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:<div><br>

</div>
<div><div>$ opam upgrade --cudf=flow flow</div><div>flow is not installed.</div><div>Already up-to-date.</div><div><br></div><div>$ dot -Tpng flow.dot > flow.png</div><div><br></div><div>However, the resulting png doesn't have a node for Flow. I guess only installed packages are depicted.</div>


<div><br></div><div>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.</div><div><br></div><div>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.</div>


<div><br></div><div>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.</div>

<div><div class="h5">
<div><br></div><br><div class="gmail_quote">On Wed, Mar 27, 2013 at 10:50 AM, Thomas Gazagnaire <span dir="ltr"><<a href="mailto:thomas@ocamlpro.com" target="_blank">thomas@ocamlpro.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Remark: this is really just a hack, I agree it would be good to move that thing into a proper command later.<br>
<br>
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).<br>



<span><font color="#888888"><br>
Thomas<br>
</font></span><div><div><br>
<br>
On Mar 27, 2013, at 3:47 PM, Thomas Gazagnaire wrote:<br>
<br>
> You can try:<br>
><br>
> $ opam upgrade --cudf=foo ocamlfind<br>
><br>
> hopefully this is just a no-op which produces foo.dot. Then:<br>
><br>
> $ dot -Tpng foo.dot > foo.png<br>
><br>
> This will build the graph of all available packages where the roots are the installed ones.<br>
><br>
> --<br>
> Thomas<br>
><br>
><br>
><br>
> On Mar 27, 2013, at 3:31 PM, Ashish Agarwal wrote:<br>
><br>
>> 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.<br>
>><br>
>> _______________________________________________<br>
>> opam-devel mailing list<br>
>> <a href="mailto:opam-devel@lists.ocaml.org" target="_blank">opam-devel@lists.ocaml.org</a><br>
>> <a href="http://lists.ocaml.org/listinfo/opam-devel" target="_blank">http://lists.ocaml.org/listinfo/opam-devel</a><br>
><br>
<br>
</div></div></blockquote></div><br></div></div></div>
</blockquote></div><br>