MetricFlow 0.208.0 - September 11, 2025
Features
- Support for custom offset windows. (#1584)
- Support for multiple time spines in one query. (#1644)
- Allow bypassing the group by when making queries without metrics. (#1720)
- Support aliases for dimensions and entities. (#1727)
- Support for order_by and limit on saved queries (#1759)
- Expose semantic_model(s) on Metrics and Dimensions in API (#1776)
- Support ordering dimensions by semantic model name" (#1778)
- Add new CLI command 'mf list saved-queries' to list all saved queries with their descriptions (#1787)
- Improve engine initialization speed via semantic graph (#1835)
Fixes
- Add config to get_measures_for_metrics response (#1606)
- Compatibility Issue with dbt-core 1.9.0 and dbt-metricflow 0.7.1. (#1589)
- dbt-core dependency issue with metricflow==0.207.0. (#1632)
- Remove
semantic_manifest.jsonfrom the tutorial project (#1704) - Remove trailing comma when pretty-formatting
list(#1735) - Fix error message with empty queries (#1740)
- Fix exception propagation in SQL generation (#1747)
- Fix ambiguity error for time dimensions in Dimension Jinja block (#1772)
- Ensure agg_time_dimension is lowercased (#1773)
- Fix error message in
no_common_items.py(#1795) - Fix ambiguous-join-path detection for
UNIQUEentities (#1835)
Under the Hood
- Add properties to
LazyFormatfor custom logging handlers (#1713) - Synthetic manifests for performance tests (#1495)
- Add support for index object to improve MF engine initialization times. (#1715)
- Use option object for
mf_pformat(#1731) - Provide context in
MetricFlowPrettyFormattable.pretty_format()(#1733) - Use
{}for pretty-formattingSet(#1734) - Add
include_underscore_prefix_fieldsoption tomf_pformat(#1736) - Add
pretty_format_object_by_parts()to pretty formatter (#1738) - Add test to check the error message for empty queries (#1739)
- Update
SequentialIdGeneratorto support async methods (#1741) - Generate a
SELECTstatement for sink nodes in a dataflow plan (#1743) - Update
SelectColumnSetfields to tuples (#1744) - Add
MetricQuerySpec.spec_output_order(#1745) - Update engine interface to order output columns by query inputs (#1746)
- Use
outputfrom theclickinvocation to check test results (#1749) - Handle
order_output_columns_by_input_orderfor filtered metrics (#1753) - Rename
mf_test_configuration->snapshot_configuration(#1750) - Consolidate dev dependencies of
metricflow-semanticsandmetricflow(#1751) - Add handling of
Pathobjects inmf_pformat()(#1752) - Implement
SizedforWhereFilterSpecSet(#1756) - Skip rendering of the table alias in SQL if not needed (#1757)
- Replace
Singletonwith@singleton_dataclass()(#1761) - Assorted improvements to snapshot methods (#1762)
- Implement
MergeableforPrettyFormatOption(#1763) - Add base classes to model a directed graph (#1764)
- Add formatter to display graphs in DOT notation. (#1766)
- Add formatter to display graphs in DOT notation (#1766)
- Assorted fixes for graph-related classes (#1782)
- Remove predicate pushdown optimizer for now (#1783)
- Update the snapshot format for
LinkableElementSet(#1784) - Add interfaces for
LinkableElementSet/LinkableSpecResolver(#1785) - Add fast lookup for semantic-manifest objects (#1789)
- Add a helper for writing
timeit-based performance tests (#1788) - Cache predecessors / successors in graphs (#1790)
- Add semantic-graph node classes (#1791)
- Migrate back to
Singletonfor simplicity / performance (#1793) - Add semantic-graph edge classes (#1794)
- Add subgraph generator for measures (#1796)
- Add subgraph generator for modeling joins (#1798)
- Add subgraph generator for categorical dimensions (#1799)
- Add subgraph generator for configured-entity keys (#1800)
- Add subgraph generator for metrics (#1802)
- Add subgraph generator for time-related elements (#1801)
- Add graph path / pathfinder classes (#1803)
- Add path weight-function for the semantic graph (#1804)
- Add trie-like data structure for dunder names (#1805)
- Add semantic-graph-based resolver for simple group-by items (#1806)
- Add semantic-graph-based resolver for group-by metrics (#1807)
- Add an implementation of
LinkableSpecResolverusing the semantic-graph (#1808) - Add performance tests for the semantic-graph-based resolver (#1809)
- Add
use_semantic_graphflag toSemanticManifestLookup(#1812) - Add query-parser tester and additional cases for SCDs (#1814)
- Update error handling for
simple_dimensions_for_metrics(#1816) - Minor fixes for semantic manifests in test cases (#1818)
- Add text-table formatter for
SessionReport(#1819) - Assorted minor fixes / improvements (#1820)
- Switch back to using minimum time grain from models (#1822)
- Migrate correctness tests for the semantic-graph-based resolver (#1833)
- Migrate performance tests for the semantic-graph-based resolver (#1834)
Dependencies
- Remove version requirement for dbt adapters in
dbt-metricflow(#1837)
Contributors
- @DevonFulcher (#1606)
- @courtneyholcomb (#1584, #1644, #1720, #1727, #1759, #1776, #1778, #1772, #1773)
- @kiwamizamurai (#1787)
- @plypaul (#1835, #1589, #1632, #1704, #1735, #1740, #1747, #1795, #1835, #1713, #1495, #1715, #1731, #1733, #1734, #1736, #1738, #1739, #1741, #1743, #1744, #1745, #1746, #1749, #1753, #1750, #1751, #1752, #1756, #1757, #1761, #1762, #1763, #1764, #1766, #1766, #1782, #1783, #1784, #1785, #1789, #1788, #1790, #1791, #1793, #1794, #1796, #1798, #1799, #1800, #1802, #1801, #1803, #1804, #1805, #1806, #1807, #1808, #1809, #1812, #1814, #1816, #1818, #1819, #1820, #1822, #1833, #1834, #1837)