Kuehne + Nagel, a transportation and logistics company, runs all their web infrastructure on Django. They were running Django 1.10 and it had served them well for many years. In 2019 they upgraded to Django 1.11. However, in 2020 Django officially dropped support for Django up to 1.11 and the client had to upgrade to Django 2 or 3 to keep benefiting from crucial security updates.
The Kuehne + Nagel team attempted to upgrade to Django 2.0 on their own, but ran into significant issues. Having previously worked with Six Feet Up on a Plone project, they got in touch to ensure their upgrade would go without a hitch.
The project started with an analysis of all of the deprecations between Django versions 1.11 and 3.0, and then we had to determine which applied to the Kuehne + Nagel Django application.
Each deprecation was addressed systematically, ensuring that the newly-upgraded Django implementation would have all of the latest and most up-to-date features and code. Next, the Six Feet Up team ran through the system identifying any other potential issues or incompatibilities within the codebase, collaborating with the Kuehne + Nagel team in order to get all of them addressed before proceeding with the upgrade.
Once the upgrade was complete, it was important to test the newly upgraded application. Three main areas of testing were identified:
Each of these three areas was analyzed in full by comparing the functionality of the upgraded version with the 1.11 production version in order to identify any potential issues or discrepancies. Unit tests were particularly useful because we could quickly and easily point out which areas needed attention with each upgrade.
Once all the tests were green, Six Feet Up delivered the full, upgraded infrastructure to the client for them to run in their own QA environment and determine when they'd want to release it to production.
The final result was a fully up-to-date Django application delivered on time and under budget. The two teams enjoyed working collaboratively; the Kuehne + Nagel team especially felt empowered to keep their software up to date.
As a reminder, it's always harder to go from version 1.11 to 3.0 than it is to go from 3.0 to 3.1, so make sure to keep your software running on the latest version!