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 https://openedx.atlassian.net/wiki/spaces/COMM/pages/3324149773/Development+Environment+DevEnv+Working+Group#Why-Tutor%3F 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

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