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