github boringdata/boring-semantic-layer v0.3.13

5 hours ago

boring-semantic-layer v0.3.13

Highlights

This release adds metadata support on model fields, expands xorq/TagHandler integration, improves MCP tooling, and fixes several round-trip and serialization correctness issues.

  • Added metadata field on Dimension and Measure for arbitrary annotations (#245, #246)
  • Exposed BSL TagHandler via xorq.from_tag_node entry point for catalog workflows (#235)
  • Added reemit support on TagHandler for full catalog rebuild (#244)
  • Added MCP period comparison workflow (#238)
  • Fixed join rebind guard for non-xorq backends (#242, #243)
  • Fixed multiple round-trip and serialization correctness issues in xorq boundary and calc-measure handling

Why upgrade

  • If you use metadata on dimensions or measures, this is the release that adds it
  • If you're integrating BSL with xorq catalog workflows, the new TagHandler entry points make that cleaner
  • Several xorq serialization round-trip bugs are fixed — recommended if you serialize/deserialize semantic models

Included changes

Features

  • #238 — MCP period comparison workflow
  • #244 — TagHandler reemit for catalog rebuild
  • #245/#246metadata field on Dimension and Measure
  • #235 — expose BSL TagHandler via xorq.from_tag_node

Fixes

  • #242/#243 — guard join rebind against non-xorq backends
  • Fix: walk join branches in tag_handler.extract_metadata
  • Fix: roundtrip model-level description through to_tagged/from_tagged
  • Fix: preserve join cardinality on round-trip; fix pre-agg grain for derived dims
  • Fix: treat UnboundTable as leaf node in _reconstruct_table
  • Fix: use matching ibis module for desc() in MCP search_dimension_values
  • Fix: broaden agg-method recognition, surface typos, pin ibis workaround

Refactors

  • Introduce Predicate AST for filter expressions
  • Tighten calc-measure AST and surface type-inference failures
  • Route all xorq imports through single _xorq shim
  • Convert ibis→xorq once at SemanticModel construction
  • Dispatch reduction-type check on expr's ibis flavor

Install

pip install -U boring-semantic-layer==0.3.13

Don't miss a new boring-semantic-layer release

NewReleases is sending notifications on new releases.