In the following, we'll assume a setting with a Git repo, master branch and pull requests (e.g. Github). We'll also assume that some tests are run on each pull request to verify correctness of a commit which is a candidate to be the next state of the master branch, of which is a direct descendant (whether this candidate is authored by a user or the result of an auto-merge between a user-authored commit and the last master branch doesn't matter).
A predicate run on the candidate commit x
. P :: Commit -> Bool
.
In principle a function Commit -> A
(e.g. running a compiler on some source code) and some predicate A -> A -> Bool
(e.g. ==
).