-
-
Notifications
You must be signed in to change notification settings - Fork 37
feat(process): document the release process with a mermaid diagram #146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
a321e72
5443a13
d6319f8
4771f7f
5d165ff
33cb85a
41f1833
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| # Release process | ||
| This diagram below represents the release process for MetaMask Extension and MetaMask Mobile clients. | ||
|
|
||
| Note: | ||
| - The `stable` branch is currently called `master` on Extension repo, but it will be renamed soon. | ||
| - The `release/x.y.z` branches are currently called `Version-vx.y.z` on Extension repo, but they will be renamed soon. | ||
|
|
||
| ```mermaid | ||
| graph TD | ||
|
|
||
| %% Nodes outside subgraphs %% | ||
| RUN[Runway] -->|every 2 weeks| CURRENT1 | ||
| RE[Release Engineer] -->|manual trigger| GA[Release Engineer triggers 'Create Release Pull Request' GitHub Action] | ||
| GA -->|create PR| CURRENT2 | ||
| GA -->|create PR| changelog1[GitHub Action creates x.y.z changelog PR] | ||
| changelog1 -->|update PR| changelog2[Release Engineer reviews and adjusts x.y.z changelog PR] | ||
| changelog2 -->|merge PR| CURRENT5 | ||
| GA --> |create PR| bump1[GitHub Action creates version bump PR] | ||
| bump1 -->|merge PR| MAIN1 | ||
| CURRENT6 --> BUG1[A bug is found] | ||
| BUG1 --> BUG2[A fix is done on 'main' branch] | ||
| BUG2 --> CURRENT7 | ||
| ENG[Engineer] -->|create PR| FEAT[Implement new features] | ||
|
||
| FEAT -->|merge PR| MAIN1 | ||
|
|
||
| %% Subgraphs %% | ||
| subgraph Main [Main developement branch: 'main'] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are we still generating commits.csv as part of the release process or was that deprecated? If used where does it come into play?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We only need commits.csv to generate the changelog PR in the create-release-pr GitHub Action. |
||
| style Main fill:#4d0808,stroke:#000,stroke-width:2px,color:#fff | ||
| MAIN1[All changes are first made on 'main' branch] | ||
| end | ||
|
|
||
| subgraph Previous [Previous release branch: 'release/x.y-1.z'] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks like this is getting cut off a bit in the diagram. Can we move it a little?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unfortunately I don't think we can easily move choose texts' positions on a mermaid diagram (at least I didn't figure out how to). |
||
| style Previous fill:#08084d,stroke:#000,stroke-width:2px,color:#fff | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's a bit hard to see the lines and where they're pointing in the dark blue background. Can we change the color of that background square or lines so that they're more visible?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks a lot better in that screenshot. Maybe I was looking in the wrong place. Did you do anything or navigate somewhere to see it like that?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same here, I am having trouble seeing the arrows in light mode. Maybe best to not use a background?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| PREVIOUS1[Previous release is merged into 'stable' branch] | ||
| PREVIOUS1 -->|create PR| PREVIOUS2[Release Engineer creates stable sync PRs] | ||
|
||
| PREVIOUS2 -->|merge PR| MAIN1 | ||
| end | ||
|
|
||
| subgraph HotFix [Hotfix release branch: 'release/x.y-1.z+1'] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks like this is getting cut off a bit in the diagram as well. Can we move it a little?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unfortunately I don't think we can easily move choose texts' positions on a mermaid diagram (at least I didn't figure out how to). |
||
| style HotFix fill:#08084d,stroke:#000,stroke-width:2px,color:#fff | ||
| HOTFIX1[Hot fix release is merged into 'stable' branch] | ||
| HOTFIX1 -->|create PR| HOTFIX2[Release Engineer creates stable sync PRs] | ||
| HOTFIX2 -->|merge PR| MAIN1 | ||
| end | ||
|
|
||
| subgraph Current [Current release branch: 'release/x.y.z'] | ||
| style Current fill:#08084d,stroke:#000,stroke-width:2px,color:#fff | ||
| MAIN1 -->|every 2 weeks| CURRENT1[Runway automatically creates a new release branch based off of 'main' branch, called 'release/x.y.z'] | ||
| CURRENT1 --> CURRENT2[GitHub Action creates x.y.z release PR] | ||
| 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] | ||
|
||
| CURRENT3 --> CURRENT4[Release Engineer creates and merges stable sync PR into 'release/x.y.z branch'] | ||
|
||
| PREVIOUS1 -->|every time a release is merged into 'stable'| CURRENT4 | ||
| HOTFIX1 -->|every time a release is merged into 'stable'| CURRENT4 | ||
|
||
| CURRENT4 --> CURRENT5[Changelog is added] | ||
|
||
| CURRENT5 --> CURRENT6[Release is tested by all teams] | ||
| CURRENT7[Release Engineer cherry-picks fixes on 'release/x.y.z' branch] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We mentioned cherry picks today during part of the release process. Does the cherry picking only happen during a hotfix? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we update the changelog again after this as well?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We do cherry picks every time code needs to be added to a release branch after the initial release branch creation. Example:
So cherry-picks happen for any kind of releases, not only hotfixes. |
||
| CURRENT6 --> CURRENT8[Release is approved by all teams] | ||
| CURRENT7 --> CURRENT8 | ||
| CURRENT8 --> CURRENT9[Release is approved by Release Engineer, Release QA, and Release Manager] | ||
| end | ||
|
|
||
| subgraph Stable [Stable branch: 'stable'] | ||
| style Stable fill:#26084d,stroke:#000,stroke-width:2px,color:#fff | ||
| CURRENT9 -->|merge PR| STABLE1[x.y.z release PR is merged into 'stable' branch] | ||
| STABLE1 -->|every time a commit is added to 'stable' branch| STABLE2[x.y.z production build is automatically created] | ||
|
||
| STABLE2 --> STABLE3[Release Engineer submits x.y.z production build to the store] | ||
|
||
| end | ||
|
|
||
| subgraph Next [Next release branch: 'release/x.y+1.z'] | ||
| style Next fill:#08084d,stroke:#000,stroke-width:2px,color:#fff | ||
| STABLE3 --> NEXT1[Runway automatically creates a new release branch from main, called 'release/x.y+1.z'] | ||
| end | ||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which github action does this? Is it create-release-pr?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes