Skip to content

v0.200.0

Compare
Choose a tag to compare
@tlento tlento released this 07 Aug 21:05
· 985 commits to main since this release
6ff60fc

This release represents a complete overhaul of MetricFlow targeted at a first class integration with dbt! Complete changelog below:

MetricFlow 0.200.0 - August 02, 2023

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)
  • Removing time_format from DimensionTypeParams (#494)
  • Use Templates For Defining Metric Filters (#505)
  • Rename Metric.constraint to Metric.filter (#511)
  • Deprecate and refactor CLI commands
  • Removes async query and query cancel methods from SqlClient protocols (#577)
  • Remove time spine introspection and table creation, which may break cumulative metric queries (#592)
  • Remove SqlEngineAttributes construct from SqlClient interface in favor of dialect rendering and engine type properties (#577)
  • CLI needs to be ran in a dbt project root directory
  • Remove expr & ratio metrics and bundle with derived metrics. (#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)
  • Update to dbt-semantic-interfaces==0.1.0.dev8. (#634)
  • Changed the --group-bys option in mf query to be --group-by
  • Add Support for primary_entity in Semantic Models (#694)

Features

  • Added new entity calls to CLI/MetricFlowEngine
  • Script to Generate Snapshots for Supported SQL Engines. (#609)
  • Add dbt adapter support for postgres and enable it for tests (#578)
  • Use dbt adapter to run queries and warehouse validations from MetricFlow CLI (#624)
  • Enable Snowflake queries in dbt <-> MetricFlow CLI integration (#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)
  • Include metric_time in List Dimensions Output Where Appropriate (#673)
  • Enable support for Redshift queries in dbt-metricflow integration (#582)
  • Enable Databricks support for the dbt-metricflow integration (#580)
  • Enable support for BigQuery for dbt metricflow integration users (#581)

Fixes

  • Removes MySQL from SqlEngine and SqlDialect options since it is not supported. (#0)
  • Derived metrics were not respecting the constraint defined in the original input metric's definition.
  • Fixes type error in BigQuerySqlExpressionRenderer (#536)
  • Fix broken type signature for log_call decorator
  • Apply transformations to dbt-generated serialized model to fix issue with query generation (#624)
  • Improve error message rendering in MetricFlow CLI (#646)
  • Added --version and fix manifest transformer rules for dbt-core-=1.6.0b8 (#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)
  • 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)
  • Matching dbt-core issue templates (#457)
  • Removing the transform CLA (#450)
  • Pinning dbt-core to 1.4 (#475)
  • Removing YamlLint (#472)
  • Add ObjectToReference class in preparation of removing the .reference calls (##463,, ##464)
  • Moving all *Reference objects to dbt-semantic-interfaces.
  • Add pytest flag to use a persistent source schema for faster repeat testing. (#482)
  • Renamed instances of and related to Identifiers to Entities. (#dbt-semantic-interfaces#9)
  • Improves typechecking coverage by updgrading to MyPy 0.942 and removing blanket ignore all imports setting (#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, #536)
  • Update mypy to 1.3.0 (#546)
  • Migrate from Poetry -> Hatch for Project / Package Management (#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)
  • 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)
  • Clean up unused dependencies, relax tabulate version pin (#545)
  • Update dbt dependencies to support development on the new integration (#571)
  • Move SQLAlchemy and SQL engine dependencies out of the production package (#672)
  • Update dependencies and attribution file in preparation for 0.200.0 release (#703)

Contributors