From f85f6b5ffff6a7b1f40c2e2edf508657ef65538d Mon Sep 17 00:00:00 2001 From: Richard Bowman Date: Thu, 6 Aug 2026 12:13:18 +0100 Subject: [PATCH 1/2] Release and merge checklists. --- .github/ISSUE_TEMPLATE/release_checklist.md | 35 ++++++++++++++++ .../pull_request_template.md | 41 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/release_checklist.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE/release_checklist.md b/.github/ISSUE_TEMPLATE/release_checklist.md new file mode 100644 index 00000000..326d3e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/release_checklist.md @@ -0,0 +1,35 @@ +--- +name: Release checklist +about: Ensure the project is ready to make a release. +title: Release Checklist v?.?.? +labels: '' +assignees: '' + +--- + +*This release checklist is intended to help keep to a consistent process for minor version releases.* +*The same process may be used for point releases, though usually with compressed timescales.* + +*Minor version releases will generally be made from the `main` branch.* +*Bugfix releases may be made either from `main` or from a protected `v0.x` branch depending on whether there are significant changes already merged onto `main`.* + +**Start of cycle** +- [ ] Create a milestone for the release. +- Add issues and pull requests to the release. + +**Development** +- Open pull requests to close issues, prioritising those tagged for the next release. +- Periodically review priorities, usually with a subset of the OpenFlexure team. + +**Release preparation** +- [ ] Decide on issues and PRs that will be included, adjusting milestones as necessary. +- [ ] Make a prerelease on PyPI for testing. + +**Manual testing** +- [ ] Ensure the prerelease is tested against a real system (currently this will be an OpenFlexure Microscope). +- [ ] Open issues and PRs to fix any bugs that are found. + +**Release** +- [ ] Bump the version number. +- [ ] Make a release on Github, including a changelog in the release notes. +- [ ] Verify that the release appears on PyPI and add a link to the Github release. diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 00000000..e8ffe4c4 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,41 @@ +--- +name: Pull request +about: Proposed changes to the software. +title: '' +labels: '' +assignees: '' +--- + +**REPLACE ME** with a short summary of the context for this merge request. + + + + + +## This MR contains the following +* Bulleted +* Description of changes + + + + +## Merge checklist: + + + +* [ ] All new/changed functions have up to date typehints and docstrings. +* [ ] Any changes to the public API have been updated in `docs/src/public_api.rst`. +* [ ] New or changed features have been added to (or updated in) the conceptual documentation. +* [ ] New functionality is fully tested. +* [ ] Any decrease in test coverage has been justified. +* [ ] Either the `test-against-ofm-v3` job passes, or `test-against-ofm-feature-branch` passes. +* [ ] New features have been used in a branch of the OpenFlexure Microscope, which is tested in `test-against-ofm-feature-branch`. + +* [ ] This code has been tested manually against simulated hardware (detail tests in "Before merge"). +* [ ] This code has been tested against real hardware (detail tests in "Before merge"). + From 2871f407f16de2c73b47d038a44f0b8ace81a288 Mon Sep 17 00:00:00 2001 From: Richard Bowman Date: Wed, 19 Aug 2026 13:17:37 +0100 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Beth <167304066+bprobert97@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/release_checklist.md | 16 ++++++++++++---- .../pull_request_template.md | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release_checklist.md b/.github/ISSUE_TEMPLATE/release_checklist.md index 326d3e0c..6b35044e 100644 --- a/.github/ISSUE_TEMPLATE/release_checklist.md +++ b/.github/ISSUE_TEMPLATE/release_checklist.md @@ -25,11 +25,19 @@ assignees: '' - [ ] Decide on issues and PRs that will be included, adjusting milestones as necessary. - [ ] Make a prerelease on PyPI for testing. -**Manual testing** -- [ ] Ensure the prerelease is tested against a real system (currently this will be an OpenFlexure Microscope). -- [ ] Open issues and PRs to fix any bugs that are found. +**Testing** +- [ ] Check that all formatting, linting, unit, and integration tests are passing on CI +- [ ] Verify core functionality against a real system: + - [ ] Run a large ( > 200 images) slide scan on an OpenFlexure Microscope + - [ ] Verify the UI on the OpenFlexure Microscope works as expected + - [ ] Report any relevant bugs as an Issue in the [OpenFlexure Microscope Server Repository](https://gitlab.com/openflexure/openflexure-microscope-server) +- [ ] Open issues and PRs in the labthings-fastapi to fix any bugs that are found in the labthings software. **Release** -- [ ] Bump the version number. +- [ ] Bump the version number in `pyproject.toml` - [ ] Make a release on Github, including a changelog in the release notes. - [ ] Verify that the release appears on PyPI and add a link to the Github release. + +**Post-Release** +- [ ] Announce the new release on relevant channels, including telling the OpenFlexure Core Team and other other downstream project teams. +- [ ] Close this issue and the corresponding GitHub Milestone. diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md index e8ffe4c4..c4b23f0d 100644 --- a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -31,6 +31,7 @@ assignees: '' * [ ] All new/changed functions have up to date typehints and docstrings. * [ ] Any changes to the public API have been updated in `docs/src/public_api.rst`. * [ ] New or changed features have been added to (or updated in) the conceptual documentation. +* [ ] Any new or updated dependencies have been added to the project configuration (e.g., `pyproject.toml`). * [ ] New functionality is fully tested. * [ ] Any decrease in test coverage has been justified. * [ ] Either the `test-against-ofm-v3` job passes, or `test-against-ofm-feature-branch` passes.