Skip to content

Conversation

gauthierpetetin
Copy link
Contributor

@gauthierpetetin gauthierpetetin commented Aug 29, 2025

CLICK HERE to preview the release process diagram

@gauthierpetetin gauthierpetetin self-assigned this Aug 29, 2025
@gauthierpetetin gauthierpetetin requested a review from a team as a code owner August 29, 2025 08:49
Copy link

@XxdpavelxX XxdpavelxX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Thanks a lot Gauthier

end

subgraph Previous [Previous release branch: 'release/x.y-1.z']
style Previous fill:#08084d,stroke:#000,stroke-width:2px,color:#fff

Choose a reason for hiding this comment

The 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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mmh.. for me it was the opposite, I had to use dark background colors on purpose in order to see the white arrows. Are the arrows not white on you side?
Screenshot 2025-08-29 at 16 24 03

Choose a reason for hiding this comment

The 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?

Copy link

@XxdpavelxX XxdpavelxX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, although it appears that the top right side square where it says "Previous Release Branch:" and "Hotfix Release Branch:" was cut off.

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]

Choose a reason for hiding this comment

The 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?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we update the changelog again after this as well?

Copy link
Contributor Author

@gauthierpetetin gauthierpetetin Sep 8, 2025

Choose a reason for hiding this comment

The 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:

  • Release branch is created for release x.y.z
  • We test the release and find a bug
  • Bug is fixed on main branch
  • Then we cherry-pick the fix on the release branch
  • Then we update the changelog accordingly on the release branch

So cherry-picks happen for any kind of releases, not only hotfixes.

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]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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. How is this release build automatically created? Is there a separate GH actions workflow for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The release build is automatically created by the publish-prerelease.yml GitHub Action

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']

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the "stable sync PR"? What branch is being merged in the "release/x.y.z" branch here?

Copy link
Contributor Author

@gauthierpetetin gauthierpetetin Sep 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every time code is added to stable branch, we need to merge stable into main and into all branches that have stable as base branch, like the release/x.y.z branches. Otherwise, they'd be out of sync with stable.

Example:
After release 13.2.1 got merged to stable last week, we've opened 2 stable sync PRs

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this merging the release branch into the stable branch?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

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]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this referring to the changelog.md file?

Also, Where is it added? Is it added to release branch or somewhere else?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this is referring to the changelog.md file.
It is added to the release branch.

Example for release 13.3.0: MetaMask/metamask-extension#35523

MAIN1[All changes are first made on 'main' branch]
end

subgraph Previous [Previous release branch: 'release/x.y-1.z']

Choose a reason for hiding this comment

The 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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The 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).

PREVIOUS2 -->|merge PR| MAIN1
end

subgraph HotFix [Hotfix release branch: 'release/x.y-1.z+1']

Choose a reason for hiding this comment

The 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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The 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).

subgraph Previous [Previous release branch: 'release/x.y-1.z']
style Previous fill:#08084d,stroke:#000,stroke-width:2px,color:#fff
PREVIOUS1[Previous release is merged into 'stable' branch]
PREVIOUS1 -->|create PR| PREVIOUS2[Release Engineer creates stable sync PRs]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for context, what is a "stable sync PR"? Which branch is being synced with stable?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More context here

FEAT -->|merge PR| MAIN1

%% Subgraphs %%
subgraph Main [Main developement branch: 'main']

Choose a reason for hiding this comment

The 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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The 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.

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]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we mentioned it during the meeting today but is package.json in the main branch used for something in the release process?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The release version indicated in package.json is used by an automation that fills the release spreadsheet every time a PR gets merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants