Skip to content

Fix package-lock.yml format, remove dbt-vertica from all extra, add release validation#2159

Merged
haritamar merged 9 commits intomasterfrom
devin/1773941799-fix-lockfile-and-adapters
Mar 19, 2026
Merged

Fix package-lock.yml format, remove dbt-vertica from all extra, add release validation#2159
haritamar merged 9 commits intomasterfrom
devin/1773941799-fix-lockfile-and-adapters

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Mar 19, 2026

Summary

Fixes the dbt deps failure inside the Docker image caused by the package-lock.yml containing name fields that are unsupported in dbt 1.8. Also removes dbt-vertica from the all extra (it pins dbt-core==1.8.5, blocking resolution to newer versions), and adds a release-time validation to prevent the lock file issue from recurring.

Changes:

  1. elementary/monitor/dbt_project/package-lock.yml — Removed name fields from package entries. These are unsupported in dbt 1.8 (though supported in older and newer dbt versions).
  2. pyproject.toml — Removed dbt-vertica from the all extra. It pins dbt-core==1.8.5, forcing the entire resolution to dbt 1.8. dbt-fabricspark was already excluded in Fix Docker build: switch to uv and tighten dbt adapter lower bounds to >=1.8 #2157 due to broken upstream deps. dbt-clickhouse and dbt-sqlserver remain in all — their latest versions (1.10.0 and 1.9.0) require dbt-core>=1.9 and are compatible with newer dbt-core. Added comments above the all line explaining why fabricspark and vertica are excluded.
  3. .github/workflows/release.yml — Added a validation step that fails the release if package-lock.yml contains name fields (unsupported in dbt 1.8).

Verified locally: Docker image builds and dbt deps succeeds inside the container. dbt-core resolves to 1.11.6 with dbt-clickhouse 1.10.0 and dbt-sqlserver 1.9.0 all working together.

Updates since last revision

  • Added dbt-clickhouse and dbt-sqlserver back to the all extra — only dbt-vertica (exact ==1.8.5 pin) is actually problematic. The latest versions of clickhouse and sqlserver have open-ended dbt-core>=1.9 constraints.
  • Changed wording from "deprecated" to "unsupported in dbt 1.8" throughout (the name field is not deprecated — it's generated by newer dbt versions but rejected by dbt 1.8 specifically).
  • Added explanatory comments in pyproject.toml above the all extra.

Review & Testing Checklist for Human

  • all extra scope change: Anyone doing pip install elementary-data[all] will no longer get dbt-vertica. Confirm this is acceptable and consider whether it needs a changelog/migration note for v0.23.1.
  • sha1_hash in lock file: The original hash was kept after removing name fields. dbt accepted it in local testing, but verify this doesn't cause issues in other dbt versions or environments.
  • Build and run the Docker image end-to-end: docker build . && docker run <image> report --help (or a real report command with a warehouse connection) to confirm the full flow works.

Notes

Link to Devin session: https://app.devin.ai/sessions/a67f519882744e45b279502a0fe54bde
Requested by: @haritamar

Summary by CodeRabbit

  • Chores
    • Bumped version to 0.23.1
    • Updated dependency configuration by removing dbt-vertica and dbt-fabricspark from the "all" extras; these adapters remain available as individual optional dependencies

devin-ai-integration bot and others added 2 commits March 19, 2026 17:38
…ers 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 <haritamar@gmail.com>
…' fields

Co-Authored-By: Itamar Hartstein <haritamar@gmail.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@github-actions
Copy link
Contributor

👋 @devin-ai-integration[bot]
Thank you for raising your pull request.
Please make sure to add tests and document all user-facing changes.
You can do this by editing the docs files in this pull request.

@coderabbitai
Copy link

coderabbitai bot commented Mar 19, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR updates package configurations by bumping the version to 0.23.1, removing two dbt packages from the aggregated all extras list in pyproject.toml, and adding a pre-commit hook that automatically strips name fields from package-lock.yml files.

Changes

Cohort / File(s) Summary
Lockfile metadata
elementary/monitor/dbt_project/package-lock.yml
Removed name fields from dbt-labs/dbt_utils and elementary-data/elementary package entries while preserving package identifiers and version pins.
Dependency configuration
pyproject.toml
Bumped version from 0.23.0 to 0.23.1. Removed dbt-vertica and dbt-fabricspark from the all extras list; added inline comments clarifying why these packages are excluded from the aggregate but remain available individually.
Pre-commit hook configuration
.pre-commit-config.yaml
Added new local hook strip-name-from-package-lock that parses package-lock.yml, removes name fields from package entries, and fails the commit if modifications were made to enforce consistency.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A tidier lockfile, version bumped high,
Some extras removed (vertica goodbye!),
A hook to keep names from cluttering away—
Clean configurations to brighten the day! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the three main changes: fixing package-lock.yml format, removing dbt-vertica from the all extra, and adding release validation (pre-commit hook).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch devin/1773941799-fix-lockfile-and-adapters
📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

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 <haritamar@gmail.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
pyproject.toml (1)

79-79: Document the breaking change in release notes.

Removing dbt-clickhouse, dbt-fabricspark, dbt-sqlserver, and dbt-vertica from the all extra is a scope change for users who install elementary-data[all]. Users relying on these adapters via the all extra will need to explicitly install them (e.g., pip install elementary-data[clickhouse]).

As noted in the PR checklist, consider adding a migration note to the v0.23.1 changelog to inform users of this change.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pyproject.toml` at line 79, Update the release notes/changelog (v0.23.1) to
document the breaking change where the pyproject.toml extras group all (the all
= [...] entry) no longer includes dbt-clickhouse, dbt-fabricspark,
dbt-sqlserver, and dbt-vertica; explicitly state that users who previously
relied on elementarty-data[all] must now install those adapters separately
(e.g., pip install elementary-data[clickhouse]) and add a short migration note
and example command in the changelog entry to guide users.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pyproject.toml`:
- Line 79: Update the release notes/changelog (v0.23.1) to document the breaking
change where the pyproject.toml extras group all (the all = [...] entry) no
longer includes dbt-clickhouse, dbt-fabricspark, dbt-sqlserver, and dbt-vertica;
explicitly state that users who previously relied on elementarty-data[all] must
now install those adapters separately (e.g., pip install
elementary-data[clickhouse]) and add a short migration note and example command
in the changelog entry to guide users.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 971c4332-0c54-4f59-810c-d87c7f733ea4

📥 Commits

Reviewing files that changed from the base of the PR and between 8c910d4 and 508df9b.

📒 Files selected for processing (3)
  • .github/workflows/release.yml
  • elementary/monitor/dbt_project/package-lock.yml
  • pyproject.toml

devin-ai-integration bot and others added 3 commits March 19, 2026 17:44
- 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 <haritamar@gmail.com>
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 <haritamar@gmail.com>
… all extra

Co-Authored-By: Itamar Hartstein <haritamar@gmail.com>
@devin-ai-integration devin-ai-integration bot changed the title Fix package-lock.yml format, remove restrictive adapters from all extra, add release validation Fix package-lock.yml format, remove dbt-vertica from all extra, add release validation Mar 19, 2026
Co-Authored-By: Itamar Hartstein <haritamar@gmail.com>
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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually - rethinking this - maybe it's good to add this as a pre-commit step that also fixes this. WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea — a pre-commit hook that auto-strips the name fields would catch this earlier and fix it automatically instead of just failing. I'll add it as a pre-commit hook and keep the release validation as a safety net.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can also remove the release validation, not sure it's a must

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — removed the release validation step. The pre-commit hook now handles it by auto-stripping the name fields.

devin-ai-integration bot and others added 2 commits March 19, 2026 17:53
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 <haritamar@gmail.com>
The pre-commit hook handles this automatically now, so the release
validation step is redundant.

Co-Authored-By: Itamar Hartstein <haritamar@gmail.com>
@haritamar haritamar merged commit 31e7528 into master Mar 19, 2026
23 checks passed
@haritamar haritamar deleted the devin/1773941799-fix-lockfile-and-adapters branch March 19, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant