From ea79b8d4dee0525f492ecb91644ab321c557db73 Mon Sep 17 00:00:00 2001 From: pancake Date: Fri, 31 Jul 2020 06:23:18 +0200 Subject: [PATCH] Add commit message rules in the CONTRIBUTING file (#17335) Co-authored-by: pancake Co-authored-by: Riccardo Schirone Co-authored-by: Khairul Azhar Kasmiran Co-authored-by: Anton Kochkov --- CONTRIBUTING.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bea7ea3432..cddd6b595f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,6 +27,7 @@ try to keep the codebase consistent and clean. and be sure to follow the CODINGSTYLE (more on this in [DEVELOPERS.md][]). * Submit the Pull Request(PR) on Github. +* Prefix the PR title with `WIP:` if it's not yet ready to be merged * When relevant, write a test in [test/](test). ## Rebasing onto updated master @@ -71,6 +72,52 @@ When afraid to touch force and risk losing your work (do backups!..), try *merging master into your branch* instead of rebasing onto it. This is discouraged, as it produces ugly hard-to-maintain commit history. +## Commit message rules + +When commiting your changes into the repository you may want to follow some +rules to make the git history more readable and consistent: + +* Start the message capitalized (only the first character must be in uppercase) +* Be short and concise, the whole concept must fit one line +* If a command is inlined, use backticks +* Add a double-hashtag if the change matters for the changelog (See below) +* If the commit fixes a bug start with 'Fix #number - ' +* For extra details, add an empty line and use asterisk item list below +* Use present simple grammar tense (Add vs Added, Fix vs Fixed/Fixes) + +### Commit message hashtag list: + +* ##anal - analysis related +* ##asm - assembler +* ##bin - binary parsing +* ##build - build fixes/changes +* ##config - config var changes/additions/renamings +* ##cons - console/terminal-related +* ##crypto - cryptography +* ##debug - debugger stuff +* ##diff - diffing code, strings, basic blocks, ... +* ##disasm - disassembler +* ##doc - documentation +* ##egg - the `r_lang` compiler +* ##emu - emulation, including esil +* ##graph - basic block graph, callgraph, ... +* ##io - related to the `r_io` library +* ##json - json fixes/changes +* ##lang - bindings +* ##meta - metadata handling other than printing +* ##optimization-space/time optimizations +* ##port - portability (new OS/archs) +* ##print - printing data, structures, strings, tables, types .. +* ##projects - saving/loading state +* ##refactor - improve code quality +* ##remote - r2 over tcp, http, rap, serial .. including collaboration +* ##search - rafind2, / command, .. +* ##shell - commandline, newshell, .. +* ##signatures-searching/generating them +* ##test - testing infrastructure fixes/changes +* ##tools - r2pm, rarun2, rax2 ... that don't fit in other categories +* ##util - core apis +* ##visual - visual ui, including panels # Additional resources