所感箱

所感を書きためていきます

FlutterプロジェクトにRenovateを導入する

FlutterプロジェクトにRenovateを導入したので備忘録として

1. 対象リポジトリにRenovateのGithub Appsを導入

github.com

手順に従って進めれば設定完了できるので詳細は割愛。

2. renovavte設定用のPRが生成される

GitHub Appsが連携されると画像のようなPRが生成される。 f:id:katsutomu0124:20210818102138p:plain

renovate.jsonという設定ファイルを更新するとチューニングが可能。 Renovate Docsのページを見ながら進めると良い。 設定項目によってはプラットフォーム未対応だったりや不要な項目もある。

3. 設定をチューニング

今回、設定した内容はこちら

 "extends": [
    "config:base"
  ],
  "timezone": "Asia/Tokyo",
  "lockFileMaintenance": { "enabled": true },
  "labels": ["dependencies"]
}

config:baseの内容

Renovateに用意されているPresetsで中身は以下の設定になっていた。

dependencyDashboard

v26.0.0から導入された新機能。 Github内にIssueが作られてRenovateで生成されたPRが可視化されるらしいが、試したプロジェクト上では動いていないっぽい。

semanticPrefixFixDepsChoreOthers

CommitがSemanticPrefixのFixとChoreだと引き継いでくれるってことかな?良くわからなかった。

ignoreModulesAndTests

モッジュールやテストのディレクトリのRenovateの管理対象外にする設定

autodetectPinVersions

バージョンの固定や範囲指定を維持する設定

prHourlyLimit2

PRを1時間に2つまでにする設定

prConcurrentLimit20

同時に開くPRは20までにする設定

group:monorepos

複数のpackageをまとめて依存関係の更新を管理する設定を引き継ぐ利用する Monorepo Presetsで対象の一覧がみれる

group:recommended

monorepoでないpagakeの複数のpackageをまとめて依存関係の更新を管理する設定を利用する

Group Presetsで対象の一覧がみれる

workarounds:all

ワークアラウンドの設定を引き継ぐ Workaround Presetsで対象の一覧が見れる

追加した設定

timezone

日本時間でRenovateを動作させる

lockFileMaintenance

lockfileのメンテナンス設定をしないと依存先の更新が合わせてされないので、手間がかかるらしい dartでは2021/08の時点では、まだ未対応ですが、対応が進んでいる様子。 feat: Add pub lockfile maintenance by jld3103 · Pull Request #11132 · renovatebot/renovate · GitHub

labels

PRに指定したラベルをつける。この場合はdependencies。

{
  "extends": [
    ":dependencyDashboard",
    ":semanticPrefixFixDepsChoreOthers",
    ":ignoreModulesAndTests",
    ":autodetectPinVersions",
    ":prHourlyLimit2",
    ":prConcurrentLimit20",
    "group:monorepos",
    "group:recommended",
    "workarounds:all"
  ]
}

4. PRが飛んでくる

DartパッケージのPR

f:id:katsutomu0124:20210826013736p:plain

AndroidパッケージのPR

f:id:katsutomu0124:20210826004329p:plain

所感

DartAndroidiOSの依存関係を管理する必要があるFlutterプロジェクトでは導入しておいて損はなさそう。