Code stewardship
This page is currently a draft.
|
Overview
Code stewards are ultimately responsible for the development policies, support, and overall health of the code in question. As MediaWiki continues to grow and become further depended on by millions of users, it has become increasingly important that the code-base remains healthy while also enabling the continue evolution of its capabilities.
As an open source code base, MediaWiki and all it's extensions, skins, and apps (mobile apps and infrastructure) have many potential contributors, including paid staff members (like Wikimedia Foundation staff) as well as volunteer contributors. With the large number of potential contributors, some level of direction and guidance is necessary. This is effectively was is meant by code stewardship.
Although there is already a Developer/Maintainers list, code stewardship looks to take the additional step of defining some of the expectations associated with being a maintainer, especially one with +2 rights.
Stewardship
Code stewardship covers several different areas, included are:
Code Reviews
Reviews are a critical part of the development process, but can be one of the most challenging due to the dependence on others. It is not uncommon to find many patches waiting to be deployed that are being delayed due to a review bottleneck. This can be not only detrimental to the health of the code, but also frustrating for those trying to contribute.
Code stewards are responsible for adopting common review approaches (see Code review), augmenting them if necessary, as well as defining responsiveness timelines (aka Service Level Agreements).
Bug Resolution
Bugs (aka Defects), especially a lengthy backlog, can be seemingly insurmountable. Managing that backlog, insuring timely resolutions, and applying lessons learned to future development are challenging at best without strong code stewardship.
Code stewards are responsible for following established bug management policies (see Bug management) as well as defining bug responsiveness timelines (aka Service Level Agreements).
Code Health
Whether it be creating development policies, removing technical debt, or simply ensuring that a code base is easy to work with, it can be challenging to maintain high code health without code stewardship. Code stewards play a critical role in ensuring that those that are contributing to the code are enabled to do so in ways that improve overall code health.
- Coding standards
- Testing guidelines
- Design patterns
Stewards
In order to be considered a steward for a component, the person or group needs to commit to meet or exceed the Base Service Level Agreements and agree to be responsible for its overall code health. Due to the nature of this commitment, it's generally taken on by a Wikimedia Foundation team or other Wikimedia chapter.
Please refer to the developers/maintainers page for a listing of existing stewards in addition to component level SLAs.
Base Service Level Agreements (SLA)
In the absence of existing component SLAs, the following are to be used.
Production
| Activity | Unbreak Now | High | Normal | Low | Lowest |
|---|---|---|---|---|---|
| Code Review | 1 day | 3 days | 7 days | 14 days | 14 days |
| Bug Fixed | 7 days | 14 days | 30 days | NONE | NONE |
Non-Production
| Activity | Unbreak Now | High | Normal | Low | Lowest |
|---|---|---|---|---|---|
| Code Review | 7 days | 14 days | 21 days | 30 days | 30 days |
| Bug Fixed | 14 days | 30 days | 60 days | NONE | NONE |