[opam-devel] ows reports

Roberto Di Cosmo roberto at dicosmo.org
Tue Sep 30 21:40:17 BST 2014

Hi Anil,
   I think I mentioned it earlier, but just in case it ended up in some lost
closed ticket somewhere on github, let me recall this here: OWS does a nice
web-like presentation of the results that you can obtain by just running
*distcheck*, a standard tool from the Dose tool suite, which is distributed
under a free software licence, and uses the Cudf library, also distributed under
a free software licence.

Anybody can do the same locally, it's as simple as

 opam config cudf-universe > cudf:///universe.cudf
 distcheck -f -e cudf:///tmp/universe.cudf 

So you can test everything already, right away! This has been possible since
the very beginning: there is nothing hidden, the manpage for distcheck is quite
detailed and there is even a full 20 pages primer in the documentation directory.

All this being said, things are not as well as I would like.

On one side, the existence of zillions of versions of the same package in
opam-repository made the original explanation algorithm produce correct, but
unreadable reports; over the past years different experiments with the
simplification of the explanations led to different pieces of code trying to do
differently similar, but not quite identical things in different places,
including opam and OWS, instead of in the Dose library, where all this really

Also, distcheck produces by default a report referring to the CUDF file, so it
outputs a version number that needs to be matched back with the original package
version; there are incarnations of distcheck for debian, rpm and eclipse that do this
properly, but not yet for opam, that has not even a formally specified version
comparison algorithm, as AFAIK it justs currently piggybacks on the dose implementation
of the debian one, that may change in the future, as it has changed in the past.

To try and get back in a sane state, there has been work ongoing here over the
summer to design a general explanation simplification algorithm that covers most
cases, not just for opam, and various experiments on how to make distcheck
handle source versions generically, all in the public Dose git repo, but we are
far from finished yet, as it's pretty tricky work.

Now I really want to see everything converge back into a single code base again,
which *is* free software: Dose and Cudf, to which everybody is welcome to
contribute, even if I know that the learning curve is steep, despite all this
being OCaml code.

Hope this clarifies my stance here.


More information about the opam-devel mailing list