Commit d8a85195 authored by Julian Stirling's avatar Julian Stirling 🐧
Browse files

Merge branch 'issue-templates' into 'master'

Make release checklist

See merge request !526
parents 51599215 a0eba84a
Loading
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
## Release Checklist: vX.Y.Z

This checklist tracks the process for releasing version **vX.Y.Z** of the OpenFlexure Microscope.

---

### Branching Strategy

The current branching strategy is for **beta development and release of v7**.

* The **default branch** is called `master`.
* **Feature branches** are made from `master` and merged back into `master`.
* We **do not** make a new release branch.
* We **still tag each release** and post it on the forum.
* We **do not rename** the `master` branch or create additional long-lived branches for releases.

---

### Preparation: T-8 weeks

* [ ] **Prepare:** Create the `vX.Y.Z`/`vX.Y.Z-(alpha|beta|rc)A` milestone in the Microscope GitLab repository, and create an issue with this template
* [ ] **Define Scope:**  Tag all intended Issues and feature MRs with it. This is often done in a planning meeting with the core team
* [ ] **Communicate** Discuss with vendors via Open Science Shop the content and timeline of the release, particularly for any major structural changes

### Final preparation

* [ ] **Communicate** Communicate to vendors via Open Science Shop the content and timeline of the release
* [ ] For changes of the release type (alpha to beta to rc to full version) or other significant changes, prepare a MR on the `openflexure.org` repository to adjust the web page wording to reflect the new version type in the microscope build page(s)

### Release

* [ ] Run `generate_changelog.py`
* [ ] Tag, release, etc
* [ ] Check that the MR for any website wording changes in the `openflexure.org` repository is approved and ready to merge after successful release

*The next section is best done on a video call with at least one other team member to ensure better understanding across the core team.*

* [ ] Run `generate_changelog.py`
* [ ] Go to *Releases* page on GitLab and select New Release
* [ ] Create a new Tag Name in the format `vX.Y.Z` or `vX.Y.Z-(alpha|beta)A`
* [ ] **Important!** Enter a simple description into the `create tag` dialog, or GitLab only creates a lightweight tag. `Release for vX.Y.Z-(alpha|beta)A` is minimal and can be used. Check it is targeted at the correct branch, and save the tag.
* [ ] Copy in the relevant section from the `CHANGELOG`
* [ ] Enter the URL to the where the documentation will sit on the build server under the title "Docs".
* [ ] Create the release (This will create the tag)


### Immediate post release checks and communication

* [ ] Check that the built instructions exist on the build server
* [ ] Check that the correct version number is embossed on the `main_body.stl` and `main_body_manual.stl`
* [ ] Merge the MR for any website wording changes into the openflexure.org repository
* [ ] Someone with SSH access to the build server should run `./update-latest.py` from within the served directory, then check that `https://build.openflexure.org/openflexure-microscope/latest` points to the new release.
* [ ] Inform vendors / Open Science Shop that the release has been made 

### Wrapup post release

* [ ] **Communicate:** Publish the release announcement on the OpenFlexure forum.
* [ ] **Announce:** Share the forum post on other relevant channels (e.g., LinkedIn, Emailing Collaborators).
* [ ] **Close:** Close this issue and the corresponding GitLab Milestone.
* [ ] **Celebrate!**