Create Dart Implementation#431
Conversation
…mprove time conversion functions to truncate sub-microsecond precision. Add tests for error scenarios and precision handling.
…n JSON object structure and stream processing behavior.
There was a problem hiding this comment.
Heya, thanks for the PR!
I've given this a quick look for big problems. I didn't spot any, but I'll have to give it a more detailed look later.
Some general remarks:
-
I assume you're aware of cucumber/gherkin#30 and cucumber/gherkin#29.
-
We currently don't publish the Gherkin parser. I assume that is something you'd like to see happen in the future. That can be arranged though but might take some work.
-
I see that you've chosen to set default values for all required fields. Perhaps copied from the JavaScript implementation. We are trying to get rid of those for JavaScript (#285). It would make sense not copy that mistake into Dart. Ideally the constructor would throw an exception when trying to create message with missing required fields.
-
The generated messages sit in the same folder as the support code. This makes reviewing code quite annoying. And this may cause issues in the future if introduce a message that clashes with the support code. Can we separate these?
A few more detailed remarks below.
…es and updating code formatting for consistency. Adjust analysis options to exclude generated files and improve code generation process in Makefile.
…e error handling in NDJSON parsing.
…in functionality.
…the acceptance test suite.
…the Cucumber message protocol. Enhance clarity by including descriptions for properties and methods across various message types.
…or message types in Cucumber's message protocol, enhancing clarity and accessibility of schema references.
|
Done with changes. Responded to feedback, added funding link, and updated the code generation for dart generated files to include public docs from JSON schema. |
| @@ -0,0 +1,7 @@ | |||
| # Changelog | |||
|
|
|||
| ## 0.0.1 | |||
There was a problem hiding this comment.
Note to self: Change this with polyglot-release.
| @@ -0,0 +1,26 @@ | |||
| name: cucumber_messages | |||
| description: JSON schema-based messages for Cucumber inter-process communication. | |||
| version: 0.0.1 | |||
There was a problem hiding this comment.
Note to self: Change this in polyglot-release.
…s and update dev dependencies
…spec.lock versions
…nguage implementations
|
Done & passing on my CI |
|
Cheers! All good. I'll merge this once I got publishing sorted. |
🤔 What's changed?
Adds an initial Dart implementation for Cucumber Messages
⚡️ What's your motivation?
There is currently no officially maintained Dart implementation of Cucumber Messages. I'd like to use a Dart implementation to build out Gherkin dart support.
🏷️ What kind of change is this?
♻️ Anything particular you want feedback on?
If the API surface needs updates to better conform with the other language implementations.
📋 Checklist:
This text was originally generated from a template, then edited by hand. You can modify the template here.