mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
|
# Releasing
|
||
|
|
||
|
Guidance for release managers and maintainers.
|
||
|
|
||
|
Terminology:
|
||
|
|
||
|
- "main" = the master branch, might get renamed in future.
|
||
|
- "release" = a release branch, such as 1.22.
|
||
|
|
||
|
## Changelogs
|
||
|
|
||
|
Always maintain changelogs in main.
|
||
|
|
||
|
Apply [CONTRIBUTING.md#commit-messages](CONTRIBUTING.html#commit-messages) rules
|
||
|
when commiting, pushing, or reviewing/merging pull requests.
|
||
|
`tools/commitlint` helps with this, run locally and in CI.
|
||
|
|
||
|
Use `./Shake changelogs` to update them from recent commit messages.
|
||
|
|
||
|
## Minor release
|
||
|
|
||
|
Checklist:
|
||
|
|
||
|
- create release branch if none\
|
||
|
`git branch RELEASEBRANCH RELEASETAG`\
|
||
|
`git branch 1.22-branch 1.22`
|
||
|
- update main changelogs\
|
||
|
- `./Shake changelogs`
|
||
|
- do at least basic editing - drop things, move things
|
||
|
- `./Shake changelogs -c`
|
||
|
- review changes so far, estimate which packages will be released
|
||
|
- add "unreleased" minor release heading in main changelogs, immediately above previous release heading
|
||
|
```
|
||
|
# LATESTHASH
|
||
|
|
||
|
...CHANGES...
|
||
|
|
||
|
# X.Y.1 unreleased <- new heading
|
||
|
|
||
|
# X.Y YYYY-MM-DD
|
||
|
```
|
||
|
- cherry pick changes to release
|
||
|
1. always update main changelogs first
|
||
|
2. cherry pick commits
|
||
|
3. move corresponding change items under minor release heading in main changelogs
|
||
|
- finalise release
|
||
|
- add date to minor release heading in main changelogs
|
||
|
- copy the minor release section from main changelogs to release changelogs
|