Versions Compared

Key

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

Table of Contents
maxLevel2
minLevel2

Phase 0 Notes:

  • Create plan for automating metadata extraction from code to output the equivalent of the spreadsheet.
  • Create "Draft Best Practices" page.
    • Creation of new things.  Where does it go?  
    • Cleaning up old things.  Common libs pip installed should no longer be pip installed.

...

  • Next Steps:
    1. Validate seams
      1. Review by stakeholders: Learner, Educator, Business, Analytics, TestEng, Platform, Eng Management
        1. JIRA perspective: https://docs.google.com/a/edx.org/spreadsheets/d/15Uz3JrwPVg51Pj6cw02iPUAAZ53AchbtgZ3g1TPmb7g/edit?usp=sharing
      2. Run-through a few use-cases
    2. Move to logical components within edx-platform 
    3. Dependency analysis to find low-level, high-level, etc components
    4. Move low-level components to their own repos
      1. If modified a lot
      2. if not modified a lot
    5. Best practices (OEP)
      1. clear interfaces
      2. folder structure
      3. etc
    6. Move current pip-installable apps in edx-platform into their own repo (common/lib/*)
    7. Reduce # of acceptance tests
  • Folder example:
    • openedx/
      • core/
        • middlewares/
        • performance/
      • features
        • capa/
        • discussions/
        • grades/
        • course-blocks/
        • courses/
        • certificates/


LucidchartautoSize1macroIdf0065a2b-efc1-412d-83e8-b92799276fb9pageCount1instanceIdConfluence:1710260420pageswidth700documentId453def89-fca2-4f3a-929a-ee9415255731alignlefttyperichupdated1499714506217height500

Proposed New Wiki Page

The following is a proposed new wiki page.  The original diagram was a rough organization of stickies.  I used Harry, a new developer, to get some feedback and made some adjustments:

  • The original diagram and key was confusing because: 1) it was unclear that it was about team ownership, and 2) it was thus very unclear why LMS was colored as Educator.
  • In the original "Features" section, it was not entirely clear why some were above LMS/CMS and some were left of, outside of making an attempt at segmenting by team.  I tried another imperfect swag at organization of the boxes below.  The individual small boxes all remain the same.
  • Making Features vs Platform the outer-most organization was confusing.  I tried a different slice, and used the term "Core" in place of "Platform".
  • Most importantly, it was imperfect before and is imperfect now.  I'm not trying to achieve perfection, but simply to capitalize on this work by making something that has some use.

Note: my original intent was to add a doc to the repo itself, but the spreadsheet is more useful in Google Docs.  Therefore, I'll either have only this new wiki page, or I can replicate the diagram and disclaimer in the repo, and have a pointer to the wiki for the rest of the details (the spreadsheet).

edx-platform documentation

Note

Disclaimer: The following diagram and spreadsheet came from a hackathon project that made a quick attempt at bringing some order to the edx-platform repository codebase. Some follow-up work was done to attempt to make the diagram and spreadsheet more comprehensible and potentially useful. However, the naming and organization presented here is not an agreed upon commitment of the future organization of the repository. The "Taming the Monolith" effort will be used to make more final recommendations around how the repo will actually be organized.

Some notes about the following diagram and spreadsheet:

  • The names and organization of the diagram are imperfect, but is meant to be more approachable than the codebase itself.
  • The team ownership (represented by colors) does not always make sense from the names.  The coloring could be used as a guide to understand who to talk to, but should not be used to understand the organization of the codebase.
  • Each box should have one or more rows in the spreadsheet.  The column titled "Component" should have text that matches the box.  You could use this as a map from code, to spreadsheet, to diagram, or from diagram to spreadsheet to code.  Note that the a term like "Discussions" may appear in a variety of locations in the code (rows in the spreadsheet).
  • There is no guarantee that the spreadsheet and diagram are accurate or up to date.  They came from a very rough process.  Feel free to help if you see something to fix.  This work is temporary until the "Taming the Monolith" efforts are able to achieve additional milestones.

...

Info

The diagram and spreadsheet that were previously available here have been moved to edx-platform Repository Overview.