Skip to content

monthly: release-please alternatives report (2026-06) #98

Description

@nozomiishii

release-please draft: true バグの状況

googleapis/release-please-action#962

  • ステータス: Open(2024-03-21 起票)
  • 内容: Release PR をマージ後、draft release は正しく生成されるが、同時に不要な重複 Release PR が自動作成される
  • 修正 PR: #1206(Open、未マージ)— createReleases() 実行後の不要な PR 作成をスキップする修正

googleapis/release-please-action#1111

  • ステータス: Open(2025-05-07 起票)
  • 内容: draft: true 設定時、Release PR マージ後にマイナーバージョンが bumped された重複 PR が全コミット一覧付きで自動作成される。draft: true を外すと発生しない
  • コメント: なし

googleapis/release-please-action#1169

  • ステータス: Open(2025-12-10 起票)
  • 内容: draft: true 設定時、Action の実行時間が約 14 秒から 3〜4 分へ大幅に劣化(約 15〜17 倍)
  • コメント: なし

まとめ

3 件とも Open のまま。修正 PR #1206 が重複 PR 問題をカバーする見込みだが、未マージ。パフォーマンス劣化(#1169)は別件として未対応。draft: true を使う Draft-then-Publish パターンは現時点で安定しない。


代替ツール比較表

ツール モノレポ 多言語 Conventional Commits Release PR Draft-then-Publish
release-please ✅ manifest 方式 ✅ Node/Go/Rust/Python/Java 等 ✅ ネイティブ ✅ コア機能 ⚠️ バグあり(上記)
semantic-release + multi-semantic-release ⚠️ 外部ラッパー必須 ✅ プラグイン経由 ✅ ネイティブ ❌ 完全自動(PR なし) ⚠️ プラグインで対応可能だが非標準
changesets ✅ 設計の中心 ⚠️ npm 中心、他言語は手動対応 ❌ changeset ファイル方式 ✅ Version PR ⚠️ Issue #322 で要望中、未実装
release-it ❌ 単一パッケージ前提 ⚠️ プラグイン経由 ⚠️ プラグイン(@release-it/conventional-changelog) ❌ 手動 or CI 統合 ✅ draft release 対応
knope ✅ packages 設定 ✅ 言語非依存(Rust 製 CLI) ✅ ネイティブ ✅ prepare-release ワークフロー ✅ GitHub Release 作成対応
cocogitto cog bump --auto ✅ 言語非依存(Rust 製 CLI) ✅ ネイティブ ❌ CLI ベース(PR ワークフローなし) ⚠️ GitHub Release 作成は GitHub Actions で補完
ship.js ❌ 単一パッケージ ⚠️ npm 中心 ✅ デフォルト ✅ prepare → trigger の 2 ステップ ⚠️ カスタム hook で対応
lerna ✅ 元祖モノレポ ❌ npm/yarn のみ ⚠️ --conventional-commits フラグ ❌ 手動 or Nx 統合 ❌ 非対応

推奨アクション

現状維持を推奨(条件付き)

release-please は、要件(モノレポ・多言語・Conventional Commits・Release PR)を全て満たす唯一のツール。draft: true バグの修正 PR #1206 がマージされれば、Draft-then-Publish パターンも安定する見込み。

移行を検討すべきケース

  • 修正 PR #1206 が 3 ヶ月以上マージされない場合
  • パフォーマンス劣化(#1169)が業務に支障をきたす場合

移行先候補

  • knope: 全要件を満たす最有力候補。Rust 製で高速、言語非依存、モノレポ対応、PR ワークフローあり。ただしエコシステムが release-please より小さい
  • cocogitto: knope と同様の特性だが、PR ワークフローが組み込まれていないため GitHub Actions での補完が必要

当面の回避策

draft: true を外し、GitHub Actions の後続ステップでリリースを draft に変更 → アセット追加 → publish する方法で Draft-then-Publish パターンを実現可能。


このレポートは Claude Code Scheduled Task により自動生成されています

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions