くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

CHANGELOG生成系について調べてみた

この記事の続き。CHANGELOG生成系に関してざっと調べたまとめ。
ざっとなので、間違ってるところがある気がするけど、なんとなく雰囲気はつかめた(*´ω`*)

リリースノートの自動生成ツールを調べてみた - くらげになりたい。

それにしても多い。。(*´ω`*)

まとめ

name Release Please semantic-release release-it Lerna changesets conventional-changelog changelogen
Bump version YES YES YES YES △monorepoだと YES YES
CHANGELOG コミットログベース コミットログベース git log ベース ? 手動ベース コミットログベース YES
GitHub Release YES ? YES ? YES YES
GitHub PR 特定のコミットがあると作成 ? ? ? - -
git commit/tag YES YES YES YES YES - YES
publish to npm YES YES YES YES YES -
GitHub Actions YES - - - YES -
CLI YES YES YES YES YES -
GitHub App YES - - - YES -
pnpm support △pnpm publishはできない ? ? YES YES ?
monorepo support △設定が必要 NG: lernaを使う感じ? NG: lernaを使う感じ? YES YES YES
multi langage YES - - - - -
備考 pnpmのガイドがある pnpmが推してる? standard-version推し?

Release Please(旧Standard Version)

semantic-release

release-it

  • release-it
  • できること
    • Bump version
    • GitHub Releaseの自動生成(git logベース)
    • Git commit, tag, push
    • CHANGELOG自動生成
    • Publish to npm

Lerna

  • Lerna
  • monorepo tools for TypeScript/JavaScript
  • できること
    • ビルド/テスト/Publish
    • verison bump
  • 特徴
    • 複数のサブプロジェクトの関係を考慮したビルド/テスト/Publish
    • pnpmにも対応している

changesets

changelogen

conventional-changelog

おまけ

  • nuxt3
    • pnpm
    • CHANGELOGはchangelogen
    • リリースなどは独自sh&手動っぽい
  • vue3
  • vueuse
    • pnpm
    • bumppでversion
    • release note用のチェンジログをchangelogenのActionsで生成
  • pinia
  • tailwindcss
    • npm
    • ほぼ独自sh or 手動っぽい。リリースだけActionsで自作

所感

割と完全自動リリースはせず、リリースノート用のCHANGELOG生成までにとどめている印象。
便利だけど、重厚かつ柔軟に対応できない感じなのかな(*´ω`*)?

割とpnpmサポートが薄いのもあるかもしれない。

ひとり/小規模リポジトリだとどうするのがいいか考えてみよう(*´ω`*)