A network of active maintainers can help lead to a well-functioning software ecosystem. Maintainers are responsible for the health of a repository, which includes its functionality, documentation, and communication. Maintainers are also responsible for the health of the community around the repository, which includes the responsiveness of the maintainers, the clarity of the repository’s purpose, and the accessibility of the repository to new users.
Below is the the RMI Software Product and Data Team's guidance for what it means to be the maintainer of a repository. The guidance is not necessarily exhaustive, but should give an idea of what the expectations are of a maintainer.
Maintainers are responsible for clear communication regarding the state of the repository and its intended use, including any expected changes in usage. This includes clear documentation of its interface (see Documentation, below).
They must update the repository in a timely manner, which involves bug fixes, reviewing issues, and updating GitHub actions.
They must provide good documentation to explain the expected functionality and outputs of the repository.
Maintainers are the decision-makers for structural changes or contentious features within the repository.
Maintainers should be particularly cautious about changes to repositories that are dependencies of larger workflows to avoid breaking changes.
Maintainers are responsible for communicating overall application version through some informative version identifier. See Software Versioning for more information.
Any substantial change that may affect other parts of the workflow should be communicated, preferably in a tech review call or similar forum, to discuss the potential impacts and necessary adjustments.
We considered aspects of the ROpenSci Maintainer Definition when creating this document.
- The maintainer of a repository can be optionally communicated to the public by using GitHub's
CODEOWNERS
feature.