Skip to content

ci: CD と週次マイナー横断のワークフローを追加し、依存グラフの登録対象を絞る - #28

Merged
k163377 merged 3 commits into
mainfrom
ci/release-workflows
Aug 8, 2026
Merged

ci: CD と週次マイナー横断のワークフローを追加し、依存グラフの登録対象を絞る#28
k163377 merged 3 commits into
mainfrom
ci/release-workflows

Conversation

@k163377

@k163377 k163377 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

CD・週次マイナー横断・依存グラフの範囲を実装する。

変更

コミット 内容
ci: 依存グラフの登録対象を配布物へ載る依存に絞る dependency-submission の対象を runtime classpath へ限定
ci: Kotlin プレリリースの週次検証ワークフローを追加する kotlin-prerelease.yml(schedule + workflow_dispatch)
ci: タグ駆動の公開ワークフローを追加する publish.yml(タグ v* の push で駆動)

依存グラフの絞り込み

4 成果物の公開 POM が持つ依存は kotlin-stdlib と自プロジェクトのみで、現在 open な maven 生態系の
alert 11 件(jackson・commons-io・plexus-utils・jsoup・opentelemetry-api)はいずれも
compileOnly・テスト・buildscript 側の推移依存であり利用者へは届かない。

フィルタは configuration 名の完全一致で評価され、include と exclude は両方が適用される
ResolvedConfigurationFilter の実装で確認)。マージ後の main への push で
既存 alert が解消されることを別途確認する。

週次マイナー横断

検出は Maven Central のメタデータを情報源とする(Kotlin のプレリリースは安定版と同じく
Central へ公開され、プラグインマーカーも Plugin Portal 経由で解決できる)。

比較はプレリリース接尾辞を落とした版で行う。sort -V2.4.20-Beta22.4.20 より
後ろへ置くため、接尾辞付きのまま比べると安定版の公開後もその版を拾い続ける。
current = 2.4.10 / 2.4.20 / 2.4.30 と同ライン RC の各ケースで判定を確認済み。

公開ワークフロー

ゲート(フルビルド + integration-test)→ Central → Plugin Portal → GitHub Release の順。
版の正はビルドの導出値であり、タグはその写しとして公開前に照合する。

シークレットは MAVEN_CENTRAL_USERNAME / MAVEN_CENTRAL_PASSWORD /
SIGNING_IN_MEMORY_KEY / SIGNING_IN_MEMORY_KEY_PASSWORD /
GRADLE_PUBLISH_KEY / GRADLE_PUBLISH_SECRET の名前で登録する必要がある。

Dokka / GitHub Pages への deploy は過去版保持の配線を要するため本 PR には含めない。

🤖 Generated with Claude Code

k163377 and others added 3 commits August 8, 2026 12:41
dependency-submission は解決済みの全構成を登録するため、compileOnly(maven-core /
kotlin-compiler-embeddable 等)・テスト・buildscript のクラスパスまで alerts の対象になっていた。
4 成果物の公開 POM が持つ依存は kotlin-stdlib と自プロジェクトのみであり、これらは利用者へ届かない。

登録対象を runtime classpath(公開 POM の compile / runtime スコープの元)へ絞る。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
コンパイラプラグイン API に互換性保証が無いため、新しい Kotlin マイナーへの対応可否は
実際にビルドを通すまで分からない。プレリリースの段階で検知できるよう、週 1 で
-PkotlinVersionOverride によるフルビルドと integration-test を回す。

検出は Maven Central のメタデータを情報源とし、比較はプレリリース接尾辞を落とした版で行う
(sort -V は 2.4.20-Beta2 を 2.4.20 より後ろへ置くため、接尾辞付きのまま比べると
安定版の公開後もその版を拾い続ける)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
タグ v<KotlinVersion>-<自版> の push を起点に、ゲート(フルビルド + integration-test)を
通してから Maven Central と Gradle Plugin Portal へ公開し、GitHub Release を作る。

版の正はビルドの導出値でありタグはその写しに過ぎないため、両者の一致を公開前に照合する
(SNAPSHOT のまま打たれたタグもこの照合で落ちる)。Central は公開の確定を Portal 上の
手作業に残し、取り消しのきかない Plugin Portal はその後に置く。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@k163377
k163377 force-pushed the ci/release-workflows branch from 72586ec to 8a2e392 Compare August 8, 2026 03:47
@k163377
k163377 merged commit a86489f into main Aug 8, 2026
12 checks passed
@k163377
k163377 deleted the ci/release-workflows branch August 8, 2026 04:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant