362 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			362 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Changelog
 | 
						|
=========
 | 
						|
 | 
						|
v1.3 (03/18/2013)
 | 
						|
-----------------
 | 
						|
 | 
						|
- *Backward incompatible changes*
 | 
						|
 | 
						|
  -  Dropped support for Python 2.5. Removed ``any`` and ``walk`` compatibility 
 | 
						|
     functions in ``compressor.utils``.
 | 
						|
  
 | 
						|
  - Removed compatibility with Django 1.2 for default values of some settings:
 | 
						|
 | 
						|
    - :attr:`~COMPRESS_ROOT` no longer uses ``MEDIA_ROOT`` if ``STATIC_ROOT`` is
 | 
						|
      not defined. It expects ``STATIC_ROOT`` to be defined instead.
 | 
						|
 | 
						|
    - :attr:`~COMPRESS_URL` no longer uses ``MEDIA_URL`` if ``STATIC_URL`` is
 | 
						|
      not defined. It expects ``STATIC_URL`` to be defined instead.
 | 
						|
 | 
						|
    - :attr:`~COMPRESS_CACHE_BACKEND` no longer uses ``CACHE_BACKEND`` and simply 
 | 
						|
      defaults to ``default``.
 | 
						|
 | 
						|
- Added precompiler class support. This enables you to write custom precompilers
 | 
						|
  with Python logic in them instead of just relying on executables.
 | 
						|
 | 
						|
- Made CssAbsoluteFilter smarter: it now handles URLs with hash fragments or
 | 
						|
  querystring correctly. In addition, it now leaves alone fragment-only URLs.
 | 
						|
 | 
						|
- Removed a ``fsync()`` call in ``CompilerFilter`` to improve performance.
 | 
						|
  We already called ``self.infile.flush()`` so that call was not necessary.
 | 
						|
 | 
						|
- Added an extension to provide django-sekizai support. 
 | 
						|
  See :ref:`django-sekizai Support <django-sekizai_support>` for more 
 | 
						|
  information.
 | 
						|
 | 
						|
- Fixed a ``DeprecationWarning`` regarding the use of ``django.utils.hashcompat``
 | 
						|
 | 
						|
- Updated bundled ``rjsmin.py`` to fix some JavaScript compression errors.
 | 
						|
 | 
						|
v1.2
 | 
						|
----
 | 
						|
 | 
						|
- 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``.
 | 
						|
 | 
						|
- Dropped versiontools from required dependencies again.
 | 
						|
 | 
						|
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/en/latest/
 | 
						|
 | 
						|
- 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/
 | 
						|
 |