Note that we may have to take into consideration Django LTS lifecycles. If we can only upgrade Django in the breaking changes releases, then that needs to be aligned with product versions and release cycles.
For example Django 3.2 LTS support ends in April 2024. If pulpcore 3.25 doesn’t line up with a migration to Django 4.2 then downstream releases will be stuck on unsupported Django for a long time.