Skip to content

Commit 0bdd028

Browse files
committed
;doc: RELEASING: updates
1 parent 9460f8d commit 0bdd028

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

doc/RELEASING.md

+30-15
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,9 @@ Branches named `MA.JOR-branch` in the hledger repo, eg `1.25-branch`. Releases a
198198
- troubleshooting github workflow issues
199199
- followup work due to release mistakes, bugs in new features, or regressions
200200

201+
- Hard/risky/intensive tasks should be early in the process;
202+
during the final countdown, things should be easy.
203+
201204
## Release artifacts / value chain
202205

203206
Higher things depend on lower things; when doing a release, work upward from the bottom.
@@ -216,41 +219,53 @@ In main repo, release branch:
216219
1. Check [release readiness](#check-dev-readiness)
217220
1. Create/switch to release branch, update versions/dates/docs: `just relprep NEW` (single-version releases; for mixed-version releases, take more care)
218221
1. If not the first release in this branch, cherry-pick changes from master: `magit l o REL-branch..master` (minor releases)
222+
1. (Could start building/testing/fixing release binaries/workflows/caches here, it takes time: `just relbin`)
219223
1. Update install script: `hledger-install/hledger-install.sh`
220224
1. Update changelogs: `./Shake changelogs` & manually edit
221225
(*TODO: fix Shake changelogs to not eat whitespace*)
222226
1. Update release notes: `doc/relnotes*`
223227
(*TODO: automate release notes, github release notes production; auto-link issue numbers*)
224228
1. Update announcements: `doc/ANNOUNCE*` (major releases)
225-
1. Tag release locally: `just reltag`
226-
1. Test & build release binaries: `just relbin`
229+
1. Build/test release binaries: `just relbin`. Troubleshoot/repeat as needed.
227230

228-
### 2 Prep website
229231
In site repo:
230232
1. [Update online manuals](#release-manuals): `site/Makefile`, `site/js/site.js`, `make -C site snapshot-NEW` (major releases)
231233
1. Update install page: `site/src/install.md`
232234

233-
### 3 Release part 1 - hackage, github
235+
### 2 Prep release
234236
In main repo, release branch:
235-
1. Upload to hackage: `make hackageupload`
237+
1. Build final release binaries (`just relbin`) and tag the release (`just reltag`)
236238
1. Download release binaries
237-
1. Push release branch: `git push --tags`
238-
1. Create [github release](#github-release), upload release binaries
239+
1. Push release branch & tags to github: `git push --tags`
240+
1. Create a draft [github release](#github-release), upload release binaries
239241

240-
### 4 Release part 2 - install script, announcements
241242
In main repo, master:
242-
1. Cherry-pick changes from release branch to master, including hledger-install update: `magit l o LASTREL..REL-branch`
243+
1. Cherry-pick changes from release branch, including hledger-install: `magit l o LASTREL..REL-branch`
244+
1. Commit any process updates: `doc/RELEASING.md`
243245
1. [Bump version](#bump-master-to-next-version) in master (major releases)
246+
247+
### 3 Release
248+
In main repo, release branch:
249+
1. Publish on hackage: `make hackageupload`
250+
1. Publish github release
251+
252+
In main repo, master:
244253
1. Push master: `just push`
245-
1. Push website: `git -C site push`
254+
255+
In site repo:
256+
1. Push website: `git push`
257+
258+
### 4 Announce
259+
(major releases, others if needed)
246260
1. Update hledger entry at https://plaintextaccounting.org/#pta-apps
247-
1. Send announcements: hledger matrix & irc chats, PTA forum, hledger mail list (& optionally haskell-cafe), mastodon (major releases, others if needed)
261+
1. hledger matrix & irc chats
262+
1. PTA forum
263+
1. hledger mail list (& optionally haskell-cafe)
264+
1. mastodon with #hledger and #plaintextaccounting tags
248265

249266
### 5 Post-release
250-
In main repo, master:
251-
1. Commit any process updates: `doc/RELEASING.md`
252-
1. Monitor packaging status (including stackage); keep install page updated
253-
1. Monitor/respond to issues, especially regressions; keep doc/REGRESSIONS.md updated
267+
1. Monitor packaging status (stackage, brew, docker, linux, nix etc); keep install page updated
268+
1. Monitor, follow up on issues, especially regressions; keep doc/REGRESSIONS.md updated
254269

255270

256271
## Detailed procedures

0 commit comments

Comments
 (0)