Trust-based development / New areas of expertise
The TYPO3 CMS Core has a lot of different areas. Right now no individual contributor or Core Team member knows every area of code by heart. This often makes it really hard to decide on how to proceed when it comes to specialized code areas.
As we have the subteams (i.e. Extbase, DBAL and Workspaces), where experts work together and know their area, the rest of the TYPO3 CMS Core could be split up like this as well. With the new “Active Contributor” role, a lot of people will have merge rights. In order to assure the quality, each contributor has to really consider whether a particular change will break existing functionality (especially in other areas).
Therefore each area (i.e. Extbase, FAL, Installer, Caching, Inline Editing, Javascript Frameworks, etc.) should have a group of people who are responsible for the further development of the code, and they should connect to the Release Manager about features for the next version.
In reality, some areas already work informally like this. More areas will be defined by the TYPO3 CMS Team Leader, and responsible groups of Contributors will be defined for certain areas.
Like before, new code should follow these premises:
- Each change-set shall pass the “4-eyes-principle” and thus have two other reviewers, at least one of them needs to be an Active Contributor (this will not be enforced technically, but shall be the basic principle of the review process)
- Each merge must be fully tested and additionally covered by unit-tests to avoid future misbehaviours as far as possible
- Every developer, but also every merger is responsible for those own changes
- If there is a responsible person / group for an area, this person needs to approve bigger changes to still meet the concept
- Any contributor is encouraged to do post-merge reviews, too