Skip to content

Upgrade backend dependencies to ensure support and security

Linus Keiser requested to merge 295-update-backend-dependencies into master

Closes #295 (closed)

Summary:

These changes collectively extend the end of life dates for our most critical dependencies well into 2026, since the Django 4.2 LTS will be supported until 01.04.2026, and Python 3.11 will reach EOL on 24.07.2027. Django 3.1 had already reached EOL, and 3.2 would be EOL in early 2024.

The key changes include upgrading to Django 4.2 LTS, updating the required Python version to 3.11, and a shift from djangorestframework-jwt to djangorestframework-simplejwt, since the former is unmaintained in favor of the latter. These changes are crucial for ensuring long-term support and security.

Key Changes:

The standout changes are as follows:

  1. Migration to Django 4.2 LTS: I have updated our Django version to the latest 4.2 LTS release. Along with this, I've upgraded a number of sub-dependencies, perhaps most notably psycopg, which is now at version 3.

  2. Python Version Update to 3.11: The project now requires Python 3.11 to run and develop. The CI environments have been changed to support this.

  3. Replacement of djangorestframework-jwt with djangorestframework-simplejwt: Considering that djangorestframework-jwt is no longer maintained, we have shifted to djangorestframework-simplejwt. This change was somewhat involved, requiring a small modification to the frontend as well, since we've now moved to a more standard token-pair architecture for our JWTs.

Apart from these key changes, this branch also includes:

  • Refactoring from drf-yasg to drf-spectacular for API schema generation, providing OAI 3.0 schemas.
  • Various dependency updates and refactoring for compatibility with the new Django and Python versions.

Merge request reports