Open edX Development Environment Plans - 2U/OCM
Purpose of this Document
The purpose of this document is to explain the plans of the Development Environment Working Group for improving the development environment for 2u/OCM employees, in particular the decision to focus on promoting wider adoption of the Tutor environment.
Background
The Development Environment (DevEnv) working group was created in February 2022 with the initial purpose of facilitating the adoption of the Tutor development environment across OCM. Tutor is the current standard environment for Open edX deployment and is becoming widely used in the Open edX community for development as well. The latest releases were created without any devstack-compatible images, so anyone developing off the release branches (as opposed to master) cannot use devstack at all. See Archive: Development Environment (DevEnv) Working Group | Why Tutor? for more information on the choice to move to Tutor.
Goals
Ultimately, we are working towards having all OCM engineers using Tutor as their primary development environment (either locally or hosted, likely locally to start). This will help us accomplish our broader goals for our development environment, specifically that it be
Fast to install
Easy to maintain and/or regenerate
Usable by the broader Open edX community
Reasonably consistent with main production environments
Easy to understand
Easy to troubleshoot problems
Well-documented
On a user-level, we’d like the environment to facilitate developer experiences such as:
A new developer (OCM or community) sits down and within a short amount of time (on the order of minutes or hours rather than days), is able to start working on a task
A developer can easily recreate and trace a production bug in their local setup
A developer can easily create the test data they need for a task, keep it when generating a new environment, and provide it to other developers who may want to work in the same area
Current Plans
Completed Work
OCM-specific instructions for developing with Tutor, including instructions for edx-platform, enterprise, and course_discovery: [Archive] Using Tutor for local development
Several issues created for and then solved by the Tutor team at tCRIL (easier mounting, fixing RCM)
Remaining Work
Reduce Tutor build time on each launch
Verify that Tutor can be used for edx-platform plugin development work
Filling out
Productizing the plugins created here
determining the structure of OCM-specific plugins
Creating those plugins which make an OCM dev’s life very easy to develop with.
an opt-in beta group of developers at OCM once all blocking issues are resolved
Documentation and guidance on how OCM dev teams can add applications under their ownership to tutor