Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
          languageyaml
          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/618

      run 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

    Code Block
    tutor dev
    bindmount
     
    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
    run
    bindmount on will write here. Code Blockcp -R "$(tutor config
     
    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
    languageyaml
    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
    languageyaml
    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) 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
  • (needs fix) Disable production site configuration

...