Hey @adamchainz ![]()
The @steering_council wanted to begin a discussion with you about making django-upgrade part of the deprecation policy and release cycle.
The idea is pretty simple: If we want to make a breaking change, not only do we document it and provide a backwards compatible shim, and go through the deprecation process, but we also make sure there’s a django-upgrade fixer provided to make the vast majority of such changes entirely automatic. We make sure that’s all documented, with clear instructions on the release notes etc, and so on.
We think django-upgrade is a big step forward, and if we can advance it, there’s (at least) a hope that we can be slightly more ambitious in making modernisations to Django’s API.
It’s probably too near to target 6.1, but maybe in time for 6.2 is reasonable. A discussion here, followed by a DEP to codify what’s said seems like a good approach. (But very much exploratory at this stage.)
At first pass, is this something you’d be keen to see happen? That’s the most important thing really.
So, some key questions that might come up:
How will the project governance continue? I assume you still want to be involved now, but five years hence (or whenever) you might want to step away, so that needs to be something we’ve considered.
How are we going to create the fixers. Will the steering council, fellows, or some other group aim to help out writing and testing fixers? I imagine we need an expert group that can help create such. The ast/tokenization approach is a little bit complicated. It’s likely we need some documentation and tips on how to understand the code. We need a strategy for making sure there are enough people familiar with django-upgrade to make sure we’re sustainable here.
You seem to have the repo management, tooling, and releases pretty well sorted
— it would be good to make sure we don’t regress on the work you’ve done there. Again, while you’re happy to keep doing it, I don’t see much of a problem there, but the question of succession should at least be addressed in outline. (It’s about supporting you.)
What else? I’m sure there’s more
This is just to get the ball moving.
Kind Regards,
Carlton