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 |
---|---|---|
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
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
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.
Copy container’s venv to the host using the bindmount command.
Update docker-compose overrides file to mount the local venv into the container.