Repository navigation
0.12.2
Ossie schema 0.2.0.dev0. Tested with dactopus-ossie-clickhouse 0.14.0,
dbt v2 (dbt-oss 2.0.11) and dbt v1 (dbt-core 1.11 with
dbt-clickhouse 1.10) on ClickHouse 26.9, the WooCommerce package also on
26.7.
The GA4 and Sensor.Community packages need dbt build --full-refresh
once: their incremental tables record their label from this release on,
and a table built by an earlier one records none, so its first
incremental run stops and asks for it. The Shopify and WooCommerce
packages need none: their tables keep the record 0.12.0 wrote.
Changed
- One settings guard for every package:
macros/settings.sql, the same
file in each, run on all models from the package'sdbt_project.yml
(+pre-hook,+post-hook), ahead of a model's own hooks on dbt v1 and
v2; it does nothing on a model that is not incremental. The variables
it guards aremeta.guarded_varsthere, with their defaults, and the
variables any run may change aremeta.free_vars. It replaces the
Shopify macrosshopify_settings,shopify_check_settingsand
shopify_save_settingsand the WooCommerce macros
woocommerce_settings,woocommerce_check_settings,
woocommerce_save_settingsandwoocommerce_check_built. The record
and the message stay as they were. - The incremental tables of the GA4 package (
events,sessions,
purchases) and of the Sensor.Community package (readings) record
ga4_source_idandsensor_community_source_id: a run with another
label stops before it reads or deletes a row, where the one-label tests
caught it after the run had rewritten rows. Their dbt user needs
ALTER MODIFY COMMENTon these tables. Their READMEs have a section,
Changing a setting. - A variable a later release starts to guard is read as its default from
a table whose record lacks it: only a deployment that set another value
builds anew. - The phrase of the message,
was not built with the settings of this run, is what a tool that deploys the packages can tell the stop by
(docs/deployment.md); a change of it will be in this changelog.
Added
tests/check_contracts.pyfails on a package with an incremental model
or a time zone that does not run the guard from itsdbt_project.yml,
on a copy ofmacros/settings.sqlthat differs, on a variable of
varsin neithermeta.guarded_varsnormeta.free_vars, on a
default there other than the one invars, and on atime_zoneor
source_idvariable that is not guarded.tests/check_settings.pyruns a package's build with another value of
each guarded variable and checks that the run stops with the message,
names that variable alone and leaves the tables as they were; that a
record without a variable reads it as its default; and that a full
refresh records the new values. The CI job of every package runs it in
place of steps of its own.