You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).
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.
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
Prerequisites
This issue is intentionally blocked on:
django-ckeditor— bundles EOL CKEditor 4 and is the most likely Django-bump breakage point.sortedm2m_filter_horizontal_widgetfork (in-tree) works on 6.1 — upstream broke at Django 5.2 and we forked locally.django-image-cropping(unmaintained since Feb 2022) still works on 6.1. If not, look atdjango-image-uploader-widgetor roll our own crop UI using the existingeasy_thumbnailsfoundation.Scope of the upgrade itself (once 6.1 ships)
Django==6.1.xinrequirements.txtpython -Wd manage.py check --deployand clear all deprecation warnings/publications/,/projects/,/people/,/news/,/admin/CRUD on News + Publication + PersonWhy 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.