Migration from V0.17 to V0.18

This guide outlines all breaking and important changes introduced in version V0.18 of the Store.


๐Ÿš€ What's New in V0.18?

The following dashboards are now available in the store:

  • anomalies
  • PEVR
  • diplomation

โš ๏ธ Migration Instructions

๐Ÿงฉ Dependency Updates

Breaking Changes
  • Updated dbt to v1.9.0
  • Updated adapter to sciance/dbt-fabric v1.9.4
  • Environment now managed via poetry v2.0.0
    • The pyproject.toml now uses Poetry 2.0 format
  • Minimum Python version is now 3.10

You must upgrade your environment accordingly:

  • To manage multiple Python versions, install pyenv.
  • To install poetry v2.0.0, run:
    curl -sSL https://install.python-poetry.org | python3 -
Poetry v2.0.0 has deprecated poetry shell.
Use poetry env activate instead to activate your virtual environment. Be carefull, beacuse of reasons, poetry env activate will not activate the environment in your current shell, it will return the command you need to run in your current shell to activate the environment. You can use eval $(poetry env activate) to activate the environment in your current shell.

๐Ÿท๏ธ Project Renaming

Breaking Changes
  • The project name has been changed from store โ†’ core_dashboards_store
  • All references to store must be replaced with core_dashboards_store, including:
    • Resource declarations in dbt_project.yml (models, seeds, tests, hooks)
    • Macro calls in any .sql file

Example fix in dbt_project.yml:

{{ store.get_current_year() }} # is deprecated and should be replaced with
{{ core_dashboards_store.get_current_year() }}

๐Ÿ› ๏ธ dbt_project.yml Updates

Non-breaking Change
  • New macro added: core_dashboards_store.drop_tmp_table_for_current_model
    • Cleans up dangling temp tables for the current model
    • Recommended for use as a pre-hook in dbt_project.yml:
models:
  +pre-hook:
    - "{{ core_dashboards_store.drop_tmp_table_for_current_model(model_name=this.name) }}"
  core_dashboards_store:
    ...

This ensures temporary artifacts are properly removed before model execution, preventing a potential issue when dbt is not gracefully terminated.