;doc: contrib: draft of new commit conventions
This commit is contained in:
		
							parent
							
								
									b669adb511
								
							
						
					
					
						commit
						f260cf6b17
					
				| @ -507,6 +507,61 @@ Relevant tools include: | ||||
|   [log](http://ircbrowse.net/day/hledger/2015/10/11) --> | ||||
| 
 | ||||
| 
 | ||||
| ## Commit messages | ||||
| 
 | ||||
| Starting with the 1.23 release cycle, | ||||
| I'm proposing some new [conventions](https://conventionalcommits.org) for commit messages. | ||||
| These are WIP and will evolve as we need. They are intended to: | ||||
| 
 | ||||
| - reduce the cost of maintaining change docs (changelogs, release notes, announcements) | ||||
| - reduce the cost of releases | ||||
| - encourage considered, focussed, well documented changes | ||||
| - increase our throughput (the rate of shipping useful, reliable, documented, maintainable features) | ||||
| 
 | ||||
| 1. Commit messages in hledger's main repo will follow this pattern: | ||||
| ``` | ||||
| type: [optionaltopic:] summary | ||||
| 
 | ||||
| [Optional description, more details here when needed.] | ||||
| ``` | ||||
| 
 | ||||
| 2. The type prefix is one of the following: | ||||
| 
 | ||||
| - Changes visible to end users (including users of hledger-web's HTTP API) - | ||||
|   these will be mentioned in release notes as well as changelogs. | ||||
| 
 | ||||
|   - `feat:` - a new feature | ||||
|   - `imp:`  - an improvement to existing features | ||||
|   - `fix:`  - a bugfix | ||||
| 
 | ||||
| - Changes affecting packagers, builders (including users installing | ||||
|   from stackage or hackage), and library users (Haskell programmers | ||||
|   using our library APIs) - these will be mentioned in changelogs but | ||||
|   usually not release notes. | ||||
| 
 | ||||
|   - `cha:` | ||||
| 
 | ||||
| - Changes of interest only to developers/debuggers - | ||||
|   these will not be mentioned in changelogs or release notes. | ||||
| 
 | ||||
|   - `;` - short spelling for convenience, think "commented out of changelogs". | ||||
| 
 | ||||
| 3. A topic prefix, and maybe even a subtopic prefix, can be added if | ||||
|    useful. These are standard prefixes similar to what I have been | ||||
|    using for some time (cf [labels](#labels), | ||||
|    [components](#components); I'll make an updated list in due | ||||
|    course). They help with readability in the commit history, | ||||
|    changelogs and release notes. | ||||
| 
 | ||||
| 4. The summary, and description if any, communicate this change's | ||||
|    purpose as clearly as possible to its target audience: end users, | ||||
|    builders/packagers/library users, developers/debuggers. The text | ||||
|    should be ready for use in changelogs/release notes when applicable. | ||||
| 
 | ||||
| Crafting good commit messages (and thereby, good commits, and good | ||||
| change documentation) is an art and a habit; we'll try to check and | ||||
| apply these conventions as part of CI and code review. | ||||
| 
 | ||||
| ## Pull requests | ||||
| 
 | ||||
| Most contributed hledger code (and some of the project maintainer's code) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user