A [[Software engineering MOC|Software engineering]] practice of merging all developers' working copies to a shared [mainline](https://en.wikipedia.org/wiki/Trunk_(software) "Trunk (software)") several times a day.
## Conflation
The term *Continuous Integration* can also be used to mean use of a CI server which centrally runs checks and tests on code which has been merged. However, using a CI server does not mean that a team is practising CI. For example, features could spend a week or 2 in a feature branch and before being merged, kicking off a CI build.
## #OpenQuestions
- How can small async dev teams practise both CI AND [[Peer code review]]s, (e.g. via [[Pull Request]]s)? I'm assuming here that there is no [[Pair programming]] as team members can potentially be working async across timezones, and I'm also assuming that commits being merged are for features which are still incomplete (and possibly controlled by a [[Feature toggle]]). A PR scoped to a full feature implementation is a natural batch for a reviewer as they can see the full context. Requiring reviews for smaller WIP chunks may not be feasible in terms of the interruptions to the reviewer and also the fact that they won't have the full context. It's possible to use specced but not yet implemented tests (`it.todo` in Jest) to mitigate this second factor, as these would show the intention of the author to handle these other behaviours in future commits.