Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 27 Next »

Who are CCP 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 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.

Why?

We believe having a more inclusive Committers group will lead to a more vibrant platform ecosystem that fosters:

  • stronger innovative collaboration with the Open edX community

  • increased developer velocity that accelerates platform advancement

  • increased developer capacity to own and maintain the platform

Principles

Initiation and rollout of the CCP 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.

  • 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.

Committer Rights and Responsibilities


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 follow guidelines.

(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

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

1 Sharing insights into product goals and roadmap will enable us to be successful in establishing technical direction.
2 Each Committer uses their own experience and judgment to determine how best to train new folks. For example, investing time in scaffolded constructive reviews on both code PRs and design/decision PRs can have a multiplicative effect.

Reviews and Ownership

The requirements for when edX Product must review a PR varies based on the type of change as summarized in the table below. Similarly, non-trivial changes need to be accepted by the team that owns the repository in order to ensure the owning team has the context for the change and acknowledges its future ongoing maintenance.

Type of change

Required review3
(not counting the author)

Required Technical Ownership

Maintenance updates & bug fixes

1 CCP Committer

N/A

Technical enhancements

1 CCP Committer

Acknowledgement from owning team4

End-user facing changes

1 edX product
1 CCP 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 architecture.
4 The process for “acknowledgment” from the owning team is left to the discretion of the Champion 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 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.

  • No labels