Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Who are

...

Code Committers?

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.

...


Right

Responsibility

Legal

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

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

openedx Repositories

Own

Review PRs and suggest technical changes in designated repositories

Learn and advocate for clean code, quality, and architecture principles and practices (per repository’s definition of done)

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

Process

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 review3
(not counting the author)

Required Technical Ownership

Maintenance updates & bug fixes

1 CCP CC Committer

N/A

Technical enhancements

1 CCP CC Committer

Acknowledgement from owning team4

End-user facing changes

1 edX product
1 CCP CC Committer

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.

Current Status

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.