Deprecate and forward convenience imports in reviewboard.integrations.
Review Request #10513 — Created April 4, 2019 and submitted — Latest diff uploaded
reviewboard.integrations
provided convenience imports for
get_integration_manager()
and the baseIntegration
class. These
ended up being a bad idea, because the imports needed for these ended up
interfering with Django app initialization.Now, both of these forward on to the versions in
reviewboard.integrations.base
, showing a deprecation warning on use.
This will remain for Review Board 4.0, and are planned to be removed in
5.0.To handle the deprecation of the
Integration
class, we use a metaclass
that will handle the construction of any subclasses. It will reassign
the parent toreviewboard.integrations.base.Integration
. This
shouldn't break any subclasses, but could cause problems if anything is
trying to directly compare against the version in
reviewboard.integrations
. As this is unlikely, and fixing this would
complicate things quite a bit, we won't be addressing it unless a
problem comes up somewhere.
Unit tests pass on Django 1.6 and 1.11 (with other in-progress changes).
Verified that older integrations were loading correctly on both versions
of Django.