この記事の続き。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)
- Release Please
- できること
- コミット規約
- 流れ
- 設定: 以下のいずれか
- GitHub Actions: release-please-action
- CLI: release-please/cli
- GitHub App: repo-automation-bots
- メモ
- 基本はGitHub Actionsで処理を行うイメージ
- monorepoで使うには少し設定が必要な感じ
- conventional-changelogの設定が参考になる
- conventional-changelogが利用
semantic-release
- semantic-release
- できること
- CHANGELOG自動生成
- version bumps
- release
release-it
- release-it
- できること
Lerna
- Lerna
- monorepo tools for TypeScript/JavaScript
- できること
- ビルド/テスト/Publish
- verison bump
- 特徴
- 複数のサブプロジェクトの関係を考慮したビルド/テスト/Publish
- pnpmにも対応している
changesets
- changesets
- 特徴
- monorepoにフォーカスしたverion/changelog manage tool
- singleでも使える
- pnpmでも使える
- できること
- pmpn/emotion/ChakraUI/Astro/SvelteKit/GraphQLなどで利用
changelogen
- unjs/changelogen
- 特徴
- シンプルなCHANGELOG自動生成ツール
- できること
- Bump version
- CHANGELOG自動生成
- Git commit, tag
- nuxt3やvueuseで利用
conventional-changelog
- conventional-changelog/conventional-changelog
- Conventional Commitsを支える技術セット
- Ecosystem/ツールセット
- vue3/piniaが利用
おまけ
- nuxt3
- pnpm
- CHANGELOGはchangelogen
- リリースなどは独自sh&手動っぽい
- vue3
- vueuse
- pnpm
- bumppでversion
- release note用のチェンジログをchangelogenのActionsで生成
- pinia
- tailwindcss
- npm
- ほぼ独自sh or 手動っぽい。リリースだけActionsで自作
所感
割と完全自動リリースはせず、リリースノート用のCHANGELOG生成までにとどめている印象。
便利だけど、重厚かつ柔軟に対応できない感じなのかな(*´ω`*)?
割とpnpmサポートが薄いのもあるかもしれない。
ひとり/小規模リポジトリだとどうするのがいいか考えてみよう(*´ω`*)