diff --git a/packages/docs/docs/contributing/releasing.md b/packages/docs/docs/contributing/releasing.md index ca22bb5cf3..3deb2045a9 100644 --- a/packages/docs/docs/contributing/releasing.md +++ b/packages/docs/docs/contributing/releasing.md @@ -1,10 +1,13 @@ # How to Cut a Release -In the open-source version of Actual, there are 3 NPM packages: +## General information + +In the open-source version of Actual, there are 4 NPM packages: - [@actual-app/api](https://www.npmjs.com/package/@actual-app/api): The API for the underlying functionality. This includes the entire backend of Actual, meant to be used with Node. - [@actual-app/web](https://www.npmjs.com/package/@actual-app/web): A web build that will serve the app with a web frontend. This includes both the frontend and backend of Actual. It includes the backend as well because it's built to be used as a Web Worker. - [@actual-app/sync-server](https://www.npmjs.com/package/@actual-app/sync-server): The entire sync-server and underlying web client in one package. This includes the Server CLI, meant to be used with Node. +- [@actual-app/cli](https://www.npmjs.com/package/@actual-app/cli): A companion CLI used as a terminal-based client for Actual. All packages and the main Actual release are versioned together. That makes it clear which version of the package should be used with the version of Actual. @@ -21,7 +24,7 @@ For example: - `v23.3.2` - another bugfix launched later in the month of March; - `v23.4.0` - first release launched on 9th of April, 2023; -## Release branch +### Release branch A release branch and PR are automatically cut at 17:00 UTC on the 25th of each month. To cut one manually, run [this GitHub Action](https://github.com/actualbudget/actual/actions/workflows/cut-release-branch.yml). @@ -29,13 +32,15 @@ The release notes workflow automatically generates a blog post and updates `docs Fixes that need to be included in the release should be cherry-picked onto the release branch manually. -## Stabilise the release +## Release process + +### Stabilize the release - [ ] Fix spelling in the generated release notes as needed. - [ ] Share the release PR in the release channel on Discord. - [ ] Wait until at least 2 other maintainers have approved the release. -## Merge and tag the release +### Merge and tag the release - [ ] Merge the release PR to master. - [ ] Create the tag on the **release branch** and push it. When the tag is pushed, it triggers the Docker stable image, all NPM packages and the Desktop app to be built and published. @@ -45,22 +50,21 @@ Fixes that need to be included in the release should be cherry-picked onto the r git push {remote} vX.Y.Z ``` -All NPM packages should be automatically released and pushed to the NPM registry. Check them here: +All NPM packages should be automatically released and pushed to the NPM registry; confirm [on NPM](https://www.npmjs.com/package/@actual-app/sync-server). -- [@actual-app/api](https://www.npmjs.com/package/@actual-app/api) -- [@actual-app/web](https://www.npmjs.com/package/@actual-app/web) -- [@actual-app/sync-server](https://www.npmjs.com/package/@actual-app/sync-server) +Docker images should be automatically released and pushed to Docker Hub; confirm [on the Docker tags page](https://hub.docker.com/r/actualbudget/actual-server/tags). -For the Windows Store desktop app, a submission will be automatically uploaded and submitted for certification. The certification process can take up to 3 business days; once complete the app will be in the Store. You can check the update status [here](https://partner.microsoft.com/en-us/dashboard) if you have permission. Note that the Store UI will not correctly reflect the submission status for about 30 minutes after submission. +For the Windows Store desktop app, a submission will be automatically uploaded and submitted for certification. The certification process can take up to 3 business days; once complete the app will be in the Store. You can check the update status [on the partner dashboard](https://partner.microsoft.com/en-us/dashboard) if you have permission. Note that the Store UI will not correctly reflect the submission status for about 30 minutes after submission. -Finally, a draft GitHub release should be automatically created [here](https://github.com/actualbudget/actual/releases). +Finally, a draft GitHub release should be automatically created; confirm [on the releases page](https://github.com/actualbudget/actual/releases). -Once the GitHub release is published, the Flathub publish workflow will trigger for the Linux desktop app. A PR will be created against the [Actual Flathub Repository](https://github.com/flathub/com.actualbudget.actual/pulls) and the core maintainers will be assigned as reviewers. The Core team will review the PR and merge it to `master`, which will kick off a production release to the Flathub Store. It can take anywhere from hours to a few days before the app will be available in the Flathub Store. +### Verify the release -## Finalize the release +- [ ] Deploy the new server Docker image and do a quick smoke test to verify things still work as expected. +- [ ] Perform the same smoke test on the desktop app corresponding to your platform (attached to the draft release). -- [ ] After the Docker image for the release is ready and pushed to Docker Hub, remember to deploy it and do a quick smoke test to verify things still work as expected. -- [ ] Un-draft the GitHub release which will send announcement notifications to all apps. -- [ ] Approve and merge the [Flathub Release PR](https://github.com/flathub/com.actualbudget.actual/pulls) to master. -- [ ] Wrap up by sending an announcement on Discord and Twitter. -- [ ] Wait one to two days to see if any new bugs show up that need a patch release. +### Finalize the release + +- [ ] Un-draft the GitHub release which will send announcement notifications to all apps and create a PR to the [Actual Flathub Repository](https://github.com/flathub/com.actualbudget.actual/pulls). +- [ ] Send an announcement on Discord and Twitter. +- [ ] Approve and merge the [Flathub Release PR](https://github.com/flathub/com.actualbudget.actual/pulls) to master. After merge, it can take anywhere from hours to a few days before the app will be available in the Flathub Store.