diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3b67c88..d06f18a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -12,8 +12,36 @@ open-pull-requests-limit: 5 commit-message: prefix: "[update]" + # グループは記述順に評価され,依存は最初に一致したグループへ入る. + # そのため OpenCvSharp 専用グループを minor-and-patch より先に置く groups: + # OpenCvSharp は OpenCV 本体に追随するバージョニングで semver 契約を持たず, + # 第 2 セグメントの bump でも破壊的変更が入る(4.10→4.13 で ArUco API が変更された). + # よって update-types を指定せず major / minor / patch を区別なく本グループで拾う. + # またマネージド(OpenCvSharp4・Extensions・Windows・WpfExtensions)とネイティブ + # (runtime.win)は同一バージョンで揃える必要があるため,常に 1 つの PR に束ねる(lockstep). + # 本グループは自動マージ禁止(.claude/deps-update-skip.md).実機または fixture 回帰で確認する + opencvsharp: + patterns: + - "OpenCvSharp4" + - "OpenCvSharp4.*" + # groups の applies-to は既定が version-updates のため,上のグループは + # security update 経路には効かない.脆弱性修正で 5 パッケージが個別 PR に割れ, + # マネージドとネイティブが食い違ったままマージされるのを防ぐミラーグループ + opencvsharp-security: + applies-to: "security-updates" + patterns: + - "OpenCvSharp4" + - "OpenCvSharp4.*" + # OpenCvSharp 以外の minor / patch をまとめる. + # patterns の "*" は OpenCvSharp にも一致するため exclude-patterns で明示的に外す + # (記述順による振り分けと合わせた二重の保険) minor-and-patch: + patterns: + - "*" + exclude-patterns: + - "OpenCvSharp4" + - "OpenCvSharp4.*" update-types: - "minor" - "patch" diff --git "a/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" "b/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" index cc15aec..6d5aeac 100644 --- "a/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" +++ "b/docs/02_ENV/ENV_03_\347\256\241\347\220\206\350\200\205\347\224\250\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206.md" @@ -57,4 +57,5 @@ - 現時点で CI(GitHub Actions 等)は構築していない.ビルド・テストはローカルで行う([ENV_04_開発コマンド](ENV_04_開発コマンド.md)). - 将来 CI を導入する場合は,x64・packages.config・ネイティブ DLL(OpenCvSharp)依存を満たすランナー構成が必要になる点に注意する. - `.github/dependabot.yml` で依存パッケージの定期更新 PR を設定している(NuGet: `TIASshot`/`TIASshot.Tests` の各 packages.config,週 1 回,マイナー/パッチは 1 PR にまとめる.メジャー更新も個別 PR で作成する).GitHub Actions の更新も対象に含めてあるため,CI を追加した時点で自動的に追従される. +- **OpenCvSharp4 系(5 パッケージ)は `opencvsharp` 専用グループに分離してある**.OpenCvSharp は OpenCV 本体に追随するバージョニングで semver 契約を持たず,マイナー扱いの bump でも破壊的変更が入るため(4.10→4.13 で ArUco API が変更され,マイナー扱いのグループ PR がビルド不能になった実績がある).マネージドとネイティブ(`runtime.win`)を常に同一バージョンで揃える必要があるので,規模を問わず 1 PR に束ねる.security update 経路にも同じ束ね方を効かせるため `applies-to: "security-updates"` のミラーグループを併置している.**このグループは自動マージ禁止**で,fixture 回帰または実機確認を経て人間がマージする(`/deps-update` 側のガードは `.claude/deps-update-skip.md`). - Dependabot の PR は `/deps-update` で処理する(ゲートを満たすものだけマージし,メジャー更新・CI 赤は分析付きで報告される).**本プロジェクトは CI が無いためゲートはローカル検証(x64 ビルド+テスト)で判定される**点に注意する.