Merlin maintains multiple branches for multiple versions of the compiler. The current active support branches are:
master
with support for OCaml 5.2501
with support for OCaml 5.1414
with support for OCaml 4.14
Development happens on the master
branch and bug fixes that should be
backported to other supported branches should be added to the appropriate
project.
Major changes were specific to OCaml 5.2 so the subsequent releases have a major
version number at 5
(like v5.0-502
) while support releases will stay with
the version number 4
(like v4.15-414
or v4.15-501
).
- A PR is opened with the updated changelog for each released branch. The changelog should contain an appropriate timestamp for the release.
- Additionally, for each non-master released version, the PR also contains the required backports.
We use dune-release
to release Merlin.
For each released branch:
- Merge the corresponding PR.
- Run
dune-release tag v4.15-414
. The tag should always formed in the same way:For example:"v%s-%s" merlin_version ocaml_version
v4.14-414
,v5.0-502
etc. - Run
dune-release
and follow the instructions, but sayNo
when asked if a PR should be created on opam's repository. - For multiple releases it is best to group all the releases in a single opam PR. Additionally it is often not necessary to release the
dot-merlin-package
. - Cherry-pick the commits from every branch created by
dune-release
, make the necessary changes (like removing thedot-merlin-reader
packages) and open the PR on opam.