build: 版整合の検査と同期をカタログの宣言に基づかせる - #52
Merged
Merged
Conversation
マイナー横断ビルド(kotlin-prerelease)は -PkotlinVersionOverride で カタログの Kotlin 版の解決値を差し替える。checkVersionMentions と checkMavenVersion がその解決値を源としていたため、宣言と一致した資料を 乖離と見なして必ず失敗し、プレリリースの検証はルートビルドの最初の段で 止まっていた(過去 3 回の定期実行がすべて同じ失敗)。 検査・同期が読む版を gradle/libs.versions.toml のテキストから取り、 一時的な差し替えの影響を受けないようにする。上流 POM の導出座標も 宣言版へ揃え、プレリリースの POM から maven 版を導かないようにする。 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.
背景
週次のマイナー横断ビルド(kotlin-prerelease)は、過去 3 回の定期実行がすべて
ルートビルドの最初の段で失敗している(run 33211294275 ほか 2 件)。
原因は版整合の機構が源とする値である。
-PkotlinVersionOverrideは settings がカタログの解決値だけを差し替えるが、
checkVersionMentions/checkMavenVersionはlibs.versions.kotlinすなわち差し替え後の値を読んでいた。宣言(gradle/libs.versions.toml)もそれを写した資料も差し替えでは変わらないため、資料は常に「乖離」と判定される。
このためプレリリースの検証は一度も本体のビルドへ到達していない。
syncVersionMentionsにも同じ経路があり、差し替え中に実行すると宣言に無い版を資料へ書き込む。checkMavenVersionはプレリリースの POM から maven 版を導いており、上流が<maven.version>を上げた時点で同じく偽陽性となる。変更
検査・同期が読む Kotlin / maven 版を、カタログのテキストから直接取る宣言版へ変更する。
一時的な差し替えの影響を受けず、検査の意味(宣言と資料の一致)はそのまま保たれる。
確認
./gradlew ktfmtFormat checkVersionMentions checkMavenVersion→ BUILD SUCCESSFUL./gradlew checkVersionMentions checkMavenVersion -PkotlinVersionOverride=2.4.20-RC2→ BUILD SUCCESSFUL(KGP は 2.4.20-RC2 を解決、kotlin-maven-plugin の POM は宣言版 2.4.10 のまま)
プレリリース本体(2.4.20-RC2 でのビルドとテスト)が通るかは、マージ後の kotlin-prerelease で判定する。
🤖 Generated with Claude Code