Skip to content

Release ‐ Guide

Jeremy Asuncion edited this page Sep 13, 2023 · 1 revision

This documents the steps for creating a new release for the napari hub.

1. Compile a change list of features

Release notes can be generated using the release notes workflow. The workflow is automatically run whenever there is a push to main so that the upcoming release notes is always updated with PRs pending release. Because of this, you usually do not need to run the workflow manually. However, if you need to regenerate the release notes for any reason (example: PR label has changed), it's still possible to do so by:

  1. Open the release notes workflow
  2. Click Run Workflow
  3. After the tooltip opens, make sure main is selected and click on Run Workflow
  4. Draft release notes will be created here: https://github.com/chanzuckerberg/napari-hub/releases

If you find any of the PRs are uncategorized, you can categorize them by adding release note labels to each PR and following the steps above to regenerate the release notes.

2. Pre-Deployment smoke test

Make sure there's no objection with the release and that people have reviewed the staging site https://staging.napari-hub.org.

3. Draft a release

Draft a new release here. The tag version and release title should be the same, and the version should follow semver. The description should be the change list.

When everything looks good, click on Publish to publish the release! 🎉 🎉

4. Post-Deployment smoke test

Wait for the GitHub action deployment to complete. Once it's done, review the production site at https://napari-hub.org and verify things are working.

Cherry picking fixes to production

Sometimes we'll need to create a release outside of the normal production release schedule so that we can cherry pick urgent fixes. This is a more manual process that'll need to be handled with the git CLI.

After the fix PR has been merged, grab the commit hash and run the following commands:

# Checkout the latest release with the bug
git checkout <release>

# Checkout branch with new name
git checkout -b <temporary branch name>

# Cherry pick fix PR into the branch
git cherry-pick <commit hash>

# Push branch to repo
git push origin main

After the branch has been pushed, create a new release and select the branch you created:

image

You'll also need to manually fill in the release description since GitHub won't be able to generate the release notes since it's not targeting main.

When ready, publish the release and it should be deployed to production soon after! After the release has been published, you can delete the branch from the repo:

git branch -D <temporary branch name>
git push origin --delete <temporary branch name>