小ネタです。
依存ライブラリのバージョン管理にRenovateを長いこと使っています。ChangeLogを自分で見に行かなくてよいので、大分楽をさせてもらっています。
別の話題として、SQLのlinter/formatterにsqlfmt
とsqlfluff
を使っています。基本はsqlfmt
だけで済むようにして、どうしてもカスタムで入れたいルールだけホワイトリスト形式でsqlfluff
を使う運用をしています。sqlfluff
のみだとdbtのテンプレートをうまく扱えないので、sqlfluff-templater-dbt
も同時にインストールしています。
Renovateでsqlfluff
とsqlfluff-templater-dbt
が対象の場合、個別にバージョンを上げるPRが上がってくるとCIなどがこけることが多いと思います。具体的にはこういうエラーメッセージになっているかと思います。
ERROR: Cannot install -r requirements.txt (line 9) and sqlfluff==2.3.2 because these package versions have conflicting dependencies. The conflict is caused by: The user requested sqlfluff==2.3.2 sqlfluff-templater-dbt 2.3.3 depends on sqlfluff==2.3.3 To fix this you could try to: 1. loosen the range of package versions you've specified 2. remove package versions to allow pip attempt to solve the dependency conflict
エラーメッセージの通り、この2つのライブラリは同時にバージョンを上げる必要があります。こういう場合、RenovateではGroupingの設定ができるので、それで解決します。
具体的にはこういう設定を書いてあげるとよいですね。
{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:base" ], "packageRules": [ { "matchPackageNames": ["sqlfluff", "sqlfluff-templater-dbt"], "groupName": "sqlfluff packages" } ] }