Core Contributions¶
We dedicate a large budget for contributions, allowing many OpenCraft members to become Core Contributors. We set a contribution level for the team in the Declaration of Commitments to the Core Contributor Program and of the Partner Program, along with other community members. Team members looking to join the Core Contributor program in the near future can reach out to the owner of the Core Contributor epic to get the latest information on the current budgets and vacancy of core contributors roles within the team.
Priorities for Core Contributor Work¶
We set priorities that we want our team's Core Contributors to focus on - see the section on "Priorities for Core Contributor Work" in the description of the Core Contributor Program epic for details.
Technical Upkeep¶
This involves tasks such as updating documentation, fixing bugs, updating packages, and improving developer onboarding.
Other Responsibilities¶
Aside from current priorities, it's important for Core Contributors to spend time on community engagement and technical upkeep. Responsibilities include:
- Monitor OEPs, ADRs, and community discussions on the forum, and ensure that OpenCraft participates in relevant ones.
-
Answer questions from the community.
- Note that you should generally favor helping one person more fully, over having many smaller contributions to more threads.
-
Monitor the Open edX Slack, in particular the #opencraft channel. Follow up on community questions that pop up there, and mentor other community members as needed.
Counting Contributions¶
Every team member who is a core contributor has their required contribution hours, and OpenCraft seeks to push the community to contribute more work to the project, by showing that it is possible to contribute most of the work we do on a daily basis as a provider. So we need to count all hours spent on core contribution tasks, both by our Core Contributor team members and by our members at large. This allows us to verify that we're keeping our commitments and also enables us to raise the bar across the community for contributions.
What counts as a Core Contribution¶
To determine what counts within scope for core contribution work, you should refer to the official document. However, we recount here a handful of things which we believe are contributions even if they aren't obvious from the wording in that document.
- Tasks where we're contributing changes to the platform on behalf of a client. These are pull requests to a repository under the Open edX Github organization.
- Tasks where we're contributing changes to the Tutor base and to Tutor plugins which are officially supported by the Open edX project.
- Tasks where we're contributing to plugins that are part of the core offering (such as our Poll XBlock).
- Tasks where we're working on product improvement proposals or the implementation of these proposals.
- Tasks where we're building an XBlock or a plugin and have a product proposal in-flight. This should be all of them, per our 'upstream everything' value.
- Any discovery, design or planning work involved in the above.
Note
Any funded contribution work from Axim is to be explicitly excluded even if it would otherwise count toward Core Contribution hours.
In the case that a contribution is not accepted upstream, work after that point will not count toward contributions. If an extension is granted a specific exception from being upstreamed, work on that extension will also not count toward contributions.
Tagging Contributions¶
To track contributions, you must tag tickets in Jira that match these criteria with the CoreContributor label. When creating tickets in your epics, consider whether it involves any of the criteria in the previous section. If it does, tag the ticket so it can be tracked in the reports. If in doubt, ping the owner of the [Core Contributor epic] for clarification.
Budgets and Targets¶
Core Contributors to the Open edX Platform are expected to contribute a minimum amount of hours to the project. This may vary from year to year as the program evolves, and you can refer to the Contributions Epic to keep tabs on the current requirements.
All team members are required to hit their targets. You may spend as many hours as you like on contributions as long as those hours are billable, and you should aim to make as many of your contribution hours billable as possible (which should be straightforward since we aim to upstream everything.) However, to ensure that we meet our commitments, some budget is available for general contribution work not associated with any client's needs or pre-allocated maintenance budgets. This budget is managed in the Contributions Epic and if you find yourself dipping into it, check with the epic owner for any advice on how to make the contributions billable moving forward.