From fb71f368596879eb1664c5c2ac04c0613f425a0f Mon Sep 17 00:00:00 2001 From: Riccardo Schirone <562321+ret2libc@users.noreply.github.com> Date: Fri, 10 Mar 2023 09:39:55 +0100 Subject: [PATCH] doc: add release issue template (#3386) --- .github/workflows/ci.yml | 1 - doc/RELEASE.md | 19 +------------------ doc/release-template.md | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 19 deletions(-) create mode 100644 doc/release-template.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd08a7bcd3..88474683c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,6 @@ jobs: - '.github/workflows/ci.yml' - 'test/**' - # TODO: build rz-bindings build-and-test: needs: changes name: ${{ matrix.name }} diff --git a/doc/RELEASE.md b/doc/RELEASE.md index 1f12613c9d..947f9f837c 100644 --- a/doc/RELEASE.md +++ b/doc/RELEASE.md @@ -1,4 +1,4 @@ -Release process +Release notes =============== All releases happen from the `stable` branch, while the `dev` branch is used for @@ -26,29 +26,12 @@ cherry-picked to `stable`. This release is used for smaller patches that do not break the API/ABI. -# Increment the version number -Increment the version number in `meson.build` in add a new commit for it in the -`stable` branch. - # Submit PR Submit a new PR of your `stable` branch against `origin/stable`. If you have push access to `origin`, you should create another branch with a different name and submit anyway a PR for others to review. -# Test that everything worked well - -# Tag related projects and use them -- Pin to a release tag of rz-pipe in `Dockerfile` -- Pin to a release tag of rz-ghidra in `Dockerfile` -- Add new commit for these in the `stable` branch - # Prepare release notes Write useful release notes for the new release. They should not be too detailed but not even too high level. Finding the right balanace is hard. When done, attach them to the draft release in the GitHub UI. - -# Release -Test again that everything is generated correctly, things seem to be working -well and then confirm the draft release in the GitHub UI. - -# Share & Enjoy diff --git a/doc/release-template.md b/doc/release-template.md new file mode 100644 index 0000000000..c22b07056a --- /dev/null +++ b/doc/release-template.md @@ -0,0 +1,33 @@ +# Release checklist template + +For each new Rizin release create a new issue on GitHub with this file as its +content. Go step-by-step through it. + +- [ ] Update `stable` branch in the proper way + - [ ] Merge `dev` branch into `stable` branch (for major updates). See https://github.com/rizinorg/rizin/blob/dev/doc/RELEASE.md#majorminor-release. + - [ ] Cherry-pick relevant commits from `dev` branch into `stable` branch (for patch updates or once `stable` and `dev` have already diverged considerably). See https://github.com/rizinorg/rizin/blob/dev/doc/RELEASE.md#patch-release. + - [ ] Update `version` field in [`meson.build`](https://github.com/rizinorg/rizin/blob/dev/meson.build) file. +- [ ] Submit a PR of `stable` branch against `origin/stable`. If you have push access to origin, you should create another branch with a different name and submit anyway a PR for others to review. +- [ ] Ensure that CI on `stable` branch is all green. If not, fix issues and iterate previous steps as necessary. +- [ ] Merge PR so that `origin/stable` is updated with the new content. +- [ ] Manually test that things work well, in particular major changes in the new release. +- [ ] Start preparing release notes by modifying the draft release automatically created by GitHub CI. +- [ ] Check that [Cutter](https://github.com/rizinorg/cutter) works well with the new version of Rizin. If not, fix as necessary and go back to previous steps until everything is ready. Cutter and Rizin should be released at the same time, so both should be in a good state with major issues solved. + - [ ] Cutter can be compiled with new version of Rizin. + - [ ] Basic Cutter functions work well with new version of Rizin. + - [ ] Cutter is in good shape to be released. +- [ ] Check that [rz-ghidra](https://github.com/rizinorg/rz-ghidra) works well with the new version of Rizin. If not, fix as necessary and go back to previous steps until everything is ready. +- [ ] Check that [jsdec](https://github.com/rizinorg/jsdec) works well with the new version of Rizin. If not, fix as necessary and go back to previous steps until everything is ready. +- [ ] Check that [rz-retdec](https://github.com/rizinorg/rz-retdec) works well with the new version of Rizin. If not, fix as necessary and go back to previous steps until everything is ready. +- [ ] Check that [rizin-extras](https://github.com/rizinorg/rizin-extras/) and rz-keystone in particular works well with the new version of Rizin. If not, fix as necessary and go back to previous steps until everything is ready. +- [ ] Check that core plugins in [rz-pm-db](https://github.com/rizinorg/rz-pm-db) can be installed correctly with the new version of Rizin. If not, fix as necessary and go back to previous steps until everything is ready. +- [ ] Replace `RZ_PIPE_PY_VERSION` and `RZ_GHIDRA_VERSION` in [`Dockerfile`](https://github.com/rizinorg/rizin/blob/dev/Dockerfile) with the right commits from those repositories. Merge the commit with the Rizin changes in the `stable` branch. +- [ ] Quick test again that Rizin and Cutter work together. +- [ ] Finalize release notes. +- [ ] Release Rizin and Cutter by making their release public on GitHub. +- [ ] Tag rz-pipe for the new version. +- [ ] Tag [rz-bindgen](https://github.com/rizinorg/rz-bindgen) for the new version. +- [ ] Tag rz-ghidra for the new version. +- [ ] Tag rz-keystone/rizin-extras for the new version. +- [ ] Tag jsdec for the new version. +- [ ] Tag rz-retdec for the new version.