All Versions
35
Latest Version
Avg Release Cycle
159 days
Latest Release
629 days ago

Changelog History
Page 1

  • v5.4.0 Changes

    July 29, 2022

    ๐Ÿ’ฅ Breaking Changes

    • โฌ‡๏ธ Drop support for end-of-life Ruby versions (2.5 and 2.6) (#1578) [Andy Waite]

    ๐Ÿ”‹ Features

    • ๐Ÿ‘ Allow # to be used as an inline comment tag (#1498) [CP Clermont]

    ๐Ÿ›  Fixes

    • 0๏ธโƒฃ PartialCache now shares snippet cache with subcontexts by default (#1553) [Chris AtLee]
    • Hash registers no longer leak into subcontexts as static registers (#1564) [Chris AtLee]
    • ๐Ÿ›  Fix ParseTreeVisitor for with variable expressions in Render tag (#1596) [CP Clermont]

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ Liquid::Context#registers now always returns a Liquid::Registers object, though supports the most used Hash functions for compatibility (#1553)
  • v5.3.0 Changes

    March 22, 2022

    ๐Ÿ›  Fixes

    • StandardFilter: Fix missing @context on iterations (#1525) [Thierry Joyal]
    • ๐Ÿ›  Fix warning about block and default value in static_registers.rb (#1531) [Peter Zhu]

    ๐Ÿ—„ Deprecation

    • Condition#evaluate to require mandatory context argument in Liquid 6.0.0 (#1527) [Thierry Joyal]
  • v5.2.0 Changes

    March 01, 2022

    ๐Ÿ”‹ Features

    • Add remove_last, and replace_last filters (#1422) [Anders Hagbard]
    • Eagerly cache global filters (#1524) [Jean Boussier]

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix some internal errors in filters from invalid input (#1476) [Dylan Thacker-Smith]
    • ๐Ÿ‘ Allow dash in filter kwarg name for consistency with Liquid::C (#1518) [CP Clermont]
  • v5.1.0 Changes

    September 09, 2021

    ๐Ÿ”‹ Features

    • Add base64_encode, base64_decode, base64_url_safe_encode, and base64_url_safe_decode filters (#1450) [Daniel Insley]
    • Introduce to_liquid_value in Liquid::Drop (#1441) [Michael Go]

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix support for using a String subclass for the liquid source (#1421) [Dylan Thacker-Smith]
    • โž• Add ParseTreeVisitor to RangeLookup (#1470) [CP Clermont]
    • Translate RangeError to Liquid::Error for truncatewords with large int (#1431) [Dylan Thacker-Smith]
  • v5.0.1 Changes

    March 24, 2021

    ๐Ÿ›  Fixes

    • โž• Add ParseTreeVisitor to Echo tag (#1414) [CP Clermont]
    • โœ… Test with ruby 3.0 as the latest ruby version (#1398) [Dylan Thacker-Smith]
    • Handle carriage return in newlines_to_br (#1391) [Unending]

    ๐ŸŽ Performance Improvements

    • ๐Ÿ‘‰ Use split limit in truncatewords (#1361) [Dylan Thacker-Smith]
  • v5.0.0 Changes

    January 06, 2021

    ๐Ÿ”‹ Features

    • โž• Add new {% render %} tag (#1122) [Samuel Doiron]
    • โž• Add support for as in {% render %} and {% include %} (#1181) [Mike Angell]
    • โž• Add {% liquid %} and {% echo %} tags (#1086) [Justin Li]
    • โž• Add [usage tracking](README.md#usage-tracking) [Mike Angell]
    • โž• Add Tag.disable_tags for disabling tags that prepend Tag::Disableable at render time (#1162, #1274, #1275) [Mike Angell]
    • ๐Ÿ‘Œ Support using a profiler for multiple renders (#1365, #1366) [Dylan Thacker-Smith]

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix catastrophic backtracking in RANGES_REGEX regular expression (#1357) [Dylan Thacker-Smith]
    • ๐Ÿ‘‰ Make sure the for tag's limit and offset are integers (#1094) [David Cornu]
    • Invokable methods for enumerable reject include (#1151) [Thierry Joyal]
    • ๐Ÿ‘ Allow default filter to handle false as value (#1144) [Mike Angell]
    • ๐Ÿ›  Fix render length resource limit so it doesn't multiply nested output (#1285) [Dylan Thacker-Smith]
    • ๐Ÿ›  Fix duplication of text in raw tags (#1304) [Peter Zhu]
    • ๐Ÿ›  Fix strict parsing of find variable with a name expression (#1317) [Dylan Thacker-Smith]
    • ๐Ÿ‘‰ Use monotonic time to measure durations in Liquid::Profiler (#1362) [Dylan Thacker-Smith]

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ’Ž Require Ruby >= 2.5 (#1131, #1310) [Mike Angell, Dylan Thacker-Smith]
    • โœ‚ Remove support for taint checking (#1268) [Dylan Thacker-Smith]
    • Split Strainer class into StrainerFactory and StrainerTemplate (#1208) [Thierry Joyal]
    • โœ‚ Remove handling of a nil context in the Strainer class (#1218) [Thierry Joyal]
    • ๐Ÿ“œ Handle BlockBody#blank? at parse time (#1287) [Dylan Thacker-Smith]
    • Pass the tag markup and tokenizer to Document#unknown_tag (#1290) [Dylan Thacker-Smith]
    • And several internal changes

    ๐ŸŽ Performance Improvements

    • โฌ‡๏ธ Reduce allocations (#1073, #1091, #1115, #1099, #1117, #1141, #1322, #1341) [Richard Monette, Florian Weingarten, Ashwin Maroli]
    • ๐Ÿ‘Œ Improve resources limits performance (#1093, #1323) [Florian Weingarten, Dylan Thacker-Smith]
  • v4.0.3 Changes

    March 12, 2019

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix break and continue tags inside included templates in loops (#1072) [Justin Li]
  • v4.0.2 Changes

    March 08, 2019

    ๐Ÿ”„ Changed

    • โž• Add where filter (#1026) [Samuel Doiron]
    • โž• Add ParseTreeVisitor to iterate the Liquid AST (#1025) [Stephen Paul Weber]
    • ๐Ÿ‘Œ Improve strip_html performance (#1032) [printercu]

    ๐Ÿ›  Fixed

    • โž• Add error checking for invalid combinations of inputs to sort, sort_natural, where, uniq, map, compact filters (#1059) [Garland Zhang]
    • Validate the character encoding in url_decode (#1070) [Clayton Smith]
  • v4.0.1 Changes

    October 09, 2018

    ๐Ÿ”„ Changed

    • โž• Add benchmark group in Gemfile (#855) [Jerry Liu]
    • ๐Ÿ‘ Allow benchmarks to benchmark render by itself (#851) [Jerry Liu]
    • Avoid calling line_number on String node when rescuing a render error. (#860) [Dylan Thacker-Smith]
    • Avoid duck typing to detect whether to call render on a node. [Dylan Thacker-Smith]
    • Clarify spelling of reversed on for block tag (#843) [Mark Crossfield]
    • Replace recursion with loop to avoid potential stack overflow from malicious input (#891, #892) [Dylan Thacker-Smith]
    • Limit block tag nesting to 100 (#894) [Dylan Thacker-Smith]
    • Replace assert_equal nil with assert_nil (#895) [Dylan Thacker-Smith]
    • โœ‚ Remove Spy Gem (#896) [Dylan Thacker-Smith]
    • Add collection_name and variable_name reader to For block (#909)
    • Symbols render as strings (#920) [Justin Li]
    • โœ‚ Remove default value from Hash objects (#932) [Maxime Bedard]
    • โœ‚ Remove one level of nesting (#944) [Dylan Thacker-Smith]
    • โšก๏ธ Update Rubocop version (#952) [Justin Li]
    • Add at_least and at_most filters (#954, #958) [Nithin Bekal]
    • โž• Add a regression test for a liquid-c trim mode bug (#972) [Dylan Thacker-Smith]
    • ๐Ÿ‘‰ Use https rather than git protocol to fetch liquid-c [Dylan Thacker-Smith]
    • โž• Add tests against Ruby 2.4 (#963) and 2.5 (#981)
    • Replace RegExp literals with constants (#988) [Ashwin Maroli]
    • Replace unnecessary #each_with_index with #each (#992) [Ashwin Maroli]
    • ๐Ÿ‘Œ Improve the unexpected end delimiter message for block tags. (#1003) [Dylan Thacker-Smith]
    • ๐Ÿ”จ Refactor and optimize rendering (#1005) [Christopher Aue]
    • โž• Add installation instruction (#1006) [Ben Gift]
    • โœ‚ Remove Circle CI (#1010)
    • ๐Ÿ—„ Rename deprecated BigDecimal.new to BigDecimal (#1024) [Koichi ITO]
    • ๐Ÿ—„ Rename deprecated Rubocop name (#1027) [Justin Li]

    ๐Ÿ›  Fixed

    • ๐Ÿ– Handle join filter on non String joiners (#857) [Richard Monette]
    • ๐Ÿ›  Fix duplicate inclusion condition logic error of Liquid::Strainer.add_filter method (#861)
    • Fix escape, url_encode, url_decode not handling non-string values (#898) [Thierry Joyal]
    • ๐Ÿ›  Fix raise when variable is defined but nil when using strict_variables [Pascal Betz]
    • ๐Ÿ›  Fix sort and sort_natural to handle arrays with nils (#930) [Eric Chan]
  • v4.0.0 Changes

    December 14, 2016

    ๐Ÿ”„ Changed

    • 0๏ธโƒฃ Render an opaque internal error by default for non-Liquid::Error (#835) [Dylan Thacker-Smith]
    • ๐Ÿ’Ž Ruby 2.0 support dropped (#832) [Dylan Thacker-Smith]
    • โž• Add to_number Drop method to allow custom drops to work with number filters (#731)
    • Add strict_variables and strict_filters options to detect undefined references (#691)
    • ๐Ÿ‘Œ Improve loop performance (#681) [Florian Weingarten]
    • Rename Drop method before_method to liquid_method_missing (#661) [Thierry Joyal]
    • Add url_decode filter to invert url_encode (#645) [Larry Archer]
    • โž• Add global_filter to apply a filter to all output (#610) [Loren Hale]
    • โž• Add compact filter (#600) [Carson Reinke]
    • Rename deprecated "has_key?" and "has_interrupt?" methods (#593) [Florian Weingarten]
    • Include template name with line numbers in render errors (574) [Dylan Thacker-Smith]
    • โž• Add sort_natural filter (#554) [Martin Hanzel]
    • โž• Add forloop.parentloop as a reference to the parent loop (#520) [Justin Li]
    • ๐Ÿšš Block parsing moved to BlockBody class (#458) [Dylan Thacker-Smith]
    • โž• Add concat filter to concatenate arrays (#429) [Diogo Beato]
    • ๐Ÿ’Ž Ruby 1.9 support dropped (#491) [Justin Li]
    • Liquid::Template.file_system's read_template_file method is no longer passed the context. (#441) [James Reid-Smith]
    • โœ‚ Remove liquid_methods (See https://github.com/Shopify/liquid/pull/568 for replacement)
    • Liquid::Template.register_filter raises when the module overrides registered public methods as private or protected (#705) [Gaurav Chande]

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix variable names being detected as an operator when starting with contains (#788) [Michael Angell]
    • ๐Ÿ›  Fix include tag used with strict_variables (#828) [QuickPay]
    • ๐Ÿ›  Fix map filter when value is a Proc (#672) [Guillaume Malette]
    • ๐Ÿ›  Fix truncate filter when value is not a string (#672) [Guillaume Malette]
    • ๐Ÿ›  Fix behaviour of escape filter when input is nil (#665) [Tanel Jakobsoo]
    • ๐Ÿ›  Fix sort filter behaviour with empty array input (#652) [Marcel Cary]
    • ๐Ÿ›  Fix test failure under certain timezones (#631) [Dylan Thacker-Smith]
    • ๐Ÿ›  Fix bug in uniq filter (#595) [Florian Weingarten]
    • ๐Ÿ›  Fix bug when "blank" and "empty" are used as variable names (#592) [Florian Weingarten]
    • ๐Ÿ›  Fix condition parse order in strict mode (#569) [Justin Li]
    • ๐Ÿ›  Fix naming of the "context variable" when dynamically including a template (#559) [Justin Li]
    • Gracefully accept empty strings in the date filter (#555) [Loren Hale]
    • ๐Ÿ›  Fix capturing into variables with a hyphen in the name (#505) [Florian Weingarten]
    • ๐Ÿ›  Fix case sensitivity regression in date standard filter (#499) [Kelley Reynolds]
    • Disallow filters with no variable in strict mode (#475) [Justin Li]
    • ๐Ÿ“œ Disallow variable names in the strict parser that are not valid in the lax parser (#463) [Justin Li]
    • ๐Ÿ›  Fix BlockBody#warnings taking exponential time to compute (#486) [Justin Li]