Skip to content

Latest commit

 

History

History
572 lines (466 loc) · 21.9 KB

CHANGELOG.md

File metadata and controls

572 lines (466 loc) · 21.9 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Changed

  • [Ruby] Tidied up around 80% of all of the rubocop Layout offenses (This included 2 minor alterations to the generator code) (#217 luke-hill)
  • [Php] Permit both PHPUnit 10 and PHPUnit 11 (#200 ciaranmcnulty)

Fixed

  • [cpp] Don't rely on GitHub API for latest versions and implement a simple download retry loop

24.1.0 - 2024-03-23

Added

  • [Java] Include stacktrace in Convertor.toMessage(Throwable) (#213)

24.0.1 - 2023-12-21

Fixed

  • Update repo URLs (#190)

24.0.0 - 2023-11-24

Added

  • Add stackTrace prop to Exception message (#182)

23.0.0 - 2023-11-01

Added

  • Added C++ implementation (#152)

Changed

22.0.0 - 2023-04-06

Added

  • Added source reference to parameter type (#45)

Fixed

  • Corrected Java and PHP generators to allow running using Docker on Windows (#146)

21.0.1 - 2022-12-17

Fixed

  • [Java] Suppress warnings for missing javadoc (#128)

21.0.0 - 2022-12-17

Added

  • [Java] Add javadoc to messages (#124)

Changed

  • Add exception to TestStepFinished TestRunFinished (#122)

20.0.0 - 2022-11-14

Changed

  • Add workerId field to TestCaseStarted message (#34)
  • [Java] Enabled reproducible builds

Fixed

  • Change Go module name to match repo (#101)

19.1.4 - 2022-09-22

Changed

  • Update dependencies

19.1.3 - 2022-09-20

Fixed

  • Add name field to package.cjs.json (#36)

19.1.2 - 2022-06-22

Fixed

  • [Javascript] Schema was still missing in 19.1.1 due to how npm manages the files attribute in package.json (#2020)

19.1.1 - 2022-06-22

Fixed

  • [Javascript] Schema are actually missing from 19.1.0 (#2016)

19.1.0 - 2022-06-20

Added

  • [Javascript] Adding the json schemas of the messages to the NPM package (#2010)

19.0.0 - 2022-05-31

Added

  • Expand the messages protocol with keyword types (#1966)

Changed

  • [Java] the PickleStep constructor has changed - it now needs an extra PickleStepType argument.
  • [Java] the Step constructor has changed - it now needs an extra StepKeywordType argument.

18.0.0 - 2022-03-24

Added

  • Support for EcmaScript modules (aka ESM) (#1756)
  • New optional name property on the Hook schema (#1914)

Changed

  • JSON Schema: some array fields now have "minItems": 1.
  • Generate Java code that uses Optional in getters.
  • Setters are removed.
  • Classes without required fields have public empty constructors, and static of methods for each field. (#1858 aslakhellesoy)
  • Java: Make this library more null safe.

17.1.1 - 2021-09-17

Fixed

  • Perl: incorrectly included null values & guaranteed field order (#1727 ehuelsmann)

17.1.0 - 2021-09-01

Added

17.0.1 - 2021-07-19

Fixed

  • [Ruby] seconds_to_duration convert nanos to an integer to match the json schema (#1655)

17.0.0 - 2021-07-08

Added

  • Added Ci#buildNumber field (#1632 #1606 aslakhellesoy)
  • [Ruby] Generate DTOs from the json schemas to avoid usage of plain ruby hashes (#1574 #1605)
  • [Java] Added various overloads to JSON to work with streams efficiently

Changed

  • BREAKING Move willBeRetried field from TestStepResult to TestCaseFinished (#902 #1631)
  • [Go] Move module paths to point to monorepo (#1550)
  • [Java] Removed implicit utility class constructors and made classes final

16.0.1 - 2021-05-24

Fixed

  • [JavaScript] addDurations works with legacy messages that represent seconds as a string.

16.0.0 - 2021-05-15

Added

  • [Ruby] The generated code is added to Git. (#1461 aslakhellesoy)
  • [JavaScript] Added getWorstTestStepResult function (moved from @cucumber/query)

Changed

  • Empty string properties are set to "" rather than being omitted.
  • Empty Array properties are set to [] rather than being omitted.
  • The seconds property on Timestamp and Diration is now a number rather than a string.
  • [Go, Java, JavaScript, Ruby] The library no longer depends on protocol buffers. The message classes are generated from JSON Schemas. (#1414 aslakhellesoy)
  • [JavaScript]: Import with import * as messages from '@cucumber/messages'
  • [Ruby] Messages are now plain ruby hashes with camelCase symbol keys instead of objects with snake_case properties.
  • [Go, Java, JavaScript, Ruby] Packages and structs have changed:

15.0.0 - 2021-03-23

Added

  • [All] Added tags to Rule node (#1356 [sebrose], [gasparnagy], brasmusson, [WannesFransen1994])

Fixed

  • [Elixir] Make sure messages.proto is updated with ../messages.proto
  • [Elixir] Generated new message modules based on the new messages.proto file

Removed

  • [JavaScript] moved code that depends on Node.js stream APIs to @cucumber/message-streams

14.1.2 - 2021-03-23

Fixed

  • [JavaScript] revert breaking changes in 14.1.1 (#1437)

14.1.1 - 2021-03-22

Fixed

  • The 14.1.0 release failed half way through due to build script problems.

14.1.0 - 2021-03-22

Added

  • [All] Added tags to Rule node (#1356 [sebrose], [gasparnagy], brasmusson, [WannesFransen1994])

Fixed

  • [Elixir] Make sure messages.proto is updated with ../messages.proto
  • [Elixir] Generated new message modules based on the new messages.proto file

14.0.1 - 2021-02-08

Fixed

  • [JavaScript] Remove Long from function signatures in TimeConversion

14.0.0 - 2021-02-05

Changed

  • [JavaScript] The stream classes have to be imported separately: import { MessageToBinaryStream, MessageToNdjsonStream, BinaryToMessageStream, NdjsonToMessageStream} from '@cucumber/dist/src/stream' (#1331)
  • In JavaScript, Int64 fields are now typed as number, rather than number|Long

Fixed

13.2.1 - 2020-11-19

Fixed

  • In case a line cannot be parsed as JSON, throw an error with the offending line in the exception message.

13.2.0 - 2020-11-12

Added

  • Elixir implementation (#1175 [WannesFransen1994])

13.1.0 - 2020-09-14

Added

  • Add 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)

Fixed

  • Ignore empty lines rather than throwing an error.

13.0.1 - 2020-08-07

Fixed

  • Release again since the 13.0.0 release didn't fully sync to subrepos

13.0.0 - 2020-08-07

Changed

  • Move JavaMethod and JavaStackTraceElement to be children of SourceReference

12.4.0 - 2020-07-31

Added

  • Suggested file name to the Attachment messages (#1128)
  • Added ProtocolVersion to access messages version reliably (#1127 mpkorstanje)

12.3.2 - 2020-07-29

Fixed

  • Release process for 12.3.1 failed

12.3.1 - 2020-07-29

Fixed

  • Release process for 12.3.0 failed

12.3.0 - 2020-07-29

Added

  • Add JavaMethod and JavaStackTraceElement as SourceReference (#1120)

Fixed

12.2.0 - 2020-06-26

Added

  • Added field ci to Meta message.

12.1.1 - 2020-04-21

Fixed

  • [Ruby] Add VERSION file to gem, so Messages::Envelope::VERSION works

12.1.0 - 2020-04-21

Added

  • Java: io.cucumber.messages.Messages.Envelope.class.getPackage().getImplementationVersion()
  • Ruby: Messages::Envelope::VERSION
  • JavaScript: import { version } from '@cucumber/messages'
  • Expose the library version through the API
  • Add Meta message (#976 aslakhellesoy)
  • [Java] Upgrade to cucumber-parent:2.1.0 (needed to expose library version) (#976 aslakhellesoy)

12.0.0 - 2020-04-14

Added

  • Add id field to Background, Rule and Examples. Needed for search engine indexing.

Changed

  • Some messages have been nested under other messages (removal of other messages) made it possible to scope them more locally

Fixed

  • Ignore unknown fields when parsing JSON. This is to ensure forward and backward compatibility when using JSON encoding (NDJSON). (#959 #957 aslakhellesoy)

Removed

11.1.1 - 2020-03-30

Fixed

  • The #932 pull request wasn't actually included in 11.1.0

11.1.0 - 2020-03-30

Added

11.0.1 - 2020-03-30

Fixed

  • Release process

11.0.0 - 2020-03-30

Changed

  • Attachment#text and Attachment#binary have been replaced with Attachment#body, and Attachment#content_encoding has been added. (#947 aslakhellesoy)

10.0.3 - 2020-03-05

Fixed

  • 10.0.2 release process failed.

10.0.2 - 2020-03-02

Fixed

  • [JavaScript] make stream readable/writable object modes explicit. Better buffer handling.
  • [Ruby] Don't depend on the json gem, since it only installs on Windows with a C compiler toolchain. The json gem is part of the Ruby stdlib.
  • [Go] Increase max size of a JSON message to 10Mb (#901 #903 aslakhellesoy)

10.0.1 - 2020-02-13

Fixed

  • The 10.0.0 release failed.

10.0.0 - 2020-02-13

Added

Changed

Fixed

  • Ruby: Fixed rounding errors in TimeConversion

9.0.3 - 2020-01-10

Fixed

  • Ruby: Fix inclusion of generated lib/messages.pb.rb

9.0.2 - 2020-01-10

9.0.1 - 2020-01-09

Fixed

  • Fixed release scripts for Go and JavaScript

9.0.0 - 2020-01-09

Added

  • Added ParameterType as an envelope message

Changed

  • Renamed module name from cucumber-messages to messsages (#850 aslakhellesoy)
  • Use pure Ruby protobuf in order to avoid problems with Ruby 2.7.0 and JRuby. (#813 #843 mvz)
  • A TestCase now has a list of StepMatchArgumentsList rather than a list of StepMatchArgument. This allows a TestCase to hold matches from more than one StepDefinition, which is possible in the case of ambiguous matches.
  • Renamed content_type fields to media_type
  • Removed the Media message
  • Attachments can have one of string text and bytes binary as the body

Removed

  • Removed TestCase#test_result. Aggregate results will be computed by cucumber-query instead

8.0.0 - 2019-12-10

Added

  • Added testStepId and testCaseStartedId to Attachment (#814 charlierudolph)
  • Added new classes for working with NDJSON streams
  • Added new TimeConversion utilities for converting between protobuf Timestamp/Duration and the platform's representation of timestamps (clock time) and duration (monotonic time)

Changed

  • Renamed some of the classes for dealing with streams

7.0.0 - 2019-11-14

Added

Changed

6.0.2 - 2019-10-16

6.0.1 - 2019-10-03

Fixed

  • [Go] Release 6.0.0 is unusable.

6.0.0 - 2019-10-02

Added

  • New TestStepMatched message
  • Duration message to express duration in a seconds + nano format
  • field duration in TestResult message

Changed

  • Renamed PatternMatch to StepMatchArgument
  • Renamed CommandRunTestStep#patternMatches to CommandRunTestStep#stepMatchArguments
  • Replace Google's Timestamp by our own message

Removed

  • durationNanoSeconds field in TestResult message

5.0.1 - 2019-08-23

Fixed

  • [Go] Fix module version (5.0.0 left it at v4)

5.0.0 - 2019-08-23

Changed

  • The ordinal numbers of the Status enum have changed, to easier compute an aggregated status.

Fixed

  • [JavaScript] Don't swallow exceptions happening in ProtobufMessageStream

4.0.0 - 2019-08-14

3.0.5 - 2019-08-14

Fixed

  • [Go] Tag the cucumber/go subrepo (again)

3.0.4 - 2019-08-14

Fixed

  • [Go] Tag the cucumber/go subrepo (again)

3.0.3 - 2019-08-14

Fixed

  • [Go] Tag the cucumber/go subrepo

3.0.2 - 2019-08-01

Added

  • Add Timestamp property and comments to TestRunFinished message (#665 SabotageAndi

3.0.1 - 2019-07-15

Added

3.0.0 - 2019-06-05

Added

Changed

  • Use an enum for the encoding field.
  • Misc changes for cucumber-engine (#549)

Deprecated

Fixed

Removed

2.1.2 - 2019-03-29

Fixed

  • Fix Project struggling to build across JRuby and Ruby 2.6 (#578 luke-hill)

2.1.1 - 2018-11-02

Fixed

  • Release process improvements

2.1.0 - 2018-11-01

Added

2.0.0 - 2018-10-14

Added

1.1.2 - 2018-10-01

Added

  • Added TestHookStarted and TestHookFinished to distinguish between messages about Gherkin steps and hooks (aslakhellesoy)

1.0.0 - 2018-09-15

Added

  • Protobuf messages for Go, Java, JavaScript, TypeScript and Ruby