docs/subsystems/django-upgrades.md
This article documents notes on the process for upgrading Zulip to new major versions of Django. Here are the steps:
git grep to
check if we're using anything deprecated or significantly modified
and put them in an issue (and then starting working through them).
Also, note any new features we might want to use after the upgrade,
and open an issue listing them;
example.git grep django pyproject.toml to see a list), upgrade any as
needed and file bugs upstream for any that lack support. Look into
fixing said bugs.CursorDebugWrapper, which we have a modified version of in
zerver/lib/db.py. See
the issue for contributing this upstreamPasswordResetForm and any other forms we import from
django.contrib.auth.forms in zerver/forms.py (which has all of
our Django forms).FilteredManagementUtility in manage.py, which forks the
management command discovery code.zerver/management/commands/change_password.py is forked from the
upstream changepassword.py.