Skip to content

Commit

Permalink
Docs: update release-procedure.md
Browse files Browse the repository at this point in the history
  • Loading branch information
katspaugh committed Aug 28, 2023
1 parent 9ed0ebf commit cd5affc
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions docs/release-procedure.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

The code is being actively developed on the `dev` branch. Pull requests are made against this branch.

After a release is approved by QA, the code goes to the `main` branch and is deployed to the staging environment.
When it's time to make a release, we "freeze" the code by creating a release branch off of the dev branch. A release PR is created from that branch, and sent to QA.

After the PR is tested and approved by QA, it's merged into the `main` branch. `Main` is automatically deployed to the staging environment.

Schematically:
```
<PR branch> –> dev -> main
<feature branches> –> dev -> release/X.Y.Z -> main
```

We prepare at least one release every sprint. Sprints are two weeks long.
Expand All @@ -28,7 +30,7 @@ git log origin/main..origin/dev --pretty=format:'* %s'
* If issues are found, bugfixes are merged into this branch
* Once the QA is done, proceed to the next step

### Tag & release
### Releasing to production
Wait for all the checks on GitHub to pass.
* Switch to the main branch and make sure it's up to date:
```
Expand All @@ -44,12 +46,15 @@ git pull origin release/3.15.0
```
git push
```
* Create and push a new version tag :
```
git tag v3.15.0
git push --tags
```

* Create a [GitHub release](https://github.com/gnosis/safe-react/releases) for this tag
A deploy workflow will kick in and do the following things:

* Deploy the code to staging
* Create a new git tag from the version in package.json
* Create a [GitHub release](https://github.com/safe-global/safe-wallet-web/releases) linked to this tag, with a changelog taken from the release PR
* Build and upload the code to an S3 bucket

After that, the release manager should:

* Notify devops on Slack and send them the release link to deploy to production
* Back-merge `main` into the `dev` branch to keep them in sync
* Back-merge `main` into the `dev` branch to keep them in sync unless the release branch was based on `dev`

0 comments on commit cd5affc

Please sign in to comment.