[Python-modules-team] Bug#807097: Bug#807097: python-django: Undeclared removal of previously supported features causes crashes

Neil Williams codehelp at debian.org
Mon Dec 7 12:00:27 UTC 2015


reassign 807097 django-hijack
retitle 807097 incompatible with django1.9
found 807097 1.0.10-1
thanks

On Sun, 06 Dec 2015 20:21:17 +1100
Brian May <bam at debian.org> wrote:

> Sorry, accidentally sent private response by mistake. Resending.
> 
> Neil Williams <codehelp at debian.org> writes:
> 
> > Downgrading to 1.8 in testing fixes the problem, so if this isn't
> > the root cause, something else in 1.9 is producing a misleading
> > traceback. There's no reference to add-to-builtins in the
> > lava-server code that I can find.  
> 
> django-compat 1.0.7 has:
> 
> try:
>     from django.template.base import add_to_builtins
> except ImportError:  # Django < 1.8
>     from django.template import add_to_builtins
> 
> So looks like Django 1.8 does have it, but it moved. Which perhaps
> should have been a warning that maybe this was a private symbol not
> intended for apps to use.
> 
> 
> django-compat 1.0.8 has in the release notes:
> 
>     add_to_builtins was removed for Django 1.9, still available for
>     Django < 1.9
> 
> The relevant code is now:
> 
> if django.VERSION < (1, 8):
>     from django.template import add_to_builtins
> elif django.VERSION < (1, 9):
>     from django.template.base import add_to_builtins
> else:
>     pass  # Removed in 1.9. Use template settings instead
> 
> 
> I don't know what version of django-compat you have, however I think
> it must be < 1.0.8
> 
> From your stack trace it would appear that the calling application -
> django-hijack - doesn't actually use add_to_builtins, however it uses
> the file from django-compat that tries to import the symbol anyway.

ARRRGGHHH! OK, that looks like hijack should test the import more
carefully to identify the right support.
 
> Looks like this should be fixed with django-compat 1.0.8
> 
> As far as I can tell, django-compat isn't packaged for Debian.

The binary is python-django-compat.

https://tracker.debian.org/pkg/django-compat

> It looks like the latest release of django-hijack 2.0.0 requires
> django-compat >= 1.0.8

Many thanks for this, Brian. I had indeed misinterpreted that traceback
- and there was another database issue hiding behind the scenes which is
now in review upstream as well. I now have lava-server working again
with python-django 1.9-1 - and unit tests passing - but only if
python-django-hijack is not installed alongside django1.9.

Re-assigning to django-hijack. Django1.9 is revealing a bug in
django-hijack - so I'll add a Conflicts on django-hijack (<= 1.0.10-1)
to the lava-server package.

Sorry about this, I hadn't spotted hijack in the traceback from the
unit tests and it didn't make sense initially that this would be the
problem with the from django.template import Origin,
TemplateDoesNotExist traceback.

-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/python-modules-team/attachments/20151207/559b08fd/attachment.sig>


More information about the Python-modules-team mailing list