Skip to content

Release checklist

Simon Fowler edited this page Jan 23, 2018 · 24 revisions

NOTE: Since the move to jbuilder/Dune, the release checklist has changed. New one below!

First-time setup

Fork and clone https://github.com/ocaml/opam-repository one directory above the Links repository. So for example, if you have Links checked out at /home/simon/links, you should also have /home/simon/opam-repository.

Release Pipeline

The new release pipeline uses topkg. Everything should be set up such that you can just do the following release pipeline:

From your links fork:

  1. Do the Pre-release sanity checking
  2. Update CHANGES.md with the new version. Please follow the existing format exactly.
  3. topkg tag, which will extract the version number out of CHANGES.md and create a new tag
  4. topkg distrib, which will build the archive
  5. topkg publish distrib, which will push the release to GitHub
  6. cd to ../opam-repository, run git checkout -b links-release-VERSION, replacing VERSION with the version you're releasing, then cd back to links
  7. make opam-pkg, which will create opam packages and copy them to your repository
  8. cd to ../opam-repository, git commit and git push
  9. Create a pull request to opam-repository on GitHub with your new branch, and hope for the best with the CI
  10. Bump version number in basicsettings.ml (REPL header)
  11. Celebrate!

Troubleshooting

(Please update this with any issues you find. Thanks!)

warning 41: Some packages are mentionned in package scripts of features, but there is no dependency or depopt toward them: "links"

No idea how to fix this; it seems benign anyway, so safe to ignore unless the opam maintainers want it fixed.

Stack overflow during publish stage

For some reason, odoc doesn't like our codebase at the moment. My guess is the outdated preprocessing stuff. In any case, at the moment ensure you're running topkg publish distrib instead of just topkg publish.

"No package delegate found"

Ensure that the homepage field is set to a GitHub URL.

Some other error

Take a deep breath, have a stiff drink, and prepare for an adventure.