diff --git a/source/_images/release-helper-changelog-contributor-list.png b/source/_images/release-helper-changelog-contributor-list.png new file mode 100644 index 0000000..7d61d38 Binary files /dev/null and b/source/_images/release-helper-changelog-contributor-list.png differ diff --git a/source/_images/release-helper-changelog-unreleased-commits.png b/source/_images/release-helper-changelog-unreleased-commits.png new file mode 100644 index 0000000..e922480 Binary files /dev/null and b/source/_images/release-helper-changelog-unreleased-commits.png differ diff --git a/source/core-devs/release-process.rst b/source/core-devs/release-process.rst index f2707ba..400efef 100644 --- a/source/core-devs/release-process.rst +++ b/source/core-devs/release-process.rst @@ -37,8 +37,26 @@ Types of releases Making a release ---------------- +As much as possible, the release steps are automated and guided by the **Release Helper** script, +which is shipped with the repository at ``tools/release_helper.py``. + +To use the script, you will need to install the `GitHub CLI `__ +and authenticate with your GitHub account using the ``gh auth login`` command. + +The script can be started simply by running: + +.. prompt:: + + .venv/bin/python tools/release_helper.py + +which will ask you about the release type you want to make and then guide you through the process. + #. Ensure there are no release blockers. + .. note:: + + These will be listed to you by the **Release Helper**. + .. tab:: Hotfix release You can *generally* skip this. Might still be worth checking @@ -51,6 +69,10 @@ Making a release #. Check state of all open pull requests for this milestone. + .. note:: + + These will be listed to you by the **Release Helper**. + .. tab:: Hotfix release This is a hotfix release, you should focus on getting the critical fix out, @@ -62,6 +84,7 @@ Making a release Decide which should be kept for the release, cooperate with another org member(s) on this. Move any pull requests not targeted for release to a new milestone with name of the release that should come after current one. + These will be listed to you by the **Release Helper**. #. Review changelog PR. @@ -69,8 +92,11 @@ Making a release At this point, you should have an up-to-date milestone containing all PRs that are contained in this release. If you're not sure if all PRs are properly assigned, - you might find the ``=getunreleasedcommits MILESTONE_NAME`` bot command - in one of testing channels on Red server useful. + you might find **Release Helper**'s "Show unreleased commits without a milestone" command + helpful: + + .. figure:: /_images/release-helper-changelog-unreleased-commits.png + :target: /_images/release-helper-changelog-unreleased-commits.png The changelog PR should always be merged into ``V3/develop``. You should remember to later cherry-pick/backport it to a proper branch if you're not making a release from ``V3/develop``. @@ -86,12 +112,21 @@ Making a release - Add (or ask PR author to add) any missing entries based on the release's milestone. - Update the contributors list in the changelog using contributors list for the milestone - that you can generate using ``=getcontributors MILESTONE_NAME`` bot command - in one of testing channels on Red server. + that you can generate using **Release Helper**'s "Get contributor list formatted for the changelog" + command: + + .. figure:: /_images/release-helper-changelog-contributor-list.png + :target: /_images/release-helper-changelog-contributor-list.png + - Merge the PR once it's ready. #. Run "Prepare Release" workflow. + .. note:: + + This can be triggered automatically with the **Release Helper**. + The below steps are an alternative way that doesn't require the use of that tool. + Go to https://github.com/Cog-Creators/Red-DiscordBot/actions/workflows/prepare_release.yml .. tip:: @@ -112,10 +147,19 @@ Making a release #. Merge the automatically created PRs. + .. note:: + + These will be listed to you by the **Release Helper**. + Wait for "Prepare Release" workflow to finish and merge the PRs that it created. #. Create a short-lived release branch. + .. note:: + + This is a manual step - the **Release Helper** will pause at this step + for you to perform the necessary actions. + .. tab:: Hotfix release .. note:: @@ -171,6 +215,10 @@ Making a release #. Write (not send!) an announcement for the new release. + .. note:: + + This and the following steps are not performed by the **Release Helper**. + This is the announcement that you will later `post to Discord `. Remember to: @@ -196,7 +244,7 @@ Making a release Full changelogs here: -#. Make a new release through `GitHub Releases `. +#. Make a new release through `GitHub Releases `__. .. attention::