Bump several dependencies for Python 3 compatibility
Debug toolbar 1.2 has some more usable panels, and less trouble with
jQuery interactions. It also is the first version to be compatible with
Django 1.7, which we'll support in the upcoming Oscar release.
django-compressor 1.4 has finally been released and supports Python 3
and comes with lots of other goodies.
sorl-thumbnail seems to be barely maintained anymore. I don't dare
switch to the beta version for Python 2. There's a few critical issues
reported on their issue tracker atm:
https://github.com/mariocesar/sorl-thumbnail/issues?labels=critical&page=1&state=open
django-nose-querycount is not Python 3 compatible and has been moved.
* Django version range has been bumped to a minimum of 1.4.9 because
that's the latest security release
* Pillow has been bumped to a new max of 2.5 because Pillow 2.3.1 fixes
a security issue
* treebeard has been bumped from it's beta to the stable release.
* Babel has been given an upper limit because that's good practice. Purl
is developed in-house and can be left without an upper limit, and one
can assume that six won't break backwards compatibility.
Discussion around #1200 highlighted that we must be aware of differences
between the versions of six that Django ships and the one we use.
In general, the external version of six is the best choice for Oscar,
because it allows to depend on a specific version of six. The multiple
Django versions we support each come with different versions of six,
which makes it unattractive to depend on them.
When interfacing directly with Django, it should be decided on a
case-by-case basis if it's more appropriate to use Django's supplied
version of six or the external one.
In the case of the UppercaseCharField, Django clearly documents what
needs to be done to get it to work with both Python 2 and 3 in
https://docs.djangoproject.com/en/1.6/howto/custom-model-fields/#the-subfieldbase-metaclass
Those instructions are the same for all versions of Django we support.
Hence it's been decided that it's best to switch to Django's recommended
way of declaring the metaclass, and using Django's version of six for
it.
python-modernize (https://github.com/mitsuhiko/python-modernize) is a
useful wrapper around 2to3 which comes with sane defaults.
The fixes below were generated by running
python-modernize --compat-unicode -w .
and then fixing all lint errors.
It was a dependency as Oscar used to use memcached for caching
in the sandbox. Since then, we've switched to LocMemCache and forgot to
remove it as dependency.
This involves some changes to the template block structure to make it
easy to compress the correct files.
* A new block cdn_scripts has been introduced as CDN-loaded scripts
can't be compressed.
* A new setting 'USE_LESS' controls whether to use the LESS-generated
files or the compressed files (which will need to be generated
manually as they aren't in source control).
* A fallback for jQuery UI is added
* The CSS block was renamed to be clearer
* The bootstrap CSS was brought out of the LESS file into the page.
This makes it easier to compress.
Have dropped dependency and started using a rewritten version of the
django-sorting templatetag. Changes:
* Simplified logic
* Stripped out unwanted functionality
* Added support for i18n (several pull requests have been open on the
original library for this, and not merge for many months).