diff --git a/docs/contributing/assets/release-action.png b/docs/contributing/assets/release-action.png new file mode 100644 index 000000000..b32325c49 Binary files /dev/null and b/docs/contributing/assets/release-action.png differ diff --git a/docs/contributing/releases.md b/docs/contributing/releases.md new file mode 100644 index 000000000..295525535 --- /dev/null +++ b/docs/contributing/releases.md @@ -0,0 +1,47 @@ +## AFFiNE Release Process + +## Who can make a release? + +The AFFiNE core team gives release authorization. And also have the following requirements. + +- Have commit access to the AFFiNE repository. +- Have access to GitHub Actions. + +## How to make a release? + +Before releasing, ensure you have the latest version of the `master` branch. + +And Read the semver specification to understand how to version your release. https://semver.org + +### 1. Update the version in `package.json.` + +```shell +yarn workspaces foreach exec yarn version 0.5.4-canary.5 +``` + +### 2. Commit changes and push to `master.` + +```shel +git add . +# vx.y.z-canary.n +git commit -m "v0.5.4-canary.5" +git push origin master +``` + +### 3. Create a release action + +Create a release action in the [AFFiNE repository](https://github.com/toeverything/AFFiNE/actions/workflows/release-desktop-app.yml). + +![img.png](assets/release-action.png) + +Select the correct branch and fill out the form, then click `Run workflow.` + +### 4. Publish the release + +After the release action is completed, you can see the draft release on the [release page](https://github.com/toeverything/AFFiNE/releases). + +You can edit the release note and publish it. + +Remember that the release tag and title should be the same as the version in `package.json.` + +And target the release to that commit you just pushed.