ci: 版の同期を単一情報源からの導出と自動コミットへ寄せる - #22
Draft
k163377 wants to merge 2 commits into
Draft
Conversation
maven-core は kotlin-maven-plugin の realm が実行時に供給するため compileOnly で 参照しており、版は kotlin-maven-plugin 自身が provided スコープで宣言する版が正となる。 provided は Gradle の POM 取り込み対象外で推移解決されないため、カタログのリテラルとして 持つ必要があるが、その値を手で選ぶと上流との一致が保証されない。 kotlin-maven-plugin の親 POM の <maven.version> を単一情報源とし、syncMavenVersion が カタログへ書き戻し、checkMavenVersion が乖離を検出する(check へ紐付け)。 親 POM は子 POM の <parent> と照合し、上流のレイアウト変更を黙って取り込まないようにする。 maven 版は独立して選べる更新対象ではなくなるため、Dependabot の version updates から外す。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
単一情報源から導出される生成物(catalog の maven 版・README / docs / .idea の現行版表記)は マニフェスト更新では変わらないため、Dependabot の版更新 PR は check の失敗で止まり、 同期タスクの手動実行を要していた。これを version-sync ワークフローへ委ねる。 Dependabot 起因の run は read-only な GITHUB_TOKEN で走り PR ブランチへ push できないため、 デフォルトブランチの定義が書き込み可能なトークンで起動される workflow_run で受ける。 write 権限下で PR head を実行する範囲を絞るため、対象は同一リポジトリのブランチに限る。 GITHUB_TOKEN による push は再帰防止で run を作らず、同期コミットの検証が動かないまま PR のチェックが待ちで止まる。workflow_dispatch はトークン種別によらず run を作る例外のため、 build へ入口を追加して同期後に明示起動する。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
PR #21(Dependabot の maven-core 3.9.12 → 3.9.16)が
:checkVersionMentionsで落ちた件への対応。何が起きていたか
mavenを書き換えるdocs/test/テスト戦略.mdの「環境: … / Maven 3.9.12 / …」が置き去りになるcheckVersionMentionsがcheck経由で失敗する検知は設計どおり働いていたが、追随は同期タスクの手動実行に委ねられていた。
加えて
maven版そのものが、catalog のコメントが宣言する不変条件(kotlin-maven-plugin自身が参照する版に揃える)から外れる更新だった。
変更
1. maven 版の導出(
build:)kotlin-maven-pluginの親 POM の<maven.version>を単一情報源とし、syncMavenVersionが catalog へ書き戻す/checkMavenVersionが乖離を検出する。maven-coreは provided スコープのため Gradle が推移解決せず、リテラルを持つ必要があるが、その値は手で選ばない。Dependabot の version updates からは外す。
2. 同期の自動化(
ci:)version-syncワークフローがbuildの失敗をworkflow_runで受け、同期タスクの結果を PR ブランチへコミットする。
検証済み
checkMavenVersion正常系 / 乖離検出 /syncMavenVersionによる復元(3.9.16 → 3.9.12)./gradlew buildgreenこの PR で検証できないこと
workflow_runはデフォルトブランチ上の定義でしか発火しないため、自動コミット挙動そのものはmain マージ後に実演で確認する必要がある(
8916be2の版表記ズレ実演と同じ手順)。本 PR で確認できるのは Gradle タスク側と既存 CI の非退行まで。
追随
PR #21 は本 PR のマージ後にクローズする(
mavenは導出値になり、独立した更新対象ではなくなるため)。🤖 Generated with Claude Code