NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2383 most downloaded on PyPI
Gherkin parser (official, by Cucumber team)
Last release 2 months ago
05 Aug 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 59 of 59 stable releases
1 version withdrawn
withdrawn after publishing
11 years old
60 releases · first in 2016
[Java] Added builder option to use non-deprecated IdGenerator .
IdGenerator.org.jspecify:jspecify(i18n) Added Persian translation of "Rule"
cucumber_gherkin (#640)One column per quarter.
[PHP] BREAKING CHANGE: Require PHP 8.4
[JavaScript] BREAKING CHANGE: Switch to ESM
[PHP] Fix PHP 8.4 deprecation warnings ( #550 ).
#detach method (#561).ParserMessageStream to accept keyword arguments allowing the Gherkin class methods to be slightly more optimal (#560).(i18n) Added Korean translation of "Rule"
Parser.parse (#541).[Java] Set release version to 17 (#507).
[.NET] Support calling Methods in GherkinLine on default value (#503).
BREAKING CHANGE: Require messages v31 or greater
### Added - [Java] Add OSGi metadata
[.NET, Elixir, Go, JavaScript, Java, Perl, Php, Ruby] Update dependency messages to v30
org.assertj:assertj-core in test scope.(I18n) ru: Added word "Значения" as a synonym for examples (#479
[.NET, Elixir, Go, JavaScript, Java, Perl, Php, Ruby] Update dependency messages to v29
[Java] Deprecate GherkinDialectProvider in favour of GherkinDialects
GherkinDialectProvider in favour of GherkinDialects (#448)GherkinLine.substringTrimmed (#444).egg-info metadata distribution artifacts[Java] Optimize GherkinParser performance
[Elixir, Go, JavaScript, Java, Perl, Php, Ruby] Update dependency messages to v28
[Perl] Support for Gherkin in Markdown format (MDG)
[cpp] Actually use the VERSION file
[Java] Avoid unnecessary unboxing to Character
[Java] Optimize GherkinLine performance
[Python] Fix a regression when a feature file only has a comment in the description
[JavaScript] BREAKING CHANGE: Update supported Node.js versions to 18, 20, 22 and 23
[All] Allow comment inside descriptions
### Fixed - Update Java release process
### Fixed - Update Java release process
Release v30.1.1 as a copy of v30.0.4 to cover v36.1.0 that was accidentally released as v30.1.0
### Added - [Java] Add OSGi metadata
[Python] File gherkin-languages.json was not included as package data
[Python] Release process (still) didn't release to pypi correctly
Fix for get_comments prototype deprecation by @tmcgilchrist in https://github.com/cucumber/gherkin/pull/186
Manually made due to issue with polyglot-release
Full Changelog: https://github.com/cucumber/gherkin/compare/v26.0.1...v29.0.0
[Python] Added release workflow for releasing to Pypi
(i18n) Added Malayalam localization
Gherkin::Query#parent_locations for determining a scenario's parents' line numbers (#89)### Changed - Upgraded messages to v22
(i18n) Add Belarusian localization
[Javascript, PHP, Ruby] Allow messages v19.1.4 to v20.0.1 to be used
### Fixed - [Go] Fix module names (again)
### Fixed - [Go] Fix module names
[Java] Enabled reproducible builds
Cucumber::Messages dependency (#50)Fix half-glyph in Georgian translations
Fix release process for perl and elixir
Additional ja (Japanese) translations for and, but
ja (Japanese) translations for and, butamh (Amharic) translationФича and Шаблон примера as more convenient translations (#2078)ja (Japanese) Rule translation changed from Rule to ルールka (Georgian) locale[Java] Added support for reading directly from input (files, streams, paths, ect)
[Java], [JavaScript], [PHP], [Perl], [Python], [Go], [C], [DotNet], [Ruby] Support new messages keyword types fields an added with #1966
GherkinDialect constructor is no longer public (it's only used internally)gherkin.GherkinDialectsBuildin id renamed to gherkin.DialectsBuiltingherkin.GherkinDialect id renamed to gherkin.Dialectgherkin.GherkinDialectProvider id renamed to gherkin.DialectProviderne (Nepali) and translation changed from अनी to अनिuz (Uzbek) given translation changed from Агар to Belgilanganen-old (Old English) when translation changed from Tha / Þa / Ða to Bæþsealf / Bæþsealfa / Bæþsealfe / Ciricæw / Ciricæwe / Ciricæwa[PhP] Fix dependency of messages
[Java] Replaced Gherkin with a GherkinParser that uses a builder to construct.
messages to v18.0.0Gherkin with a GherkinParser that uses a builder to construct.stopAtFirstError property from ParserGherkin@cucumber/message-streams has been removed from the dependencies. If you are using @cucumber/gherkin-streams v5.0.0 or later, you have to add @cucumber/message-streams in your dependencies in addition to @cucumber/gherkin.io.cucumber.gherkin.Main class is no longer part of the jar.[Perl] Documentation for most of the modules (#1740 ehuelsmann)
Cucumber::Messages instead of hashesand increased minimum Perl version in accordance with Cucumber::Messages(to 5.14; from 5.12) (#1735ehuelsmann)### Changed - Update messages to v17.0.1
messages to v17.0.1Update rule polish translation (#1579 l310)
MDG files must use the .feature.md extension.
.feature.md extension.Upgrade to @cucumber/message-streams ^2.0.0
@cucumber/message-streams ^2.0.0[Perl] Updated to pass acceptance tests. (#1552 ehuelsmann)
[JavaScript] Experimental support for Markdown. See MARKDOWN_WITH_GHERKIN.md (#1209 aslakhellesoy)
[python] Run gherkin as a module. (#1480 #1475 [brasmusson] [aurelien-reeves])
Python implementation re-enabled, with support for Rule keyword. (#1449 brasmusson)
(Go) Implement CLI (#145 #162 by l3pp4rd)
uri in pickles on C command line (#176 #165 by brasmusson)Something went wrong during this release - do not use
(JavaScript, Ruby, Python) Packages include executabled. (#155 by aslakhellesoy)
(.NET, Java, JavaScript, Ruby, Python) Streaming API and command line client.
(JavaScript) Expose dialects (#177 by charlierudolph)
GherkinDocument node, with a feature property pointing to a Feature node. Prior to this release the parser would return a Feature node. Second, the Feature node now has an array/list of children that are Background, Scenario or ScenarioOutline. Other noteworthy changes is several minor improvements to bring the grammar closer to Gherkin 2.gherkin.pickles package to the Python installation (#157, #156 by Zearin)(I18n) Mongolian translation of Gherkin (#140 by jargalan)
gherkin3 to gherkin. (Python package is called gherkin-official)DocString contentType property is not defined rather than an empty string when the Gherkin doc doesn't specify the type after three backticks. (by aslakhellesoy)io.StringIO in token_scanner.py (#121 by zbmott)Your coding agent can read these notes before it upgrades. Set up the MCP server →