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
metadatafield onDimensionandMeasurefor arbitrary annotations (#245, #246) - Exposed BSL
TagHandlerviaxorq.from_tag_nodeentry point for catalog workflows (#235) - Added
reemitsupport onTagHandlerfor 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
metadataon dimensions or measures, this is the release that adds it - If you're integrating BSL with xorq catalog workflows, the new
TagHandlerentry 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
reemitfor catalog rebuild - #245/#246 —
metadatafield onDimensionandMeasure - #235 — expose BSL
TagHandlerviaxorq.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
UnboundTableas leaf node in_reconstruct_table - Fix: use matching ibis module for
desc()in MCPsearch_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
_xorqshim - Convert ibis→xorq once at
SemanticModelconstruction - Dispatch reduction-type check on expr's ibis flavor
Install
pip install -U boring-semantic-layer==0.3.13