cucumber-codegen
Code generation for `cucumber` crate.
0.23.0
16M downloads/mo
#2362 most downloaded on crates.io
cucumber-rs/cucumber
What this package is like to depend on
Last release 4 months ago
23 Apr 2026
Ships unpredictably
gaps range from 8 days to 1.5 years
Nearly every release is documented
notes for 31 of 32 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
33 releases · first in 2021
3 releases in the last 12 months
see the full history below
Release timeline
33 releases · Oct 2021 to Apr 2026
2022
2023
2024
2025
2026
Releases
latest 33-
0.23.023 Apr 2026Release notes
Open source →BC Breaks
- Fixed precedence of operations in tag expressions to align with upstream. (gherkin#52, gherkin#51)
Changed
- Upgraded [
gherkin] crate to 0.16 version. (0d544772) - Allowed
And-like andBut-like keywords at the beginning ofScenario, automatically considering them asGiven-type steps. (gherkin#53)
-
0.22.123 Dec 2025Release notes
Open source → -
0.22.012 Dec 2025Release notes
Open source →BC Breaks
- Bumped up [MSRV] to 1.88 to get rid of
once_cellcrate, for#[expect]attribute usage, and because of migration to 2024 edition. (4010c1ad, f1307038, b46930c3, 9705253b, 0c7dfc3c, a4cbd3d2) - Replaced
ArcwithPartialEq/Hashpointer-optimizedSourceinevents: (#352)Source<gherkin::Feature>inevent::Cucumber::Feature.Source<gherkin::Rule>inevent::Feature::Rule.Source<gherkin::Scenario>inevent::Feature::Scenarioandevent::Rule::Scenario.Source<gherkin::Step>inevent::Scenario::Backgroundandevent::Scenario::Step.
- Made non-
constthe following constructor functions for input type polymorphism: (#352)event::Cucumber::feature_started()andevent::Cucumber::feature_finished().event::Cucumber::rule_started()andevent::Cucumber::rule_finished().event::Scenario::step_started(),event::Scenario::step_passed()andevent::Scenario::step_skipped().event::Scenario::background_step_started(),event::Scenario::background_step_passed()andevent::Scenario::background_step_skipped().
- Kept only currently executed row of
Examplestable in expandedScenario Outlines. (#371, #369)
Added
CUCUMBER_FILTER_TAGSenvironment variable support. (#372)
Fixed
- Bumped up [MSRV] to 1.88 to get rid of
-
0.21.116 Jun 2024Release notes
Open source → -
0.21.022 Apr 2024 -
0.20.204 Dec 2023Release notes
Open source →Fixed
- Ignored verbosity when printing
Worldon hook/background step failure. (#313)
- Ignored verbosity when printing
-
0.20.116 Oct 2023 -
0.20.010 Jul 2023Release notes
Open source →BC Breaks
- Added
Logvariant toevent::Scenario. (#258) - Added
embeddingsfield towriter::json::Stepandwriter::json::HookResult. (#261) - Added
report_timefield towriter::libtest::Cli. (#264, #265) - Bumped up [MSRV] to 1.70 for using the
IsTerminaltrait fromstd. (#288)
Added
- [
tracing] crate integration behind thetracingfeature flag. (#213, #258, #261) - Support of
--report-timeCLI option forwriter::Libtest. (#264, #265)
Fixed
- Added
-
0.19.129 Dec 2022Release notes
Open source → -
0.19.016 Dec 2022Release notes
Open source →BC Breaks
- Replaced
writer::FailOnSkipped::writerfield withwriter::FailOnSkipped::inner_writer()method. (56456e66) - Replaced
writer::Normalized::writerfield withwriter::Normalized::inner_writer()method. (56456e66) - Replaced
writer::Or::left/writer::Or::rightfields withwriter::Or::left_writer()/writer::Or::right_writer()methods. (56456e66) - Replaced
writer::Repeat::writerfield withwriter::Repeat::inner_writer()method. (56456e66) - Replaced
writer::Summarize::writerfield withwriter::Summarize::inner_writer()method. (56456e66) - Replaced
writer::Summarize::scenarios/writer::Summarize::stepsfields withwriter::Summarize::scenarios_stats()/writer::Summarize::steps_stats()methods. (56456e66) - Made
writer::Summarize::features/writer::Summarize::rulesfields private. (56456e66) - Made
writer::Summarize::parsing_errors/writer::Summarize::failed_hooksfields private in favour ofwriter::Stats::parsing_errors()/writer::Stats::failed_hooks()methods. (56456e66)
Added
- [Gherkin] syntax highlighting in the Book. (#251)
runner::Basic::fail_fast()method asCucumber::fail_fast(). (#252)Cucumber::with_default_cli()method. (56456e66)Defaultimplementation for CLI types. (56456e66)
Fixed
@serialScenarios continue running after failure when--fail-fast()CLI option is specified. (#252)
- Replaced
-
0.18.007 Dec 2022 -
0.17.023 Nov 2022Release notes
Open source →BC Breaks
- Added
event::ScenarioFinishedasCucumber::afterhook's argument, explaining why theScenariohas finished. (#246, #245)
Fixed
- Uncaught panics of user code, when they happen before first poll of the returned
Futures. (#246)
- Added
-
0.16.009 Nov 2022 -
0.15.301 Nov 2022Release notes
Open source → -
0.15.225 Oct 2022Release notes
Open source →Changed
- Upgraded [
gherkin] crate to 0.13 version. (4cad49f8)
Fixed
- Parsing error on a
Featurehaving comment and tag simultaneously. (4cad49f8, cucumber-rs/gherkin#37, cucumber-rs/gherkin#35) @retry,@serialand@allow.skippedtags semantics inheritance. (#237)
- Upgraded [
-
0.15.112 Oct 2022 -
0.15.005 Oct 2022 -
0.14.219 Sep 2022Release notes
Open source → -
0.14.112 Sep 2022Release notes
Open source →Changed
- Considered stripping
CARGO_WORKSPACE_DIRfrom output paths whenever is defined. (ad0bb22f)
Fixed
CARGO_MANIFEST_DIRbeing detected in compile time. (ad0bb22f)
Security updated
junit-reportcrate to 0.8 version to fix RUSTSEC-2022-0048. (#229, #226)
- Considered stripping
-
0.14.008 Sep 2022Release notes
Open source →BC Breaks
- Bumped up [MSRV] to 1.62 for more clever support of [Cargo feature]s and simplified codegen. (fbd08ec2, cf055ac0, 8ad5cc86)
- Replaced
#[derive(WorldInit)]with#[derive(World)]to remove the need of manualWorldtrait implementation. (#219, #217) - Merged
WorldInittrait into theWorldtrait. (#219) - Added
ParsingFinishedvariant toevent::Cucumber. (#220) - Reworked
writer::Failure/writer::discard::Failureaswriter::Stats/writer::discard::Stats. (#220) - Renamed
WriterExt::discard_failure_writes()toWriterExt::discard_stats_writes(). (#220) - Added
Option<step::Location>field toevent::Step::Passedandevent::Step::Failed. (#221) - Wrapped
event::Scenariointoevent::RetryableScenariofor storing in otherevents. (#223, #212) - Added
retried_steps()method towriter::Stats. (#223, #212)
Added
writer::Libtest(enables IntelliJ Rust integration) behind thelibtestfeature flag. (#220)writer::Orto alternate between 2Writers basing on a predicate. (#220)writer::Stats::passed_steps()andwriter::Stats::skipped_steps()methods. (#220)FeatureExt::count_steps()method. (#220)- Location of the
fnmatching a failedStepin output. (#221) - Ability to retry failed
Scenarios. (#223, #212) --retry,--retry-afterand--retry-tag-filterCLI options. (#223, #212)
Changed
-
0.13.029 Mar 2022Release notes
Open source → -
0.12.228 Mar 2022Release notes
Open source →Changed
Cucumber::afternow gets theWorldinstance even if someStepor aHookbefore it has failed. (#209, #207)
-
0.12.109 Mar 2022Release notes
Open source → -
0.12.010 Feb 2022Release notes
Open source →BC Breaks
step::Context::matchesnow contains regex capturing group names in addition to captured values. (#204)
Added
- Support for multiple capturing groups in
Parameterregex (previously was forbidden). (#204)
Fixed
- Book examples failing on Windows. (#202, #200)
{string}parameter in [Cucumber Expressions] returning its enclosing quotes. (cucumber-rs/cucumber-expressions#7)
-
0.11.331 Jan 2022Release notes
Open source → -
0.11.219 Jan 2022Release notes
Open source → -
0.11.107 Jan 2022Release notes
Open source →Added
--fail-fastCLI option torunner::Basic. (#196)
Changed
- Optimized
runner::Basicto not wait the whole batch to complete before executing nextScenarios. (#195)
-
0.11.003 Jan 2022Release notes
Open source →BC Breaks
- Moved
Worldtype parameter ofWriterExttrait to methods. (#160) - Renamed
NormalizedandSummarizedWriters toNormalizeandSummarize. (#162) - Removed
writer::BasicDefaultimpl and changewriter::Basic::new()return type towriter::Normalize<writer::Basic>. (#162) - Bump up [MSRV] to 1.57 for better error reporting in
constassertions. (cef3d480) - Switch to [
gherkin] crate instead of [gherkin_rust]. (e2a41ab0) - Renamed
@allow_skippedbuilt-in tag to@allow.skipped. (#181) - Switched CLI to [
clap] fromstructopt. (#188, #155) - Reworked
verboseCLI option ofwriter::Basic: (#193, #192)- Removed long form.
- Made
-vdefault behavior (no additional output). - Made
-vvadditionally outputWorldon failed steps. - Made
-vvvadditionally output docstrings (old behavior).
Added
- Ability for step functions to return
Result. (#151) - Arbitrary output for
writer::Basic. (#147) writer::JUnit(JUnit XML report) behind theoutput-junitfeature flag. (#147)writer::Json(Cucumber JSON format) behind theoutput-jsonfeature flag. (#159)writer::Teefor outputting to multiple terminatingWriters simultaneously. (#160)writer::discard::Arbitraryandwriter::discard::Failurefor providing no-op implementations of the correspondingWritertraits. (#160)- Inability to build invalid
Writers pipelines: - Support for [Cucumber Expressions] via
#[given(expr = ...)],#[when(expr = ...)]and#[then(expr = ...)]syntax. (#157) - Support for custom parameters in [Cucumber Expressions] via
#[derive(cucumber::Parameter)]macro. (#168) - Merging tags from
FeatureandRulewithScenariowhen filtering with--tagsCLI option. (#166) writer::AssertNormalizedforcingNormalizedimplementation. (#182)cli::Coloredtrait for propagatingColoringto arbitraryWriters. (#189, #186)
Fixed
- Moved
-
0.11.0-rc.128 Dec 2021 pre-releaseNothing published for this version
-
0.10.203 Nov 2021Release notes
Open source →Fixed
- Multiple
WorldInitderivers conflicting implementations in a single module. (#150)
- Multiple
-
0.10.129 Oct 2021Release notes
Open source →Fixed
- Console output hanging because of executing wrong
ConcurrentScenarios. (#146)
- Console output hanging because of executing wrong
-
0.10.026 Oct 2021Release notes
Open source →BC Breaks
- Renamed crate to
cucumber. - Complete redesign: (#128)
- Introduce new abstractions:
Parser,Runner,Writer; - Provide reference implementations for those abstractions;
- Enable
macrosfeature by default.
- Introduce new abstractions:
- Replaced
#[given(step)],#[when(step)]and#[then(step)]function argument attributes with a single#[step]. (#128) - Made test callbacks first argument
&mut Worldinstead ofWorld. (#128) - Made
#[step]argument of step functionsStepinstead ofStepContextagain, while test callbacks still receiveStepContextas a second parameter. (#128) - Completely redesign and reworked CLI, making it composable and extendable. (#144)
- Hooks now accept optional
&mut Worldas their last parameter. (#142)
Added
- Ability to run
Scenarios concurrently. (#128) - Highlighting of regex capture groups in terminal output with bold style. (#136)
- Error on a step matching multiple step functions (#143).
timestampsCargo feature that enables collecting of timestamps for all the happened events during tests execution (useful forWriters which format requires them) (#145).
- Renamed crate to
-
0.0.013 Oct 2021Nothing published for this version