@@ -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
203206Higher things depend on lower things; when doing a release, work upward from the bottom.
@@ -216,41 +219,53 @@ In main repo, release branch:
2162191 . Check [ release readiness] ( #check-dev-readiness )
2172201 . Create/switch to release branch, update versions/dates/docs: ` just relprep NEW ` (single-version releases; for mixed-version releases, take more care)
2182211 . 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 ` )
2192231 . Update install script: ` hledger-install/hledger-install.sh `
2202241 . Update changelogs: ` ./Shake changelogs ` & manually edit
221225 (* TODO: fix Shake changelogs to not eat whitespace* )
2222261 . Update release notes: ` doc/relnotes* `
223227 (* TODO: automate release notes, github release notes production; auto-link issue numbers* )
2242281 . 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
229231In site repo:
2302321 . [ Update online manuals] ( #release-manuals ) : ` site/Makefile ` , ` site/js/site.js ` , ` make -C site snapshot-NEW ` (major releases)
2312331 . Update install page: ` site/src/install.md `
232234
233- ### 3 Release part 1 - hackage, github
235+ ### 2 Prep release
234236In 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 ` )
2362381 . 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
241242In 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 `
2432451 . [ 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:
2442531 . 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)
2462601 . 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