Files
deb-python-django-compressor/docs/changelog.txt
2012-07-24 11:41:46 -03:00

324 lines
9.8 KiB
Plaintext

Changelog
=========
v1.2 (in development)
---------------------
- Added compatibility with Django 1.4 and dropped support for Django 1.2.X.
- Added contributing docs. Be sure to check them out and start contributing!
- Moved CI to Travis: http://travis-ci.org/jezdez/django_compressor
- Introduced a new ``compressed`` context dictionary that is passed to
the templates that are responsible for rendering the compressed snippets.
This is a **backwards-incompatible change** if you've overridden any of
the included templates:
- ``compressor/css_file.html``
- ``compressor/css_inline.html``
- ``compressor/js_file.html``
- ``compressor/js_inline.html``
The variables passed to those templates have been namespaced in a
dictionary, so it's easy to fix your own templates.
For example, the old ``compressor/js_file.html``::
<script type="text/javascript" src="{{ url }}"></script>
The new ``compressor/js_file.html``::
<script type="text/javascript" src="{{ compressed.url }}"></script>
- Removed old templates named ``compressor/css.html`` and
``compressor/js.html`` that were originally left for backwards
compatibility. If you've overridden them, just rename them to
``compressor/css_file.html`` or ``compressor/js_file.html`` and
make sure you've accounted for the backwards incompatible change
of the template context mentioned above.
- Reverted an unfortunate change to the YUI filter that prepended
``'java -jar'`` to the binary name, which doesn't alway work, e.g.
if the YUI compressor is shipped as a script like
``/usr/bin/yui-compressor``.
- Changed the sender parameter of the :func:`~compressor.signals.post_compress`
signal to be either :class:`compressor.css.CssCompressor` or
:class:`compressor.js.JsCompressor` for easier customization.
- Correctly handle offline compressing files that are found in ``{% if %}``
template blocks.
- Renamed the second option for the ``COMPRESS_CSS_HASHING_METHOD`` setting
from ``'hash'`` to ``'content'`` to better describe what it does. The old
name is also supported, as well as the default being ``'mtime'``.
- Fixed CssAbsoluteFilter, ``src`` attributes in includes now get transformed.
- Added a new hook to allow developers to completely bypass offline
compression in CompressorNode subclasses: ``is_offline_compression_enabled``.
v1.1.2
------
- Fixed an installation issue related to versiontools.
v1.1.1
------
- Fixed a stupid ImportError bug introduced in 1.1.
- Fixed Jinja2 docs of since ``JINJA2_EXTENSIONS`` expects
a class, not a module.
- Fixed a Windows bug with regard to file resolving with
staticfiles finders.
- Stopped a potential memory leak when memoizing the rendered
output.
- Fixed the integration between staticfiles (e.g. in Django <= 1.3.1)
and compressor which prevents the collectstatic management command
to work.
.. warning::
Make sure to **remove** the ``path`` method of your custom
:ref:`remote storage <remote_storages>` class!
v1.1
----
- Made offline compression completely independent from cache (by writing a
manifest.json file).
You can now easily run the :ref:`compress <pre-compression>` management
command locally and transfer the :attr:`~django.conf.settings.COMPRESS_ROOT`
dir to your server.
- Updated installation instructions to properly mention all dependencies,
even those internally used.
- Fixed a bug introduced in 1.0 which would prevent the proper deactivation
of the compression in production.
- Added a Jinja2_ :doc:`contrib extension </jinja2>`.
- Made sure the rel attribute of link tags can be mixed case.
- Avoid overwriting context variables needed for compressor to work.
- Stopped the compress management command to require model validation.
- Added missing imports and fixed a few :pep:`8` issues.
.. _Jinja2: http://jinja.pocoo.org/2/
v1.0.1
------
- Fixed regression in ``compressor.utils.staticfiles`` compatibility
module.
v1.0
----
- **BACKWARDS-INCOMPATIBLE** Stopped swallowing exceptions raised by
rendering the template tag in production (``DEBUG = False``). This
has the potential to breaking lots of apps but on the other hand
will help find bugs.
- **BACKWARDS-INCOMPATIBLE** The default function to create the cache
key stopped containing the server hostname. Instead the cache key
now only has the form ``'django_compressor.<KEY>'``.
To revert to the previous way simply set the ``COMPRESS_CACHE_KEY_FUNCTION``
to ``'compressor.cache.socket_cachekey'``.
- **BACKWARDS-INCOMPATIBLE** Renamed ambigously named
``COMPRESS_DATA_URI_MAX_SIZE`` setting to ``COMPRESS_DATA_URI_MAX_SIZE``.
It's the maximum size the ``compressor.filters.datauri.DataUriFilter``
filter will embed files as data: URIs.
- Added ``COMPRESS_CSS_HASHING_METHOD`` setting with the options ``'mtime'``
(default) and ``'hash'`` for the ``CssAbsoluteFilter`` filter. The latter
uses the content of the file to calculate the cache-busting hash.
- Added support for ``{{ block.super }}`` to ``compress`` management command.
- Dropped Django 1.1.X support.
- Fixed compiler filters on Windows.
- Handle new-style cached template loaders in the compress management command.
- Documented included filters.
- Added `Slim It`_ filter.
- Added new CallbackOutputFilter to ease the implementation of Python-based
callback filters that only need to pass the content to a callable.
- Make use of `django-appconf`_ for settings handling and `versiontools`_
for versions.
- Uses the current context when rendering the render templates.
- Added :func:`post_compress<compressor.signals.post_compress>` signal.
.. _`Slim It`: http://slimit.org/
.. _`django-appconf`: http://django-appconf.rtfd.org/
.. _`versiontools`: http://pypi.python.org/pypi/versiontools
v0.9.2
------
- Fixed stdin handling of precompiler filter.
v0.9.1
------
- Fixed encoding related issue.
- Minor cleanups.
v0.9
----
- Fixed the precompiler support to also use the full file path instead of a
temporarily created file.
- Enabled test coverage.
- Refactored caching and other utility code.
- Switched from SHA1 to MD5 for hash generation to lower the computational impact.
v0.8
----
- Replace naive jsmin.py with rJSmin (http://opensource.perlig.de/rjsmin/)
and fixed a few problems with JavaScript comments.
- Fixed converting relative URLs in CSS files when running in debug mode.
.. note::
If you relied on the ``split_contents`` method of ``Compressor`` classes,
please make sure a fourth item is returned in the iterable that denotes
the base name of the file that is compressed.
v0.7.1
------
- Fixed import error when using the standalone django-staticfiles app.
v0.7
----
- Created new parser, HtmlParser, based on the stdlib HTMLParser module.
- Added a new default AutoSelectParser, which picks the LxmlParser if lxml
is available and falls back to HtmlParser.
- Use unittest2 for testing goodness.
- Fixed YUI JavaScript filter argument handling.
- Updated bundled jsmin to use version by Dave St.Germain that was refactored for speed.
v0.6.4
------
- Fixed Closure filter argument handling.
v0.6.3
------
- Fixed options mangling in CompilerFilter initialization.
- Fixed tox configuration.
- Extended documentation and README.
- In the compress command ignore hidden files when looking for templates.
- Restructured utilities and added staticfiles compat layer.
- Restructered parsers and added a html5lib based parser.
v0.6.2
------
- Minor bugfixes that caused the compression not working reliably in
development mode (e.g. updated files didn't trigger a new compression).
v0.6.1
------
- Fixed staticfiles support to also use its finder API to find files during
developement -- when the static files haven't been collected in
``STATIC_ROOT``.
- Fixed regression with the ``COMPRESS`` setting, pre-compilation and
staticfiles.
v0.6
----
Major improvements and a lot of bugfixes, some of which are:
- New precompilation support, which allows compilation of files and
hunks with easily configurable compilers before calling the actual
output filters. See the
:attr:`~django.conf.settings.COMPRESS_PRECOMPILERS` for more details.
- New staticfiles support. With the introduction of the staticfiles app
to Django 1.3, compressor officially supports finding the files to
compress using the app's finder API. Have a look at the documentation
about :ref:`remote storages <remote_storages>` in case you want to use
those together with compressor.
- New ``compress`` management command which allows pre-running of what the
compress template tag does. See the
:ref:`pre-compression <pre-compression>` docs for more information.
- Various perfomance improvements by better caching and mtime cheking.
- Deprecated ``COMPRESS_LESSC_BINARY`` setting because it's now
superseded by the :attr:`~django.conf.settings.COMPRESS_PRECOMPILERS`
setting. Just make sure to use the correct mimetype when linking to less
files or adding inline code and add the following to your settings::
COMPRESS_PRECOMPILERS = (
('text/less', 'lessc {infile} {outfile}'),
)
- Added cssmin_ filter (``compressor.filters.CSSMinFilter``) based on
Zachary Voase's Python port of the YUI CSS compression algorithm.
- Reimplemented the dog-piling prevention.
- Make sure the CssAbsoluteFilter works for relative paths.
- Added inline render mode. See :ref:`usage <usage>` docs.
- Added ``mtime_cache`` management command to add and/or remove all mtimes
from the cache.
- Moved docs to Read The Docs: http://django_compressor.readthedocs.org
- Added optional ``compressor.storage.GzipCompressorFileStorage`` storage
backend that gzips of the saved files automatically for easier deployment.
- Reimplemented a few filters on top of the new
``compressor.filters.base.CompilerFilter`` to be a bit more DRY.
- Added tox based test configuration, testing on Django 1.1-1.3 and Python
2.5-2.7.
.. _cssmin: http://pypi.python.org/pypi/cssmin/