17 November 2015

The following information reflects what is new in the edX Platform this week.

Note

EdX is not issuing a platform release this week. Instead, edX has completed an upgrade of Django, the web framework that edX uses to develop Studio, the LMS, and Insights. This upgrade does not result in any user-visible changes.

The edX engineering wiki Release Pages provide access to detailed information about every change made to the edx-platform GitHub repository. If you are interested in additional information about every change in a release, create a user account for the wiki and review the dated release pages.

Open edX

EdX has just completed an upgrade from Django 1.4 to Django 1.8.

Django 1.8 Upgrade

This upgrade includes the following changes as well as several additional changes. For more information, see the Django 1.8 Upgrade Release Notes page on the edX wiki or the Django 1.8 pull request in GitHub.

Transactions

  • For Django 1.8, edX recommends that you use the transaction.atomic decorator to start transactions for the code. For more information, see the Database Transactions page on the Django website.

  • The commit_on_success decorator is no longer available. You can use the new outer_atomic decorator instead.

  • To avoid exceptions when you create models, edX recommends that you use the following pattern.

    if need_to_create_model:
       try:
           with transaction.atomic():
               MyFancyModel.create(**kwargs)
       except IntegrityError:
           # Model has already been created.
           log.warning("Something...")
    

Pip

  • The egg_name value in each GitHub-based requirements.txt line must match the name value in the setup.py file of the repository.
  • To avoid errors, you must always specify a version number in a URL-based requirements file line.
  • New dependencies should use the “editable” (-e) prefix only when necessary.

Model Migrations

  • All Django Python South schema migrations have been incorporated into each initial “0001” Django schema migration.
  • Data migrations that seed data are now idempotent. All other data migrations have been discarded.

Model Meta Classes

  • The app_label attribute has been added to several different models. For more information, see app_label on the Django website.

More Information

To view the release notes for Django versions 1.5—1.8, see the following resources.