Versions Compared

Key

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

...

PriorityProject NameDependenciesDescriptionProjects Which BenefitNotesPain (0-5)Frequency (0-5)Cost (0-5)
1Speed up tests locallyNone

Currently, running a full test suite takes 'a long time', so people push to CI instead, which also takes a long time. If we shortened the full tests suite, or gave a good selection of fast smoke tests, devs could have a tighter turnaround time. Perhaps using per-test coverage data to do a reverse lookup based on edited lines?

 

All projects in edx-platformBJP (4/2015) - TestEng undertook an effort in summer 2014 to evaluate a tool to do this for us (i.e. auto-determine which tests to run using  nose-knows ). However, we think it is worth revisiting. See 
Jira Legacy
serverJIRA (openedx.atlassian.net)
serverId13fd1930-5608-3aac-a5dd-21b934d3a4b4
keyTE-539
152
1Speed up tests in CINone

For an average PR, just running the test jobs to completion takes 40 - 50 minutes, not including time in queue. That is enough time that developers context switch, which costs time in addition

 

All projects in edx-platform

TestEng is actively working on this, which lowers the usefulness of Platform putting time in.

 

BJP (4/2015) - A truer solution for this would be a more mature build pipeline (likely coupled with the above item). That would involve testing a subset on every PR commit, and having a way to run more tests at/near merge-time. This could also imply a different branching strategy.

152
 Move grade storage to submissions appNoneDave Ormsbee can fill in more, but essentially, we can change the storage model for grades such that they are append-only, and use that to make score computation for things like the progress page more predictable and less expensive.
  • SaudiX: Gradebook ETL
  • Analytics: Overall course grade distribution
  • Analytics: Export all student submissions to a problem or an assignment
  • Analytics: Export programming assignment submissions
 414
 Make Runtimes per-app, rather than per-modulestoreNoneConvert from Storage-centric runtimes to Application-centric runtimes  325
 Provide access to field storage via FieldData interface, rather than via Modulestore api methodsNoneWe can move towards the XBlock-standard model of field storage, which should make our runtimes have to jump through fewer hoops to work correctly, and will let us re-use some building blocks across different data stores.  315
2Kill XModuleNoneLots of technical debt here, some of which will go away with conversion to XBlock.
  • Devops: Sandboxing javascript isolation
  • SaudiX: Course Search Pt 2
  • T&L: Editing support for XBlocks in Studio
  • Load XModule/XBlock javascript with require.js
 435
4Kill XModule-specific APIs/workaroundsKill XModuleLots more technical debt related to making two classes look like one class. Contributes many of the most brittle code pieces.
  • T&L: Editing support for XBlocks in Studio
  • Analytics: XBlock displays of insights visualization
 515
 Switch InstructorTask to generate micro-tasks and use a distributed counter (memcache) for results on particular jobsNoneAsynchronous tasks pattern gives a strategy option. This code is really hairy right now, and jumps through a lot of hoops in order to not spam the relational database.
  • T&L: Email students in a cohort
 413
1Set up infrastructure for building performance tests (working with Corey, locust.io)NoneSetting up performance tests from scratch introduces risk to any project that needs to measure serverside performance.
  • Mobile: Infrastructure (VAL/VEDA) - Perf / scale - app/client
  • Mobile: Infrastructure (VAL/VEDA) - Perf / Scale - video pipeline
  • All projects that we want to measure performance impact
 332
3Move LMS to require.jsNoneIntegration of Require JS into the system
  • T&L: LMS Performance
  • Mobile: Responsive LMS chrome
  • Devops: Sandboxing javascript isolation
 423
3Load XModule/XBlock javascript with require.jsMove LMS to require.jsMoving XModule to require.js would allow us to get rid of the large blob of all of the XModule js that's loaded on every courseware page. Moving XBlock to requirejs would allow us to stop including js snippets on the main page directly (and hopefully cache the offloaded js).
  • T&L: LMS Performance
  • Mobile: Responsive LMS chrome
  • Devops: Sandboxing javascript isolation
 424
 Clean up certificates codeNoneThe certificates generation code is a mess
  • Dest Edx: Improve Self-Paced Courses and Course availability approach (includes Certificate presentation and Download)
 514
1Pre-process and check-in Javascript and CSSNoneCurrently, django collectstatic, and the requirejs optimizer, eat up lots of time any time they're invoked. If we separated the build of all of our javascript and CSS from the execution of the platform, then we'd save time on tests and on deployment, with the only cost being a test that verifies that no one forgot the asset compilation/checkin step.
  • All projects in edx-platform
 15

1

...