497 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			497 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Changelog
 | |
| =========
 | |
| 
 | |
| v2.1 (2016-08-09)
 | |
| -----------------
 | |
| 
 | |
| `Full Changelog <https://github.com/django-compressor/django-compressor/compare/2.0...2.1>`_
 | |
| 
 | |
| - Add Django 1.10 compatibility
 | |
| 
 | |
| - Add support for inheritance using a variable in offline compression
 | |
| 
 | |
| - Fix recursion error with offline compression when extending templates with the same name
 | |
| 
 | |
| - Fix UnicodeDecodeError when using CompilerFilter and caching
 | |
| 
 | |
| - Fix CssAbsoluteFilter changing double quotes to single quotes, breaking SVG
 | |
| 
 | |
| 
 | |
| v2.0 (2016-01-07)
 | |
| -----------------
 | |
| 
 | |
| `Full Changelog <https://github.com/django-compressor/django-compressor/compare/1.6...2.0>`_
 | |
| 
 | |
| - Add Django 1.9 compatibility
 | |
| 
 | |
| - Remove official support for Django 1.4 and 1.7
 | |
| 
 | |
| - Add official support for Python 3.5
 | |
| 
 | |
| - Remove official support for Python 2.6
 | |
| 
 | |
| - Remove support for coffin and jingo
 | |
| 
 | |
| - Fix Jinja2 compatibility for Django 1.8+
 | |
| 
 | |
| - Stop bundling vendored versions of rcssmin and rjsmin, make them proper dependencies
 | |
| 
 | |
| - Remove support for CSSTidy
 | |
| 
 | |
| - Remove support for beautifulsoup 3.
 | |
| 
 | |
| - Replace cssmin by csscompressor (cssmin is still available for backwards-compatibility but points to rcssmin)
 | |
| 
 | |
| 
 | |
| v1.6 (2015-11-19)
 | |
| -----------------
 | |
| 
 | |
| `Full Changelog <https://github.com/django-compressor/django-compressor/compare/1.5...1.6>`_
 | |
| 
 | |
| - Upgrade rcssmin and rjsmin
 | |
| 
 | |
| - Apply CssAbsoluteFilter to precompiled css even when compression is disabled
 | |
| 
 | |
| - Add optional caching to CompilerFilter to avoid re-compiling unchanged files
 | |
| 
 | |
| - Fix various deprecation warnings on Django 1.7 / 1.8
 | |
| 
 | |
| - Fix TemplateFilter
 | |
| 
 | |
| - Fix double-rendering bug with sekizai extension
 | |
| 
 | |
| - Fix debug mode using destination directory instead of staticfiles finders first
 | |
| 
 | |
| - Removed some silent exception catching in compress command
 | |
| 
 | |
| 
 | |
| v1.5 (2015-03-27)
 | |
| -----------------
 | |
| 
 | |
| `Full Changelog <https://github.com/django-compressor/django-compressor/compare/1.4...1.5>`_
 | |
| 
 | |
| - Fix compress command and run automated tests for Django 1.8
 | |
| 
 | |
| - Fix Django 1.8 warnings
 | |
| 
 | |
| - Handle TypeError from import_module
 | |
| 
 | |
| - Fix reading UTF-8 files which have BOM
 | |
| 
 | |
| - Fix incompatibility with Windows (shell_quote is not supported)
 | |
| 
 | |
| - Run automated tests on Django 1.7
 | |
| 
 | |
| - Ignore non-existent {{ block.super }} in offline compression instead of raising AttributeError
 | |
| 
 | |
| - Support for clean-css
 | |
| 
 | |
| - Fix link markup
 | |
| 
 | |
| - Add support for COMPRESS_CSS_HASHING_METHOD = None
 | |
| 
 | |
| - Remove compatibility with old 'staticfiles' app
 | |
| 
 | |
| - In compress command, use get_template() instead of opening template files manually, fixing compatibility issues with custom template loaders
 | |
| 
 | |
| - Fix FilterBase so that does not override self.type for subclasses if filter_type is not specified at init
 | |
| 
 | |
| - Remove unnecessary filename and existence checks in CssAbsoluteFilter
 | |
| 
 | |
| 
 | |
| v1.4 (2014-06-20)
 | |
| -----------------
 | |
| 
 | |
| - Added Python 3 compatibility.
 | |
| 
 | |
| - Added compatibility with Django 1.6.x and dropped support for Django 1.3.X.
 | |
| 
 | |
| - Fixed compatibility with html5lib 1.0.
 | |
| 
 | |
| - Added offline compression for Jinja2 with Jingo and Coffin integration.
 | |
| 
 | |
| - Improved support for template inheritance in offline compression.
 | |
| 
 | |
| - Made offline compression avoid compressing the same block multiple times.
 | |
| 
 | |
| - Added a ``testenv`` target in the Makefile to make it easier to set up the
 | |
|   test environment.
 | |
| 
 | |
| - Allowed data-uri filter to handle external/protocol-relative references.
 | |
| 
 | |
| - Made ``CssCompressor`` class easier to extend.
 | |
| 
 | |
| - Added support for explicitly stating the block being ended.
 | |
| 
 | |
| - Added rcssmin and updated rjsmin.
 | |
| 
 | |
| - Removed implicit requirement on BeautifulSoup.
 | |
| 
 | |
| - Made GzipCompressorFileStorage set access and modified times to the same time
 | |
|   as the corresponding base file.
 | |
| 
 | |
| - Defaulted to using django's simplejson, if present.
 | |
| 
 | |
| - Fixed CompilerFilter to always output Unicode strings.
 | |
| 
 | |
| - Fixed windows line endings in offline compression.
 | |
| 
 | |
| v1.3 (2013-03-18)
 | |
| -----------------
 | |
| 
 | |
| - *Backward incompatible changes*
 | |
| 
 | |
|   -  Dropped support for Python 2.5. Removed ``any`` and ``walk`` compatibility
 | |
|      functions in ``compressor.utils``.
 | |
| 
 | |
|   - Removed compatibility with some old django setttings:
 | |
| 
 | |
|     - :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/django-compressor/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`: https://django-appconf.readthedocs.io/
 | |
| .. _`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
 | |
|   development -- 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 performance 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: https://django-compressor.readthedocs.io/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/
 | |
| 
 | 
