# 4.10.0 / 2024-10-19 - Add support for Symfony 6 and 7 thanks to @tacman - Sync with Cucumber 24.1.0 - Fix exception when filter string is empty thanks to @magikid - Fix nullable parameters warning in PHP 8.4 thanks to @heiglandreas and @jrfnl - Fix parsing of scenario outline rows with trailing backslashes - Fix PHPUnit 10 deprecation messages - A lot of great CI work by @heiglandreas and @jrfnl # 4.9.0 / 2021-10-12 - Simplify the boolean condition for the tag matching by @stof in https://github.com/Behat/Gherkin/pull/219 - Remove symfony phpunit bridge by @ciaranmcnulty in https://github.com/Behat/Gherkin/pull/220 - Ignore the bin folder in archives by @stof in https://github.com/Behat/Gherkin/pull/226 - Cast table node exceptions into ParserExceptions when throwing by @ciaranmcnulty in https://github.com/Behat/Gherkin/pull/216 - Cucumber changelog in PRs and using correct hash by @ciaranmcnulty in https://github.com/Behat/Gherkin/pull/225 - Support alternative docstrings format (```) by @ciaranmcnulty in https://github.com/Behat/Gherkin/pull/214 - Fix DocBlocks (Boolean -> bool) by @simonhammes in https://github.com/Behat/Gherkin/pull/237 - Tag parsing by @ciaranmcnulty in https://github.com/Behat/Gherkin/pull/215 - Remove test - cucumber added an example with Rule which is not supported by @ciaranmcnulty in https://github.com/Behat/Gherkin/pull/239 - Add PHP 8.1 support by @javer in https://github.com/Behat/Gherkin/pull/242 - Fix main branch alias version by @mvorisek in https://github.com/Behat/Gherkin/pull/244 # 4.8.0 / 2021-02-04 - Drop support for PHP before version 7.2 # 4.7.3 / 2021-02-04 - Refactored comments parsing to avoid Maximum function nesting level errors # 4.7.2 / 2021-02-03 - Issue where Scenario Outline title was not populated into Examples - Updated translations from cucumber 16.0.0 # 4.7.1 / 2021-01-26 - Issue parsing comments before scenarios when following an Examples table # 4.7.0 / 2021-01-24 - Provides better messages for TableNode construct errors - Now allows single character steps - Supports multiple Example Tables with tags # 4.6.2 / 2020-03-17 - Fixed issues due to incorrect cache key # 4.6.1 / 2020-02-27 - Fix AZ translations - Correctly filter features, now that the base path is correctly set # 4.6.0 / 2019-01-16 - Updated translations (including 'Example' as synonym for 'Scenario' in `en`) # 4.5.1 / 2017-08-30 - Fix regression in `PathsFilter` # 4.5.0 / 2017-08-30 - Sync i18n with Cucumber Gherkin - Drop support for HHVM tests on Travis - Add `TableNode::fromList()` method (thanks @TravisCarden) - Add `ExampleNode::getOutlineTitle()` method (thanks @duxet) - Use realpath, so the feature receives the cwd prefixed (thanks @glennunipro) - Explicitly handle non-two-dimensional arrays in TableNode (thanks @TravisCarden) - Fix to line/linefilter scenario runs which take relative paths to files (thanks @generalconsensus) # 4.4.5 / 2016-10-30 - Fix partial paths matching in `PathsFilter` # 4.4.4 / 2016-09-18 - Provide clearer exception for non-writeable cache directories # 4.4.3 / 2016-09-18 - Ensure we reset tags between features # 4.4.2 / 2016-09-03 - Sync 18n with gherkin 3 # 4.4.1 / 2015-12-30 - Ensure keywords are trimmed when syncing translations - Sync 18n with cucumber # 4.4.0 / 2015-09-19 - Added validation enforcing that all rows of a `TableNode` have the same number of columns - Added `TableNode::getColumn` to get a column from the table - Sync 18n with cucumber # 4.3.0 / 2014-06-06 - Added `setFilters(array)` method to `Gherkin` class - Added `NarrativeFilter` for non-english `RoleFilter` lovers # 4.2.1 / 2014-06-06 - Fix parsing of features without line feed at the end # 4.2.0 / 2014-05-27 - Added `getKeyword()` and `getKeywordType()` methods to `StepNode`, deprecated `getType()`. Thanks to @kibao # 4.1.3 / 2014-05-25 - Properly handle tables with rows terminating in whitespace # 4.1.2 / 2014-05-14 - Handle case where Gherkin cache is broken # 4.1.1 / 2014-05-05 - Fixed the compatibility with PHP 5.6-beta by avoiding to use the broken PHP array function - The YamlFileLoader no longer extend from ArrayLoader but from AbstractFileLoader # 4.1.0 / 2014-04-20 - Fixed scenario tag filtering - Do not allow multiple multiline step arguments - Sync 18n with cucumber # 4.0.0 / 2014-01-05 - Changed the behavior when no loader can be found for the resource. Instead of throwing an exception, the Gherkin class now returns an empty array. # 3.1.3 / 2014-01-04 - Dropped the dependency on the Symfony Finder by using SPL iterators directly - Added testing on HHVM on Travis. HHVM is officially supported (previous release was actually already compatible) # 3.1.2 / 2014-01-01 - All paths passed to PathsFilter are converted using realpath # 3.1.1 / 2013-12-31 - Add `ComplexFilterInterace` that has complex behavior for scenarios and requires to pass feature too - `TagFilter` is an instance of a `ComplexFilterInterace` now # 3.1.0 / 2013-12-31 - Example node is a scenario - Nodes do not have uprefs (memory usage fix) - Scenario filters do not depend on feature nodes # 3.0.5 / 2014-01-01 - All paths passed to PathsFilter are converted using realpath # 3.0.4 / 2013-12-31 - TableNode is now traversable using foreach - All possibly thrown exceptions implement Gherkin\Exception interface - Sync i18n with cucumber # 3.0.3 / 2013-09-15 - Extend ExampleNode with additional methods # 3.0.2 / 2013-09-14 - Extract `KeywordNodeInterface` and `ScenarioLikeInterface` - Add `getIndex()` methods to scenarios, outlines, steps and examples - Throw proper exception for fractured node tree # 3.0.1 / 2013-09-14 - Use versioned subfolder in FileCache # 3.0.0 / 2013-09-14 - A lot of optimizations in Parser and Lexer - Node tree is now immutable by nature (no setters) - Example nodes are now part of the node tree. They are lazily generated by Outline node - Sync with latest cucumber i18n # 2.3.4 / 2013-08-11 - Fix leaks in memory cache # 2.3.3 / 2013-08-11 - Fix encoding bug introduced with previous release - Sync i18n with cucumber # 2.3.2 / 2013-08-11 - Explicitly use utf8 encoding # 2.3.1 / 2013-08-10 - Support `an` prefix with RoleFilter # 2.3.0 / 2013-08-04 - Add RoleFilter - Add PathsFilter - Add MemoryCache # 2.2.9 / 2013-03-02 - Fix dependency version requirement # 2.2.8 / 2013-03-02 - Features filtering behavior change. Now emptified (by filtering) features that do not match filter themselves are removed from resultset. - Small potential bug fix in TableNode # 2.2.7 / 2013-01-27 - Fixed bug in i18n syncing script - Resynced Gherkin i18n # 2.2.6 / 2013-01-26 - Support long row hashes in tables ([see](https://github.com/Behat/Gherkin/issues/40)) - Synced Gherkin i18n # 2.2.5 / 2012-09-26 - Fixed issue with loading empty features - Synced Gherkin i18n # 2.2.4 / 2012-08-03 - Fixed exception message for "no loader found" # 2.2.3 / 2012-08-03 - Fixed minor loader bug with empty base path - Synced Gherkin i18n # 2.2.2 / 2012-07-01 - Added ability to filter outline scenarios by line and range filters - Synced Gherkin i18n - Refactored table parser to read row line numbers too # 2.2.1 / 2012-05-04 - Fixed StepNode `getLanguage()` and `getFile()` # 2.2.0 / 2012-05-03 - Features freeze after parsing - Implemented GherkinDumper (@Halleck45) - Synced i18n with Cucumber - Updated inline documentation # 2.1.1 / 2012-03-09 - Fixed caching bug, where `isFresh()` always returned false # 2.1.0 / 2012-03-09 - Added parser caching layer - Added support for table delimiter escaping (use `\|` for that) - Added LineRangeFilter (thanks @headrevision) - Synced i18n dictionary with cucumber/gherkin # 2.0.2 / 2012-02-04 - Synced i18n dictionary with cucumber/gherkin # 2.0.1 / 2012-01-26 - Fixed issue about parsing features without indentation # 2.0.0 / 2012-01-19 - Background titles support - Correct parsing of titles/descriptions (hirarchy lexing) - Migration to the cucumber/gherkin i18n dictionary - Speed optimizations - Refactored KeywordsDumper - New loaders - Bugfixes # 1.1.4 / 2012-01-08 - Read feature description even if it looks like a step # 1.1.3 / 2011-12-14 - Removed file loading routines from Parser (fixes `is_file()` issue on some systems - thanks @flodocteurklein) # 1.1.2 / 2011-12-01 - Updated spanish trasnaltion (@anbotero) - Integration with Composer and Travis CI # 1.1.1 / 2011-07-29 - Updated pt language step types (@danielcsgomes) - Updated vendors # 1.1.0 / 2011-07-16 - Return all tags, including inherited in `Scenario::getTags()` - New `Feature::getOwnTags()` and `Scenario::getOwnTags()` method added, which returns only own tags # 1.0.8 / 2011-06-29 - Fixed comments parsing. You can’t have comments at the end of a line # like this # But you can still have comments at the beginning of a line # 1.0.7 / 2011-06-28 - Added `getRaw()` method to PyStringNode - Updated vendors # 1.0.6 / 2011-06-17 - Updated vendors # 1.0.5 / 2011-06-10 - Fixed bug, introduced with 1.0.4 - hash in PyStrings # 1.0.4 / 2011-06-10 - Fixed inability to comment pystrings # 1.0.3 / 2011-04-21 - Fixed introduced with 1.0.2 pystring parsing bug # 1.0.2 / 2011-04-18 - Fixed bugs in text with comments parsing # 1.0.1 / 2011-04-01 - Updated vendors # 1.0.0 / 2011-03-08 - Updated vendors # 1.0.0RC2 / 2011-02-25 - Windows support - Missing phpunit config # 1.0.0RC1 / 2011-02-15 - Huge optimizations to Lexer & Parser - Additional loaders (Yaml, Array, Directory) - Filters (Tag, Name, Line) - Code refactoring - Nodes optimizations - Additional tests for exceptions and translations - Keywords dumper # 0.2.0 / 2011-01-05 - New Parser & Lexer (based on AST) - New verbose parsing exception handling - New translation mechanics - 47 brand new translations (see i18n) - Full test suite for everything from AST nodes to translations