Breaking Changes
- License Change - Version 0 to 0.140.0 was covered by the Affero GPL license. Version 0.150.0 and greater is covered by the BSL license. ([465](https://github.com/dbt-labs/metricflow/issues/465))
- Removing time_format from DimensionTypeParams ([494](https://github.com/dbt-labs/metricflow/issues/494))
- Use Templates For Defining Metric Filters ([505](https://github.com/dbt-labs/metricflow/issues/505))
- Rename Metric.constraint to Metric.filter ([511](https://github.com/dbt-labs/metricflow/issues/511))
- Deprecate and refactor CLI commands
- Removes async query and query cancel methods from SqlClient protocols ([577](https://github.com/dbt-labs/metricflow/issues/577))
- Remove time spine introspection and table creation, which may break cumulative metric queries ([592](https://github.com/dbt-labs/metricflow/issues/592))
- Remove SqlEngineAttributes construct from SqlClient interface in favor of dialect rendering and engine type properties ([577](https://github.com/dbt-labs/metricflow/issues/577))
- CLI needs to be ran in a dbt project root directory
- Remove expr & ratio metrics and bundle with derived metrics. ([504](https://github.com/dbt-labs/metricflow/issues/504))
- `explain_get_dimension_values` & `get_dimension_values` take a list of metrics parameters
- Remove MetricFlow config file - all future configuration must originate with the dbt project ([624](https://github.com/dbt-labs/metricflow/issues/624))
- Update to dbt-semantic-interfaces==0.1.0.dev8. ([634](https://github.com/dbt-labs/metricflow/issues/634))
- Changed the --group-bys option in mf query to be --group-by
- Add Support for `primary_entity` in Semantic Models ([694](https://github.com/dbt-labs/metricflow/issues/694))
Features
- Added new entity calls to CLI/MetricFlowEngine
- Script to Generate Snapshots for Supported SQL Engines. ([609](https://github.com/dbt-labs/metricflow/issues/609))
- Add dbt adapter support for postgres and enable it for tests ([578](https://github.com/dbt-labs/metricflow/issues/578))
- Use dbt adapter to run queries and warehouse validations from MetricFlow CLI ([624](https://github.com/dbt-labs/metricflow/issues/624))
- Enable Snowflake queries in dbt <-> MetricFlow CLI integration ([579](https://github.com/dbt-labs/metricflow/issues/579))
- Refactor `mf tutorial` to work alongside a dbt project.
- New package `dbt-metricflow` which bundles dbt-core and metricflow and dbt-adapters
- Add Support for Python 3.10 / 3.11 ([659](https://github.com/dbt-labs/metricflow/issues/659))
- Include metric_time in List Dimensions Output Where Appropriate ([673](https://github.com/dbt-labs/metricflow/issues/673))
- Enable support for Redshift queries in dbt-metricflow integration ([582](https://github.com/dbt-labs/metricflow/issues/582))
- Enable Databricks support for the dbt-metricflow integration ([580](https://github.com/dbt-labs/metricflow/issues/580))
- Enable support for BigQuery for dbt metricflow integration users ([581](https://github.com/dbt-labs/metricflow/issues/581))
Fixes
- Removes MySQL from SqlEngine and SqlDialect options since it is not supported. ([0](https://github.com/dbt-labs/metricflow/issues/0))
- Derived metrics were not respecting the constraint defined in the original input metric's definition.
- Fixes type error in BigQuerySqlExpressionRenderer ([536](https://github.com/dbt-labs/metricflow/issues/536))
- Fix broken type signature for log_call decorator
- Apply transformations to dbt-generated serialized model to fix issue with query generation ([624](https://github.com/dbt-labs/metricflow/issues/624))
- Improve error message rendering in MetricFlow CLI ([646](https://github.com/dbt-labs/metricflow/issues/646))
- Added --version and fix manifest transformer rules for dbt-core-=1.6.0b8 ([650](https://github.com/dbt-labs/metricflow/issues/650))
- Include granularity suffix on time dimension name rendering for all time dimension granularities
- Clean up list dimensions outputs
Under the Hood
- Adding Changie ([457](https://github.com/dbt-labs/metricflow/issues/457))
- Ensure use of ValidationIssue instead of ValidationIssueType. ValidationIssueType was from a time before ValidationIssue classes had proper inheritance, and it's continued use was become problematic for typing.
- Removing `model` from the `ModelValidator.validate` return type. The model isn't altered, and thus doesn't need to be returned.
- Moving AggregationType enum into dbt-semantic-interfaces
- Moving errors relevant to dbt_semantic_interfaces to dbt_semantic_interfaces
- Migrating to RapidFuzz ([470](https://github.com/dbt-labs/metricflow/issues/470))
- Matching dbt-core issue templates ([457](https://github.com/dbt-labs/metricflow/issues/457))
- Removing the transform CLA ([450](https://github.com/dbt-labs/metricflow/issues/450))
- Pinning dbt-core to 1.4 ([475](https://github.com/dbt-labs/metricflow/issues/475))
- Removing YamlLint ([472](https://github.com/dbt-labs/metricflow/issues/472))
- Add ObjectToReference class in preparation of removing the .reference calls ([463,](https://github.com/dbt-labs/metricflow/issues/#463,), [464](https://github.com/dbt-labs/metricflow/issues/#464))
- Moving all *Reference objects to dbt-semantic-interfaces.
- Add pytest flag to use a persistent source schema for faster repeat testing. ([482](https://github.com/dbt-labs/metricflow/issues/482))
- Renamed instances of and related to Identifiers to Entities. ([dbt-semantic-interfaces9](https://github.com/dbt-labs/metricflow/issues/dbt-semantic-interfaces#9))
- Improves typechecking coverage by updgrading to MyPy 0.942 and removing blanket ignore all imports setting ([536](https://github.com/dbt-labs/metricflow/issues/536))
- Push mypy to run using local environment packages in pre-commit. Developers should always use a clean virtual environment to ensure consistency with CI. ([530](https://github.com/dbt-labs/metricflow/issues/530), [#536](https://github.com/dbt-labs/metricflow/issues/536))
- Update mypy to 1.3.0 ([546](https://github.com/dbt-labs/metricflow/issues/546))
- Migrate from Poetry -> Hatch for Project / Package Management ([549](https://github.com/dbt-labs/metricflow/issues/549))
- Enable the ability to return only dimensions requested in the query, specifically used for dimension values queries.
- Raising a UnsupportedEngineFeatureError instead of a generic RuntimeError when a data platform doesn't support a feature
- Remove SqlIsolationLevel constructs and other vestigial remnants of defunct SqlClient features ([577](https://github.com/dbt-labs/metricflow/issues/577))
- Raise a more specific exception when a Metric isn't found during linking.
- Update test environment configuration to allow for more streamlined dependencies
- Remove DDL and other unused methods from SqlClient protocol
Dependencies
- Switches MetricFlow SemanticManifest dependencies from the local dbt semantic interfaces package to the initial dev release ([540](https://github.com/dbt-labs/metricflow/pull/540))
- Clean up unused dependencies, relax tabulate version pin ([545](https://github.com/dbt-labs/metricflow/pull/545))
- Update dbt dependencies to support development on the new integration ([571](https://github.com/dbt-labs/metricflow/pull/571))
- Move SQLAlchemy and SQL engine dependencies out of the production package ([672](https://github.com/dbt-labs/metricflow/pull/672))
- Update dependencies and attribution file in preparation for 0.200.0 release ([703](https://github.com/dbt-labs/metricflow/pull/703))
Contributors
- [DevonFulcher](https://github.com/DevonFulcher)
- [QMalcolm](https://github.com/QMalcolm)
- [WilliamDee](https://github.com/WilliamDee)
- [callum-mcdata](https://github.com/callum-mcdata)
- [courtneyholcomb](https://github.com/courtneyholcomb)
- [nhandel](https://github.com/nhandel)
- [plypaul](https://github.com/plypaul)
- [tlento](https://github.com/tlento)