pip3 install --user git-filter-repo
cat <<EOF > .mailmap
eagleusb <git@eagleusb.com> <capscale@foolul.net>
EOF
git filter-repo --mailmap .mailmap
This is extensively copied or inspired from GitLab engineering processes.
The goal here is to have minimal set of efficient ways to ensure and improve collaboration within code reviews.
These are not just words :°)
- be kind.
- accept that many engineering decisions are opinions, discuss tradeoffs and reach consensus quickly.
- ask questions; don’t make demands
- ask for clarification
- avoid selective ownership of code. ("mine", "not mine", "yours")
- be explicit, remember people don’t always understand your intentions online
- be humble ("i’m not sure - let’s look it up")
- don’t use hyperbole ("always", "never", "endlessly", "nothing")
- be careful about the use of sarcasm
- consider one-on-one video call if there are too many misunderstandings and post a follow-up comment summarizing it
The responsibility to find the best solution and implement it lies with the merge request author.
- general principles:
- it actually solves the problem it was meant to solve
- it does so in the most appropriate way
- it satisfies all requirements
- there are no remaining bugs, logical problems, uncovered edge cases, or known vulnerabilities
- technical principles:
- re-read every line
- test your code locally
- write a test for every change (or as many as you can)
- write a clear description and update it after each feedback cycle
- general principles:
- ensure good overall architecture
- ensure compliant code organization, consistency, and readability
- ensure separation of concerns and DRYness
- technical principles:
- use conventionnal comments if possible
- read every line
- suggest alternative implementations but assume the author already considered them
- if you don't understand a piece of code, say so by asking
- approve the merge request and be responsible for it
- advise the author their merge request has been reviewed and approved
These are verbs we can use to highlight some intent during merge requests reviews.
The format of comment is as simple as:
<verb>: <comment>
A simple example would be:
**praise**: conventional comments is awesome, let's use it
The current list of verbs and meanings is the following:
Verb | Description |
---|---|
praise: | highlight something positive. Do not leave false praise which can actually be damaging |
nitpick: | small, trivial, but necessary changes |
suggestion: | propose alternative(s) with in minde that author should have thought about it |
issue: | user facing problems, best with a suggestion to solve it |
question: | to ask clarification |
thought: | digressing idea(s) coming during the review |
chore: | chores that must be done before merging |