Merlin maintains multiple branches for multiple versions of the compiler. The current active support branches are:
masterwith support for OCaml 5.2501with support for OCaml 5.1414with 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_versionv4.14-414,v5.0-502etc. - Run
dune-releaseand follow the instructions, but sayNowhen 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-readerpackages) and open the PR on opam.