Experimenting with a new opam repository release strategy for large libraries

An update on this release strategy. The major release of Core v0.12.0 and friends is in the final stages of being merged into opam-repository. This should have no effect on packages already in opam, since they have all been modified with upper bounds that prevents them from selecting the new versions.

However, you may notice breakage in your CI scripts for development releases of your code, since they may not have the upper bounds on the relevant packages. In this case, you are encouraged to adapt to the new interfaces (so we can start using the shiny new libraries), or establish an upper bound if the time is not right for you to migrate yet.

Once #13452 is merged, we will begin part-3 in my original post here and start relaxing the upper bounds. Many thanks to @xclerc who did the hard work of iterating on the Core release to satisfy all the myriad of opam-repo distros :slight_smile:

3 Likes

Let’s hope that step 3 is automatic and only removes upper bounds automatically introduced by step 1.
Or, we will soon have many packages becoming version-locked.

The upper-bounds have been relaxed yesterday in PR#13716. All the remaining packages that were failing with v0.12, and thus still have the upper-bounds, are listed below (taken from: PR#13716#b4346ae)

async_graphics.0.6.0
biocaml.0.9.0
bistro.0.4.0
bun.0.3.1
bun.0.3
cohttp-async.1.0.2
cohttp-async.1.1.1
cohttp-async.1.2.0
cohttp-async.2.0.0
gpr.1.2.1
jerboa.0.1
ocamlformat.0.2
ocamlformat.0.3
ocamlformat.0.4
ocamlformat.0.5
ocamlformat.0.6
ocamlformat.0.7
ocamlformat.0.8
plotkicadsch.0.4.0
primes.1.3.3
range.0.5
satyrographos.0.0.1.4
satyrographos.0.0.1.5
spatial_index.0.0.1
spatial_index.0.0.2
travesty.0.1.2
travesty.0.1.3
travesty.0.2.0

The process used opam-check-all to test and make a diff of before and after the PR.

4 Likes