Updating django

Including some of the Release Notes text on the issue in the commit message helps to document your upgrade, e.g.

Having an efficient upgrade process helps make this a smoother ride, encouraging it to happen on each point-release.

In this blog post I look at the process we use for our bespoke applications, which has been refined by the experience of each previous upgrade.), with our bespoke applications we have the luxury of not needing to make the codebase simultaneously compatible with both the latest and previous versions of Django; we can burn our bridges behind us.

It's worth looking at the release notes of packages you intend to update, particularly if it's a big version bump, to see if there are any backwards incompatibilities that might affect your codebase.

After updating any versions, run your test suite again to check for regressions.

So, as with , run your test suite through and group the failures/errors by type of issue. In some cases that'll involve updating the tests themselves - partly for their own code and partly for what they're testing if some functional change has been If your test coverage is good then your application should be more or less compatible with the latest version.

If you have the time and resources, this is a good point to steal a march on your future self and resolve Django deprecations in your codebase.

Deprecations are things that will change or be removed in future versions of Django - typically two releases ahead.

So, with Django 1.8 you'd be looking for things deprecated in Django 1.7 that will be removed in Django 1.9, and things deprecated in Django 1.8 that will be removed in Django 1.10.

Many of the applications we've developed have been used for many years with the ongoing addition of features.

So, it's important to keep them up to date with the latest that Django has to offer - new functionality, improvements to existing ones and, of course, continuing security updates.

This tutorial walks through the deployment of a default Django website to an Elastic Beanstalk environment running Python 2.7.