All Versions
47
Latest Version
Avg Release Cycle
90 days
Latest Release
-

Changelog History
Page 3

  • v2.9.3 Changes

    January 08, 2017

    ๐Ÿš€ Released 2017-01-08

    • โช Restored the use of blocks in macros to the extend that was possible before. On Python 3 it would render a generator repr instead of the block contents. :issue:645
    • Set a consistent behavior for assigning of variables in inner scopes when the variable is also read from an outer scope. This now sets the intended behavior in all situations however it does not restore the old behavior where limited assignments to outer scopes was possible. For more information and a discussion see :issue:641
    • Resolved an issue where block scoped would not take advantage of the new scoping rules. In some more exotic cases a variable overridden in a local scope would not make it into a block.
    • Change the code generation of the with statement to be in line with the new scoping rules. This resolves some unlikely bugs in edge cases. This also introduces a new internal With node that can be used by extensions.
  • v2.9.2 Changes

    January 08, 2017

    ๐Ÿš€ Released 2017-01-08

    • ๐Ÿ›  Fixed a regression that caused for loops to not be able to use the same variable for the target as well as source iterator. :issue:640
    • ๐Ÿ‘ Add support for a previously unknown behavior of macros. It used to be possible in some circumstances to explicitly provide a caller argument to macros. While badly buggy and unintended it turns out that this is a common case that gets copy pasted around. To not completely break backwards compatibility with the most common cases it's now possible to provide an explicit keyword argument for caller if it's given an explicit default. :issue:642
  • v2.9.1 Changes

    January 07, 2017

    ๐Ÿš€ Released 2017-01-07

    • Resolved a regression with call block scoping for macros. Nested caller blocks that used the same identifiers as outer macros could refer to the wrong variable incorrectly.
  • v2.9 Changes

    January 07, 2017

    ๐Ÿš€ Released 2017-01-07, codename Derivation

    • ๐ŸŽ Change cache key definition in environment. This fixes a performance regression introduced in 2.8.
    • ๐Ÿ‘ Added support for generator_stop on supported Python versions (Python 3.5 and later)
    • Corrected a long standing issue with operator precedence of math operations not being what was expected.
    • ๐Ÿ‘ Added support for Python 3.6 async iterators through a new async mode.
    • 0๏ธโƒฃ Added policies for filter defaults and similar things.
    • 0๏ธโƒฃ Urlize now sets "rel noopener" by default.
    • ๐Ÿ’… Support attribute fallback for old-style classes in 2.x.
    • ๐Ÿ‘ Support toplevel set statements in extend situations.
    • โช Restored behavior of Cycler for Python 3 users.
    • Subtraction now follows the same behavior as other operators on undefined values.
    • ๐Ÿ‘ map and friends will now give better error messages if you forgot to quote the parameter.
    • Depend on MarkupSafe 0.23 or higher.
    • ๐Ÿ‘ Improved the truncate filter to support better truncation in case the string is barely truncated at all.
    • Change the logic for macro autoescaping to be based on the runtime autoescaping information at call time instead of macro define time.
    • Ported a modified version of the tojson filter from Flask to Jinja2 and hooked it up with the new policy framework.
    • 0๏ธโƒฃ Block sets are now marked safe by default.
    • On Python 2 the asciification of ASCII strings can now be disabled with the compiler.ascii_str policy.
    • โœ… Tests now no longer accept an arbitrary expression as first argument but a restricted one. This means that you can now properly use multiple tests in one expression without extra parentheses. In particular you can now write foo is divisibleby 2 or foo is divisibleby 3 as you would expect.
    • Greatly changed the scoping system to be more consistent with what template designers and developers expect. There is now no more magic difference between the different include and import constructs. Context is now always propagated the same way. The only remaining differences is the defaults for with context and without context.
    • The with and autoescape tags are now built-in.
    • ๐Ÿ”ง Added the new select_autoescape function which helps configuring better autoescaping easier.
    • ๐Ÿ›  Fixed a runtime error in the sandbox when attributes of async generators were accessed.
  • v2.8.1 Changes

    December 29, 2016

    ๐Ÿš€ Released 2016-12-29

    • ๐Ÿ›  Fixed the for_qs flag for urlencode.
    • ๐Ÿ›  Fixed regression when applying int to non-string values.
    • ๐Ÿ”’ SECURITY: if the sandbox mode is used format expressions are now sandboxed with the same rules as in Jinja. This solves various information leakage problems that can occur with format strings.
  • v2.8 Changes

    ๐Ÿš€ Released 2015-07-26, codename Replacement

    • Added target parameter to urlize function.
    • ๐Ÿ‘ Added support for followsymlinks to the file system loader.
    • The truncate filter now counts the length.
    • Added equalto filter that helps with select filters.
    • Changed cache keys to use absolute file names if available instead of load names.
    • ๐Ÿ›  Fixed loop length calculation for some iterators.
    • Changed how Jinja2 enforces strings to be native strings in Python 2 to work when people break their default encoding.
    • ๐ŸŒฒ Added :func:make_logging_undefined which returns an undefined object that logs failures into a logger.
    • If unmarshalling of cached data fails the template will be reloaded now.
    • Implemented a block set tag.
    • 0๏ธโƒฃ Default cache size was increased to 400 from a low 50.
    • โœ… Fixed is number test to accept long integers in all Python versions.
    • Changed is number to accept Decimal as a number.
    • 0๏ธโƒฃ Added a check for default arguments followed by non-default arguments. This change makes {% macro m(x, y=1, z) %} a syntax error. The previous behavior for this code was broken anyway (resulting in the default value being applied to y).
    • Add ability to use custom subclasses of jinja2.compiler.CodeGenerator and jinja2.runtime.Context by adding two new attributes to the environment (code_generator_class and context_class) (pull request :issue:`404`).
    • ๐Ÿ‘ Added support for context/environment/evalctx decorator functions on the finalize callback of the environment.
    • Escape query strings for urlencode properly. Previously slashes were not escaped in that place.
    • Add 'base' parameter to 'int' filter.
  • v2.7.3 Changes

    ๐Ÿš€ Released 2014-06-06

    • ๐Ÿ”’ Security issue: Corrected the security fix for the cache folder. This fix was provided by RedHat.
  • v2.7.2 Changes

    ๐Ÿš€ Released 2014-01-10

    • Prefix loader was not forwarding the locals properly to inner loaders. This is now fixed.
    • ๐Ÿ”’ Security issue: Changed the default folder for the filesystem cache to be user specific and read and write protected on UNIX systems. See Debian bug 734747_ for more information.

    .. _Debian bug 734747: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734747

  • v2.7.1 Changes

    ๐Ÿš€ Released 2013-08-07

    • ๐Ÿ›  Fixed a bug with call_filter not working properly on environment and context filters.
    • ๐Ÿ›  Fixed lack of Python 3 support for bytecode caches.
    • โช Reverted support for defining blocks in included templates as this broke existing templates for users.
    • โš  Fixed some warnings with hashing of undefineds and nodes if Python is run with warnings for Python 3.
    • ๐Ÿ‘ Added support for properly hashing undefined objects.
    • ๐Ÿ›  Fixed a bug with the title filter not working on already uppercase strings.
  • v2.7 Changes

    ๐Ÿš€ Released 2013-05-20, codename Translation

    • Choice and prefix loaders now dispatch source and template lookup separately in order to work in combination with module loaders as advertised.
    • ๐Ÿ›  Fixed filesizeformat.
    • Added a non-silent option for babel extraction.
    • Added urlencode filter that automatically quotes values for URL safe usage with utf-8 as only supported encoding. If applications want to change this encoding they can override the filter.
    • ๐Ÿ”ง Added keep-trailing-newline configuration to environments and templates to optionally preserve the final trailing newline.
    • Accessing last on the loop context no longer causes the iterator to be consumed into a list.
    • Python requirement changed: 2.6, 2.7 or >= 3.3 are required now, supported by same source code, using the "six" compatibility library.
    • Allow contextfunction and other decorators to be applied to __call__.
    • ๐Ÿ‘ Added support for changing from newline to different signs in the wordwrap filter.
    • ๐Ÿ‘ Added support for ignoring memcache errors silently.
    • ๐Ÿ‘ Added support for keeping the trailing newline in templates.
    • ๐Ÿ‘ Added finer grained support for stripping whitespace on the left side of blocks.
    • Added map, select, reject, selectattr and rejectattr filters.
    • ๐Ÿ‘ Added support for loop.depth to figure out how deep inside a recursive loop the code is.
    • Disabled py_compile for pypy and python 3.