Skip to content

Commit 358bd33

Browse files
committed
add docs for maintenance branches
1 parent 83f3f65 commit 358bd33

File tree

4 files changed

+98
-7
lines changed

4 files changed

+98
-7
lines changed

.github/workflows/label-maker.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ name: Label Maker
44

55
on:
66
push:
7+
branches-ignore:
8+
- release/v*
79
paths:
810
- .github/workflows/label-maker.yml
911
- .github/labels.yml
@@ -12,7 +14,7 @@ on:
1214
jobs:
1315
label-maker:
1416
# Skip running the job from forks.
15-
if: github.repository == 'rackspace/runway' && !endswith(github.actor, '[bot]')
17+
if: github.repository == 'rackspace/runway' && !endswith(github.actor, '[bot]') && github.event
1618
runs-on: ubuntu-latest
1719
steps:
1820
- name: ⤵️ Check out code from GitHub

.github/workflows/spell-check.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
push:
99
branches:
1010
- master
11+
- release/v*
1112

1213
env:
1314
NODE_VERSION: '20'
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
===================
2+
Maintenance Branchs
3+
===================
4+
5+
A maintenance branch is a branch created to publish patches for releases that are no longer being actively developed (e.g. past major releases).
6+
For Runway, the naming format of these branches is ``release/v<major>``.
7+
8+
-------------------------------------------------------------------------------
9+
10+
11+
*****************************
12+
Creating A Maintenance Branch
13+
*****************************
14+
15+
A new maintenance branch should be created prior to beginning work on a new major release.
16+
It is best to create the branch prior to the final planned release (minor or patch) of the outgoing major version.
17+
This enables `release-drafter <https://github.com/release-drafter/release-drafter>`__ to create drafts for future releases.
18+
19+
.. important::
20+
When releasing the final release of the outgoing major version, create the tag on the maintenance branch.
21+
22+
#. Clone the repo locally.
23+
#. Ensure that the default branch (e.g. ``master``) is up to date.
24+
#. Create the new maintenance branch locally.
25+
#. Push the maintenance branch to GitHub.
26+
27+
28+
Enable Documentation For A Maintenance Branch
29+
=============================================
30+
31+
To be completed after the creation of a new maintenance branch.
32+
33+
#. Navigate to the `ReadTheDocs project page <https://app.readthedocs.org/projects/runway/>`__
34+
#. Click **Add version**.
35+
#. Input the name of the maintenance branch, activate it, and click **Update version**.
36+
37+
38+
-------------------------------------------------------------------------------
39+
40+
41+
*****************************
42+
Patching A Maintenance Branch
43+
*****************************
44+
45+
#. Clone the repo locally.
46+
#. Checkout the maintenance branch and ensure it is up to date.
47+
#. Create a new branch for the patch, make the required changes, commit the changes, and push to GitHub.
48+
#. Open a new PR ensuring the **change the base branch** to the desired maintenance branch.
49+
#. Merge the PR once all requirements are met.
50+
#. Refer to the :ref:`maintainers/release_process:Maintenance Branch` release process.
51+
52+
53+
-------------------------------------------------------------------------------
54+
55+
56+
******************************
57+
Maintenance Branch End Of Life
58+
******************************
59+
60+
TBD

docs/source/maintainers/release_process.rst

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@ Release Process
66

77
Steps that should be taken when preparing for and executing a release.
88

9+
**************
10+
Default Branch
11+
**************
912

13+
Releases from the branch being actively developed (e.g. ``master``).
1014

11-
***********
1215
Preparation
13-
***********
16+
===========
1417

1518
#. Merge all PRs that should be included in the release.
1619
#. Ensure that all checks have completed and passed on the *master* branch.
1720

18-
19-
*********
2021
Execution
21-
*********
22+
=========
2223

2324
#. Navigate to the Releases_ section of the repository on GitHub.
2425
There should be a *Draft* already started that was automatically generated from PRs that were merged since the last release.
2526
#. Enter the *Edit* screen of the *Draft*.
26-
2727
#. The *Title* and *Tag* fields should already be filled in with the correct values (e.g. ``v<major>.<minor>.<patch>``).
2828
Ensure these values match what is expected.
2929
The *Tag* should also be targeting the *master* branch.
@@ -34,3 +34,31 @@ Execution
3434

3535
At this point, GitHub Actions will begin building the deployment package & automatically publishing it to PyPI.
3636
The **Publish Release** workflow can be monitored for progress.
37+
38+
39+
-------------------------------------------------------------------------------
40+
41+
42+
******************
43+
Maintenance Branch
44+
******************
45+
46+
Release from a branch created to patch previous major releases (e.g. ``release/v2``) until they reach end of life.
47+
48+
Prepararing A Maintenance Release
49+
=================================
50+
51+
#. Merge all PRs based on and targeting the maintenance branch that should be included in the release.
52+
#. Ensure that all checks have completed and passed on the maintenance branch.
53+
54+
Executing A Maintenance Release
55+
===============================
56+
57+
#. Navigate to the Releases_ section of the repository on GitHub.
58+
There should be a *Draft* already started that was automatically generated from PRs that were merged since the last release from the maintenance branch.
59+
#. Enter the *Edit* screen of the *Draft*.
60+
#. The *Title* and *Tag* fields should already be filled in with the correct values (e.g. ``v<major>.<minor>.<patch>``).
61+
Ensure these values match what is expected.
62+
The *Tag* should also be targeting the *master* branch.
63+
#. Edit the description of the release as needed but, there should be little to no changes required if all PRs were properly labeled.
64+
#. Publish the release.

0 commit comments

Comments
 (0)