82 lines
3.7 KiB
ReStructuredText
82 lines
3.7 KiB
ReStructuredText
*****************************
|
||
Process for Contributing Code
|
||
*****************************
|
||
|
||
Open edX is a massive project, and we would love you to help us build
|
||
the best online education system in the world -- we can’t do it alone!
|
||
However, the core committers on the project are also developing features
|
||
and creating pull requests, so we need to balance reviewing time with
|
||
development time. To help manage our time and keep everyone as happy as
|
||
possible, we’ve developed this document that explains what core committers
|
||
and other contributors can expect from each other. The goals are:
|
||
|
||
* Keep pull requests unblocked and flowing as much as possible,
|
||
while respecting developer time and product owner prioritization.
|
||
* Maintain a high standard for code quality, while avoiding hurt feelings
|
||
as much as possible.
|
||
|
||
Roles
|
||
-----
|
||
|
||
People play different roles in the pull-request review process. Each role has
|
||
different jobs and responsibilities:
|
||
|
||
:doc:`core-committer`
|
||
Can commit changes to an Open edX repository. Core committers are
|
||
responsible for the quality of the code, and for supporting the code in the
|
||
future. Core committers are also developers in their own right.
|
||
|
||
:doc:`product-owner`
|
||
Prioritizes the work of core committers.
|
||
|
||
:doc:`community-manager`
|
||
Helps keep the community healthy and working smoothly.
|
||
|
||
:doc:`contributor`
|
||
Submits pull requests for eventual committing to an Open edX repository.
|
||
|
||
.. note::
|
||
At the moment, developers who work for edX are core committers, and other
|
||
developers are contributors. This may change in the future.
|
||
|
||
Overview
|
||
--------
|
||
|
||
.. image:: pr-process.png
|
||
:align: center
|
||
:alt: A visualization of the pull request process
|
||
:target: ../_images/pr-process.png
|
||
|
||
If you are a :doc:`contributor <contributor>` submitting a pull request, expect that it will
|
||
take a few weeks before it can be merged. The earlier you can start talking
|
||
with the rest of the Open edX community about the changes you want to make,
|
||
before you even start changing code, the better the whole process
|
||
will go.
|
||
|
||
Follow the guidelines in this document for a high-quality pull request: include a detailed
|
||
description of your pull request when you open it on Github (we recommend using a
|
||
:doc:`pull request cover letter <cover-letter>` to guide your description),
|
||
keep the code clear and readable, make sure the tests pass, be responsive to code review comments.
|
||
Small pull requests are easier to review than large pull requests, so
|
||
split up your changes into several small pull requests when possible --
|
||
it will make everything go faster. See the full :doc:`contributor guidelines <contributor>`
|
||
for details of what to do and what to expect.
|
||
|
||
If you are a :doc:`product owner <product-owner>`, treat pull requests
|
||
from contributors like feature requests from a customer.
|
||
Keep the lines of communication open -- if there are delays or unexpected
|
||
problems, add a comment to the pull request informing the author of the
|
||
pull request of what’s going on. No one likes to feel like they’re being ignored!
|
||
More details are in the :doc:`product owner guidelines <product-owner>`.
|
||
|
||
If you are a :doc:`core committer <core-committer>`, allocate some time
|
||
in every two-week sprint to review pull requests from other contributors.
|
||
The community managers will make sure that these pull requests meet a
|
||
basic standard for quality before asking you spend time reviewing them.
|
||
More details are in the :doc:`core committer guidelines <core-committer>`.
|
||
|
||
Feel free to read the other documentation specific to each individual role in the
|
||
process, but you don’t need to read everything to get started! If you're not
|
||
sure where to start, check out the :doc:`contributor <contributor>` documentation. Thanks
|
||
for helping us grow the project smoothly! :)
|