unstale

npm / @cucumber/cucumber

@cucumber/cucumber

What changed in @cucumber/cucumber 8 to 13, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-03.

34 breaking5 deprecations10 new APIs and options1 performance9 behavior and defaults16 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

@cucumber/cucumber 1321 changes

Breaking changes 8

  • AfterAll hooks are always executed.

    13.0.0release notes

  • Deprecated handling of ambiguous formats has been removed.

    13.0.0release notes

  • The Cli class is no longer exported. Use the runCucumber function from the JavaScript API to run Cucumber programmatically.

    13.0.0upgrade guiderelease notes

  • Additional colons in paths are no longer handled on a best-effort basis when parsing CLI formats. Quote both sides of the delimiter to avoid ambiguity.

    13.0.0upgrade guide

  • FORCE_COLOR is set based on the deprecated format option.

    13.0.0release notes

  • Output for summary, progress, progress bar, and pretty formatters has been redesigned.

    13.0.0release notes

  • BeforeAll and AfterAll hooks always execute, even if other hooks have failed; ensure they can handle potentially incomplete state.

    13.0.0upgrade guiderelease notes

  • The parallel runtime has been reimplemented with worker threads, changing how parallel execution works.

    13.0.0release notes

Deprecations 4

  • willBeRetried is deprecated in After hooks.

    13.3.0release notes

  • The printAttachments format option is deprecated in favour of includeAttachments.

    13.0.0release notes

  • The legacy ProgressFormatter class is deprecated in favour of the new formatter architecture.

    13.0.0release notes

  • The legacy SummaryFormatter class is deprecated in favour of the new formatter architecture.

    13.0.0release notes

New APIs and options 2

  • Steps can now use both a data table and a doc string.

    13.3.0release notes

  • Adds an option to choose where global hooks run.

    13.2.0release notes

Behavior and default changes 1

  • The Error.cause chain, including stack frames, is surfaced in output.

    13.0.0release notes

Fixes and other changes 6

  • Fixes a hang in the parallel runtime when there are no test cases to run.

    13.2.1release notes

  • The ESM entry point now gets all exported types.

    13.1.1release notes

  • Prevents a formatter error when a test step result is missing.

    13.1.0release notes

  • Unexpected exits from parallel workers are now handled.

    13.1.0release notes

  • Undefined and ambiguous results are handled correctly when skipped.

    13.0.0release notes

  • Status colors now match those used by other formatters.

    13.0.0release notes

@cucumber/cucumber 1226 changes

Breaking changes 3

Deprecations 1

  • The format option is deprecated in favour of environment variables.

    12.6.0release notes

New APIs and options 8

  • Plugins can now listen for the new publish:url event.

    12.9.0release notes

  • Adds support for a custom externalising option.

    12.8.0release notes

  • External plugins are now allowed, enabling developers to extend Cucumber with plugins.

    12.5.0release notes

  • Config files can now be loaded in TypeScript format.

    12.4.0release notes

  • BeforeAll and AfterAll hooks can be named.

    12.3.0release notes

  • Messages are emitted for test run hooks.

    12.3.0release notes

  • The After hook parameters now include the original error.

    12.0.0release notes

  • The AfterStep hook parameters now include the original error.

    12.0.0release notes

Performance 1

  • Report content is compressed with gzip before publishing.

    12.4.0release notes

Behavior and default changes 6

  • Assertion info is now included in the stack trace.

    12.8.3release notes

  • Cucumber warns about paths merged from config and CLI, helping developers identify configuration overlap.

    12.7.0release notes

  • The HTML report is rendered in a more test case-centric way.

    12.3.0release notes

  • Messages are emitted for suggestions.

    12.3.0release notes

  • Comments are now allowed inside descriptions.

    12.0.0release notes

  • The HTML formatter header has been redesigned.

    12.0.0release notes

Fixes and other changes 7

@cucumber/cucumber 114 changes

Breaking changes 4

  • Support for Node.js 21 was removed.

    11.0.0release notes

  • The previously deprecated parseGherkinMessageStream API was removed.

    11.0.0release notes

  • The previously deprecated PickleFilter API was removed.

    11.0.0release notes

  • The previously deprecated Runtime API was removed.

    11.0.0release notes

@cucumber/cucumber 106 changes

Breaking changes 5

  • Configuration files are loaded using the appropriate module loading mechanism.

    10.0.0release notes

  • Custom formatters and snippet syntaxes are loaded with await import().

    10.0.0release notes

  • Default support code is loaded with await import().

    10.0.0release notes

  • Attached string literals are base64-encoded in JSON reports.

    10.0.0release notes

  • Support for Node.js 14, 16 and 19 is dropped.

    10.0.0release notes

Fixes and other changes 1

@cucumber/cucumber 92 changes

Breaking changes 2

  • The generator snippet interface was removed.

    9.0.0release notes

  • Support for Node.js versions 12 and 17 was removed.

    9.0.0release notes

@cucumber/cucumber 816 changes

Breaking changes 12

  • The Cli constructor now requires env, the environment variables used to detect some configuration options.

    8.0.0upgrade guide

  • The Cli constructor now requires stderr, a writable stream for warning and error output.

    8.0.0upgrade guide

  • Absolute paths for custom formatters and snippet syntaxes must be provided as valid file:// URLs.

    8.0.0upgrade guide

  • Subpath exports restrict which package internals Node.js can resolve, including implicit resolution of /index.js.

    8.0.0upgrade guide

  • Generator functions in step definitions are no longer natively supported; use async/await or wrap generators with your own dependencies.

    8.0.0upgrade guide

  • The getConfiguration method is removed from the programmatic Cli API.

    8.0.0upgrade guide

  • The getSupportCodeLibrary method is removed from the programmatic Cli API.

    8.0.0upgrade guide

  • The initializeFormatters method is removed from the programmatic Cli API.

    8.0.0upgrade guide

  • The --predictable-ids CLI option is removed; it was only used for internal testing.

    8.0.0upgrade guide

  • The --retryTagFilter CLI option is removed; use --retry-tag-filter instead.

    8.0.0upgrade guide

  • Relative paths for snippet syntaxes must begin with a dot.

    8.0.0upgrade guide

  • The After hook argument's result no longer contains willBeRetried; the property is available at the top level of the argument.

    8.0.0upgrade guide

Behavior and default changes 2

Fixes and other changes 2