From 618242a428f55115988c619ce3a6915a97cadcd3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:38:37 +0000 Subject: [PATCH 1/9] Fix package-lock.yml format for dbt 1.8+ and remove restrictive adapters from all extra - Remove deprecated 'name' fields from package-lock.yml that dbt 1.8+ rejects - Remove dbt-clickhouse, dbt-sqlserver, dbt-vertica from 'all' extra as they pin dbt-core to 1.8.x (still available as individual extras) Co-Authored-By: Itamar Hartstein --- elementary/monitor/dbt_project/package-lock.yml | 6 ++---- pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/elementary/monitor/dbt_project/package-lock.yml b/elementary/monitor/dbt_project/package-lock.yml index f5a10517d..04c733e82 100644 --- a/elementary/monitor/dbt_project/package-lock.yml +++ b/elementary/monitor/dbt_project/package-lock.yml @@ -1,8 +1,6 @@ packages: - - name: dbt_utils - package: dbt-labs/dbt_utils + - package: dbt-labs/dbt_utils version: 0.8.6 - - name: elementary - package: elementary-data/elementary + - package: elementary-data/elementary version: 0.23.0 sha1_hash: 0edc67beba193ced6784779894083b5af00f73ec diff --git a/pyproject.toml b/pyproject.toml index 2e46ba5c6..31652e312 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ fabric = ["dbt-fabric"] fabricspark = ["dbt-fabricspark"] sqlserver = ["dbt-sqlserver"] vertica = ["dbt-vertica"] -all = ["dbt-snowflake", "dbt-bigquery", "dbt-redshift", "dbt-postgres", "dbt-databricks", "dbt-spark", "dbt-clickhouse", "dbt-athena-community", "dbt-trino", "dbt-duckdb", "dbt-dremio", "dbt-fabric", "dbt-sqlserver", "dbt-vertica"] +all = ["dbt-snowflake", "dbt-bigquery", "dbt-redshift", "dbt-postgres", "dbt-databricks", "dbt-spark", "dbt-athena-community", "dbt-trino", "dbt-duckdb", "dbt-dremio", "dbt-fabric"] [build-system] requires = ["poetry-core>=1.0.0"] From 508df9bf32a521acd7e666b1deb122a41ef52ce8 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:39:03 +0000 Subject: [PATCH 2/9] Add release validation: reject package-lock.yml with deprecated 'name' fields Co-Authored-By: Itamar Hartstein --- .github/workflows/release.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a05d5c787..51ad41c7a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,6 +65,29 @@ jobs: print("packages.yml validation passed - using proper package version reference.") EOF + - name: Validate package-lock.yml has no deprecated 'name' fields + run: | + python - <<'EOF' + import yaml + import sys + + lock_file = "./elementary/monitor/dbt_project/package-lock.yml" + with open(lock_file) as f: + data = yaml.safe_load(f) + + packages = data.get("packages", []) + bad_packages = [pkg for pkg in packages if "name" in pkg] + + if bad_packages: + names = ", ".join(pkg["name"] for pkg in bad_packages) + print(f"::error::package-lock.yml contains deprecated 'name' fields: {names}. " + "dbt 1.8+ rejects this format. Remove the 'name' fields from the lock file " + "or delete it and let dbt regenerate it.") + sys.exit(1) + + print("package-lock.yml validation passed - no deprecated 'name' fields found.") + EOF + publish-to-pypi: needs: validate-packages-yml runs-on: ubuntu-latest From 4ae54050616a635f90facd1ffdf9f4f7c80cb575 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:42:30 +0000 Subject: [PATCH 3/9] Revert lock file and release validation changes The 'name' field in package-lock.yml is not deprecated - it is the current format generated by modern dbt versions. The issue was specific to dbt 1.8.x which has a bug rejecting this field. The real fix is removing restrictive adapters from the 'all' extra so dbt resolves to 1.11+ where this bug doesn't exist. Co-Authored-By: Itamar Hartstein --- .github/workflows/release.yml | 23 ------------------- .../monitor/dbt_project/package-lock.yml | 6 +++-- 2 files changed, 4 insertions(+), 25 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 51ad41c7a..a05d5c787 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,29 +65,6 @@ jobs: print("packages.yml validation passed - using proper package version reference.") EOF - - name: Validate package-lock.yml has no deprecated 'name' fields - run: | - python - <<'EOF' - import yaml - import sys - - lock_file = "./elementary/monitor/dbt_project/package-lock.yml" - with open(lock_file) as f: - data = yaml.safe_load(f) - - packages = data.get("packages", []) - bad_packages = [pkg for pkg in packages if "name" in pkg] - - if bad_packages: - names = ", ".join(pkg["name"] for pkg in bad_packages) - print(f"::error::package-lock.yml contains deprecated 'name' fields: {names}. " - "dbt 1.8+ rejects this format. Remove the 'name' fields from the lock file " - "or delete it and let dbt regenerate it.") - sys.exit(1) - - print("package-lock.yml validation passed - no deprecated 'name' fields found.") - EOF - publish-to-pypi: needs: validate-packages-yml runs-on: ubuntu-latest diff --git a/elementary/monitor/dbt_project/package-lock.yml b/elementary/monitor/dbt_project/package-lock.yml index 04c733e82..f5a10517d 100644 --- a/elementary/monitor/dbt_project/package-lock.yml +++ b/elementary/monitor/dbt_project/package-lock.yml @@ -1,6 +1,8 @@ packages: - - package: dbt-labs/dbt_utils + - name: dbt_utils + package: dbt-labs/dbt_utils version: 0.8.6 - - package: elementary-data/elementary + - name: elementary + package: elementary-data/elementary version: 0.23.0 sha1_hash: 0edc67beba193ced6784779894083b5af00f73ec From 7b75a98681fa34ac84a1f8d1e4b752e64692d286 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:44:20 +0000 Subject: [PATCH 4/9] Fix package-lock.yml and release validation wording - Remove 'name' fields from package-lock.yml (unsupported in dbt 1.8) - Re-add release validation with corrected wording: 'unsupported in dbt 1.8' instead of incorrectly saying 'deprecated' Co-Authored-By: Itamar Hartstein --- .github/workflows/release.yml | 23 +++++++++++++++++++ .../monitor/dbt_project/package-lock.yml | 6 ++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a05d5c787..b26b59f8e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,6 +65,29 @@ jobs: print("packages.yml validation passed - using proper package version reference.") EOF + - name: Validate package-lock.yml has no 'name' fields unsupported in dbt 1.8 + run: | + python - <<'EOF' + import yaml + import sys + + lock_file = "./elementary/monitor/dbt_project/package-lock.yml" + with open(lock_file) as f: + data = yaml.safe_load(f) + + packages = data.get("packages", []) + bad_packages = [pkg for pkg in packages if "name" in pkg] + + if bad_packages: + names = ", ".join(pkg["name"] for pkg in bad_packages) + print(f"::error::package-lock.yml contains 'name' fields ({names}) which are " + "unsupported in dbt 1.8. Remove the 'name' fields from the lock file " + "or delete it and let dbt regenerate it.") + sys.exit(1) + + print("package-lock.yml validation passed - no unsupported 'name' fields found.") + EOF + publish-to-pypi: needs: validate-packages-yml runs-on: ubuntu-latest diff --git a/elementary/monitor/dbt_project/package-lock.yml b/elementary/monitor/dbt_project/package-lock.yml index f5a10517d..04c733e82 100644 --- a/elementary/monitor/dbt_project/package-lock.yml +++ b/elementary/monitor/dbt_project/package-lock.yml @@ -1,8 +1,6 @@ packages: - - name: dbt_utils - package: dbt-labs/dbt_utils + - package: dbt-labs/dbt_utils version: 0.8.6 - - name: elementary - package: elementary-data/elementary + - package: elementary-data/elementary version: 0.23.0 sha1_hash: 0edc67beba193ced6784779894083b5af00f73ec From f76efd8154b5cb4801a1f9308e01ef05aa80ca4f Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:47:46 +0000 Subject: [PATCH 5/9] Add dbt-clickhouse and dbt-sqlserver back to all extra Only dbt-vertica (dbt-core==1.8.5 exact pin) and dbt-fabricspark (broken upstream) need to stay out. dbt-clickhouse 1.10.0 requires dbt-core>=1.9 and dbt-sqlserver 1.9.0 requires dbt-core>=1.9.0,<2.0, so both are compatible with newer dbt-core versions. Co-Authored-By: Itamar Hartstein --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 31652e312..fcb42c13b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ fabric = ["dbt-fabric"] fabricspark = ["dbt-fabricspark"] sqlserver = ["dbt-sqlserver"] vertica = ["dbt-vertica"] -all = ["dbt-snowflake", "dbt-bigquery", "dbt-redshift", "dbt-postgres", "dbt-databricks", "dbt-spark", "dbt-athena-community", "dbt-trino", "dbt-duckdb", "dbt-dremio", "dbt-fabric"] +all = ["dbt-snowflake", "dbt-bigquery", "dbt-redshift", "dbt-postgres", "dbt-databricks", "dbt-spark", "dbt-athena-community", "dbt-trino", "dbt-clickhouse", "dbt-duckdb", "dbt-dremio", "dbt-fabric", "dbt-sqlserver"] [build-system] requires = ["poetry-core>=1.0.0"] From a9e2d8def6201c893eb928b4823cdc677d404bc1 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:48:12 +0000 Subject: [PATCH 6/9] Add comments explaining why fabricspark and vertica are excluded from all extra Co-Authored-By: Itamar Hartstein --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index fcb42c13b..babab1290 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,6 +76,9 @@ fabric = ["dbt-fabric"] fabricspark = ["dbt-fabricspark"] sqlserver = ["dbt-sqlserver"] vertica = ["dbt-vertica"] +# dbt-fabricspark is excluded due to broken upstream dependencies (azure-cli pre-release pins). +# dbt-vertica is excluded because it pins dbt-core==1.8.5, forcing the entire resolution to dbt 1.8. +# Both are still available as individual extras (e.g. pip install elementary-data[vertica]). all = ["dbt-snowflake", "dbt-bigquery", "dbt-redshift", "dbt-postgres", "dbt-databricks", "dbt-spark", "dbt-athena-community", "dbt-trino", "dbt-clickhouse", "dbt-duckdb", "dbt-dremio", "dbt-fabric", "dbt-sqlserver"] [build-system] From 71fe2fb1d17c8ed7ddc373514dae276beceb9971 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:50:02 +0000 Subject: [PATCH 7/9] Bump version to 0.23.1 Co-Authored-By: Itamar Hartstein --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index babab1290..f7577e4ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "elementary-data" -version = "0.23.0" +version = "0.23.1" description = "Data monitoring and lineage" authors = ["Elementary"] keywords = ["data", "lineage", "data lineage", "data warehouse", "DWH", "observability", "data monitoring", "data observability", "Snowflake", "BigQuery", "Redshift", "data reliability", "analytics engineering"] From 4e2cb137d01e369d2d7bf5924f855fb31f5270cd Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:53:23 +0000 Subject: [PATCH 8/9] Add pre-commit hook to auto-strip 'name' fields from package-lock.yml The hook runs on package-lock.yml changes, strips any 'name' fields (unsupported in dbt 1.8), and exits 1 so the user re-stages the fix. Placed before the existing verify-dbt-project-packages-lock hook. Co-Authored-By: Itamar Hartstein --- .pre-commit-config.yaml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3480ad5f5..6937d09f2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -46,6 +46,29 @@ repos: - repo: local hooks: + - id: strip-name-from-package-lock + name: Strip 'name' fields from package-lock.yml (unsupported in dbt 1.8) + entry: | + python -c " + import yaml, sys + lock_file = 'elementary/monitor/dbt_project/package-lock.yml' + with open(lock_file) as f: + data = yaml.safe_load(f) + changed = False + for pkg in data.get('packages', []): + if 'name' in pkg: + del pkg['name'] + changed = True + if changed: + with open(lock_file, 'w') as f: + yaml.dump(data, f, default_flow_style=False, sort_keys=False) + print(f'Removed unsupported name fields from {lock_file}') + sys.exit(1) + " + language: system + files: package-lock\.yml$ + pass_filenames: false + - id: verify-dbt-project-packages-lock name: Verify internal dbt project package lock entry: | From 36d08bebc594d274b35c3418df48ea5934e8facf Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 17:53:59 +0000 Subject: [PATCH 9/9] Remove release validation for package-lock.yml name fields The pre-commit hook handles this automatically now, so the release validation step is redundant. Co-Authored-By: Itamar Hartstein --- .github/workflows/release.yml | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b26b59f8e..a05d5c787 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,29 +65,6 @@ jobs: print("packages.yml validation passed - using proper package version reference.") EOF - - name: Validate package-lock.yml has no 'name' fields unsupported in dbt 1.8 - run: | - python - <<'EOF' - import yaml - import sys - - lock_file = "./elementary/monitor/dbt_project/package-lock.yml" - with open(lock_file) as f: - data = yaml.safe_load(f) - - packages = data.get("packages", []) - bad_packages = [pkg for pkg in packages if "name" in pkg] - - if bad_packages: - names = ", ".join(pkg["name"] for pkg in bad_packages) - print(f"::error::package-lock.yml contains 'name' fields ({names}) which are " - "unsupported in dbt 1.8. Remove the 'name' fields from the lock file " - "or delete it and let dbt regenerate it.") - sys.exit(1) - - print("package-lock.yml validation passed - no unsupported 'name' fields found.") - EOF - publish-to-pypi: needs: validate-packages-yml runs-on: ubuntu-latest