Release procedure

Prerequisites

  1. Create an account on Hackage.
  2. Ask one of the package maintainers to make you a new package maintainer.

In the repository

  1. Choose a new release version <version>. The <version> must conform to SemVer.
  2. Draft a new release.
  3. Create a new tag v<version>.
  4. Click Generate release notes.
  5. Create an issue named Release v<version> (example).
  6. List there in the ## Subtasks section what needs to be done for the release.
  7. On the issue page, find Development and click Create a branch ....
  8. Checkout this branch locally using git.
  9. Open CHANGELOG.md
  10. Add a new section at the top of the file before sections for previous versions.
  11. In the section title, specify the version (v<version>) and the release date.
  12. Copy the generated release notes from the release draft into that section.
  13. Format the notes similar to the sections that go below this one.
  14. Commit the changes with a message feat(changelog): add notes for v<version> (replace <version> with the actual version).
  15. In eo-phi-normalizer/package.yaml and eo-phi-normalizer/eo-phi-normalizer.cabal, update the version.
  16. Commit the changes with a message chore(eo-phi-normalizer): bump version <previous-version> <version> (replace the <previous-version> and <version> with the actual versions).
  17. Push changes.
  18. Wait until CI succeeds (see Actions).
  19. Merge changes into master.
  20. Wait until CI succeeds (see Actions).
  21. Return to the page where you drafted the release.
  22. Copy the text from the section about the v<version> in CHANGELOG.md into the release description.
  23. Select Set as the latest release.
  24. Click Publish release.

On Hackage

  1. If the release was successful, go to the package page.
  2. Find there Candidates.
  3. Click on the relevant release candidate.
  4. Publish it.