;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`. | | | *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 | ## Release prep | ||||||
| 
 | 
 | ||||||
| 1. create release branch when needed:\ | 1. create release branch when needed:\ | ||||||
| @ -122,10 +67,10 @@ In release branch: | |||||||
|   to build locally and check version strings |   to build locally and check version strings | ||||||
| 
 | 
 | ||||||
| - push to CI branches to test and to build release binaries | - push to CI branches to test and to build release binaries | ||||||
|   - magit `P -f e origin/ci-windows` |   - `git push -f origin master:ci-windows`  (or magit `P -f e origin/ci-windows`) | ||||||
|   - magit `P -f e origin/ci-mac` |   - `git push -f origin master:ci-mac` | ||||||
|   - magit `P -f e origin/ci-linux-static` |   - `git push -f origin master:ci-linux` | ||||||
|   - magit `P -f e origin/ci-linux-static-arm32` (at release time only) |   - `git push -f origin master:ci-linux-static` (at release time only)) | ||||||
|   - Tips: |   - Tips: | ||||||
|     - build these release binaries at the very last possible moment |     - build these release binaries at the very last possible moment | ||||||
|     - last commit should be a notable one - not docs only, not beginning with ; |     - last commit should be a notable one - not docs only, not beginning with ; | ||||||
| @ -222,3 +167,83 @@ In release branch: | |||||||
| - handle issues | - handle issues | ||||||
| 
 | 
 | ||||||
| - update procedures, tools, docs | - 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