You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Open PRs from Homebrew/Scoop release recipes; rename finalize step
The main branches of the tap and bucket repos are protected, so direct
pushes are rejected. release-update-homebrew-tap and
release-update-scoop-bucket now cut a release/vX.Y.Z branch from the
repo's latest origin/main, commit there, push, and open a PR via gh.
Re-runs recreate the branch and update the open PR. The AUR recipe is
unchanged (the AUR has no PR flow).
Also rename release-sync-manual-channels to release-finalize.
Copy file name to clipboardExpand all lines: RELEASING.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,13 +11,15 @@ just release-prepare X.Y.Z
11
11
# release-prepare drives bump → PR → squash-merge → tag → CI through to a green run.
12
12
# Watch the workflow; come back when it's done.
13
13
14
-
just release-sync-manual-channels
14
+
just release-finalize
15
15
# Auto-detects the just-released version from the latest git tag, then bumps
16
-
# the Homebrew tap, Scoop bucket, and AUR qn-bin clones to match. Prints the
17
-
# three `git push` commands you run to publish.
16
+
# the Homebrew tap, Scoop bucket, and AUR qn-bin clones to match. Opens a PR
17
+
# against the tap and bucket repos (their main branches are protected) and
18
+
# prints the `git push` command for AUR. Merge the two PRs and run the push
19
+
# to publish.
18
20
```
19
21
20
-
Override the clone-root directory if your clones live elsewhere: `just release-sync-manual-channels ~/work/quicknode`. Override the version too if you're backfilling an older release: `just release-sync-manual-channels ~/qn 0.1.4`.
22
+
Override the clone-root directory if your clones live elsewhere: `just release-finalize ~/work/quicknode`. Override the version too if you're backfilling an older release: `just release-finalize ~/qn 0.1.4`.
21
23
22
24
The rest of this document covers what each step does in detail, what to do if part of the pipeline fails, and the one-time setup for each channel.
23
25
@@ -49,21 +51,19 @@ Sync the formula cargo-dist generated as a release artifact into the tap repo:
49
51
50
52
```fish
51
53
just release-update-homebrew-tap X.Y.Z ~/qn/homebrew-tap
52
-
git -C ~/qn/homebrew-tap push
53
54
```
54
55
55
-
The recipe downloads `qn.rb` from the GitHub Release, copies it to `Formula/qn.rb`in the tap clone, commits with a clean message, and prints the push command. It does not push itself — review the diff first.
56
+
The recipe downloads `qn.rb` from the GitHub Release, copies it to `Formula/qn.rb`on a `release/vX.Y.Z` branch cut from the tap's latest `origin/main`, commits, pushes the branch, and opens a PR (the tap's `main` is protected, so changes must land via PR). Review and merge the PR to publish. Re-running the recipe recreates the branch and updates the open PR.
56
57
57
58
### Scoop
58
59
59
60
Bump the canonical `version` in `bucket/qn.json`:
60
61
61
62
```fish
62
63
just release-update-scoop-bucket X.Y.Z ~/qn/scoop-bucket
63
-
git -C ~/qn/scoop-bucket push
64
64
```
65
65
66
-
The recipe pulls the Windows zip's sha256 from the release, renders a manifest with `version`, `hash`, and an `autoupdate` block, and stages it at `bucket/qn.json`. Once a user has tapped the bucket, `scoop update` finds new versions on its own — this manual step just keeps `scoop search qn` honest about what's current.
66
+
The recipe pulls the Windows zip's sha256 from the release, renders a manifest with `version`, `hash`, and an `autoupdate` blockat `bucket/qn.json`, commits it on a `release/vX.Y.Z` branch cut from the bucket's latest `origin/main`, pushes the branch, and opens a PR (the bucket's `main` is protected, so changes must land via PR). Review and merge the PR to publish. Once a user has tapped the bucket, `scoop update` finds new versions on its own — this manual step just keeps `scoop search qn` honest about what's current.
67
67
68
68
### AUR
69
69
@@ -78,7 +78,7 @@ The recipe pulls both Linux gnu sha256 sidecars (x86_64 + aarch64) from the rele
78
78
79
79
### Curated install block on the release notes
80
80
81
-
`release-sync-manual-channels` finishes by calling `release-update-install-notes`, which prepends a curated "How to install" section to the GitHub release body. Source for the block is `packaging/release-notes-install.md.tmpl`; edit it there if the install copy needs to change. The recipe is idempotent — re-running against the same release replaces the existing block rather than stacking duplicates — so it's safe to invoke standalone:
81
+
`release-finalize` finishes by calling `release-update-install-notes`, which prepends a curated "How to install" section to the GitHub release body. Source for the block is `packaging/release-notes-install.md.tmpl`; edit it there if the install copy needs to change. The recipe is idempotent — re-running against the same release replaces the existing block rather than stacking duplicates — so it's safe to invoke standalone:
82
82
83
83
```fish
84
84
just release-update-install-notes X.Y.Z # edits the release in place
0 commit comments