Tutor Analysis

This learnings from this analysis and others are being acted upon in a Tutor Adoption Initiative, which aims to make Tutor viable to fully replace for Devstack. Keep an eye on that project for the latest on Tutor enhancements & extensions.

Table of Contents

1 Overview

An evaluation was made in March 2021 of the readiness of Tutor as a potential replacement of the Open edX devstack.

At this time, Tutor has enough gaps that it is not yet ready. However, next steps were also documented.

2 Rubric

Capability

Tutor

Open edX Devstack

Capability

Tutor

Open edX Devstack

Make edx-platform code change and see it via runserver

Works

Works

Run Specific Unit Tests

Works

Works

Run Quality tests

Works

Works

Make discovery change and see it via runserver

Doesn't work missing ES7 related changes.

Works

Run discovery unit tests

N/A

Works

Make an MFE code change and see it in the browser

No MFE Plugins right now.

Some MFEs are supported but not all

Run MFE tests

N/A

Works

Make a backend config change

Works but has a tutor specific layer to it

Works but is complicated by ansible

Run MFE outside devstack/tutor

Works once all the relevant host names are updated

Works

3 Steps for Local Dev

Tests were done with the version of Tutor in this pr: https://github.com/overhangio/tutor/pull/407

NOTE: Many steps will update the docker-compose.override.yml file. Here is what the final version looks like:

version: "3.7" services: lms: volumes: - /home/feanil/src/edx-platform/:/openedx/edx-platform - /home/feanil/.local/share/tutor/volumes/edx-platform-venv/:/openedx/venv cms: volumes: - /home/feanil/src/edx-platform/:/openedx/edx-platform - /home/feanil/.local/share/tutor/volumes/edx-platform-venv/:/openedx/venv lms-worker: volumes: - /home/feanil/src/edx-platform/:/openedx/edx-platform - /home/feanil/.local/share/tutor/volumes/edx-platform-venv/:/openedx/venv cms-worker: volumes: - /home/feanil/src/edx-platform/:/openedx/edx-platform - /home/feanil/.local/share/tutor/volumes/edx-platform-venv/:/openedx/venv discovery: volumes: - /home/feanil/src/course-discovery/:/openedx/discovery - /home/feanil/.local/share/tutor/volumes/discovery-venv/:/openedx/venv

3.1 Steps for Setting up a branch version of Tutor

git clone git@github.com:feanil/tutor.git cd tutor git checkout feanil/more_resilient_warning_suppression mkvirtualenv -p python3 tutor pip install -e .

3.2 Setup to do edx-platform Dev

  1. Setup for development per first section of https://docs.tutor.overhang.io/dev.html, summarized with the commands below:

    tutor local quickstart tutor local stop tutor images build openedx-dev
  2. Override source code mounts to point to local edx-platform code by following instructions in this section: https://docs.tutor.overhang.io/dev.html#override-docker-compose-volumes

    • Note: See first line in each volumes section in example .yml file above.

  3. Copy container’s venv to the host using the bindmount command.

  4. Update docker-compose overrides file to mount the local venv into the container.