[opam-devel] printing detailed dependency analysis

Ashish Agarwal agarwal1975 at gmail.com
Wed Mar 27 15:42:11 GMT 2013


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.

On Wed, Mar 27, 2013 at 11:32 AM, Ashish Agarwal <agarwal1975 at gmail.com>wrote:

> 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/1a0db83a/attachment-0001.html>


More information about the opam-devel mailing list