From 7cb3626e1ec11b28037afd79e61b7336088dd026 Mon Sep 17 00:00:00 2001 From: wrongwrong Date: Sun, 16 Aug 2026 03:17:52 +0900 Subject: [PATCH] =?UTF-8?q?build:=20=E7=89=88=E8=A1=A8=E8=A8=98=E3=81=AE?= =?UTF-8?q?=E8=BF=BD=E9=9A=8F=E5=AF=BE=E8=B1=A1=E3=81=8B=E3=82=89=E3=83=93?= =?UTF-8?q?=E3=83=AB=E3=83=89=E3=83=84=E3=83=BC=E3=83=AB=E3=81=AE=E7=89=88?= =?UTF-8?q?=E3=82=92=E5=A4=96=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ビルドツール(Gradle / Maven)の版は配布物へ影響しないが、資料が具体的な版へ 言及していたため、checkVersionMentions がラッパー更新のたびに資料の追随を要求し、 Dependabot のラッパー更新 PR が CI で落ちていた。 追随対象を配布物を左右する版(Kotlin 版・自版)に限り、wrapper properties からの 版導出と Gradle / Maven の置換規則を削除する。資料側はサポート下限のみを残し、 具体的な版への言及を落とす。README の互換表の実測版注記も、リリース宣言時に 同じ理由で乖離するため併せて削除する。 Co-Authored-By: Claude Opus 5 --- README.md | 2 +- build.gradle.kts | 29 +++++++------------ ...71\343\203\210\346\210\246\347\225\245.md" | 3 +- ...05\343\203\216\343\203\274\343\203\210.md" | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index f177c3f..0b383ed 100644 --- a/README.md +++ b/README.md @@ -320,7 +320,7 @@ Label uniqueness within a hierarchy is enforced at compile time. |---|---| | Kotlin | 2.4.x, K2 only. The plugin version encodes the Kotlin minor it targets; applying it to another Kotlin minor produces a build warning | | Version format | `-`, e.g. `2.4.10-0.1.0` | -| Build environment | Gradle 9+ or Maven 3.9+ / JDK 17+ (verified with Gradle 9.6 and Maven 3.9) | +| Build environment | Gradle 9+ or Maven 3.9+ / JDK 17+ | | runtime-api (JVM) | Java 8+ bytecode | | runtime-api targets | `jvm`, `js`, `wasmJs`, `wasmWasi`, `linuxX64`, `mingwX64`, `macosX64`, `macosArm64`, `iosArm64`, `iosSimulatorArm64`, `iosX64` | diff --git a/build.gradle.kts b/build.gradle.kts index 7f6c228..77d3eb4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -55,8 +55,7 @@ allprojects { // 版は次の 2 段で単一情報源から導出する。上流ほど源に近く、下流は上流の値を写した生成物として扱う。 // 1. kotlin-maven-plugin の親 POM の → version catalog の maven 版(syncMavenVersion) -// 2. version catalog / enumizerVersion / wrapper properties → README / docs / .idea 中の現行版表記 -// (syncVersionMentions) +// 2. version catalog / enumizerVersion → README / docs / .idea 中の現行版表記(syncVersionMentions) // カタログの値は Gradle の構成時に読まれるため、1 の書き戻しを 2 へ反映するには起動を分ける必要がある。 // Dependabot 等の版更新はマニフェストしか書き換えず下流が置き去りになるため、 // check へ紐付けた checkMavenVersion / checkVersionMentions が乖離を検出し、同期タスクが書き換える @@ -68,12 +67,6 @@ val enumizerDeclaredVersion = providers.gradleProperty("enumizerVersion").get() val enumizerReleaseVersion = enumizerDeclaredVersion.removeSuffix("-SNAPSHOT") // リリース版を宣言している状態か(開発中は -SNAPSHOT が付く)。配布物を説明する文書の同期対象を切り替える val isReleaseVersion = enumizerDeclaredVersion == enumizerReleaseVersion -val gradleWrapperVersion = - providers - .fileContents(layout.projectDirectory.file("gradle/wrapper/gradle-wrapper.properties")) - .asText - .map { checkNotNull(Regex("""/gradle-(\d+(?:\.\d+)+)-""").find(it)).groupValues[1] } - .get() // maven-core は kotlin-maven-plugin の realm 側が実行時に供給するため compileOnly で参照する。 // その版は kotlin-maven-plugin 自身が provided スコープで宣言する版が正だが、provided は Gradle の @@ -153,10 +146,15 @@ val checkMavenVersion = } } -// 置換は「現行版を指す表記」に限る。サポート下限("Kotlin 2.4" / "Gradle 9+" / "Maven 3.9+")・ -// 特定版に固定した実測エビデンス(設計00 の "Kotlin 2.4.0 実測")・別版での版形式の例示は -// 書き換えてはならないため、対象ファイルの許可リストと文脈付きパターンの両方で絞る。 -// 3 成分(パッチ付き)と 2 成分(マイナーまで)の表記は、それぞれの粒度を保ったまま現行値へ置換する +// 追随の対象は配布物を左右する版、すなわち Kotlin 版と自版に限る。 +// ビルドツール(Gradle / Maven)の版は配布物へ影響しないため、資料はサポート下限 +// ("Gradle 9+" / "Maven 3.9+")のみを書き、具体的な版へは言及しない。言及した場合、 +// 配布物と無関係なラッパー・ハーネスの更新が資料の追随を要求し、その更新 PR が CI で落ちる。 +// +// 置換は「現行版を指す表記」に限る。サポート下限("Kotlin 2.4")・特定版に固定した実測エビデンス +// (設計00 の "Kotlin 2.4.0 実測")・別版での版形式の例示は書き換えてはならないため、 +// 対象ファイルの許可リストと文脈付きパターンの両方で絞る。 +// パッチまでの表記とマイナーまでの表記は、それぞれの粒度を保ったまま現行値へ置換する val versionMentionRules: List> = listOf( // 配布版のフル形式 -<自版>(README のセットアップ例・版形式の現行例) @@ -171,11 +169,6 @@ val versionMentionRules: List> = Regex("""(?<=Kotlin )\d+\.\d+\.\d+(?![\d.-])""") to kotlinCurrent, // 対応マイナーの表記(README の互換表の "2.4.x") Regex("""\d+\.\d+\.x""") to "${minorOf(kotlinCurrent)}.x", - // Gradle / Maven。下限表記("9+" / "3.9+")は後置の + により対象外となる - Regex("""(?<=Gradle )\d+\.\d+\.\d+(?![\d.+])""") to gradleWrapperVersion, - Regex("""(?<=Gradle )\d+\.\d+(?![\d.+])""") to minorOf(gradleWrapperVersion), - Regex("""(?<=Maven )\d+\.\d+\.\d+(?![\d.+])""") to mavenCurrent, - Regex("""(?<=Maven )\d+\.\d+(?![\d.+])""") to minorOf(mavenCurrent), ) // 対象は文書の性質で 2 群に分ける。現行版への言及を持つ資料を増やした場合は該当する群へ追加する。 @@ -187,7 +180,7 @@ val versionMentionRules: List> = val releaseVersionMentionTargets = listOf("README.md", "docs/概要.md") // 現在の開発・検証環境を記録する文書と、IDE が同期時に書き戻す設定。 -// カタログやラッパーの更新へ即座に追随させる(追随しないと作業ツリーへ差分が残る) +// カタログの更新へ即座に追随させる(追随しないと作業ツリーへ差分が残る) val environmentVersionMentionTargets = listOf( "docs/実装ノート.md", diff --git "a/docs/test/\343\203\206\343\202\271\343\203\210\346\210\246\347\225\245.md" "b/docs/test/\343\203\206\343\202\271\343\203\210\346\210\246\347\225\245.md" index e68956f..95020f2 100644 --- "a/docs/test/\343\203\206\343\202\271\343\203\210\346\210\246\347\225\245.md" +++ "b/docs/test/\343\203\206\343\202\271\343\203\210\346\210\246\347\225\245.md" @@ -11,7 +11,8 @@ - 検証対象は CLI / Gradle / Maven ビルドの成否・診断・生成物・実行時挙動に限る。 IDE(K2) はサードパーティ FIR プラグインを既定でロードしない(KTIJ-29248)ため、 IDE / Analysis API 側は検証対象外とする(既定の IDE 体験は概要 §6・設計00 §11 が既知の制限として持つ)。 -- 環境: Kotlin 2.4.10 / Gradle 9.6.1 / Maven 3.9.12 / JVM toolchain 17 / `group=io.github.projectmapk`。 +- 環境: Kotlin 2.4.10 / JVM toolchain 17 / `group=io.github.projectmapk`。 + ビルドツール(Gradle / Maven)の版はラッパーとカタログを正とし、本書では具体的な版を指定しない。 - 比較規約: 値の比較はなるべく観測用 data class を組み立て 1 回の `assertEquals` で行う。 kind の同一性は参照比較(`===`)で行う。 diff --git "a/docs/\345\256\237\350\243\205\343\203\216\343\203\274\343\203\210.md" "b/docs/\345\256\237\350\243\205\343\203\216\343\203\274\343\203\210.md" index 464803b..0025e9f 100644 --- "a/docs/\345\256\237\350\243\205\343\203\216\343\203\274\343\203\210.md" +++ "b/docs/\345\256\237\350\243\205\343\203\216\343\203\274\343\203\210.md" @@ -5,7 +5,7 @@ 各事項の詳細と根拠は実装箇所のコメントを正とし、本書は所在と要点のみを示す。 本書は他資料への**補足**であり、参照は常に本書から他資料へ向かう(ソースコードおよび設計資料・概要・ テスト資料から本書を参照しない。それらが要する内容は各資料自身が持つ)。 -実測環境: Kotlin 2.4.10(K2 / JVM)・Gradle 9.6.1。 +実測環境: Kotlin 2.4.10(K2 / JVM)。 ## 1. モジュール構成