<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">Le mer. 29 juin 2016 à 19:14, Simon Cruanes <<a href="mailto:simon.cruanes.2007@m4x.org">simon.cruanes.2007@m4x.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le Wed, 29 Jun 2016, Gabriel Scherer a écrit :<br>
> I'm a bit frustrated with the time it takes for the OCaml ecosystem to<br>
> catch up with the 4.03 release -- which has been released two months ago<br>
> now, on April 25.<br>
><br>
> ...<br>
><br>
> Do you agree that this is a problem? What could we do to fix that?<br>
<br>
I agree, I wanted to update my packages after the release and had to<br>
wait for oasis to work on 4.03; some other dependencies of projects of<br>
mine also took some time. Even now, I just stumbled upon Coq 8.5 not<br>
compiling, so I'd say the problem is real.<br></blockquote><div><br></div><div>Just to be fair to the OASIS release cycle:</div><div>- OCaml 4.03 was released 2016-04-26</div><div>- OASIS 0.4.6 for OCaml 4.03 was released 2016-04-29</div><div><br></div><div>This is only 3 days and this was mainly due to a transitive dependency on Batteries for the tests. Considering OSS standards, this is not a long time for a fix.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
><br>
> When I started writing this email I intended to send it to Damien Doligez,<br>
> as the release manager of the compiler distribution, with the following<br>
> suggestion: maybe we could have a *much longer* beta-testing period for<br>
> OCaml versions that would be used not (only) for finding bugs in the new<br>
> version, but also to let important pieces of the ecosystem update to the<br>
> new version. Say, at least a month. We could have a fixed set of software<br>
> that we monitor, or in fact all of what's in OPAM, and delay the release<br>
> until they get updated/fixed or their OPAM version bounds get fixed. (Aha,<br>
> a Platform indeed!)<br>
<br>
As usual, the issue is: what set of packages is monitored, and who<br>
chooses?<br>
<br>
> Does that sound like a reasonable idea to you? Should we monitor all OPAM,<br>
> or only a subset?<br>
<br>
I think OWS should be used to see which packages are broken on the new<br>
release, indeed. I would propose the following workflow:<br>
<br>
- the beta-testing period, feature-frozen, starts (for some time)<br>
- shortly, maintainers whose package doesn't compile (we know thanks to<br>
OWS) are emailed to be informed of the problem<br>
- if, at the end of the beta-testing period (just before the release) a<br>
package that used to build on the previous release, but does not build<br>
anymore, is modified by opam-repo maintainers so it gets an upper<br>
bound on the OCaml version.<br>
<br>
This means that, if no action is taken, a<br>
package that does not build on 4.04 would have "ocaml-version < 4.04".<br>
New releases of this package, that hopefully fix the build on 4.04,<br>
would lift this barrier. It would also prevent opam from falling back<br>
to old, incompatible versions of a package in case of conflict with<br>
some other library.<br>
<br>
New packages are checked for build on most versions of OCaml; I think<br>
old packages should also be checked for compatibility with newer<br>
versions of OCaml so that the appropriate bound check is added. I don't<br>
add those bounds myself on my own packages (too tedious to do it on 15<br>
old releases), so it should probably be automated.<br>
<br>
Cheers!<br>
<br>
--<br>
Simon Cruanes<br>
<br>
<a href="http://weusepgp.info/" rel="noreferrer" target="_blank">http://weusepgp.info/</a><br>
key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3 7D8D 4AC0 1D08 49AA 62B6<br>
_______________________________________________<br>
Platform mailing list<br>
<a href="mailto:Platform@lists.ocaml.org" target="_blank">Platform@lists.ocaml.org</a><br>
<a href="http://lists.ocaml.org/listinfo/platform" rel="noreferrer" target="_blank">http://lists.ocaml.org/listinfo/platform</a><br>
</blockquote></div></div>