On reviewing Merge Requests (MR)
Some fundamentals
Disclaimer
probably nothing new
but good to summarize
Disclaimer 2
I personally violate these principles way too often.
Learn from my mistakes ;)
Let me know if I am missing some things here
Goal of MR review
Get good and useful code in master
Keep bad and useless code out
Code is good if
- bug-free
- readable
- well-designed
- well-documented
- well-tested
- well-styled (see style guide)
Code is useful if
- improves "goodness"
- see previous slide
- bugfixes are almost always good
- implements a useful/required feature
- corollary: unneeded features should not be implemented
- corollary 2: what is useful/required is often up for debate and subject to change
MR review: interplay between author and reviewer
- Both have responsibility
- Author: make it easy for reviewer
- Barts mail
- e.g. blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests/
- Reviewer: focus on the essentials
- e.g. fuelcycle.org/kernel/pr_review.html
- some personal caveats (see end of presentation)
MR reviews should be swift
Problem with long-standing MRs:
- bugs stay unfixed
- implemented features stay out of master
- new features are not started
- new features are started on old design (merge conflict overhead)
- chains of rebasing for old merge requests
- also holds for rejected MRs!
Hence: focus on essentials
Some reviewing caveats
- Keep feature requests out of MR review
- make feature request instead
- if you see a code improvement, make an issue, or better yet, code it ;)
- as extra commit to existing MR or as new MR
- ignore code preferences
- note context: company delivering products under contract vs. experimental research tool
- stay friendly
- goal is to write great code, not to win arguments
On merge requests
By krr
On merge requests
- 1,330