Skip to content

Make Auth work with both Django 2 and Django 3

Proposing a smooth migration approach for Django 3

I do not know if you guys have already decided on a migration approach for Auth with regards to Django 3.

If not, I would like to suggest a smooth transition with an interim phase where Auth supports both Django 2 and 3 instead of the current implicit hard cut-over.

This could look something like this:

  • Release A1: Enable Auth to work with Django 2 and Django 3
  • Release A2: Disable support for Django 2

A smooth transition would give app developers some time to transition to Django 3. I less thinking here about community apps, but the many internal apps that alliances have build for themselves over the years. In addition Auth would no longer have to wait for community apps to be transitioned before releasing Auth 2.8. Finally, hard cut-overs are always risky and a smooth approach would allow Auth to always fallback to Django 2.2 in case a big show stopper arises.

There also does not appear to be any technical reason for a hard cut-over. Django 3 is mostly backwards compatible (unless you start using any of the new features of course) and most of the current compatibility issues arise from using deprecated features. Also all Auth dependencies work fine with both Django 2 and 3 and Auth tests are passing fine for both.

Change implements smooth migration approach

This change is therefore doing the following:

  • Adjust dependencies to allow both Django 2 and 3
  • Add a full test matrix for all combinations of Python and Django versions

Merge request reports