fix: [AI-7435] accept dbt 2.0 reused run status in run_results v6 parser#106
fix: [AI-7435] accept dbt 2.0 reused run status in run_results v6 parser#106Sourabhchrs93 wants to merge 1 commit into
reused run status in run_results v6 parser#106Conversation
…arser dbt 2.0 emits `status="reused"` for unchanged models. The `run_results` v6 `Status` enum only knew `success`/`error`/`skipped`/`partial_success`, so `Result` validation raised `ValidationError` and the ingestion worker silently dropped the entire `run_results.json` — run status/timing never persisted while the UI still showed a clean successful sync. - Add `reused` to `Status` and make it a `str, Enum`. - Add `Status._missing_` so future unknown dbt statuses surface as real members instead of failing validation (forward-compatibility). - Reorder `Result.status` union to `Union[Status1, Status2, Status]` so the now permissive run `Status` is tried last, keeping test/freshness statuses (`pass`/`fail`/`warn`/`runtime error`) resolving via the strict enums. - Add regression tests covering `reused`, known statuses, unknown-future status, test/freshness statuses, and full-file `parse_run_results`. - Bump version to `0.3.2` (`0.3.1` already released without this fix). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| setup( | ||
| name="altimate-datapilot-cli", | ||
| version="0.3.1", | ||
| version="0.3.2", |
There was a problem hiding this comment.
WARNING: Version bump is incomplete — docs/conf.py and .bumpversion.cfg still report 0.3.1.
.bumpversion.cfg coordinates the version across three files (setup.py, docs/conf.py, src/datapilot/__init__.py). This PR updated setup.py and __init__.py to 0.3.2 but left docs/conf.py at version = release = "0.3.1" and .bumpversion.cfg at current_version = 0.3.1.
Consequences:
- Sphinx docs will publish showing
0.3.1while the package ships0.3.2. - The next
bumpversionrun will fail: itssearch = version="{current_version}"pattern (0.3.1) no longer matchessetup.py(now0.3.2), raisingVersionNotFoundError.
Use bumpversion patch (which updates all three files plus current_version and commits/tags), or bump all three files together so the version stays coordinated.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (4 files)
The core fix is correct and well-covered: adding Fix these issues in Kilo Cloud Reviewed by glm-5.2 · Input: 48.9K · Output: 18.8K · Cached: 479.6K |
Summary
Fixes AI-7435. dbt 2.0 emits
status="reused"for unchanged models. Therun_resultsv6Statusenum only knewsuccess/error/skipped/partial_success, soResultvalidation raisedValidationErrorand the ingestion worker silently dropped the entirerun_results.json— run status/timing never persisted, while the UI still showed a clean successful sync.Confirmed against the currently-released
0.2.3: parsing a result withstatus="reused"raisesValidationError(3 errors forResult). DocuSign hit this on every run while on dbt 2.0.Changes
reusedtorun_results_v6.Status; make it astr, Enum.Status._missing_so future unknown dbt statuses surface as real members instead of failing validation (forward-compatibility).Result.statusunion toUnion[Status1, Status2, Status]so the now-permissive runStatusis tried last, keeping test/freshness statuses (pass/fail/warn/runtime error) resolving via the strictStatus1/Status2enums.reused, known statuses, unknown-future status, test/freshness statuses, and full-fileparse_run_results.0.3.1 → 0.3.2(0.3.1already released without this fix).Testing
Follow-up (not in this PR)
altimate-datapilot-cli 0.3.2.altimate-backend:poetry update altimate-datapilot-clito move the lock0.3.1 → 0.3.2(pin^0.3.1already admits it), then deploy.0.2.x.🤖 Generated with Claude Code