build: group Dependabot updates and lift the PR ceiling - #134
Closed
Cat5Dog2 wants to merge 1 commit into
Closed
Conversation
The nuget ecosystem ran with open-pull-requests-limit: 5 and no grouping, which let updates go missing rather than merely queue up. Six Dependabot PRs sat open against main, all five nuget slots taken by single-package bumps. Microsoft.EntityFrameworkCore.SqlServer, Mvc.Testing, EFCore.InMemory and EFCore.Sqlite all had 10.0.10 available and never got a PR, because there was no slot left to open one in. The starvation is silent: nothing reports that an update was skipped. Worse, #123 (Web.Tests to Test SDK 18.7.0) was closed as "superseded by #129" even though #129 only touches E2ETests. Dependabot matched on package name across directories, so the Web.Tests update was dropped and would not have come back. Grouping ASP.NET Core and EF Core together is the substantive fix: they ship as one train, and splitting them into separate PRs is what let Design/Tools drift ahead of SqlServer in the first place. Major bumps stay ungrouped so things like ImageSharp 3.x to 4.0 still land alone. The github-actions group deliberately does not filter update-types. Action tag bumps (v5 to v6) all register as major, so filtering to minor/patch would leave the group matching nothing. Dependabot does not read dotnet-tools.json at all, so dotnet-ef has to be bumped by hand alongside EF Core. Noted at the top of the file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Owner
Author
|
レビュー指摘を受けて #135 に統合したためクローズします。 統合の理由は積み上げ PR の base 問題の解消と、本番デプロイ回数の削減(3回→2回)です。 あわせて本 PR にあった以下の誤りを #135 で訂正しています。
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#133 で解消したバージョンずれの再発防止です。設定ファイル 1 本のみの変更で、ビルド成果物には影響しません。
何が問題だったか
nuget の
open-pull-requests-limit: 5にグループ設定がなく、1 パッケージ 1 PR で枠を使い切っていました。上限に張り付くと、更新は「待たされる」のではなく「作られない」 のが厄介な点です。実際、以下は 10.0.10 が出ていたのに PR が存在しませんでした。
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.AspNetCore.Mvc.TestingMicrosoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.Sqliteしかも通知は出ないので、気づく手段がありません。
さらに #123(Web.Tests の Test SDK 18.7.0)は「Superseded by #129」として閉じられましたが、#129 は E2ETests しか触っていません。ディレクトリを跨いでパッケージ名だけで重複判定された結果、Web.Tests の更新が落ちて 18.6.0 に取り残されていました。
変更内容
open-pull-requests-limitgroupsaspnetcore-efcore/test-tooling/azureを追加open-pull-requests-limitgroupsdotnet-tools.jsonが監視対象外である旨を明記設計判断
ASP.NET Core と EF Core を同一グループに
両者は同じトレイン(10.0.x)で同時リリースされます。PR が分かれていたことが、Design/Tools だけ先行して SqlServer が取り残される原因そのものでした。
メジャー更新はグループに入れない
nuget の各グループは
update-typesをminor/patchに限定しています。SixLabors.ImageSharp3.x → 4.0 のような破壊的変更は、単独 PR で個別にレビューしたいためです。github-actions は
update-typesで絞らないaction のバージョンタグ更新(
v5→v6)はすべて major 判定になります。ここを minor/patch に絞ると、グループが何にもマッチしません。実際 #115(checkout v6→v7)も #130(setup-dotnet v5→v6)も major でした。dotnet-tools.jsonはコメントで補うDependabot はローカルツールマニフェストを読みません。
dotnet-efは EF Core と同トレインなので、手動で揃える必要がある旨をファイル先頭に記載しました。検証
.github/dependabot.ymlが YAML として妥当で、意図した構造にパースされることを確認済みです。実際のグループ化挙動は、マージ後の初回スケジュール実行(月曜 09:00 JST)で確認できます。
🤖 Generated with Claude Code