Jinja2 Changelog
================

Version 2.5.5
-------------
(re-release of 2.5.4 with built documentation removed for filesize.
 Released on October 18th 2010)

- built documentation is no longer part of release.

Version 2.5.4
-------------
(bugfix release, released on October 17th 2010)

- Fixed extensions not loading properly with overlays.
- Work around a bug in cpython for the debugger that causes segfaults
  on 64bit big-endian architectures.

Version 2.5.3
-------------
(bugfix release, released on October 17th 2010)

- fixed an operator precedence error introduced in 2.5.2.  Statements
  like "-foo.bar" had their implicit parentheses applied around the
  first part of the expression ("(-foo).bar") instead of the more
  correct "-(foo.bar)".

Version 2.5.2
-------------
(bugfix release, released on August 18th 2010)

- improved setup.py script to better work with assumptions people
  might still have from it (``--with-speedups``).
- fixed a packaging error that excluded the new debug support.

Version 2.5.1
-------------
(bugfix release, released on August 17th 2010)

- StopIteration exceptions raised by functions called from templates
  are now intercepted and converted to undefineds.  This solves a
  lot of debugging grief.  (StopIteration is used internally to
  abort template execution)
- improved performance of macro calls slightly.
- babel extraction can now properly extract newstyle gettext calls.
- using the variable `num` in newstyle gettext for something else
  than the pluralize count will no longer raise a :exc:`KeyError`.
- removed builtin markup class and switched to markupsafe.  For backwards
  compatibility the pure Python implementation still exists but is
  pulled from markupsafe by the Jinja2 developers.  The debug support
  went into a separate feature called "debugsupport" and is disabled
  by default because it is only relevant for Python 2.4
- fixed an issue with unary operators having the wrong precendence.

Version 2.5
-----------
(codename Incoherence, relased on May 29th 2010)

- improved the sort filter (should have worked like this for a
  long time) by adding support for case insensitive searches.
- fixed a bug for getattribute constant folding.
- support for newstyle gettext translations which result in a
  nicer in-template user interface and more consistent
  catalogs. (:ref:`newstyle-gettext`)
- it's now possible to register extensions after an environment
  was created.

Version 2.4.1
-------------
(bugfix release, released on April 20th 2010)

- fixed an error reporting bug for undefineds.

Version 2.4
-----------
(codename Correlation, released on April 13th 2010)

- the environment template loading functions now transparently
  pass through a template object if it was passed to it.  This
  makes it possible to import or extend from a template object
  that was passed to the template.
- added a :class:`ModuleLoader` that can load templates from
  precompiled sources.  The environment now features a method
  to compile the templates from a configured loader into a zip
  file or folder.
- the _speedups C extension now supports Python 3.
- added support for autoescaping toggling sections and support
  for evaluation contexts (:ref:`eval-context`).
- extensions have a priority now.

Version 2.3.1
-------------
(bugfix release, released on February 19th 2010)

- fixed an error reporting bug on all python versions
- fixed an error reporting bug on Python 2.4

Version 2.3
-----------
(3000 Pythons, released on February 10th 2010)

- fixes issue with code generator that causes unbound variables
  to be generated if set was used in if-blocks and other small
  identifier problems.
- include tags are now able to select between multiple templates
  and take the first that exists, if a list of templates is
  given.
- fixed a problem with having call blocks in outer scopes that
  have an argument that is also used as local variable in an
  inner frame (#360).
- greatly improved error message reporting (#339)
- implicit tuple expressions can no longer be totally empty.
  This change makes ``{% if %}...{% endif %}`` a syntax error
  now. (#364)
- added support for translator comments if extracted via babel.
- added with-statement extension.
- experimental Python 3 support.

Version 2.2.1
-------------
(bugfix release, released on September 14th 2009)

- fixes some smaller problems for Jinja2 on Jython.

Version 2.2
-----------
(codename Kong, released on September 13th 2009)

- Include statements can now be marked with ``ignore missing`` to skip
  non existing templates.
- Priority of `not` raised.  It's now possible to write `not foo in bar`
  as an alias to `foo not in bar` like in python.  Previously the grammar
  required parentheses (`not (foo in bar)`) which was odd.
- Fixed a bug that caused syntax errors when defining macros or using the
  `{% call %}` tag inside loops.
- Fixed a bug in the parser that made ``{{ foo[1, 2] }}`` impossible.
- Made it possible to refer to names from outer scopes in included templates
  that were unused in the callers frame (#327)
- Fixed a bug that caused internal errors if names where used as iteration
  variable and regular variable *after* the loop if that variable was unused
  *before* the loop.  (#331)
- Added support for optional `scoped` modifier to blocks.
- Added support for line-comments.
- Added the `meta` module.
- Renamed (undocumented) attribute "overlay" to "overlayed" on the
  environment because it was clashing with a method of the same name.
- speedup extension is now disabled by default.

Version 2.1.1
-------------
(Bugfix release)

- Fixed a translation error caused by looping over empty recursive loops.

Version 2.1
-----------
(codename Yasuzō, released on November 23rd 2008)

- fixed a bug with nested loops and the special loop variable.  Before the
  change an inner loop overwrote the loop variable from the outer one after
  iteration.

- fixed a bug with the i18n extension that caused the explicit pluralization
  block to look up the wrong variable.

- fixed a limitation in the lexer that made ``{{ foo.0.0 }}`` impossible.

- index based subscribing of variables with a constant value returns an
  undefined object now instead of raising an index error.  This was a bug
  caused by eager optimizing.

- the i18n extension looks up `foo.ugettext` now followed by `foo.gettext`
  if an translations object is installed.  This makes dealing with custom
  translations classes easier.

- fixed a confusing behavior with conditional extending.  loops were partially
  executed under some conditions even though they were not part of a visible
  area.

- added `sort` filter that works like `dictsort` but for arbitrary sequences.

- fixed a bug with empty statements in macros.

- implemented a bytecode cache system.  (:ref:`bytecode-cache`)

- the template context is now weakref-able

- inclusions and imports "with context" forward all variables now, not only
  the initial context.

- added a cycle helper called `cycler`.

- added a joining helper called `joiner`.

- added a `compile_expression` method to the environment that allows compiling
  of Jinja expressions into callable Python objects.

- fixed an escaping bug in urlize

Version 2.0
-----------
(codename jinjavitus, released on July 17th 2008)

- the subscribing of objects (looking up attributes and items) changed from
  slightly.  It's now possible to give attributes or items a higher priority
  by either using dot-notation lookup or the bracket syntax.  This also
  changed the AST slightly.  `Subscript` is gone and was replaced with
  :class:`~jinja2.nodes.Getitem` and :class:`~jinja2.nodes.Getattr`.

  For more information see :ref:`the implementation details <notes-on-subscriptions>`.

- added support for preprocessing and token stream filtering for extensions.
  This would allow extensions to allow simplified gettext calls in template
  data and something similar.

- added :meth:`jinja2.environment.TemplateStream.dump`.

- added missing support for implicit string literal concatenation.
  ``{{ "foo" "bar" }}`` is equivalent to ``{{ "foobar" }}``

- `else` is optional for conditional expressions.  If not given it evaluates
  to `false`.

- improved error reporting for undefined values by providing a position.

- `filesizeformat` filter uses decimal prefixes now per default and can be
  set to binary mode with the second parameter.

- fixed bug in finalizer

Version 2.0rc1
--------------
(no codename, released on June 9th 2008)

- first release of Jinja2
