<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Hi Louis, welcome back :-)</div><div><br><blockquote type="cite"><div style="font-weight: 400; font-style: normal;"><div style="margin: 0px; text-indent: 0px;"><font face="Droid Sans Mono" size="1">If you don't mind me barging in, I think the issue here is mainly one of what is hilighted, and about the use of the red color:</font></div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">- if a package can't be installed on any OCaml version, we all agree that's something that needs fixing</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">- otherwise, if it only installs on some because of dependencies, we could propagate the 'available' constraint, but as Anil points out we might lose information that may have become useful on dependencies update</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">- what actually matters, and was planned from the beginning, but we didn't get to, is actually the _derived function_ of the current table. This is what should be hilighted and reported: if package A could install with version of OCaml X but can't anymore because of some repo change, something went wrong (or we just fixed the repo to reflect reality...)</div></div></blockquote><div><br></div>Agreed. My goal is that it should be possible to make *all* red cells disappear (which is not the case currently), because that's the metrics that people start using when they speak about the quality of opam packages.</div><div><br></div><div>Also I've noticed that packages which are not installable because they are not available on all compilers do not appear in the list. I think they should appear there, as it's usually an error in their metadata (see lablgtk-extras 1.2, 1.3 and 1.4, that I've just fixed).</div><div><br></div><div>Louis, Instead of the derived function, maybe we can apply to all "broken" packages a post-processing step to classify them using the same function as you wrote to reports conflicts / unavailability errors to the user?</div><div><br></div><div>Thomas</div><div><br></div><div><blockquote type="cite"><div style="font-weight: 400; font-style: normal;"><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">These reports are very useful, but yes, you have to know what they are about and how to read them ; and they use package-management terminology that conflicts with end-user or opam terminology at some points.</div><p style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;"> </p><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">Cheers,</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">Louis</div><p style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;"> </p><p style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;"> </p><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">On Tuesday 30 September 2014 17:19:36 Thomas Gazagnaire wrote:</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > In particular, it does not try to solve the difficult issue of finding who is to</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > blame for a particular broken package, that's up to the release manager or the</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > package maintainers: if a package P marked "available" for 3.12 cannot compile</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > because it depends on a package Q that has no version "available" for 3.12,</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > it is broken nonetheless, and it must be reported, because a user may try</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > to install it and see it fail. I do not understand why you want to change</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > this.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> Because the kind of errors reported to the user is very different and the way to fix it is different as well.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> $ opam install async.108.00.02</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> The following dependencies couldn't be met:</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">>   - async -> async_core = 108.00.02 -> core < 109.31.00</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> Your request can't be satisfied:</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">>   - core<109.31.00 is not available because it requires OCaml >= 4.00.1 & < 4.01.0.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> vs.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> $ opam install mirage-www.0.3.0</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> The following dependencies couldn't be met:</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">>   - mirage-www -> cstruct < 0.6.0</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">>   - mirage-www -> mirage-fs >= 0.4.0 -> cstruct >= 0.6.0 | cstruct >= 0.6.0</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> Your request can't be satisfied:</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">>   - Conflicting version constraints for cstruct</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> In the first case, there is nothing to "fix". But to make ows happy we can populate the "available" field of async to get the same message as when trying to install core:</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> $ opam install core.108.00.02</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> [ERROR] core.108.00.02 is not available because it requires OCaml < 4.00.1.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> This will transform the "red" box in ows into an "empty" box: that's good for the stats, but I'm not sure that's better for an user point-of-view.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> In the second case, that's clearly an error if the package that should be fixed (or the package should be removed as there is no valid user configuration where it can be installed). This is a very valuable information which should be high-lighted to the repository (or package) maintainers.</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > I'm sure in front of a blackboard things would be much easier to explain, both</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > ways, and we will certainly find common grounds then, so let's postpone this</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> > discussion to the first occasion we can do that</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> I'm happy to discuss about than in person, although I think that's also good we have that kind of discussion in the open so that other people on that list can follow what's happening and comment if they (don't?) like. But we can maybe organise an opam-devel meeting close to the ocaml consortium meeting (not sure when it is exactly, but can be the same day or the day before/after).</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> Best,</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> Thomas</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> </div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> _______________________________________________</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> opam-devel mailing list</div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> <a href="mailto:opam-devel@lists.ocaml.org">opam-devel@lists.ocaml.org</a></div><div style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;">> <a href="http://lists.ocaml.org/listinfo/opam-devel">http://lists.ocaml.org/listinfo/opam-devel</a></div><p style="font-family: 'Droid Sans Mono'; font-size: 8pt; margin: 0px; text-indent: 0px;"> </p></div></blockquote></div><br><style type="text/css">
p, li { white-space: pre-wrap; }
</style></body></html>