Skip to content

Release 1.30.0

Choose a tag to compare

@reid-spencer reid-spencer released this 20 Jul 17:49

What's New

Features

  • protocol option is now recognized — Pin the transport for a bounded context with option protocol("kafka"), consumed by riddl-generator's AsyncAPI 3.0 generator. Takes one argument; valid on contexts and streamlets.

  • event_catalog_version option is now recognized — Pin the version EventCatalog displays for a domain, context, or message type via option event_catalog_version("2.1.0"). EventCatalog versions every catalog entity while RIDDL has no native version concept, so this metadata bridges the gap. Takes one argument and is valid on any definition.

  • sql_dialect and sql_table options are now recognized — Drive SQL DDL generation from model metadata. option sql_dialect("mysql") selects the dialect per definition, resolved by walking up the parent chain, so different entities in one model can target different RDBMS flavors. option sql_table("orders") overrides the generated table name. Each takes one argument.

All four option names already parsed correctly, but were absent from RecognizedOptions.registry, so any model using them collected a spurious StyleWarning — "Option 'sql_dialect' in Entity 'Order' is not a recognized RIDDL option". Those warnings are gone. Matching KnownOption constants were added and are exported to JavaScript through KnownOptions.

These are additive changes only: no public API was removed and no signature changed.

Internal

  • Repository-wide code format rectification — 227 source files (123 main, 104 test) brought into conformance with .scalafmt.conf. This is formatting-only: the configuration defines no rewrite rules, so scalafmt performed layout and line-breaking changes exclusively and preserved the AST. Both sbt scalafmtCheck and sbt test:scalafmtCheck now report success, so genuine formatting regressions will be visible rather than buried in pre-existing drift.