The questions
Since last November, these questions have come up a lot:
- What repositories can go in the openedx GitHub organization?
- What repositories must go in the openedx GitHub organization?
We’ve been using the OEP process to try to answer these questions collaboratively:
- OEP-57: Product Offering is in review, check it out!
- OEP-61 will come next. It’ll build on OEP-57 to propose a criteria for what code should be in named releases, and what code should be in the openedx org.
However, it’s become clear that we need an answer to these questions now in order to do our work, particularly around release time. So, here’s how we (tCRIL) recommend operating from now until when we have a real OEP to guide us. Let us know if you have any questions or concerns.
Our guidance
-
Repositories can be added to the openedx organization if they are of interest to the Open edX community and are willing to accept community contributions. Anyone can submit a tCRIL request if they want to add a repository to the organization. In that request, we’ll discuss whether the repositories meets those criteria, as well as whether there are any legal constraints around us accepting the code.
-
Repos must be added to the openedx org before they become critical dependencies of any other repository in the openedx organization.
- Example: A frontend component must be added to the openedx organization before it can be installed into frontend-app-gradebook.
- Exception: Third-party libraries upon which openedx code depends do not need to be added to the openedx organization. For example: django, requests, celery, react, etc.
- Note: Tutor code is hosted in the overhangio organization. Although Tutor is the supported distribution/installation method for Open edX, code in the openedx organization does not (and should not) have critical dependencies on Tutor or any other overhangio code. It should remain possible to run the platform without using Tutor.
-
Repos must be added to the openedx org if they are to be included in future named releases.
Implications
- Starting with Palm, we will only consider tagging repositories that are in the openedx GitHub organization. There are certain repositories in the edx organization that we will either need to move in to the openedx organization, or remove from the next release.
- A number of repositories currently break rule #2. We may move some repositories around to improve things; mostly, though, we just want to avoid having new exceptions. After the OEPs are complete, we’re more likely to proactively make changes.
This all seems a little pedantic. Why does it matter?
- tCRIL cannot see security alerts for code outside the openedx org.
- tCRIL cannot manage access to code that is not in the openedx org. Access management is an important part of the Core Contributor and Maintainer programs.
- tCRIL and the Core Contributors cannot approve & merge code outside the openedx org. Ideally, repository maintainers will be available to review and merge important pull requests, such as security patches, critical bugfixes, and resolutions to release-blocking issues. However, when they are not, tCRIL and CCs need to be able to act as a backstop so we can keep the platform secure and keep releases rolling out on time.