How to start contributing to the Open edX code base

This article is for people who are interested in contributing code to the Open edX open source project space but don't know what contributions would be most valuable. 

Start Here!

Before we can merge your contribution you'll need to sign a Contributor Agreement.  We suggest starting that process sooner rather than later.

  1. If you are contributing as an individual go ahead and sign the Individual Contributor Agreement.
  2. If your work will be contributed as part of a company or institution email 

How do I know if I should sign the individual contributor agreement or contribute as part of a larger organization?

 Click here to expand...

If you will be working on your contribution during school or work time or are using an Github or email account administered by that organization you likely fall under our larger organization agreements.  You may also be under contractual obligation from your employer that all code you write is their property or may be their property if written on a machine that they purchased.  If you have any questions about whether you should sign the individual contributor agreement or contribute as part of an organization email your situation to and they will help find the right agreement for you.

Finding Something To Work On

We manage our project work in Jira, so you will need to create a Jira account to interact with our tickets.

We recommend starting with tickets in the INCR project because these are tickets that are extremely contained in their scope.  You don't need to understand the entire codebase to make a contribution.  The success criteria for completing these tickets are very clear.  These are great for anyone new to the Open edX platform because the barrier to entry is low.

  1. Find an INCR ticket to work on from the INCR Epics section of the INCR project dashboard.
    1. The INCR tickets are grouped together into Jira epic tickets.
    2. Select an epic from the dashboard and navigate to "Stories in this epic" to see all of the tasks associated with it.
  2. The tickets should be self documenting as to what steps to take to complete it.
  3. When you find one you want to try, comment on it that you are starting it.
  4. Click "Start watching this issue" to get updates in the future.

Get to Work!

Get Started with the edX devstack and follow the information in the ticket you selected to complete it.

Getting Support

Join the #incr Open edX Slack channel to ask questions and get support.  There may be also more channels to get technical support mentioned in your specific ticket.

If you get stuck on a particular ticket you should leave a comment on the ticket where you got stuck

We do our best to make these tickets clear and well-contained.  But sometimes the fix uncovers larger issues.  It's always okay to stop working on a ticket as long as you make it clear that that is what you are doing and try picking up a different ticket.

Making Your First Pull Request

When you are ready, create a Pull Request.  (Don't forget to sign the Contributor Agreement)

  1. Be sure to reference which INCR ticket your code is resolving.
  2. Mention @edx/incr-reviewers in the PR
  3. Communicate with the reviewer about the code and respond to feedback.
  4. Once your PR is approved it will be merged by the reviewer.
  5. Celebrate 🎉

Giving Feedback

We are always looking to improve this process and make it easier for people to contribute to the platform.  Your feedback is a very important part of that process.

Please submit that feedback here