Skip to content

Plan Django 5.2 LTS → 6.1 LTS upgrade (target: late summer 2026) #1270

@jonfroehlich

Description

@jonfroehlich

Background

Django 5.2 LTS (our current version) is supported through April 2028. Django 6.0 was released Dec 2025 but is not an LTS release (~16 months support, EOL April 2027). The next LTS — Django 6.1 — is scheduled for ~August 2026.

The right next jump is 5.2 LTS → 6.1 LTS, skipping 6.0. This gives ~3 years of free security patches and matches our "stay on LTS" posture (single maintainer, no dedicated upgrade chore time).

Version landscape

Django Released EOL LTS?
4.2 LTS Apr 2023 Apr 2026
5.2 LTS (current) Apr 2025 Apr 2028
6.0 Dec 2025 Apr 2027 ❌ skip
6.1 LTS (target) ~Aug 2026 ~Apr 2029

Prerequisites

This issue is intentionally blocked on:

  • Replace django-ckeditor (CKEditor 4 is EOL with known XSS issues) #1269 — Replace django-ckeditor — bundles EOL CKEditor 4 and is the most likely Django-bump breakage point.
  • Confirm sortedm2m_filter_horizontal_widget fork (in-tree) works on 6.1 — upstream broke at Django 5.2 and we forked locally.
  • Confirm django-image-cropping (unmaintained since Feb 2022) still works on 6.1. If not, look at django-image-uploader-widget or roll our own crop UI using the existing easy_thumbnails foundation.

Scope of the upgrade itself (once 6.1 ships)

  • Bump Django==6.1.x in requirements.txt
  • Run python -Wd manage.py check --deploy and clear all deprecation warnings
  • Run the test suite (~60+ tests now); expand if needed
  • Rebuild Docker image, verify container starts cleanly through the entrypoint sequence (collectstatic → migrate → cleanup commands)
  • Manual smoke on test: landing page, /publications/, /projects/, /people/, /news/, /admin/ CRUD on News + Publication + Person
  • Run Pa11y CI
  • Tag a release

Why hold for 6.1, not jump to 6.0 now

Going 5.2 LTS → 6.0 trades 3 years of LTS runway for 16 months of non-LTS support, and requires the same dependency-compat work we'd do for 6.1 anyway. No specific 6.0 feature warrants the early jump.

Timing

Target: late summer / early fall 2026, once 6.1 ships (~Aug 2026) and the third-party ecosystem catches up (~6-8 weeks). Do the CKEditor replacement and dep audit first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions