ANN: django-compat-patcher 0.11 released
it's with great pleasure that I announce the release of *django-compat-patcher v0.11*
This release extends compatibility fixers so that you can painlessly upgrade your project to *Django 4.0*, without breaking your existing pluggable-apps ecosystem.
DCP is a companion package which adds backwards/forwards compatibility patches to Django, so that your dependencies don't get broken by trivial changes made to the core of the framework.
It injects compatibility shims like function/attribute aliases, restores data structures which were replaced by stdlib ones, extends the behaviour of callables (eg. referring to a view by object, by name, or by dotted path), and can even preserve deprecated modules as “import aliases”.
This allows to you upgrade your dependencies one at a time, to fork/patch them when you have a proper opportunity, and most importantly to not get stuck, when deadlines are tight.
Technically, DCP manages a set of “fixers”, small utilities which advertise the change that they make, the versions of Django that they support, and which monkey-patch the Django framework on demand.
Beware, DCP is aimed at project maintainers. If you are developing a reusable Django application, you can’t expect all your users to integrate DCP as well. In this case, to support a wide range of Django versions, you should rather use a toolkit like Django-compat https://github.com/arteria/django-compat. You may think of DCP as a “runtime 2to3 for Django’, wherease Django-Compat is rather a “six module for Django”.
Feel free to contribute new fixers, for backwards or forwards compatibility, depending on the compatibility troubles you encounter on your projects