1.30.x releases

This page contains details of releases in the 1.30.xx set of releases.


This is a feature release, which introduces the following language changes

Specifying projections on nested collections (Feature)

A TaxiQL projection can now include specific projections for nested collections.

find { Transaction[] } as {
   items : TransactionItem -> {
      sku : ProductSku
      size : ProductSize

See projecting nested collections for more details

String replace function (Feature)

The String 'replace' function has been added to Taxi lang

replace(String, String, String)
Replaces the contents of the provided String, returning a new String
      Accepts three args:
       * String: The string to search
       * String: The string to search for
       * String: The string to use as a replacement

Example usage

model Trade {
    symbol : String
    ccy1 : String by replace(this.symbol, "TEXT_TO_REPLACE", "REPLACEMENT_TEXT")


This is a minor internal release, which contains changes to internal tooling

Mapping of java Boolean type to Taxi Boolean types (bug)

Code generators were unable to map the java Boolean type to Taxi when declared from Kotlin code.

OpenApi fields are non-null by default (change)

When generating taxi schemas from OpenApi specs, the generated types have non-nullable fields, unless explicitly defined using the OpenApi nullable attribute.


This is a minor internal release, which contains changes to internal tooling

Bug fixes

Annotation types now have their code correctly generated when they contain fields or other annotations (bug)

Internal sourceCode attributes of taxi types now try to generate valid self-contained source (bug)

Previously, we just emitted the source as it was declared in the original file. We now try to make this source self-contained, adding missing namespace declarations and imports for dependent types.

Edit on Github