OEP-54: Core Contributors#

OEP

OEP-54

Title

Core Contributor Program

Last Modified

2023-11-28

Authors

Sarina Canelake <sarina@axim.org> Edward Zarecor <ezarecor@axim.org>

Arbiter

Xavier Antoviaque <xavier@opencraft.com>

Status

Accepted

Type

Process

Created

2021-12-20

Review Period

2022-01-05 - 2022-02-01

Abstract#

This document defines the Core Contributor (CC) Program, a program that grants rights to individuals in the Open edX community that allow them to actively participate in defining and deciding the direction of the platform.

Motivation#

The Open edX project benefits from a wide variety of perspectives at all levels. Having an inclusive group of people participating in the project and helping to shape its direction will lead to a more vibrant platform ecosystem that fosters stronger innovative collaboration within the Open edX community, increased velocity that accelerates platform advancement, and increased capacity to own and maintain all aspects of the platform.

Specification#

The Open edX Core Contributor Program grants specific types of access rights to Open edX community members, which enables them to further the development and adoption of the Open edX platform. CCs earn these rights by sustained, active participation in the Open edX community and by following the “3 Cs”: Commitment, Conduct, Caliber. Core Contributors follow the Code of Conduct, are respectful of other community members, are polite and welcoming to all in the community, and have shown the ability to deliver high quality work over time.

Core Contributor Roles#

There are many contributors to the Open edX platform that participate in a variety of ways - writing code for the Open edX software, translating the project, performing Quality Assurance tasks, participating in the Marketing working group, writing documentation, and more. At the time of writing we have identified the following roles: Project Manager, Translation Lead, Code Contributors, Forum Moderators, UI/UX Designers, Marketing Team Members, Documentation Writers, QA, and Product Managers.

All CCs are granted some Rights to the project as part of participating - the ability to merge code, the final say on marketing copy, etc. In exchange for these Rights to contribute, we ask that CCs abide by their Responsibilities. For more on the CC roles, and Rights & Responsibilities, see Core Contributor Role Definitions.

Note that roles vary in what they need from members; the wiki will be the most up to date source of what each role entails and what types of commitments are expected.

Core Contributor Program Administration#

The Core Contributor Program is administered by Axim Collaborative. One or more persons at Axim (the “Program administrator(s)”) work with the community to make sure the program runs smoothly: this entails facilitating communication amongst community members, selecting new members, and ensuring that existing members renew their commitment to the community and abide by the Code of Conduct. Program administrators are empowered to monitor Core Contributor conduct, particularly whether they follow the “3 Cs” (Commitment, Conduct, Caliber), and may issue reminders, suspensions, and even removal from the Program. Contact the Program Administrators as needed.

The Axim administrator(s) are the point people for making sure that needed agreements are signed. Foremost, this is a Program Agreement between the CC and Axim (sent to you by a Program Administrator). Additionally, if the CC commits code to a GitHub repo, a CLA is needed (which should have been signed when you made your first PR). Finally, for new companies or organizations joining the community, an Entity Contributor Agreement most be signed (please communicate with a Program Administrator about this).

We are additionally asking that all companies and teams joining the Open edX community sign the Revised Declaration of Commitment to the Core Contributor Program to demonstrate that they are willing to engage with and commit resources to the Open edX project. We encourage a commitment of 20 hours/month from each of an organization’s Core Contributors, however, we recognize that circumstances differ and a different commitment may be more appropriate. Before signing the agreement, please Contact the Program Administrators to discuss.

The scope of the work or contributions considered as part of the Core Contributors duties, and counted towards an organization’s commitments, is defined at https://openedx.atlassian.net/wiki/spaces/COMM/pages/3593502844/Core+Contributor+-+Work+Scope

Questions about the Program can be directed to the Axim administrator(s) via the #core-contributors Slack room in the Open edX Slack.

Adding New Core Contributors#

New Core Contributors are determined via a nomination process - CCs may nominate new members, or existing community members may put themselves forward for a role.

Current CCs should always be on the lookout for contributors who demonstrate the “3 Cs” (Commitment, Conduct, and Caliber), follow the Code of Conduct, are respectful of other community members, are polite and welcoming to all in the community, and have been an overall active community member for some time. When a person like this comes to the attention of a CC, the CC should reach out and ask if that person would like to be nominated as a CC.

Community members who feel they fit these criteria listed above should feel empowered to nominate themselves, as well.

Note that when a new Core Contributor role is being defined and piloted, however, nominations should proceed only once the Program Administrator is confident that new Core Contributors in that role can be supported. Contact the Program Administrators when there is any uncertainty around the status of the role.

At times, the Core Contributor program may suspend accepting new members, when there is insufficient support for additional people in a given role. Program Administrators will indicate this by posting in the Core Contributors discussion category.

New Core Contributor Nomination Process#

The process for nomination is as follows:

  1. An existing CC (“sponsor”) chooses to nominate a community member (“sponsored candidate”) for a new CC position (if they already hold a CC position, they should still be nominated for a new role). A current community member (“organic candidate”) may also decide to put themselves forth for nomination.

  2. The sponsor or organic candidate posts a new public nomination thread on Discourse, in the Core Contributor discussion space (one nomination thread per candidate, per role).

    1. This post introduces the candidate and describes in a few paragraphs why they are suited to join the program. Core Contributors in any role must demonstrate the “3C’s” prior to joining the program, thus, the nomination thread must explain how the candidate has done so. This will include providing links to examples of previous Open edX work (for example, pull requests) that has been done for the community (as opposed to work done for a specific installation, that has not been contributed back to the larger community).

    2. The post should also indicate the candidate’s expected commitment to contribution - if the candidate is part of an organization, this should be covered as part of the organization’s signature to the Declaration of Commitment to the Core Contributor Program, as covered in the program administration section.

    3. This post should tag the maintainer(s) for the candidate repo(s) if they exist.

    4. Finally, the post must mention the date when the comment period ends, which is at least 2 weeks from the start of the thread. Please be mindful of times such as holiday breaks where people may have limited availability.

  3. The sponsor or organic candidate posts a link to the Discourse post in the #core-contributors Slack room, as well as any other Slack rooms relevant to the CC role being discussed (for example, repo-specific rooms for coding contributors, translation team rooms, etc). The messages must indicate the dates of the comment period.

  4. During the comment period, other CCs should weigh in on the thread. Core contributor posts should conclude with a definitive “yes” or “no” vote. While comments and support from the entire community are welcome, for the purposes of this process, CCs are the only authorized voters. “Liking” the nomination post does not count as a vote.

    1. Any Core Contributor may vote on any CC nomination, regardless of their contributor role.

    2. In the case of Core Contributor nominations that involve granting commit access to repos, anyone who has commit access to any of the repos in question may also vote.

    3. All community members are welcome to provide comments on the thread.

    4. CoC violations or other behaviors not upholding the “Conduct” quality of the 3 Cs ought to be raised by anyone, whether in the Discourse thread or to the Program Admins.

    5. If anyone has concerns they feel cannot be raised publicly, they should Contact the Program Administrators to determine how to proceed. The Administrators should discuss the concerns and try to figure out a way the person could post those concerns themselves; if they cannot, the Administrators should post an anonymized version of the concerns on the Discourse thread.

    6. For those leaving a “no” vote: Remember to leave constructive criticism! A “no” vote should be interpreted as “candidate isn’t ready yet”. In this case, provide some tips as to how they could make it into the program. And please err on the side of leaving that feedback, rather than not replying at all. A good way to deliver this feedback is “Thank you for contributing to the Open edX community. However, I feel you are not quite ready for this role, for <reasons>. Some ways you could address these are <action items>”

  5. Over the course of the comment period, the sponsor, sponsored candidate, or organic candidate should respond to all concerns that come in. It may also be necessary to periodically nudge other CCs to respond to the thread.

    1. At any time, the candidate may choose to withdraw from the process. The candidate should leave a note on the thread, and close it if they wish.

  6. At the end of the comment period, a candidate is approved if there are at least 5 (five) affirmative “yes” votes from current CCs, and zero “no” votes.

    1. Candidates coming from an organization must have support from someone outside their organization. This can be done by having a sponsor from outside their organization, or by receiving at least one “yes” vote from someone outside their organization. This is to ensure that core contributors are evaluated on their ability to communicate with the community, outside of their org.

    2. For roles with few existing members, it is encouraged to ask CCs of other roles to help evaluate the candidate.

  7. If the candidate is approved, the candidate should follow the procedures outlined in the onboarding runbooks to get the access they need for their role.

  8. If the candidate has not been approved, the sponsor (or Program Administrator, in the case of organic candidates) should discuss with the candidate what they need to work on to become a CC. We encourage the sponsor/Administrator to help the candidate develop a plan of action so that they can be successful in the future.

Expansion of Core Contributor Responsibilities#

Certain Core Contributor roles have multiple types of responsibilities, and a given Core Contributor may only hold a subset of these. For example, a CC with commit rights generally holds commit rights for only some of the 150+ openedx code and document repositories.

Expanding a CC’s responsibilities should follow the same process as establishing a new contributor, although in most cases, the comment period need only be one week. In addition, for newly created repositories or similar situations, a single forum thread can be used to nominate several existing CCs at once, provided they already hold similar responsibilities (e.g. proposing several people who are already coding CCs to get commit rights for a new repo).

However, in cases where the new responsibilities are greatly different from the responsibilities currently held (for example, a coding contributor having previously held only backend repo commit rights asking for permission to a frontend-* repo), consider making the comment period the full 2 weeks, and use a separate thread for each individual as usual.

Where Do I Start?#

New community members interested in the Core Contributor program should get in touch with us! First check out the discussion forums; there are a lot of different categories, and we encourage new members to spend some time in the forums, reading through to understand what’s going on and jumping in to ask questions. The #core-contributors room in Open edX Slack can help guide people towards others working in their area(s) of interest. For those joining Slack for the first time, here’s an invite.

Existing community members who have a record of contributing to the Open edX project should feel free to reach out to current CCs who have the role they’re interested in. Engaging in conversation to see what it’s like to be that type of CC is invaluable. CCs might even be able to take a look at work the community member has done, however, CCs may be pretty overloaded, so offense shouldn’t be taken if someone doesn’t have time at that moment to help.

If you don’t know where to begin, try joining a working group - working groups may have tasks you can pick up to start showing off your skills. Start participating on the discussion forums; some working groups have an active presence there, and you’ll get a chance to hone your Open edX expertise by answering questions. And finally, you can find core contributors and ask questions about the program and your interests directly either in the Core Contributors discussion category or in the #core-contributors room on Slack.

Removing Core Contributors#

Occasionally, it may become necessary to remove an individual from the Core Contributor program. Some reasons this may happen include:

  • A CC leaves the project or changes employment and does not wish to continue participating

  • A CC does not have the time or interest to continue in the role

  • A CC is not fulfilling the responsibilities of the role

  • A CC is not upholding the standards of the community

Trigger events for removing a CC would be:

  • A CC informs the Program Administrators that they can no longer continue in the role

  • A CC has not been able to fulfill the commitments made in the Revised Declaration of Commitment to the Core Contributor Program, or has been unreachable, for more than 6 months. See fulfilling CC commitments

  • A CC hasn’t met project quality standards consistently despite feedback

  • A CC has consistently shown poor judgement, such as merging PRs without due consideration or addressing outstanding concerns

  • A CC has violated the project Code of Conduct

For those wishing to indicate they are leaving the CC program, or to report a Code of Conduct violation, please Contact the Program Administrators.

Core contributors are responsible for reporting when they aren’t able to fulfill their commitments. Program administrators will do regular checks, at least once per quarter, to identify CCs who are unreachable or fall short of their commitments. In such cases, the program administrator will reach out to the CC to discuss the best corrective actions to take.

In case there is no reply, the inactive CC would be removed for security reasons. Removed CCs may get in touch with Program Administrators to fast-track getting their access back.

Contact the Program Administrators#

Questions about the Program can be directed to the Axim administrator(s) via the #core-contributors Slack room in the Open edX Slack or at cc-program-admins@axim.org.

Appendix: What Are The 3 C’s#

The “3 Cs” (Commitment, Conduct, and Caliber) are the guiding principles of the Core Contributor program. We expect all Core Contributors to exemplify these values every day.

Change History#

2023-11-28#

  • Add “3 C’s” appendix.

  • Update outdated wiki link.

2023-11-28#

  • Clarify that CCs are the voters in this process and that 5 CC votes are required.

2023-02-20#

  • Establish a streamlined process for assigning existing CCs to a newly created repo.

2022-07-18#

  • Clarify that CC nominations must provide supporting evidence that candidate has demonstrated the 3C’s

  • Pull request #355

2022-06-08#

2022-02-28#

2022-02-16#

  • Added clarifications around the voting process for new CC members.

  • Pull request #293

2022-02-11#

  • Specify how to expand responsibilities for roles with fine-grained permissions (such as code committers)

  • Pull request #296

2022-02-04#

2021-12-20#