Add dbt Core 1.13 support and test the SQL Server v2 parser

オープン
#903 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
22/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python, rust, sql
領域
ci-cd, databases

調査の方向性

Start with the dependency range in pyproject.toml, the checked-in lock, the README's tested-version statement, and the CI workflow files, since no Core 1.13 lane exists yet. Then look at the adapter's shadowed unit-test fixture and snapshot strategy macros, and the fork's release workflow that packages the dbt-core-experimental-parser distribution. Done means a CI lane runs the unit and SQL Server functional suites on both Core 1.12 and 1.13.0b1, with the parser handoff verified, and the README updated to match.

索引モデルが issue の本文から書いたものです。

説明

The README says the adapter supports dbt Core 1.12 or newer, and pyproject.toml permits dbt-core>=1.12.0,<2.0. That range admits 1.13, but the checked-in lock resolves Core 1.12.6 and CI has no explicit Core-version matrix. The install-from-metadata CI jobs may float to a newer compatible Core, but they do not demonstrate that both supported minor lines remain covered.

No 1.13 runtime incompatibility has been reproduced. The 1.13.0b1 notes change defaults for flags introduced in 1.9/1.10, add --use-v2-parser, and delay/package-scope unit-test model resolution. The adapter shadows dbt's built-in unit-test fixture and snapshot strategy macros, so these paths need compatibility tests.

Compatibility gaps

  • Optional v2 parser: Core 1.13 invokes dbt-core-experimental-parser parse when --use-v2-parser is set. Its upstream Rust parser does not define a SQL Server AdapterType; Core re-discovers macros from the installed Python adapter after parsing, but that cannot add SQL Server dialect support to the Rust parse. The SQL Server fork does implement AdapterType::SqlServer and its release workflow packages the Rust dbt binary as the dbt-core-experimental-parser distribution. The parser test lane therefore needs to replace Core's upstream dbt-core-experimental-parser dependency with the fork-built package (or explicitly configure --v2-parser to the fork executable); it does not need to replace dbt-core itself. Core's range is dbt-core-experimental-parser>=2.0.0b1,<3, so verify the fork package version satisfies it. Test both default and custom --packages-install-path values through the handoff.

Readiness PR spike (not a 1.13 support blocker)

Core 1.13's catalog_database override applies to model relations using a catalog-write integration. SQL Server currently has catalog-read macros but no registered CATALOG_INTEGRATIONS or catalog-write integration. During readiness PR work, assess whether SQL Server should implement/register one so this override can be used, and test its database-name precedence if pursued. This is a spike to decide, not a requirement for Core 1.13 compatibility or parser support.

Steps to reproduce

There is no known failing runtime case. In a clean environment, install this adapter with dbt-core==1.13.0b1 (then repeat with the first stable 1.13 release). Run the normal Python-parser path, then run dbt parse --use-v2-parser with dbt-core-experimental-parser built from the SQL Server fork; run the adapter's unit and SQL Server functional suites. The current CI configuration does not pin or report a dedicated Core 1.13 lane.

Expected behavior

Keep CI coverage for both the supported 1.12 line and Core 1.13. Exercise model, snapshot and unit-test behavior and the default-on flags. For --use-v2-parser, install the fork-built dbt-core-experimental-parser artifact (the upstream Rust parser lacks SQL Server), and verify Core's manifest handoff, adapter macro rediscovery, and default/custom package-install paths. Update dependency/lock configuration and the README's tested-version statement to match results; fix failures with regression coverage before claiming support.

Environment

  • Database: Not run; this is a compatibility-coverage request.
  • Backend: Not run.
  • Authentication, ODBC driver, OS: Not applicable to the source audit.
  • Database collation: Not measured.
  • Other dbt packages: dbt Core 1.13.0b1 is the prerelease target; the checked-in lock resolves 1.12.6.

dbt --version:

No 1.13 adapter run has been recorded. The checked-in lock resolves dbt-core 1.12.6.

Log excerpt

Not applicable: no runtime failure has been reproduced.
主要言語
Python
スター
258
フォーク
112
平均マージ
21時間 55分
マージ済み PR(30日)
3

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

dbt-msft/dbt-sqlserver のほかの issue

dbt-msft/dbt-sqlserver の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。