...
Follow instructions to install nightly tutor for edx-platform development.
recommend using a docker-compose override to mount your local code and venv
tldr steps for mounting;
tutor dev bindmount lms /openedx/venv
cp -R "$(tutor config printroot)/volumes/venv" $HOME/tutor-venvs/edx-platform
output can be the directory of your choosing,
$HOME/tutor-venvs
is just an example
create a docker-compose.override.yml file (mine for example)
Code Block language yaml version: "3.7" services: lms: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv cms: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv lms-worker: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv cms-worker: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv
Discovery Steps
To avoid issues with changing the tutor config I recommend stopping all services
tutor dev stop
Install Full installation of tutor-nightly should already include the nightly branch release of the tutor- discovery plugin
git clone --branch=nightly https://github.com/overhangio/tutor-discovery.git
pip install -e ./tutor-discovery
warn: check the pip output to make sure your installed version of tutor is not modified from nightly to latest release.
you will need this commit to prevent the bug https://github.com/overhangio/tutor/pull/618run
tutor plugins list
to verify
Enable the discovery plugin
tutor plugins enable discovery
Rebuild your tutor config
tutor config save
Follow the same process you used for edx-plaform to mount a local venv and code
copy venv from container to your machine
Install requirements based on local checkout
bindmountCode Block tutor dev
discovery /openedx/venv/move to a directory of your choosing. Note you can’t use to default output folder in tutor config since any service you
bindmount on will write here.run
cp -R "$(tutor configCode Block
printroot)/volumes/venv" $HOME/tutor
venvs/discovery-
override docker-compose to create a volume for your local discovery checkout and venv
$(tutor config printroot)/env/dev/docker-compose.override.yml
Code Block language yaml version: "3.7" services: lms: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv cms: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv lms-worker: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv cms-worker: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv discovery: volumes: - /Users/zhancock/workspace/course-discovery/:/openedx/discovery - /Users/zhancock/tutor-venvs/discovery/venv:/openedx/venv
Plugin scripts are run in a separate job container so we’ll need to mount volumes for these as well
$(tutor config printroot)/env/dev/docker-compose.jobs.override.yml
Code Block language yaml version: "3.7" services: discovery-job: volumes: - /Users/zhancock/workspace/course-discovery/:/openedx/discovery - /Users/zhancock/tutor-venvs/discovery/venv:/openedx/venv lms-job: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv cms-job: volumes: - /Users/zhancock/workspace/edx-platform/:/openedx/edx-platform - /Users/zhancock/tutor-venvs/edx-platform/venv:/openedx/venv
Install requirements based on local checkout
Code Block tutor -mount=discovery:/path/to/course-discovery:/openedx/course-discovery discovery bash tutor dev run discovery make requirements
(needs fix) change the partner code in the discovery plugin init script to ‘dev’
Run setup. This will handle database access, migrations, DOT application setup, sync courses etc
Code Block tutor dev init -l discovery
(needs fix) the final step to run
refresh_course_metadata
will fail this can be fixed after the factthis might fail the first time you run it due to the LMS and/or mysql still spinning up. Just repeat the command again and it should go through.
if you want to dig into the scripts see https://github.com/overhangio/tutor-discovery/tree/master/tutordiscovery/templates/discovery/hooks
we may want to look into the new plugin api before fixing this
(needs fix) run refresh_course_metadata with the ‘dev’ partner code
Code Block tutor dev run discovery ./manage.py refresh_course_metadata --partner_code=dev
Create a superuser to gain access to Django admin
Code Block tutor dev run discovery ./manage.py createsuperuser
you should be able to log in with your superuser at http://discovery.local.overhang.io:8381/admin
to use your existing LMS user via OAuth visit the /login page. You will need your superuser to make yourself staff in django admin.
(needs fix) Disable production site configuration
Init script will create two site configurations, the non-dev one won’t work locally so I recommend disabling it.
http://local.overhang.io:8000/admin/site_configuration/siteconfiguration/
keep=
local.overhang.io:8000
disable=
local.overhang.io
...