NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #898 most downloaded on NuGet
JSON schema-based messages for Cucumber's inter-process communication
Last release 2 months ago
05 Aug 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
127 years old
84 releases · first in 1900
[Java] Use version range for org.jspecify:jspecify
org.jspecify:jspecify[dart] Add equals, hashCode, and toString to generated messages
One column per quarter.
[Ruby] Re-added a new improved #seconds_to_duration method using strings to correctly determine floating point amounts.
[cpp] Add deserialization using from_json .
[Dart] Fix automated release process?
[Dart] Add initial cucumber_messages package. ( #431 , #470 )
DataTable and DocString. (#468)[JavaScript] Update static version file at release time
[Ruby] Added #type classification (Returning hashified response), for all messages (Including envelopes)
[.Net] Fix release workflow filename
### Fixed - [Java] Fix broken Javadoc
[Java] Annotate constructor arguments with property names (#399
[JavaScript] Add export path for bundled schema
### Added - Generated bundled JSON schema
Fix field order for ExternalAttachment
Deprecate Attachment.url and Attachment.source
[Java] Add NdjsonToMessageReader
[Ruby] Add a way to analyse and compare the strength of TestStepResult messages (To be used in query)
TestStepResult messages (To be used in query) (#365)TimeConversion helper file generating a non-conformant Timestamp messageTimeConversion helper for translating back from a Timestamp by avoiding a rounding errorTimeConversion helpers that did not serve a purpose in message buildingRemoved circular dependency between messages and compatibility-kit
### Added - Add location to Pickle
location to Pickle (#308)### Added - [Java] Add OSGi metadata
[Ruby] Updated minimum Ruby version to 3.2 (#346 luke-hill)
[JavaScript] Include schemas in npm package
Add workerId to TestRunHookStarted
[java] Add comparators for comparable objects
[JavaScript] BREAKING CHANGE: Remove Node.js 18 support
### Fixed - [Elixir] Fix release process
[Elixir] Restored test and release process
BREAKING CHANGE: Add id property to TestRunStarted, optionally reference in TestCase, Attachment and TestRunFinished
[Go] Switch to Google's UUID module
Internal breaking change The code generation has undergone a large refactor (No visible changes expected). All new code generation logic is now contai…
[Php] Fixed a workflow issue with publishing the package
[Ruby] Messages are now altered to be 1 message class per file (#225 luke-hill)
[Java] Include stacktrace in Convertor.toMessage(Throwable)
### Fixed - Update repo URLs
Add stackTrace prop to Exception message
stackTrace prop to Exception message (#182)[Ruby] Updated minimum Ruby version to 2.5 (#177 luke-hill)
[Java] Suppress warnings for missing javadoc
Add exception to TestStepFinished TestRunFinished
Add workerId field to TestCaseStarted message
### Changed - Update dependencies
Add name field to package.cjs.json
name field to package.cjs.json (#36)[JavaScript] addDurations works with legacy messages that represent seconds as a string.
addDurations works with legacy messages that represent seconds as a string.[All] Added tags to Rule node (#1356 [sebrose], [gasparnagy], brasmusson, [WannesFransen1994])
@cucumber/message-streams[JavaScript] revert breaking changes in 14.1.1
The 14.1.0 release failed half way through due to build script problems.
[All] Added tags to Rule node (#1356 [sebrose], [gasparnagy], brasmusson, [WannesFransen1994])
[JavaScript] Remove Long from function signatures in TimeConversion
Long from function signatures in TimeConversion[JavaScript] The stream classes have to be imported separately: import { MessageToBinaryStream, MessageToNdjsonStream, BinaryToMessageStream, NdjsonTo
import { MessageToBinaryStream, MessageToNdjsonStream, BinaryToMessageStream, NdjsonToMessageStream} from '@cucumber/dist/src/stream'
(#1331)number, rather than number|LongIn case a line cannot be parsed as JSON, throw an error with the offending line in the exception message.
Elixir implementation (#1175 [WannesFransen1994])
Add Attachment#url. This makes it possible to "detach" attachments so the main stream gets smaller and the attachments can be processed/downloaded sep
Attachment#url. This makes it possible to "detach" attachments so the main stream
gets smaller and the attachments can be processed/downloaded separately with more ease.
(#1183
aslakhellesoy)Release again since the 13.0.0 release didn't fully sync to subrepos
Move JavaMethod and JavaStackTraceElement to be children of SourceReference
JavaMethod and JavaStackTraceElement to be children of SourceReferenceSuggested file name to the Attachment messages
Release process for 12.3.1 failed
Added field ci to Meta message.
ci to Meta message.[Ruby] Add VERSION file to gem, so Messages::Envelope::VERSION works
VERSION file to gem, so Messages::Envelope::VERSION worksJava: io.cucumber.messages.Messages.Envelope.class.getPackage().getImplementationVersion()
io.cucumber.messages.Messages.Envelope.class.getPackage().getImplementationVersion()Messages::Envelope::VERSIONimport { version } from '@cucumber/messages'Meta message
(#976
aslakhellesoy)cucumber-parent:2.1.0 (needed to expose library version)
(#976
aslakhellesoy)Add id field to Background, Rule and Examples. Needed for search engine indexing.
id field to Background, Rule and Examples. Needed for search engine indexing.The #932 pull request wasn't actually included in 11.1.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →