Crank - v0.9.0
New in this Version
- Run all consecutive validations - As of
v0.9.0
, the behavior when running Scenarios containing consecutive validation steps is different: if Crank encounters afail
orerror
response, but the next step is also a validation, it will continue until the next action step, or until the end of the scenario (whichever comes first). The outcome and exit code will remain the same (error
orfail
); this just ensures that all relevant failures are caught and logged in a single run. [#37, #38] - Additional Step Output - As of
v0.9.0
, structured data will be printed on stepfail
orerror
(including tables and links to files) when available. If a Scenario is run with the--debug
flag, every step will print this data. This is only true of Cogs that implement thecog.proto
improvements introduced in this version.
API Additions
- Structured Response Data - A series of new message types and fields have been introduced, allowing steps to return structured data, in addition to the existing outcome, message format, and arguments. Cogs implementing this new version of the
cog.proto
can use these to returnkey/value
data,table
data, andbinary
data (e.g. images) to help crank users diagnose problems. [#28, #41] - Step Context IDs - Three differently scoped contextual IDs have been added to the
RunStepRequest
message type. Arequest_id
can be used to correlate consecutive steps, ascenario_id
can be used to correlate steps across requests that belong to the same scenario run, and arequestor_id
can be used to correlate steps across different scenario runs. Cogs implementing this new version of thecog.proto
can use these as a basis for caching data and metadata to improve Cog performance. [#40] - Field and Step Help Text - The
FieldDefinition
andStepDefinition
message types now includehelp
attributes. Cogs implementing this new version of thecog.proto
can use these attributes to supply more detailed documentation. [#39]
All API improvements are reflected in the cog.proto documentation
Bug Fixes, Etc.
- Clearer Empty Message Args - In cases where a Cog returns a message argument that is an empty string, the empty argument will now be replaced with
(empty value)
, to improve message readability and debugging [#33] - Friendlier Lint Configs - Cogs scaffolded using
crank cog:scaffold
will use an updated lint configuration, reducing annoying lint errors and overrides [#35]
Contributors
Thanks to @saludangelito for contributions to this release.