@@ -198,6 +198,9 @@ Branches named `MA.JOR-branch` in the hledger repo, eg `1.25-branch`. Releases a
198
198
- troubleshooting github workflow issues
199
199
- followup work due to release mistakes, bugs in new features, or regressions
200
200
201
+ - Hard/risky/intensive tasks should be early in the process;
202
+ during the final countdown, things should be easy.
203
+
201
204
## Release artifacts / value chain
202
205
203
206
Higher things depend on lower things; when doing a release, work upward from the bottom.
@@ -216,41 +219,53 @@ In main repo, release branch:
216
219
1 . Check [ release readiness] ( #check-dev-readiness )
217
220
1 . Create/switch to release branch, update versions/dates/docs: ` just relprep NEW ` (single-version releases; for mixed-version releases, take more care)
218
221
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 ` )
219
223
1 . Update install script: ` hledger-install/hledger-install.sh `
220
224
1 . Update changelogs: ` ./Shake changelogs ` & manually edit
221
225
(* TODO: fix Shake changelogs to not eat whitespace* )
222
226
1 . Update release notes: ` doc/relnotes* `
223
227
(* TODO: automate release notes, github release notes production; auto-link issue numbers* )
224
228
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.
227
230
228
- ### 2 Prep website
229
231
In site repo:
230
232
1 . [ Update online manuals] ( #release-manuals ) : ` site/Makefile ` , ` site/js/site.js ` , ` make -C site snapshot-NEW ` (major releases)
231
233
1 . Update install page: ` site/src/install.md `
232
234
233
- ### 3 Release part 1 - hackage, github
235
+ ### 2 Prep release
234
236
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 ` )
236
238
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
239
241
240
- ### 4 Release part 2 - install script, announcements
241
242
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 `
243
245
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:
244
253
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)
246
260
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
248
265
249
266
### 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
254
269
255
270
256
271
## Detailed procedures
0 commit comments