Page tree
Skip to end of metadata
Go to start of metadata

Status Update

Over the past few months, a lot of work has been undertaken to modernize how edX builds front end applications. We still have a lot more to do, but I wanted to describe some of the key changes that will be coming in the next few weeks.

The most important change that will affect everyone is that we are upgrading our key front end libraries such as JQuery, Backbone and Underscore. This will open up further opportunities to bring in more modern libraries and tools, but at the same time it introduces some amount of risk. We are performing comprehensive testing to ensure that these updates won't cause features to break, but undoubtedly there will be some edge cases. In particular, course teams that utilize custom XBlocks and/or custom JavaScript should watch out for unexpected behavior as these changes roll out.

To minimize the risk, we will be rolling out these changes incrementally, starting with the least complex upgrades. This week we have updated to the latest versions of RequireJS, Underscore and Underscore.string. We are also shortly to update our JavaScript testing infrastructure to use the latest version of Jasmine as well as switching our test runner from our homegrown JS-Test-Tool to the industry standard Karma. We believe that these are infrastructure-only libraries that shouldn't affect course teams, but do let us know immediately if you are seeing problems.

In a few weeks we will be upgrading JQuery from version 1.7.2 to the latest version which is currently 2.2.2. JQuery changed incompatibly between versions 1 and 2, but fortunately they ship a library called JQuery Migrate that provides 1.x compatible versions of all of their APIs. In our testing so far there have been only minor issues with this upgrade, but given the ubiquity of JQuery we are giving advanced notice. We are still determining our testing strategy for this upgrade, so please let us know if you have suggestions or concerns. Course teams should perform analysis of any custom JQuery code that they have written to ensure that it will continue to work as expected with JQuery 2 (in combination with JQuery Migrate).

Once we have safely made the jump to JQuery 2, we then have some further upgrades to follow.

Here's a list of the major work done so far in 2016:

Upcoming Milestones

  • Many libraries will be upgraded over the next month or so
  • Test pages will be developed to demonstrate the Pattern Library and UI Toolkit
  • Easy creation of new front end repositories will be implemented through the edX Cookiecutter repo
  • Documentation will be created for many aspects of front end development
  • Official 1.0 releases will be made for both the Pattern Library and the UI Toolkit

For a full list, see Initial rollout plan for the UI Toolkit and Pattern Library.

Library Upgrades

Here's the status of the library upgrades for LMS and Studio as of March 16, 2016. See the JIRA epic FEDX-22 for more details.

StatusLibraryMerge DatePRNotes

BackboneApril 2016

(lightbulb)JasmineMarch 2016PR 11683
(lightbulb)JQueryApril 2016PR 11665
(lightbulb)KarmaApril 2016

(tick)libsass01/29/2016PR 11110
(tick)RequireJS03/16/2016PR 11813 
(tick)Underscore03/18/2016PR 11617Also includes an upgrade to Underscore.string
KeyStatus
(tick)Complete
(lightbulb)In Progress

Not Started
  • No labels