OCaml's release process?

I just upgraded to OCaml 4.07.0 and I’m surprised that I’m unable to install utop. Shouldn’t the release process ensure that “core packages” are working with the latest release?

utop is not a “core package”, however, the new version is coming: https://github.com/ocaml/opam-repository/pull/12353.
The “standard” toplevel system can be run by “ocaml” command.

I think it probably would be a good idea to make sure that the most popular packages are updated in opam in the weeks before a release even if they’re not “core” per se. The question is, how to accomplish this?

Yeah, it would be great if we can have a “checklist” for when a new OCaml release or library is “ready for wide use”, even if OCaml releases are not changed at all, we can do that in ocamlverse?

I can bring some criteria from the top of my head.

  • utop works (or works in utop, including printers). Example for a library - Zarith is “half there”, as you need to explicitly include the printer.

  • Merlin works. Example - ELIOM is not there yet

  • Dune works - again, ELIOM is not there yet.

1 Like

Anyone from the community is welcome to help to update the packages, etc. – not just the maintainers of the respective packages. A beta version for 4.07.0 was announced on April 13th, and a release candidate on June 19th, for a release on July 10th. There was some time to check the packages that you care about before the release, and maybe lend a hand in upgrading them. And you can still do it now!

The core team that takes care of the release process usually checks for breakage on opam (this corresponds to package that are marked to be compatible with the upcoming release but fail; packages that have a lower version bound are not tested). But with most people working on a volunteer basis, it is hard to expect much more, in particular now that we are aiming for time-based releases – so when it is time to release and when we have made a decision on all known bugs, well, the release gets out.

2 Likes

Of course, nobody is talking about requiring anything. Just a way to be able to have a better overview on what’s going on. It will even be a source of ideas on people wanting to work on things (if they don’t know what to work on).

BTW, do we have any such statistics we can watch for opam? Maybe it would be a great idea if we can watch install success/fail of packages by OCaml release. Thus we can easily spot packages that many people use but fail for some release.

You can check these things with opam-ci.

And there’s also http://check.ocamllabs.io/

1 Like