Over the past few months, we have done, and are continuing to do, a lot of work to modernize how edX builds front end applications. These upgrades will enable us to bring in more modern libraries and tools to the edX platform. At the same time, it introduces some amount of risk, despite all the testing that we do. To minimize risk, we will roll out these changes incrementally, starting with the least complex upgrades. However, course teams that use custom XBlocks and/or custom JavaScript should watch out for unexpected behavior as these changes roll out.

You can read a summary of the improvements we’re making on the “Front End Development – March 2016” wiki page, or read the sections below for more details.

RequireJS, Underscore, and Underscore.string

As of the March 30, 2016 release, edX.org has been updated to the latest versions of RequireJS and Underscore. Updates to Underscore.string should be in the April 13, 2016 edX.org release.

JQuery

In late April, we plan to upgrade JQuery from version 1.7.2 to the latest version (currently 2.2.2). JQuery changed incompatibly between versions 1 and 2, but fortunately, the JQuery Migrate library 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 course teams as much notice as possible. We are still determining our testing strategy for this upgrade, so please let us know if you have suggestions or concerns. Course teams should analyze 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).

Jasmine and Karma

In April, we plan to update our JavaScript testing infrastructure to use the latest version of Jasmine. We will also switch 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.

For More Information

We have a dedicated “EdX Front End Development” wiki space for all of our front end plans, designs and best practices. Eventually, much of this material will move into the edX Developer’s Guide.

Questions or Concerns?

If you have any questions or concerns about these upcoming changes, please post in the edx-code Google group, or on our Open edX Slack channel.