Skip to content

Commit 4771f7f

Browse files
Update release process based on latest changes
1 parent d6319f8 commit 4771f7f

File tree

1 file changed

+25
-27
lines changed

1 file changed

+25
-27
lines changed

docs/release-process.md

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,17 @@
11
# Release process
22
This diagram below represents the release process for MetaMask Extension and MetaMask Mobile clients.
33

4-
Note:
5-
- The `stable` branch is currently called `master` on Extension repo, but it will be renamed soon.
6-
- The `release/x.y.z` branches are currently called `Version-vx.y.z` on Extension repo, but they will be renamed soon.
7-
84
```mermaid
95
graph TD
106
117
%% Nodes outside subgraphs %%
12-
RUN[Runway] -->|every 2 weeks| CURRENT1
13-
RE[Release Engineer] -->|manual trigger| GA[Release Engineer triggers 'Create Release Pull Request' GitHub Action]
14-
GA -->|create PR| CURRENT2
15-
GA -->|create PR| changelog1[GitHub Action creates x.y.z changelog PR]
16-
changelog1 -->|update PR| changelog2[Release Engineer reviews and adjusts x.y.z changelog PR]
17-
changelog2 -->|merge PR| CURRENT5
18-
GA --> |create PR| bump1[GitHub Action creates version bump PR]
8+
RUN[Runway] -->|every 2 weeks| CURRENT0
9+
CURRENT1 --> |create PR| bump1[GitHub Action creates version bump PR for the main branch]
1910
bump1 -->|merge PR| MAIN1
2011
CURRENT6 --> BUG1[A bug is found]
2112
BUG1 --> BUG2[A fix is done on 'main' branch]
2213
BUG2 --> CURRENT7
23-
ENG[Engineer] -->|create PR| FEAT[Implement new features]
24-
FEAT -->|merge PR| MAIN1
14+
FEAT[For every change, new features or fixes, engineers first open PRs on 'main'] -->|merge PR| MAIN1
2515
2616
%% Subgraphs %%
2717
subgraph Main [Main developement branch: 'main']
@@ -32,41 +22,49 @@ end
3222
subgraph Previous [Previous release branch: 'release/x.y-1.z']
3323
style Previous fill:#08084d,stroke:#000,stroke-width:2px,color:#fff
3424
PREVIOUS1[Previous release is merged into 'stable' branch]
35-
PREVIOUS1 -->|create PR| PREVIOUS2[Release Engineer creates stable sync PRs]
36-
PREVIOUS2 -->|merge PR| MAIN1
25+
PREVIOUS1 --> PREVIOUS2['Stable Branch Sync' GitHun Action creates stable sync PR]
26+
PREVIOUS2 -->|create PR| PREVIOUS3[Release engineer reviews and merges stable sync PR]
27+
PREVIOUS3 -->|merge PR| MAIN1
3728
end
3829
3930
subgraph HotFix [Hotfix release branch: 'release/x.y-1.z+1']
4031
style HotFix fill:#08084d,stroke:#000,stroke-width:2px,color:#fff
4132
HOTFIX1[Hot fix release is merged into 'stable' branch]
42-
HOTFIX1 -->|create PR| HOTFIX2[Release Engineer creates stable sync PRs]
43-
HOTFIX2 -->|merge PR| MAIN1
33+
HOTFIX1 --> HOTFIX2['Stable Branch Sync' GitHun Action creates stable sync PR]
34+
HOTFIX2 -->|create PR| HOTFIX3[Release engineer reviews and merges stable sync PR]
35+
HOTFIX3 -->|merge PR| MAIN1
4436
end
4537
4638
subgraph Current [Current release branch: 'release/x.y.z']
4739
style Current fill:#08084d,stroke:#000,stroke-width:2px,color:#fff
48-
MAIN1 -->|every 2 weeks| CURRENT1[Runway automatically creates a new release branch based off of 'main' branch, called 'release/x.y.z']
40+
CURRENT0[Runway automatically creates a new release branch based off of 'main' branch, called 'release/x.y.z']
41+
CURRENT0 --> CURRENT1['Create Release Pull Request' GitHub Action is automatically executed]
42+
CURRENT1 -->|create PR| changelog1[GitHub Action creates x.y.z changelog PR]
4943
CURRENT1 --> CURRENT2[GitHub Action creates x.y.z release PR]
50-
CURRENT2 -->|every time a commit is added to 'release/x.y.z' branch| CURRENT3[Release build is automatically created and posted on the x.y.z release PR]
51-
CURRENT3 --> CURRENT4[Release Engineer creates and merges stable sync PR into 'release/x.y.z branch']
52-
PREVIOUS1 -->|every time a release is merged into 'stable'| CURRENT4
53-
HOTFIX1 -->|every time a release is merged into 'stable'| CURRENT4
54-
CURRENT4 --> CURRENT5[Changelog is added]
44+
changelog1 -->|update PR| changelog2[Release Engineer reviews, adjusts, and merges x.y.z changelog PR]
45+
changelog2 -->|merge PR| CURRENT4
46+
CURRENT2 --> CURRENT5
47+
CURRENT3[Release Engineer creates and merges stable sync PR into 'release/x.y.z branch'] -->|merge PR| CURRENT4
48+
CURRENT4[A commit is added to 'release/x.y.z' branch] --> CURRENT5[A new release build is automatically created and posted on the x.y.z release PR]
5549
CURRENT5 --> CURRENT6[Release is tested by all teams]
50+
PREVIOUS1 --> CURRENT3
51+
HOTFIX1 --> CURRENT3
5652
CURRENT7[Release Engineer cherry-picks fixes on 'release/x.y.z' branch]
5753
CURRENT6 --> CURRENT8[Release is approved by all teams]
5854
CURRENT7 --> CURRENT8
5955
CURRENT8 --> CURRENT9[Release is approved by Release Engineer, Release QA, and Release Manager]
56+
CURRENT9 --> CURRENT10['Tag Release Branch' GitHub Action is triggered by Release Engineer]
57+
CURRENT10 --> CURRENT11[Release tag is added on the release branch]
58+
CURRENT11 --> CURRENT12[Release engineer merges x.y.z release PR into 'stable' branch]
6059
end
6160
6261
subgraph Stable [Stable branch: 'stable']
6362
style Stable fill:#26084d,stroke:#000,stroke-width:2px,color:#fff
64-
CURRENT9 -->|merge PR| STABLE1[x.y.z release PR is merged into 'stable' branch]
65-
STABLE1 -->|every time a commit is added to 'stable' branch| STABLE2[x.y.z production build is automatically created]
66-
STABLE2 --> STABLE3[Release Engineer submits x.y.z production build to the store]
63+
CURRENT12 -->|merge PR| STABLE1[A new production build is automatically created and posted on the repo's releases page]
64+
STABLE1 --> STABLE2[Release Engineer submits x.y.z production build to the store]
6765
end
6866
6967
subgraph Next [Next release branch: 'release/x.y+1.z']
7068
style Next fill:#08084d,stroke:#000,stroke-width:2px,color:#fff
71-
STABLE3 --> NEXT1[Runway automatically creates a new release branch from main, called 'release/x.y+1.z']
69+
STABLE2 --> NEXT1[Runway automatically creates a new release branch from main, called 'release/x.y+1.z']
7270
end

0 commit comments

Comments
 (0)