What is the Maintainer’s Program?

The code for the Open edX project is hosted on GitHub, a site where collaborative editing of code takes place. Code is organized into logical repositories, collections of code that relate to one another. Think of GitHub like Google Docs, and repositories like little folders that contain documents that are related to each other.

One problem that can happen with repositories is that it’s not clear who is responsible for them, which can cause community members to not know who to ask for help, or the code to fall out of date (which can sometimes lead to security issues). To remediate this issue we introduced the Maintainers Program in an Open edX Proposal (OEP-55). The term “maintainer” refers to an individual or group of people who serve as leaders for a given component (generally, a GitHub repository) of the Open edX platform. Maintainers provide both technical and community management.

What do Maintainers do?

Maintainers have many technical and non-technical responsibilities. First and foremost, maintainers are the public face of each component and are welcoming and available. Maintainers enforce project standards – just like you’d correct typos and change syntax in a Google document, code projects have their own standards that everyone should follow.

From a non-technical perspective, maintainers participate in the Core Contributor selection process, ensure that the project’s upcoming work is done in public (that is to say, maintains a public roadmap), and ensure all project discourse follows the Open edX Code of Conduct. They also make sure that questions and bug reports are triaged in a timely fashion.

Technically, maintainers have a large set of responsibilities. Amongst other things, they must, ensure proper documentation exists, keep their repositories up-to-date with needed updates and fixes, and keep their repositories up-to-date with other Open edX components so they continue to work well together. Also, they understand the architecture of their component and have a documented “technical vision” – a way for the community to understand how the component works today and how it’s intended to evolve over the coming months and years.

How is the program going?

Currently, the program is in its second phase. In the first phase, a small group of teams from across the Open edX community (from Axim Collaborative, OpenCraft, eduNEXT, and 2U) got together to figure out how to practically implement the specifics of the maintainer project’s requirements from OEP-55. In the second phase, more maintainers are joining the program. The goal of this phase is to make sure that instructions about how to get set up as a maintainer – and how to perform ongoing duties – are easy to follow and meet the community’s needs.

Over the next six months or so, we plan to roll out maintainers on every repository. As part of this process, we may decide to “deprecate” some repositories, if no one can step up to maintain them. We hope that having maintained repositories will make it easier for the community to know who to reach out to with issues and for coders to contribute code. We will also reap the benefits of having code that’s up-to-date with the latest features and security patches.

For questions join the next Open edX Meetup on April 27th, 2023 at 10 AM (EDT), or join the Maintainer’s Program directly in the #maintainers-pilot Slack room, and/or post in the Development category on the forums.