2022-06-15 DevEnv Meeting notes

 Date

Jun 15, 2022

 Participants

  • @Rebecca Graber (Deactivated)

  • @Kyle McCormick

  • @Connor Haugh

  • @Zach Hancock

  • @Jeremy Bowman (Deactivated)

  • @John Nagro (Deactivated)

 Goals

  • Updates

  • Discuss how to remove some potential blockers

 Discussion topics

Time

Item

Notes

Time

Item

Notes

 

Updates

Becca:

  • Was able to start developing with a local copy of an edx-platform plugin

  • Developing a local copy of an edx-platform plugin that pulls in another local library

  • Also setup discovery and lms for my current project

  • William Huang (intern) is hopefully going to start out with Tutor

Connor:

  • Tutor plugin to turn on and off and of the set 2u repos we often mount (and see what’s on/off)

  • Still in learning phase, writing, stealing from devstack, etc.

  • Bad day because of fire

John:

  • Documentation for interns trying hosted devstack and working with SRE to iterate on that

  • This may get integrated with clamps which is hella cool

  • What do you need to do after the most basic provisioning in order to be productive?

  • Someday: hosted Tutor

Kyle:

Jeremy:

Zach:

  • Redo Discovery setup, now with mount command instead of docker-compose

  • Mount is easier and faster, especially when dealing with things like one-off commands or times when we don’t actually need our local code

  • Issues with edx-platform plugin development, specifically an XBlock that was already installed in the image

    • Pulled repo down into requirements/ and added to private.txt

    • Able to build but not run

    • This may or may not be a known issue, but it’s definitely not on purpose

    • Having to put the repo into a weird hidden library folder is a bit annoying

    • A workaround can be to use a mounted virtualenv in development

 

 

When do we need to

a. save config

b. rebuild images

Why does tutor dev start cms rebuild everything?

  • There’s a config.yml file in $(tutor config printroot)/config.yml, which is the ‘recipe’ for the entire environment. If that file changes, tutor config save.

    • enabling/disabling plugins changes this file

  • In an ideal world, the image would rebuild itself anytime anything changes that warrants a rebuild

    • eg: changing a config setting like PLATFORM_REPO_URL

      • Dockerfile changes (it’s templated), so need to rebuild the image starting from the first line that references that config var

        • Docker should recognize this change in the file and that it requires a rebuild

        • It does this check every time you start a docker service

      • eg:

    • Becca should really remember to use --skip-build

    • Note: in devstack, we very rarely rebuild. We run the base image and then mount code to run the service. Tutor is more about having the service baked in.

    • Tutor includes static assets in image, devstack does not

      • Also devstack doesn’t include MFEs, but (with the correct Tutor plugin) Tutor does

    • there is a PR in the works to do dynamic configuration of MFEs

 

 

 

Do we want to start getting together a list of plugins for an 2u meta-plugin?

  • Automatic provision of staff, verified, edx, audit users

  • What about all the little IDAs we have wandering around, where we don’t want to have to do the same thing in multiple repos?

    • Multiple subfolders of one big repo

    • Will need to establish guidelines on when to include in the Big Repo and when to make it a folder in the IDA/MFE itself

    • Are service maintainers going to be plugin maintainers?

    • Could the service cookiecutter include a Tutor plugin setup?

  • Robust test data

  • Repo bind-mounting

    • relevant on the tutor side:

  • Hefty amount of plugins for our various microservices

  •  

  • Automatic provision of OAuth API users (particularly important for enterprise)

    • this is part of the Discovery plugin, so we don’t actually need to worry about this

 

 Action items

 

 Decisions