Skip to content

Release checklist

Frank Emrich edited this page Nov 16, 2023 · 24 revisions

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

Prerequisites

Things to note

At the time of writing our repository contains five packages: links, links-mysql links-sqlite3, and links-postgresql. The other four packages must be released simultaneously.

Release Pipeline

The bundling and publishing of packages targeted for release are automated. If you want to understand the automated steps, or want to produce the steps by hand, then you can inspect the rule opam-release in the file Makefile to learn the exact sequence of commands.

  1. Go to the root of the Links repository.
  2. Update CHANGES.md with the new version. Please follow the existing format exactly.
  3. Type make opam-release to start the interactive release process. The following is a brief guide for Links maintainers to achieve full marks on the release quiz.
  • [?] Create git tag X.Y.Z for HEAD? [Y/n] answer Y.
  • [?] Push tag X.Y.Z to git@github.com:links-lang/links.git? [Y/n] answer Y.
  • [?] Create release X.Y.Z on git@github.com:links-lang/links.git? [Y/n] answer Y.
  • [?] Upload _build/links-X.Y.Z.tbz as release asset? [Y/n] answer Y.
  • Now the interactive process might ask you for your GitHub details
       What is your GitHub ID?
       [press ENTER to use 'links-lang']
    
    It is important that you use YOUR OWN GitHub account name, so type that in and press enter. Next it may ask you to specify your fork of opam-repository
       What is your fork of ocaml/opam-repository? (you should have write access).
       [press ENTER to use 'git@github.com:YOUR_GITHUB_ACCOUNT/opam-repository']
    
    Chances are that the default guess is correct. Next it might ask you to specify the location of your local clone of the fork.
       Where on your filesystem did you clone that repository?
       [press ENTER to use '/home/$USER/git/opam-repository']
    
    Chances are that the default guess is incorrect, if so, type in the path to your local clone.
  • [?] Open PR to ocaml/opam-repository? [Y/n] answer Y.
  1. Wait for your pull request to get merged.
  2. Announce the new release on links-users and links-dev.
  3. Bump version number in basicsettings.ml (REPL header)
  4. Bump the advertised version number on the website (https://github.com/links-lang/links-lang.github.io)
  5. Celebrate!

Troubleshooting

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

warning 41: Some packages are mentioned 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 dune-release publish distrib instead of just dune-release 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.