> - Anil Madhavapeddy, 23/03/2015 16:52 - > Good point -- I'm looking for all the reverse dependency package cone of > Cohttp that are installable for a particular version of Cohttp. I will > then install each of them separately, so there's no requirement for the > results to all be coinstallable.
If you really just need this, you could:
- get the reverse dependency cone, as before
- try the coinstallation of cohttp and each member of this cone. If the solver
returns no solution, just skip, otherwise check that all goes well:
COHTTP=cohttp.0.15.2
for p in $(opam list --rec --short --sort --depends-on $COHTTP); do
if opam install --show $COHTTP $p; then opam install $COHTTP $p; fi
done
Note that not specifying the version will just make OPAM choose the installed
version, or failing that the highest available: it won't aggregate results for
all versions.
The `--short` format doesn't print any version numbers: if it's a shortcoming
that should be fairly easy to improve; also, as Roberto said, any package that
has a (possibly transitive) dependency to cohttp that may include that version
will be included, even if it's not coinstallable.
To resolve in one step, I guess we could compute the set of packages
coinstallable with this version of cohttp using Dose, and then take the
intersection. (Or rather, the packages _not_ coinstallable and the difference ?)
>
> The goal is to check that a new version of Cohttp doesn't break an existing
> package that worked with an earlier version, so that we can add an upper
> bound to the opam package before merging the new release (and of course to
> use this more generally with other packages too).
>
> -anil
>
> > On 23 Mar 2015, at 16:43, Roberto Di Cosmo <[email protected]> wrote:
> >
> > Computing the reverse dependency cone of a package P is just a matter of
> > visiting the dependency graph, and you do not need any call to the solver
> > for this.
> >
> > But this reverse dependency cone may very well contain packages not
> > coinstallable with P.
> >
> > For example, if you have
> >
> > package: a
> > depends: cohttp, b
> >
> > package: cohttp
> > version: 1
> > conflicts: b
> >
> > package: cohttp
> > version: 2
> >
> > Then a is a reverse dependency for both versions of cohttp, even if it is
> > coinstallable only with version 2.
> >
> > If you want all packages in the reverse dependency cone of cohttp _that are
> > also
> > coinstallable with it_, then you need to actually call the solver on each of
> > them.
> >
> > --
> > Roberto
> >
> > On Mon, Mar 23, 2015 at 04:27:47PM +0000, Anil Madhavapeddy wrote:
> >> I'm trying to find all the reverse dependency of a particular version of
> >> Cohttp. I can do:
> >>
> >> opam list --depends-on cohttp --rec
> >>
> >> to get all of the dependencies for all versions. Unfortunately trying:
> >>
> >> opam list --depends-on cohttp.0.15.2 --rec
> >>
> >> gives the same results (including packages that depend on earlier versions
> >> of Cohttp and are specifically not installable with cohttp.0.15.2)
> >>
> >> Any suggestions on how to resolve this? I guess going through the list
> >> individually to check constraints is one way, but feely very clunky (and
> >> slow due to going through the solver so many times).
> >>
> >> -anil
> >> _______________________________________________
> >> opam-devel mailing list
> >> [email protected]
> >> http://lists.ocaml.org/listinfo/opam-devel
> >
>
> _______________________________________________
> opam-devel mailing list
> [email protected]
> http://lists.ocaml.org/listinfo/opam-devel
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ opam-devel mailing list [email protected] http://lists.ocaml.org/listinfo/opam-devel
