|
| 1 | +## MetricFlow 0.208.0 - September 11, 2025 |
| 2 | + |
| 3 | +### Features |
| 4 | + |
| 5 | +- Support for custom offset windows. ([#1584](https://github.com/dbt-labs/metricflow/issues/1584)) |
| 6 | +- Support for multiple time spines in one query. ([#1644](https://github.com/dbt-labs/metricflow/issues/1644)) |
| 7 | +- Allow bypassing the group by when making queries without metrics. ([#1720](https://github.com/dbt-labs/metricflow/issues/1720)) |
| 8 | +- Support aliases for dimensions and entities. ([#1727](https://github.com/dbt-labs/metricflow/issues/1727)) |
| 9 | +- Support for order_by and limit on saved queries ([#1759](https://github.com/dbt-labs/metricflow/issues/1759)) |
| 10 | +- Expose semantic_model(s) on Metrics and Dimensions in API ([#1776](https://github.com/dbt-labs/metricflow/issues/1776)) |
| 11 | +- Support ordering dimensions by semantic model name" ([#1778](https://github.com/dbt-labs/metricflow/issues/1778)) |
| 12 | +- Add new CLI command 'mf list saved-queries' to list all saved queries with their descriptions ([#1787](https://github.com/dbt-labs/metricflow/issues/1787)) |
| 13 | +- Improve engine initialization speed via semantic graph ([#1835](https://github.com/dbt-labs/metricflow/issues/1835)) |
| 14 | + |
| 15 | +### Fixes |
| 16 | + |
| 17 | +- Add config to get_measures_for_metrics response ([#1606](https://github.com/dbt-labs/metricflow/issues/1606)) |
| 18 | +- Compatibility Issue with dbt-core 1.9.0 and dbt-metricflow 0.7.1. ([#1589](https://github.com/dbt-labs/metricflow/issues/1589)) |
| 19 | +- dbt-core dependency issue with metricflow==0.207.0. ([#1632](https://github.com/dbt-labs/metricflow/issues/1632)) |
| 20 | +- Remove `semantic_manifest.json` from the tutorial project ([#1704](https://github.com/dbt-labs/metricflow/issues/1704)) |
| 21 | +- Remove trailing comma when pretty-formatting `list` ([#1735](https://github.com/dbt-labs/metricflow/issues/1735)) |
| 22 | +- Fix error message with empty queries ([#1740](https://github.com/dbt-labs/metricflow/issues/1740)) |
| 23 | +- Fix exception propagation in SQL generation ([#1747](https://github.com/dbt-labs/metricflow/issues/1747)) |
| 24 | +- Fix ambiguity error for time dimensions in Dimension Jinja block ([#1772](https://github.com/dbt-labs/metricflow/issues/1772)) |
| 25 | +- Ensure agg_time_dimension is lowercased ([#1773](https://github.com/dbt-labs/metricflow/issues/1773)) |
| 26 | +- Fix error message in `no_common_items.py` ([#1795](https://github.com/dbt-labs/metricflow/issues/1795)) |
| 27 | +- Fix ambiguous-join-path detection for `UNIQUE` entities ([#1835](https://github.com/dbt-labs/metricflow/issues/1835)) |
| 28 | + |
| 29 | +### Under the Hood |
| 30 | + |
| 31 | +- Add properties to `LazyFormat` for custom logging handlers ([#1713](https://github.com/dbt-labs/metricflow/issues/1713)) |
| 32 | +- Synthetic manifests for performance tests ([#1495](https://github.com/dbt-labs/metricflow/issues/1495)) |
| 33 | +- Add support for index object to improve MF engine initialization times. ([#1715](https://github.com/dbt-labs/metricflow/issues/1715)) |
| 34 | +- Use option object for `mf_pformat` ([#1731](https://github.com/dbt-labs/metricflow/issues/1731)) |
| 35 | +- Provide context in `MetricFlowPrettyFormattable.pretty_format()` ([#1733](https://github.com/dbt-labs/metricflow/issues/1733)) |
| 36 | +- Use `{}` for pretty-formatting `Set` ([#1734](https://github.com/dbt-labs/metricflow/issues/1734)) |
| 37 | +- Add `include_underscore_prefix_fields` option to `mf_pformat` ([#1736](https://github.com/dbt-labs/metricflow/issues/1736)) |
| 38 | +- Add `pretty_format_object_by_parts()` to pretty formatter ([#1738](https://github.com/dbt-labs/metricflow/issues/1738)) |
| 39 | +- Add test to check the error message for empty queries ([#1739](https://github.com/dbt-labs/metricflow/issues/1739)) |
| 40 | +- Update `SequentialIdGenerator` to support async methods ([#1741](https://github.com/dbt-labs/metricflow/issues/1741)) |
| 41 | +- Generate a `SELECT` statement for sink nodes in a dataflow plan ([#1743](https://github.com/dbt-labs/metricflow/issues/1743)) |
| 42 | +- Update `SelectColumnSet` fields to tuples ([#1744](https://github.com/dbt-labs/metricflow/issues/1744)) |
| 43 | +- Add `MetricQuerySpec.spec_output_order` ([#1745](https://github.com/dbt-labs/metricflow/issues/1745)) |
| 44 | +- Update engine interface to order output columns by query inputs ([#1746](https://github.com/dbt-labs/metricflow/issues/1746)) |
| 45 | +- Use `output` from the `click` invocation to check test results ([#1749](https://github.com/dbt-labs/metricflow/issues/1749)) |
| 46 | +- Handle `order_output_columns_by_input_order` for filtered metrics ([#1753](https://github.com/dbt-labs/metricflow/issues/1753)) |
| 47 | +- Rename `mf_test_configuration` -> `snapshot_configuration` ([#1750](https://github.com/dbt-labs/metricflow/issues/1750)) |
| 48 | +- Consolidate dev dependencies of `metricflow-semantics` and `metricflow` ([#1751](https://github.com/dbt-labs/metricflow/issues/1751)) |
| 49 | +- Add handling of `Path` objects in `mf_pformat()` ([#1752](https://github.com/dbt-labs/metricflow/issues/1752)) |
| 50 | +- Implement `Sized` for `WhereFilterSpecSet` ([#1756](https://github.com/dbt-labs/metricflow/issues/1756)) |
| 51 | +- Skip rendering of the table alias in SQL if not needed ([#1757](https://github.com/dbt-labs/metricflow/issues/1757)) |
| 52 | +- Replace `Singleton` with `@singleton_dataclass()` ([#1761](https://github.com/dbt-labs/metricflow/issues/1761)) |
| 53 | +- Assorted improvements to snapshot methods ([#1762](https://github.com/dbt-labs/metricflow/issues/1762)) |
| 54 | +- Implement `Mergeable` for `PrettyFormatOption` ([#1763](https://github.com/dbt-labs/metricflow/issues/1763)) |
| 55 | +- Add base classes to model a directed graph ([#1764](https://github.com/dbt-labs/metricflow/issues/1764)) |
| 56 | +- Add formatter to display graphs in DOT notation. ([#1766](https://github.com/dbt-labs/metricflow/issues/1766)) |
| 57 | +- Add formatter to display graphs in DOT notation ([#1766](https://github.com/dbt-labs/metricflow/issues/1766)) |
| 58 | +- Assorted fixes for graph-related classes ([#1782](https://github.com/dbt-labs/metricflow/issues/1782)) |
| 59 | +- Remove predicate pushdown optimizer for now ([#1783](https://github.com/dbt-labs/metricflow/issues/1783)) |
| 60 | +- Update the snapshot format for `LinkableElementSet` ([#1784](https://github.com/dbt-labs/metricflow/issues/1784)) |
| 61 | +- Add interfaces for `LinkableElementSet` / `LinkableSpecResolver` ([#1785](https://github.com/dbt-labs/metricflow/issues/1785)) |
| 62 | +- Add fast lookup for semantic-manifest objects ([#1789](https://github.com/dbt-labs/metricflow/issues/1789)) |
| 63 | +- Add a helper for writing `timeit`-based performance tests ([#1788](https://github.com/dbt-labs/metricflow/issues/1788)) |
| 64 | +- Cache predecessors / successors in graphs ([#1790](https://github.com/dbt-labs/metricflow/issues/1790)) |
| 65 | +- Add semantic-graph node classes ([#1791](https://github.com/dbt-labs/metricflow/issues/1791)) |
| 66 | +- Migrate back to `Singleton` for simplicity / performance ([#1793](https://github.com/dbt-labs/metricflow/issues/1793)) |
| 67 | +- Add semantic-graph edge classes ([#1794](https://github.com/dbt-labs/metricflow/issues/1794)) |
| 68 | +- Add subgraph generator for measures ([#1796](https://github.com/dbt-labs/metricflow/issues/1796)) |
| 69 | +- Add subgraph generator for modeling joins ([#1798](https://github.com/dbt-labs/metricflow/issues/1798)) |
| 70 | +- Add subgraph generator for categorical dimensions ([#1799](https://github.com/dbt-labs/metricflow/issues/1799)) |
| 71 | +- Add subgraph generator for configured-entity keys ([#1800](https://github.com/dbt-labs/metricflow/issues/1800)) |
| 72 | +- Add subgraph generator for metrics ([#1802](https://github.com/dbt-labs/metricflow/issues/1802)) |
| 73 | +- Add subgraph generator for time-related elements ([#1801](https://github.com/dbt-labs/metricflow/issues/1801)) |
| 74 | +- Add graph path / pathfinder classes ([#1803](https://github.com/dbt-labs/metricflow/issues/1803)) |
| 75 | +- Add path weight-function for the semantic graph ([#1804](https://github.com/dbt-labs/metricflow/issues/1804)) |
| 76 | +- Add trie-like data structure for dunder names ([#1805](https://github.com/dbt-labs/metricflow/issues/1805)) |
| 77 | +- Add semantic-graph-based resolver for simple group-by items ([#1806](https://github.com/dbt-labs/metricflow/issues/1806)) |
| 78 | +- Add semantic-graph-based resolver for group-by metrics ([#1807](https://github.com/dbt-labs/metricflow/issues/1807)) |
| 79 | +- Add an implementation of `LinkableSpecResolver` using the semantic-graph ([#1808](https://github.com/dbt-labs/metricflow/issues/1808)) |
| 80 | +- Add performance tests for the semantic-graph-based resolver ([#1809](https://github.com/dbt-labs/metricflow/issues/1809)) |
| 81 | +- Add `use_semantic_graph` flag to `SemanticManifestLookup` ([#1812](https://github.com/dbt-labs/metricflow/issues/1812)) |
| 82 | +- Add query-parser tester and additional cases for SCDs ([#1814](https://github.com/dbt-labs/metricflow/issues/1814)) |
| 83 | +- Update error handling for `simple_dimensions_for_metrics` ([#1816](https://github.com/dbt-labs/metricflow/issues/1816)) |
| 84 | +- Minor fixes for semantic manifests in test cases ([#1818](https://github.com/dbt-labs/metricflow/issues/1818)) |
| 85 | +- Add text-table formatter for `SessionReport` ([#1819](https://github.com/dbt-labs/metricflow/issues/1819)) |
| 86 | +- Assorted minor fixes / improvements ([#1820](https://github.com/dbt-labs/metricflow/issues/1820)) |
| 87 | +- Switch back to using minimum time grain from models ([#1822](https://github.com/dbt-labs/metricflow/issues/1822)) |
| 88 | +- Migrate correctness tests for the semantic-graph-based resolver ([#1833](https://github.com/dbt-labs/metricflow/issues/1833)) |
| 89 | +- Migrate performance tests for the semantic-graph-based resolver ([#1834](https://github.com/dbt-labs/metricflow/issues/1834)) |
| 90 | + |
| 91 | +### Dependencies |
| 92 | + |
| 93 | +- Remove version requirement for dbt adapters in `dbt-metricflow` ([#1837](https://github.com/dbt-labs/metricflow/issues/1837)) |
| 94 | + |
| 95 | +### Contributors |
| 96 | +- [@DevonFulcher](https://github.com/DevonFulcher) ([#1606](https://github.com/dbt-labs/metricflow/issues/1606)) |
| 97 | +- [@courtneyholcomb](https://github.com/courtneyholcomb) ([#1584](https://github.com/dbt-labs/metricflow/issues/1584), [#1644](https://github.com/dbt-labs/metricflow/issues/1644), [#1720](https://github.com/dbt-labs/metricflow/issues/1720), [#1727](https://github.com/dbt-labs/metricflow/issues/1727), [#1759](https://github.com/dbt-labs/metricflow/issues/1759), [#1776](https://github.com/dbt-labs/metricflow/issues/1776), [#1778](https://github.com/dbt-labs/metricflow/issues/1778), [#1772](https://github.com/dbt-labs/metricflow/issues/1772), [#1773](https://github.com/dbt-labs/metricflow/issues/1773)) |
| 98 | +- [@kiwamizamurai](https://github.com/kiwamizamurai) ([#1787](https://github.com/dbt-labs/metricflow/issues/1787)) |
| 99 | +- [@plypaul](https://github.com/plypaul) ([#1835](https://github.com/dbt-labs/metricflow/issues/1835), [#1589](https://github.com/dbt-labs/metricflow/issues/1589), [#1632](https://github.com/dbt-labs/metricflow/issues/1632), [#1704](https://github.com/dbt-labs/metricflow/issues/1704), [#1735](https://github.com/dbt-labs/metricflow/issues/1735), [#1740](https://github.com/dbt-labs/metricflow/issues/1740), [#1747](https://github.com/dbt-labs/metricflow/issues/1747), [#1795](https://github.com/dbt-labs/metricflow/issues/1795), [#1835](https://github.com/dbt-labs/metricflow/issues/1835), [#1713](https://github.com/dbt-labs/metricflow/issues/1713), [#1495](https://github.com/dbt-labs/metricflow/issues/1495), [#1715](https://github.com/dbt-labs/metricflow/issues/1715), [#1731](https://github.com/dbt-labs/metricflow/issues/1731), [#1733](https://github.com/dbt-labs/metricflow/issues/1733), [#1734](https://github.com/dbt-labs/metricflow/issues/1734), [#1736](https://github.com/dbt-labs/metricflow/issues/1736), [#1738](https://github.com/dbt-labs/metricflow/issues/1738), [#1739](https://github.com/dbt-labs/metricflow/issues/1739), [#1741](https://github.com/dbt-labs/metricflow/issues/1741), [#1743](https://github.com/dbt-labs/metricflow/issues/1743), [#1744](https://github.com/dbt-labs/metricflow/issues/1744), [#1745](https://github.com/dbt-labs/metricflow/issues/1745), [#1746](https://github.com/dbt-labs/metricflow/issues/1746), [#1749](https://github.com/dbt-labs/metricflow/issues/1749), [#1753](https://github.com/dbt-labs/metricflow/issues/1753), [#1750](https://github.com/dbt-labs/metricflow/issues/1750), [#1751](https://github.com/dbt-labs/metricflow/issues/1751), [#1752](https://github.com/dbt-labs/metricflow/issues/1752), [#1756](https://github.com/dbt-labs/metricflow/issues/1756), [#1757](https://github.com/dbt-labs/metricflow/issues/1757), [#1761](https://github.com/dbt-labs/metricflow/issues/1761), [#1762](https://github.com/dbt-labs/metricflow/issues/1762), [#1763](https://github.com/dbt-labs/metricflow/issues/1763), [#1764](https://github.com/dbt-labs/metricflow/issues/1764), [#1766](https://github.com/dbt-labs/metricflow/issues/1766), [#1766](https://github.com/dbt-labs/metricflow/issues/1766), [#1782](https://github.com/dbt-labs/metricflow/issues/1782), [#1783](https://github.com/dbt-labs/metricflow/issues/1783), [#1784](https://github.com/dbt-labs/metricflow/issues/1784), [#1785](https://github.com/dbt-labs/metricflow/issues/1785), [#1789](https://github.com/dbt-labs/metricflow/issues/1789), [#1788](https://github.com/dbt-labs/metricflow/issues/1788), [#1790](https://github.com/dbt-labs/metricflow/issues/1790), [#1791](https://github.com/dbt-labs/metricflow/issues/1791), [#1793](https://github.com/dbt-labs/metricflow/issues/1793), [#1794](https://github.com/dbt-labs/metricflow/issues/1794), [#1796](https://github.com/dbt-labs/metricflow/issues/1796), [#1798](https://github.com/dbt-labs/metricflow/issues/1798), [#1799](https://github.com/dbt-labs/metricflow/issues/1799), [#1800](https://github.com/dbt-labs/metricflow/issues/1800), [#1802](https://github.com/dbt-labs/metricflow/issues/1802), [#1801](https://github.com/dbt-labs/metricflow/issues/1801), [#1803](https://github.com/dbt-labs/metricflow/issues/1803), [#1804](https://github.com/dbt-labs/metricflow/issues/1804), [#1805](https://github.com/dbt-labs/metricflow/issues/1805), [#1806](https://github.com/dbt-labs/metricflow/issues/1806), [#1807](https://github.com/dbt-labs/metricflow/issues/1807), [#1808](https://github.com/dbt-labs/metricflow/issues/1808), [#1809](https://github.com/dbt-labs/metricflow/issues/1809), [#1812](https://github.com/dbt-labs/metricflow/issues/1812), [#1814](https://github.com/dbt-labs/metricflow/issues/1814), [#1816](https://github.com/dbt-labs/metricflow/issues/1816), [#1818](https://github.com/dbt-labs/metricflow/issues/1818), [#1819](https://github.com/dbt-labs/metricflow/issues/1819), [#1820](https://github.com/dbt-labs/metricflow/issues/1820), [#1822](https://github.com/dbt-labs/metricflow/issues/1822), [#1833](https://github.com/dbt-labs/metricflow/issues/1833), [#1834](https://github.com/dbt-labs/metricflow/issues/1834), [#1837](https://github.com/dbt-labs/metricflow/issues/1837)) |
0 commit comments