[PR #7418] change release process to use a branch and add automation #14206

Open
opened 2026-04-10 22:16:21 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/actualbudget/actual/pull/7418
Author: @matt-fidd
Created: 4/8/2026
Status: 🔄 Open

Base: masterHead: release-automation


📝 Commits (10+)

📊 Changes

8 files changed (+151 additions, -55 deletions)

View changed files

📝 .github/actions/release-notes/check/action.yml (+1 -1)
📝 .github/actions/release-notes/generate/action.yml (+1 -1)
📝 .github/workflows/cut-release-branch.yml (+39 -7)
📝 .github/workflows/release-notes.yml (+43 -2)
📝 packages/ci-actions/bin/release-notes-generate.mjs (+46 -27)
📝 packages/ci-actions/src/versions/get-next-package-version.ts (+1 -1)
📝 packages/docs/docs/contributing/releasing.md (+14 -16)
upcoming-release-notes/7418.md (+6 -0)

📄 Description

Description

This fundamentally changes how Actual is released:

  1. On the 25th of every month, instead of entering a merge freeze, we cut a new branch from master for the release
  2. The release note generation automation that we've always had runs, but pushes the resultant notes to the docs files directly, rather than a PR comment. I've added some extra logic here to stop it from recursively calling itself.

If we're not blocked by anything for release, then sweet! For release, we merge the branch into master and then tag the release on the release branch, which triggers the release automation.

If we are blocked by something:

  • When any PR is merged to master, it will automatically be added to a "Cherry-pick candidates" section in the release PR description, see below

Example:
image


  • If you'd like the PR to be cherry picked in, tick the box and it so it shall be! Wait about 30 seconds and the PR will be pulled into the release branch, where the release note generation script will take over and add the new notes to the docs files. (well, it'll actually drop the previous generation, then start again, but that's in the weeds)

Doing it this way completely changes the monthly release flow, and means that we no longer require freezing the master branch for up to a third of the month. It'll let us keep merging things into master and testing with edge, whilst keeping the release stable.

Testing

See https://github.com/matt-fidd/actual/pull/11

I opened with the workflow, let the release notes generate, merged a PR, cherry picked it in with the tickbox in the description, and let the generate flow run again.

Checklist

  • Release notes added (see link above)
  • No obvious regressions in affected areas
  • Self-review has been performed - I understand what each change in the code does and why it is needed

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/actualbudget/actual/pull/7418 **Author:** [@matt-fidd](https://github.com/matt-fidd) **Created:** 4/8/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `release-automation` --- ### 📝 Commits (10+) - [`a00e5d4`](https://github.com/actualbudget/actual/commit/a00e5d46d47881554bc62a029a7d6992ff93ea70) release automation - [`72d30f5`](https://github.com/actualbudget/actual/commit/72d30f5773a038cd795a68fab1cbe2b77baceb3e) note - [`c4cba24`](https://github.com/actualbudget/actual/commit/c4cba245cad328f6a6595a1bc4cede0e8ba0b1db) harden tokens for release notes workflow - [`c0ebed3`](https://github.com/actualbudget/actual/commit/c0ebed3f328d1e4946d10c9de667a0c2100aed7e) fix yarn install on release notes check - [`0b6f04e`](https://github.com/actualbudget/actual/commit/0b6f04e5db36b67b51019cf9da1ec9def9e1b5a8) amend release docs - [`a4e8554`](https://github.com/actualbudget/actual/commit/a4e855456b71870438d3e580f3d34105eca72dcb) address coderabbit - [`d414ba0`](https://github.com/actualbudget/actual/commit/d414ba088925da986278c88a955c248aa0b4da3d) change back to auto version resolution - [`c84dca3`](https://github.com/actualbudget/actual/commit/c84dca3fac35d4b5d45896daef3ae38ed5af9eed) more coderabbit - [`a48a0d2`](https://github.com/actualbudget/actual/commit/a48a0d2e667b49d4dec78b289486a0f304ff29f2) clarify a poorly worded comment - [`bdd4055`](https://github.com/actualbudget/actual/commit/bdd40558cd369df486317d3397020d92a6e8382d) drop cherry pick workflows ### 📊 Changes **8 files changed** (+151 additions, -55 deletions) <details> <summary>View changed files</summary> 📝 `.github/actions/release-notes/check/action.yml` (+1 -1) 📝 `.github/actions/release-notes/generate/action.yml` (+1 -1) 📝 `.github/workflows/cut-release-branch.yml` (+39 -7) 📝 `.github/workflows/release-notes.yml` (+43 -2) 📝 `packages/ci-actions/bin/release-notes-generate.mjs` (+46 -27) 📝 `packages/ci-actions/src/versions/get-next-package-version.ts` (+1 -1) 📝 `packages/docs/docs/contributing/releasing.md` (+14 -16) ➕ `upcoming-release-notes/7418.md` (+6 -0) </details> ### 📄 Description <!-- Thank you for submitting a pull request! Make sure to follow the instructions to write release notes for your PR — it should only take a minute or two: https://github.com/actualbudget/docs#writing-good-release-notes. Try running yarn generate:release-notes *before* pushing your PR for an interactive experience. --> ## Description <!-- What does this PR do? Why is it needed? Please give context on the "why?": why do we need this change? What problem is it solving for you?--> This fundamentally changes how Actual is released: 1. On the 25th of every month, instead of entering a merge freeze, we cut a new branch from master for the release 2. The release note generation automation that we've always had runs, but pushes the resultant notes to the docs files directly, rather than a PR comment. I've added some extra logic here to stop it from recursively calling itself. If we're not blocked by anything for release, then sweet! For release, we merge the branch into master and then tag the release *on the release branch*, which triggers the release automation. If we are blocked by something: - When any PR is merged to master, it will automatically be added to a "Cherry-pick candidates" section in the release PR description, see below ------ Example: <img width="241" height="60" alt="image" src="https://github.com/user-attachments/assets/15e3cbd3-568e-4cdc-bd83-94585e928218" /> ------ - If you'd like the PR to be cherry picked in, tick the box and it so it shall be! Wait about 30 seconds and the PR will be pulled into the release branch, where the release note generation script will take over and add the new notes to the docs files. (well, it'll actually drop the previous generation, then start again, but that's in the weeds) --------- Doing it this way completely changes the monthly release flow, and means that we no longer require freezing the master branch for up to a third of the month. It'll let us keep merging things into master and testing with edge, whilst keeping the release stable. ## Testing <!-- What did you test? How can we reproduce the issue you are fixing or how can we test the feature you built? --> See https://github.com/matt-fidd/actual/pull/11 I opened with the workflow, let the release notes generate, merged a PR, cherry picked it in with the tickbox in the description, and let the generate flow run again. ## Checklist - [x] Release notes added (see link above) - [x] No obvious regressions in affected areas - [x] Self-review has been performed - I understand what each change in the code does and why it is needed <!--- actual-bot-sections ---> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-10 22:16:21 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#14206