Skip to content

Latest commit

 

History

History
559 lines (414 loc) · 42 KB

CHANGELOG.md

File metadata and controls

559 lines (414 loc) · 42 KB

MetricFlow Changelog

  • This file provides a full account of all changes to metricflow.
  • Changes are listed under the (pre)release in which they first appear. Subsequent releases include changes from previous releases.
  • "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
  • Do not edit this file directly. This file is auto-generated using changie. For details on how to document a change, see the contributing guide

MetricFlow 0.206.0 - June 11, 2024

Breaking Changes

  • Remove unsupported legacy MetricFlowClient APIs (#1094)
  • Move MetricFlow CLI to dbt-metricflow package (#1090)

Features

  • Allow metrics in filters for metrics and metric queries. (#740)
  • Enable metric filters for distinct values queries. (#1107)
  • List all dimensions for the semantic manifest. (#1142)
  • Add a Dependency Resolver for Saved Queries (#1155)
  • Add support for Python 3.12 (#1065)
  • Update dbt-metricflow dependencies to use dbt* 1.8 packages (#1243)

Fixes

  • Enable filtering by metrics in the same semantic model as queried metrics. (#1115)
  • Improve error messages for dataflow plan failures. (#1118)
  • Remove redundant entity names like 'listing__listing' from suggested group bys. (#1130)
  • For metrics that join to time spine, apply post-join filters only for specs that are in the group by. (#1119)

Under the Hood

  • Clean up files included in MetricFlow package distribution (#1092)
  • Move MetricFlow tests to repository root (#1088)
  • Create metricflow-semantics package. (#1150)
  • Make source semantic models available from DataflowPlanNode instances (#1218)
  • Cache functions related to parsing group by options in order to improve query performance. (#1229)

Dependencies

  • Update Ruff to 0.3.3 (#769)
  • Update dbt-semantic-interfaces minimum version to 0.5.1 (#1104)

Contributors

MetricFlow 0.205.0 - February 29, 2024

Breaking Changes

  • Remove SQL-Comment-Based Tags (#1034)

Features

  • Enable querying metric_time without metrics. (#928)
  • Enable querying cumulative metrics with their agg_time_dimension. (#1000)
  • Enable offset metrics to be queried with agg_time_dimension. (#1006)
  • Add Support for Consistent SQL Query Generation (#1020)

Fixes

  • Validate that there are metrics or group by items in each query. (#1002)
  • For measures that join to time spine, allow joining when agg_time_dimension is queried. (#1009)
  • Join to time spine if requested for conversion metric input measures. (#1048)
  • Enable querying offset metric with multiple agg_time_dimensions at once. Also fixes a bug when filtering by a different grain than the group by grain. (#1052, #1053)
  • Bug fix: if measure joins to time spine, apply filters again after that join. (#1039)
  • Improve error message for metrics/queries with missing inputs (#1051)

Docs

  • change group-bys to group-by in the tutorial message

Under the Hood

  • Add test for nested derived metric filter rendering bug fixed in 0.204.0 (#920)

Dependencies

  • Remove unused numpy dependency (#984)
  • Update Jinja2 past 3.1.3 to resolve CVE-2024-22195 (#1049)

Contributors

MetricFlow 0.204.0 - January 11, 2024

Features

  • Add Trino support to the MetricFlow. (#207)
  • Implemented date_part in where filter. (#None)
  • Resolve Ambiguous Group-By-Items (#887)
  • Support for Conversion Metrics (#252)
  • Add a Query Validation Rule for Repeated Metrics in a Query (#943)
  • Expose label on Metric & Dimension for use in APIs. (#956)

Fixes

  • Apply time offset for nested dervied & ratio metrics (#882)
  • Fix Incorrect SQL Column Name Rendering for WhereConstraintNode (#908)
  • Unable To Satisfy Query Error with Cumulative Metrics in Saved Queries (#917)
  • Fixes a bug in dimension-only queries where the filter column is removed before the filter has been applied. (#923)
  • Bug fix: Keep where constraint column until used for nested derived offset metric queries. (#930)
  • Fixes incorrect time constraint applied to derived offset metrics. (#925)
  • Remove default time constraint for queries with cumulative metrics. (#917)
  • Return exit code 1 for failed validations (#867)
  • Optimizer Does Not Deduplicate Common Metrics (#941)
  • Duplicate input measures after combiner optimizer (#969)

Under the Hood

  • Test to ensure Dimension and TimeDimension syntax are identical in the case of time dimensions
  • Fixed typo in error message

Dependencies

  • Remove unnecessary MarkupSafe dependency (#950)

Contributors

MetricFlow 0.203.1 - November 15, 2023

Fixes

  • Fix error in cumulative metric output when start-time and end-time are specified (#869)

Dependencies

  • Remove Rudderstack client and associated dependencies (#866)
  • Relax version pin on typing extensions to allow >=4.4, <5 (#875)

Contributors

MetricFlow 0.203.0 - November 13, 2023

Breaking Changes

  • Use FULL OUTER JOIN to combine input metrics for derived metrics. This is a change from using INNER JOIN and may result in changes in output. (#842)
  • Update Dependencies to Use dbt-semantic-interfaces~=0.4.0 (#846)

Features

  • Enable DATE PART aggregation for time dimensions (#770)
  • Support Saved Queries in MetricFlow (#765)
  • Support for sort order in query interface (#None)
  • Support for the Dimension(...).grain(...) syntax for the where parameter (#None)
  • Support querying dimensions without metrics. (#804)
  • Join to time spine and fill nulls when requested on metric input measures. (#759)
  • Fill nulls for multi-metric queries (#850)

Fixes

  • Removing methods and reordering parameters for Query Interface. (#None)
  • Coerce time granularity to configured value to prevent finer-grained timestamps from causing unexpected query behavior (#714)
  • Prioritize source nodes based on correct cost (#801)
  • Enables case insensitivity for various query params. (#802)
  • Ensure extract calls return consistent results across engines (#792)
  • The --order param was being dropped from CLI saved queries. (#835)
  • Fix query validation for metric_time requirements (#825)
  • Use FULL OUTER JOIN for dimension-only queries. (#863)

Under the Hood

  • A simple update to make the where filter query parameter objects more accurate (#None)
  • Expose underlying where clause error message (#None)
  • Remove query interface and depend on DSI protocol instead (#None)
  • re-categorize TypeErrors that arise from create_from_where_filter into InvalidQueryException (#None)
  • Add the ability to use distinct select in sql nodes (#None)
  • Removed DatePart Enum and change imports to depend on DSI version instead. (#None)

Dependencies

  • Update to dbt-semantic-interfaces~=0.3.0. (#809)
  • Update typing-extensions minimum version to 4.4 (#823)
  • Update dbt dependencies to ~=1.7.0 (#860)

Contributors

MetricFlow 0.202.0 - September 06, 2023

Features

  • Adds the option for users to specify group by parameters with object syntax matching the where/filter expressions. (#717)
  • Expose measures for metrics on MFEngine with agg_time_dimension (#735)

Fixes

  • Update dataflow plan to support different granularities with time offset metrics (#726)
  • Removes unneeded JoinOverTimeRangeNode step from dataflow plan. (#743)
  • Update BigQuery YEAR granularity truncation to use January 1st instead of ISOYEAR start (#755)

Dependencies

  • Allow tabulate versions >= 0.8.9 (#762)

Contributors

MetricFlow 0.201.0 - August 17, 2023

Features

  • Add dbt-duckdb as a supported adapter and remove legacy DuckDB sql client (#583)

Fixes

  • Remove barrier to partition pruning certain time partition filter predicates (#712)

Under the Hood

  • Make duckdb the standard for all dev-env environment runs, including make test (#723)
  • (#728)

Dependencies

  • Update pandas to 1.5.x (#719)
  • Relax version pins for MetricFlow dependencies (#720)

Contributors

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

MetricFlow [0.140.0] - 2023-01-12

Breaking Changes

  • Result layout is changing from one row per metric/null dimension valued pair to one row per null dimension value regardless of number of metrics in the query. This only affects queries for multiple metrics where the requested dimensions contain null values. See the description on the relevant PR for more detailed information and an example illustrating how the output will change.
  • Updates to the required SqlClient protocol could cause typechecking failures for users injecting a custom SqlClient implementation into the MetricFlowClient
  • Version minimum changes in SQLAlchemy and snowflake-sqlalchemy could cause dependency conflicts when installed in python environments with libraries requiring an older version of either of these dependencies.

Added

  • Support for derived metrics - users can now define metrics based on expressions that use other metrics in the model as inputs. For example usage, see the description in the initial PR (@WilliamDee)
  • Support for versioned dimension joins against a standard Slowly Changing Dimension snapshot table (SCD Type II dataset) - users can now define a data source representing a dimension-only data set with start and end time columns representing validitiy windows for the dimension values, and MetricFlow will automatically join measures to the valid row entry. For details on limitations and future steps please refer to the initial PR. Note we no longer use the primary key type, as support for a natural key type was added in a follow-up PR. (@tlento)
  • Support for percentile measure definitions (@kyleli626)
  • Support for querying metrics without grouping by dimensions (@WilliamDee)
  • Support for generating a MetricFlow model from a dbt cloud metric model (@QMalcolm)
  • A cancel_request API in the SQL client for canceling running queries, with the necessary support for SQL isolation levels and asynchronous query submission (@plypaul)
  • Support for passing in query tags for Snowflake queries (@plypaul)
  • DataFlowPlan optimization to reduce source table scans (@plypaul)
  • Internal API to enable developers to fetch joinable data source targets from an input data source (@courtneyholcomb)

Updated

  • Improved readability of validation error messages (@QMalcolm)
  • Made Postgres engine tests merge-blocking in CI to reduce cycle time on detecting engine-specific errors (@tlento)
  • Updated poetry and python versions in CI to align with our build process and verify all supported Python versions (@tlento)
  • Eliminated data source level primary time dimension requirement in cases where all measures have an aggregation time dimension set (@QMalcolm)
  • Extended support for typed values for bind parameters (@courtneyholcolm)
  • Removed the optional Python levenshtein package from build dependencies in order to streamline package version requirements (@plypaul)
  • Consolidated join validation logic to eliminate code duplication and speed development (@plypaul)
  • Factored join building logic out of DataflowToSqlQueryPlanBuilder to streamline development (@tlento)
  • Improved visibility on underlying errors thrown by sql client requests (@courtneyholcomb)
  • Updated SQLAlchemy and snowflake-sqlalchemy minimum version requirements to resolve a version incompatibility introduced with SQLAlchemy 1.4.42 (@tlento)
  • Added CI coverage for Databricks SQL Warehouse execution environments (@tlento)

Fixed

  • Resolved error encountered in Databricks whenever table rename methods were invoked (@courtneyholcomb)
  • Fixed bug with warehouse measure validation where an error would be inappropriately thrown when users with measure-specific agg_time_dimension configurations attempted to run the full validation suite (@WilliamDee)
  • Issue with parsing explain output for Databricks SQL warehouse configurations (@courtneyholcomb)
  • Floating point comparison errors in CI tests (@tlento)
  • Issue with incomplete time range constraint validation that could result in invalid queries(@plypaul)
  • Resolved GitHub upgrade warnings on use of deprecated APIs and node.js build versions (@tlento)
  • Resolved python-levenshtein optimization warning on CLI startup (@jzhu13)
  • Resolved SQLAlchemy warning about the impending deprecation of the engine.table_names method (@Jstein77)
  • Improved error message for queries with time range constraints which were too narrow for the chosen time granularity (@kyleli626)
  • Eliminate SQL rendering error in BigQuery which would intermittently produce invalid GROUP BY specifications (@tlento)

MetricFlow [0.130.1] - 2022-10-19

Added

  • Support for overriding dbt profile and targets attributes when querying dbt models (@QMalcolm)
  • Validation to block use of DISTINCT keyword in COUNT aggregation expressions, as this can lead to incorrect results if optimized queries relying on partial aggregation attempt to do something like SUM(counts) to retrieve a less granular total value. (@tlento)

Updated

  • Made minor improvements to safeguards for internal development (@tlento)

MetricFlow [0.130.0] - 2022-10-18

Added

  • #292 This is the initial implementation of the MetricFlow dbt metrics integration. Allows MetricFlow to bootstrap itself natively from a dbt project that has metrics 🎉

Updated

  • Refactored the semantic layer to use the MetricReference object as opposed to MetricSpec (@WilliamDee)

[0.120.0] - 2022-10-13

Breaking Changes

  • Minor API change on SqlClient protocol could break existing API users writing custom SqlClient classes. MyPy should detect this issue. See the relevant PR for details.

Added

  • Support for Databricks! Now you can use Metricflow with your Databricks-backed warehouse! (@courtneyholcomb)
  • The ability to define constraints on input measures for ratio and expr metric types. This is a temporary quality of life improvement until full-featured derived metrics (i.e., metrics based on other metrics) are available. (@tlento)
  • Support for different time granularities, improved group by expression handling, and corrected constraint handling on semi-additive measures (@WilliamDee)
  • Support for count as a measure aggregation type. Note this is implemented as an alias around sum, so use of the DISTINCT keyword in expressions is not supported, and will be blocked via validation in a separate update. Users wishing for a COUNT(DISTINCT thing) equivalent should continue to use the count_distinct aggregation type. (@WilliamDee)

Fixed

  • Resolved incorrect constraint handling with semi-additive measures (@WilliamDee)
  • Eliminated Dataclass deserialization errors on default parameters (@tlento)

Updated

  • Optimized multi-hop join candidate selection (@plypaul)
  • Improved error handling and error messages on config validation (@QMalcolm, @tlento)
  • Streamlined our project README (@nhandel)
  • CLI now accepts metric-only queries in limited circumstances. See the assertion checks in the PR for details. We will announce this as a new feature when it is complete, but for the time being users may try it out to see if it meets their needs in its current form. (@WilliamDee)

MetricFlow [0.111.1] - 2022-08-30

Added

  • A lightweight Visual Studio Code extension for authoring configs with simple support for inline schema validation and auto-completion! Local repo changes limited to JSON schema generation. (@jack-transform)
  • Metric model template for Shopify metrics - if you use Shopify, this template can get you up and running for tracking your Shopify metrics! (@hesham-nawaz)

Fixed

  • Fixed warehouse validation failures caused by interaction with measure-specific aggregation times (@QMalcolm)
  • Resolved intermittent semantic validation failures due to unpicklable pydantic objects (@tlento)
  • Fixed edge case with semi-additive measures failing on certain join dimension connections (@WilliamDee)
  • Restructured semantic container depedencies to eliminate certain classes of circular import errors (@tlento)

Updated

  • Replaced Pydantic objects with serializable Dataclasses to improve plan building speed. This can reduce time to generate dataflow plans by 10-20x for complex queries. (@plypaul)
  • Refactored validation logic to make it easier to reason about (@QMalcolm)
  • Modified inference detection rules to make it more likely to classify low cardinality string columns as categorical dimensions (@tlento)

MetricFlow [0.111.0] - 2022-08-10

Added

  • Early beta for data source inference - Snowflake users can now run a command to bootstrap data source definitions based on warehouse metadata for tables in a given schema. Check out mf infer --help for more details. Feedback welcome! (@serramatutu)
  • Support for semi-additive measures - semi-additive measures are measures which can be aggregated across some dimensions, but not others. The most common use case for this is an end-of-period measure, such as a statement balance or end of day inventory hold. As of this release we support semi-additive restrictions bound by any time dimension. See the description on PR #183 for more details on usage. (@WilliamDee)
  • Expanded data warehouse validations - data warehoue validation runs will now check to ensure all measures, identifiers, and dimensions defined in data sources are queryable. (@QMalcolm)

Fixed

  • Resolved serialization error on custom Pydantic objects in the model parser (@tlento)
  • Cleaned up error message handling and missing test depencies on model validation (@tlento)
  • Eliminated a class of circular import errors by forking reference classes from the specs module (@WilliamDee)
  • Fixed error state when specifying a where constraint with metric_time (@plypaul)
  • Removed unused jsonschema element (@QMalcolm)

Updated

  • Updated the tutorial to use metric_time instead of arbitrary time dimensions (@plypaul)
  • Increased strictness of typechecking enforcement (@tlento)
  • Removed unnecessary "all time" WHERE clause rendering for cases where time constraints were not provided (@WilliamDee)
  • Updated Click version from ^8.1.3 to >=7.1.2 to temporarily resolve dependency issue for downstream Flask 1.1.4 usage (@jack-transform)
  • Updated Jinja2 version from 2.11.0 to >=2.11.0 to allow downstream Flask 1.1.4 users to update to 2.x.x (@jpreillymb, @tlento)

MetricFlow [0.110.1] - 2022-07-25

Fixed

  • Cleaned up package metadata and broken links in external README viewers (@tlento)
  • Fixed cases where output columns were rendering in the wrong order (@WilliamDee)

Updated

  • Improved model config schema validation to return all jsonschema errors instead of one at a time (@QMalcolm)
  • Streamlined rendered SQL to use BETWEEN expressions for date range checks (@WilliamDee)

MetricFlow [0.110.0] - 2022-07-21

Breaking Changes

  • Updated query inputs for time series dimensions to use metric_time instead of dimension names, since it is now possible for measures to have different time dimensions for time series aggregation. This also removes the restriction that all data sources have the same primary time dimension name. However, users issuing queries might experience exceptions if they are not using metric_time as their requested primary time dimension. (@plypaul)
  • Added enforcement for new reserved keyword metric_time (@tlento)
  • Reordered column output to time dimension, identifiers, dimensions, metrics, which could break automation relying on order-dependent parsing of CLI output. We encourage affected users to switch to using the API, and to access the resulting data frame with order-independent (i.e., by name) access to column values. (@WilliamDee)
  • Removed support for SQLite - expected impact is minimal as the repo has been cut to DuckDB for in memory testing (@plypaul)

Added

  • Support for specifying measure-specific time dimensions for time series aggregations (@plypaul)
  • Validation against use of SQL reserved keywords as element names, which previously would have resulted in SQL errors at query time (@QMalcolm)

Updated

  • Improved code structure around the model validation process (@QMalcolm)
  • Improved readability of model validation errors in CLI output (@QMalcolm)
  • Cleaned up DuckDB documentation (@yanghua)
  • Fixed edge case with model parsing where a constraint like ds = CURRENT_DATE() would throw an error (@tlento)
  • Restructured config parser to rely more on Pydantic's built in object parsing, allowing for more - and more standardized - customization on input types and parsing mechanics (@tlento)
  • Removed framework operation comments from SQL explain plans by default, added a flag to override (@WilliamDee, @nhandel)
  • Updated Click to 8.1.3 to resolve dependency conflicts and facilitate later addition of command completion (@jack-transform)
  • Improved developer documentation and workflows for PostgreSQL

MetricFlow [0.100.2] 2022-06-24

Updated

  • Updated numpy version to 1.23.0 to fix issues with operations on m1 macbooks (@serramatutu)
  • Downgraded DuckDB version to 0.3.4 to fix segfaults observed with multithreaded operations (@plypaul)
  • Added YAML linting to model validation process to catch syntax errors more explicitly (@QMalcolm)

MetricFlow [0.100.1] - 2022-06-23

Updated

  • Fixed CLI support for PostgreSQL (@plypaul)
  • Improved validation error messaging (@QMalcolm)

MetricFlow [0.100.0] - 2022-06-22

Breaking Changes

  • Updated MetricFlow config parameters for BigQuery users. See description on #62 for usage instructions.

Added

  • Metric / dimension SQL validations via DW engine (@QMalcolm)
  • Support for PostgreSQL and setup for local testing (@rexledesma)
  • Support for DuckDB (@plypaul)
  • Support for individual user logins to BigQuery (@WilliamDee)
  • Ability to create the MetricFlow client from a model in a specified directory (@WilliamDee)
  • Description and owner fields to model objects (@WilliamDee)

Updated

  • CLI tests without mocks (@WilliamDee)
  • Package dependencies to address security issues (@alliehowe)
  • Query cancellation behavior on CLI exit (@plypaul)

[0.93.0] - 2022-04-27

Added

  • Simple Developer API for interacting with MetricFlow engine based on a local config file for Warehouse credentials (@williamdee)
  • Config validation for Materialization structs (@lebca)
  • Config templates for useful metrics sourced from Salesforce data, for use by end users of MetricFlow (@JStein77)

MetricFlow [0.92.1] - 2022-04-13

Added

  • Ability to visualize DataFlow Plan from the command line via the --display-plans flag (@plypaul)

Fixed

  • Resolved BigQuery read credential failures on multi-line service account keys (@zzsza)
  • Resolved ciso8601 installation failures on Ubuntu (@plypaul)
  • Merge-blocking CI test failures and configuration errors (@marcodamore, @tlento)
  • Typing errors in MeasureReference (@lebca)

Removed

  • Remove legacy interfaces (@andykram)
  • Remove legacy time_format parameters from test models (@belindabennett)

Updated

  • Tutorial updates and extensions (@nhandel)
  • README improvements (@allegraholland, @belindabennett, @lebca, @tlento)
  • Contributor guide (@tlento)
  • CLI versioning (@williamdee)
  • CLI dependency restructuring in preparation for API extensions (@williamdee)

Special thanks

Special thanks to @zzsza for the quick fix for our BigQuery token parsing bug!