;doc: separate CHANGELOGS, COMMITS docs
This commit is contained in:
parent
479b0d26b8
commit
fd052d308b
37
CHANGELOGS.md
Normal file
37
CHANGELOGS.md
Normal file
@ -0,0 +1,37 @@
|
||||
# Changelogs
|
||||
|
||||
Always maintain changelogs in master branch (not in release branches).
|
||||
|
||||
**Frequently**, especially after merging changes, and before cherry picking into release branch:
|
||||
|
||||
- dry run: `./Shake changelogs -n`
|
||||
- add new changes: `./Shake changelogs`
|
||||
- edit
|
||||
- drop things
|
||||
- move things
|
||||
- Add headings: Features, Improved, Fixes
|
||||
- rewrite things
|
||||
- format ([#ISSUE](https://github.com/simonmichael/hledger/issues/), AUTHOR) on its own line
|
||||
- commit: `./Shake changelogs -c`
|
||||
|
||||
**After cherry-picking** changes to a release branch:
|
||||
- in the master branch changelogs, move the corresponding changelog items under a pending release heading,
|
||||
creating that when necessary:
|
||||
```
|
||||
# LATESTHASH
|
||||
|
||||
...CHANGES ONLY IN MASTER...
|
||||
|
||||
# NEXTVER unreleased
|
||||
|
||||
...CHANGES CHERRYPICKED INTO RELEASE BRANCH...
|
||||
|
||||
# LASTVER YYYY-MM-DD
|
||||
```
|
||||
|
||||
**At release:**
|
||||
|
||||
- do final update/edits; check organisation, wording, formatting, issue links
|
||||
- replace "unreleased" with the release date
|
||||
- copy the new sections from master changelogs to release branch changelogs
|
||||
|
||||
22
COMMITS.md
Normal file
22
COMMITS.md
Normal file
@ -0,0 +1,22 @@
|
||||
# COMMITS
|
||||
|
||||
## When committing / reviewing commits
|
||||
|
||||
Follow/encourage the [commit conventions](CONTRIBUTING.html#commit-messages).
|
||||
Here they are in brief:
|
||||
- Commit messages must begin with a prefix, one or more colon-terminated words
|
||||
indicating the [topic](CONTRIBUTING.html#topics).
|
||||
- Commits causing user-visible changes must additionally begin with `feat:`, `imp:` or `fix:`
|
||||
(feature, improvement, or bugfix). These will be mentioned in release notes.
|
||||
- Add a leading `;` to commits where a CI build is not needed, to reduce waste.
|
||||
- Add a `!` to highlight commits causing breaking/incompatible changes.
|
||||
- Mention any relevant issue numbers, usually parenthesised at the end. `(#NNNN)`
|
||||
- Try to write commit messages as changelog-ready documentation that will tell their
|
||||
intended audience (which might be users, installers, packagers, and/or developers)
|
||||
what they need to know.
|
||||
|
||||
## When committing/pushing/merging:
|
||||
- run `bin/commitlint` before push, to check recent commits
|
||||
- or, run it automatically before each commit (`make installcommithook` to configure your local repo)
|
||||
- it also runs in CI on github for pull requests, etc.
|
||||
|
||||
143
RELEASING.md
143
RELEASING.md
@ -18,61 +18,6 @@ Some terminology used on this page:
|
||||
| *site* | `master` branch in the `hledger_website` repo. Usually checked out as `hledger/site`. |
|
||||
| | |
|
||||
|
||||
## When committing / reviewing commits
|
||||
|
||||
Follow/encourage [commit conventions](CONTRIBUTING.html#commit-messages). Recap:
|
||||
- commit messages must begin with one or more colon-terminated words
|
||||
- user-visible changes must begin with a `feat:`/`imp:`/`fix:` prefix, and will appear in release notes
|
||||
- other changes can begin with a topic prefix (`bal:`/`areg:`/`test:`/`doc:`/`lib:`/...)
|
||||
- add a leading `;` to skip wasteful CI builds
|
||||
- add a `!` to indicate breaking/incompatible changes
|
||||
- mention any relevant #issue numbers, usually parenthesised at the end
|
||||
- write the summary and at least the first part of the body, if any,
|
||||
as clear change documentation for the intended audience
|
||||
(users/installers/packagers/developers)
|
||||
|
||||
**When committing/pushing/merging:**
|
||||
- run `bin/commitlint` before push, to check recent commits
|
||||
- or, run it automatically before each commit (`make installcommithook` to configure your local repo)
|
||||
- it also runs in CI on github for pull requests, etc.
|
||||
|
||||
## Changelogs
|
||||
|
||||
Always maintain changelogs in master branch (not in release branches).
|
||||
|
||||
**Frequently**, especially after merging changes, and before cherry picking into release branch:
|
||||
|
||||
- dry run: `./Shake changelogs -n`
|
||||
- add new changes: `./Shake changelogs`
|
||||
- edit
|
||||
- drop things
|
||||
- move things
|
||||
- Add headings: Features, Improved, Fixes
|
||||
- rewrite things
|
||||
- format ([#ISSUE](https://github.com/simonmichael/hledger/issues/), AUTHOR) on its own line
|
||||
- commit: `./Shake changelogs -c`
|
||||
|
||||
**After cherry-picking** changes to a release branch:
|
||||
- in the master branch changelogs, move the corresponding changelog items under a pending release heading,
|
||||
creating that when necessary:
|
||||
```
|
||||
# LATESTHASH
|
||||
|
||||
...CHANGES ONLY IN MASTER...
|
||||
|
||||
# NEXTVER unreleased
|
||||
|
||||
...CHANGES CHERRYPICKED INTO RELEASE BRANCH...
|
||||
|
||||
# LASTVER YYYY-MM-DD
|
||||
```
|
||||
|
||||
**At release:**
|
||||
|
||||
- do final update/edits; check organisation, wording, formatting, issue links
|
||||
- replace "unreleased" with the release date
|
||||
- copy the new sections from master changelogs to release branch changelogs
|
||||
|
||||
## Release prep
|
||||
|
||||
1. create release branch when needed:\
|
||||
@ -122,10 +67,10 @@ In release branch:
|
||||
to build locally and check version strings
|
||||
|
||||
- push to CI branches to test and to build release binaries
|
||||
- magit `P -f e origin/ci-windows`
|
||||
- magit `P -f e origin/ci-mac`
|
||||
- magit `P -f e origin/ci-linux-static`
|
||||
- magit `P -f e origin/ci-linux-static-arm32` (at release time only)
|
||||
- `git push -f origin master:ci-windows` (or magit `P -f e origin/ci-windows`)
|
||||
- `git push -f origin master:ci-mac`
|
||||
- `git push -f origin master:ci-linux`
|
||||
- `git push -f origin master:ci-linux-static` (at release time only))
|
||||
- Tips:
|
||||
- build these release binaries at the very last possible moment
|
||||
- last commit should be a notable one - not docs only, not beginning with ;
|
||||
@ -222,3 +167,83 @@ In release branch:
|
||||
- handle issues
|
||||
|
||||
- update procedures, tools, docs
|
||||
|
||||
## New notes
|
||||
|
||||
### Tips
|
||||
|
||||
- During pre/post release phases, update RELEASING.md in a copy,
|
||||
RELEASING2.md, to reduce commit noise and git interference.
|
||||
|
||||
### Adding major release to website
|
||||
|
||||
In site:
|
||||
|
||||
- make snapshot-NEW
|
||||
|
||||
- js/site.js: add NEW, update currentrelease
|
||||
|
||||
In hledger.org caddy config:
|
||||
|
||||
- add `path` and `redir`s for NEW
|
||||
- `systemctl reload caddy`
|
||||
|
||||
### Process
|
||||
|
||||
#### Phases of release cycle:
|
||||
|
||||
##### Dev
|
||||
|
||||
Prerequisites:
|
||||
|
||||
-
|
||||
|
||||
##### Pre-release
|
||||
|
||||
Prerequisites:
|
||||
|
||||
-
|
||||
|
||||
###### 1. Resolve issues
|
||||
|
||||
Review, select, resolve PRs and issues.
|
||||
|
||||
###### 2. Polish changelogs
|
||||
|
||||
Complete and polish changelogs.
|
||||
|
||||
###### Plan release
|
||||
|
||||
Plan the release number and any extra release-time activities.
|
||||
|
||||
|
||||
##### Release
|
||||
|
||||
###### Freeze
|
||||
|
||||
- Set version.
|
||||
- Finalise changelogs.
|
||||
- Generate release notes.
|
||||
- Prepare announcement.
|
||||
- Tag.
|
||||
- Generate CI release binaries.
|
||||
- Draft github release.
|
||||
- 24 hour release countdown with no changes.
|
||||
- If any problems found, return to Pre-release.
|
||||
|
||||
###### Publish
|
||||
|
||||
- Website changes.
|
||||
- release notes
|
||||
- install page
|
||||
- manuals
|
||||
- webserver redirects
|
||||
- Publish hackage packages.
|
||||
- Push tags.
|
||||
- Publish github release.
|
||||
- Publish website changes.
|
||||
- Announce
|
||||
|
||||
##### Post-release
|
||||
|
||||
Monitor, support, respond.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user