Versions Compared

Key

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

Why Modulestore?

  • Technically, a low-level library with little to no dependencies on the rest of the platform.
  • Does not change very often - and especially not that often by the new TNL team.
  • It's one of the common dependencies between LMS and CMS.  So extracting the MS would pave the path toward splitting them as well.
  • MS tests take about 8mns on Jenkins - that amount of test time would be shaved off of edx-platform builds.

Hackathon Experiments

As part of edX Hackathon XV, I experimented extracting out the modulestore code and its dependencies out into separate repos.  I ended up creating the following 2 repos:

...

Since the work was done as part of a hackathon and within 2 hours, mostly for experimentation, accurate documentation wasn't kept.

Guidelines for Future Attempt

When this work is re-attempted, we should make sure to keep a clean git history, by doing the following:

  1. Initial commit should be just the base django cookie-cutter created files.
  2. Second commit should be just the unmodified copy of the modulestore code from the edx-platform (so all subsequent changes can be reviewed).
  3. Then, the following commits should be separated:
    1. All Python-3 compatible edits.
    2. All missing dependencies added to the requirements.
    3. All quality fixes.
  4. All other functional modifications should be kept as subsequent separate separated commits so they are easier to review and track.