|Table of Contents
Committers, under the Core Contributor Program, are individuals with merge and ownership rights to (parts of) the Open edX codebase. They are essential contributors to the Open edX ecosystem with demonstrated influence on the technical upkeeping upkeep and direction of the platform.
Currently, only edX engineers and contractors have these rights. This document describes a phased program for expanding these rights to other members of the Open edX community.
Initiation and rollout of the CCP Core Committer program will need to ensure that we:
Continue to remain in compliance with edX’s security (PCI, etc), privacy (GDPR, etc), and a11y commitments.
Since edX.org deploys continuously off of master, please work with your champion the relevant groups (https://docs.google.com/spreadsheets/d/1ryqbaxMp4x-8Apwss2Br2IOU2UA7zXEI-VDo8dJPb9U/edit#gid=0) to determine when appropriate merge windows are; guidelines will vary repo-to-repo. Guidelines generally are , as they come online, are maintained here: Merge Timing Guidelines for Public openedx Repositories
Do not regress in the forward movement we are concurrently making on technical ownership. For each Committer contribution, we will need to ensure:
edX Product accepts future maintenance costs of new/enhanced features in the platform.
edX Engineering owning team acknowledges acceptance of ownership of changes.
Support Committers who are at varying levels of technical expertise, though they must demonstrate excellent judgment and accountability.
Be transparent and open about the existence and eligibility of the Committer program.
Constrain Committer’s relationship to the Open edX (public) codebase, without exposing edX-confidential business or data.
Hold an equal bar for both edX engineers and community engineers, in the long-term. In the future, for instance, edX engineers might earn merge rights just as other contributors to the platform.
Respect edX’s right to modify and terminate the Committer program.
Be an individual Committer regardless of organization affiliation
Sign individual (and, if needed, entity) contributor agreements, per edX legal requirements
Renew annual continued interest in being an individual Committer
Complete annual training for security, privacy, a11y, and architecture
Merge to master, using defensive CI/CD techniques such as feature toggles
Ensure approved review process is upheld and be on-call to address issues with recently merged PRs. Follow Merge Timing Guidelines for Public Repositories
(for Pilot) 2 designated edx-internal champions to support Committer with on-call issues
Retain strong communication with the champions, including visibility into expected merges and time availabilities
Review PRs and suggest technical changes in designated repositories
Co-establish technical direction of designated repositories1
Documenting and reviewing decisions in ADRs (and OEPs) and maintaining READMEs, HowTos, etc
Co-maintain prioritized backlog of needed technical improvements of designated repositories.
Negotiate and allocate a regular percentage of time toward technical upkeep, including refactorings and other items listed in this column.
(in Future) Co-own designated repositories
Ongoing upgrade and feature maintenance and other ownership costs of designated repositories
Vote in the selection process for future Committers
Train new/young developers2 to help hone their own judgment and skills, while following our code of conduct
Co-establish the selection process for Committers
Lead by example
Type of change
Required Technical Ownership
Maintenance updates & bug fixes
1 CCP CC Committer
1 CCP CC Committer
Acknowledgement from owning team4
End-user facing changes
1 edX product
Acknowledgement from owning team
3 In the event of any disagreement between Committers, it is expected that the Committers will demonstrate appropriate judgment and work it out amongst themselves. If moderation is required, they can reach out to Nimisha, as head of architecturethe #core-contributors Slack channel for additional guidance.
4 The process for “acknowledgment” from the owning team is left to the discretion of the Champion owning team and Committer so they may find a working model for the relevant changes. For certain types of contributions, a one-time acknowledgment at the beginning of a project is sufficient to avoid blockers on every PR.
The Committer program is currently in its Phase 2, as described in Core Contributor Committers: Phases for Rollout. The program relies on individual edX champions to support designated Committers; as of Sept 2021, we are piloting a team-based model with some newly added Committers.
In Phase 2, we are removing identified friction and enhancing the program’s operations, as tracked in GitHub. We are also expanding the program: inviting additional technical Committers per edX champion capacity and inviting non-technical core contributors.
In Phase 3, we will expand and scale further, by removing dependencies on individual edX champions.