VOICEVOX / voicevox_project

VOICEVOX内のプロジェクトを管理するリポジトリ
15 stars 3 forks source link

プルリクエストマージ時のデフォルトコミットメッセージは何にするのが良いか #56

Open Hiroshiba opened 3 weeks ago

Hiroshiba commented 3 weeks ago

質問の内容

プルリクエストをマージする時、デフォルトでどういうメッセージにするかいくつか選べたりします。

image

でも結構いろんな条件でいろんな課題が発生するので、何にするべきか薄く意見を募集したいです。

課題

その他

完全に「自転車置き場の屋根の色」なんですが、何か考え出すと楽しいので考えちゃってます。 ご意見募集中です 🙏

Hiroshiba commented 3 weeks ago

個人的な意見としては、プルリクエストマージ時にそのプルリクエストの番号が書かれて、github上だとすぐにそのリンクへ飛べるのと、問題を考えるのがめんどくさいので、まあコミットメッセージはタイトルだけでいいかなと思い始めました。

ただ自分は1行目以外本当に全くコミットメッセージを見ないので、2行目以降のコミットメッセージを結構見る方がいらっしゃれば意見聞きたいです 🙏

qryxip commented 3 weeks ago

一応私はコミットメッセージを見る人の一人だと思います。

コミットメッセージの本文があることの利点の一つとして、git logを漫然と見ながら下方向(/)と上方向(?)に検索をかけれることがあると思います。git-log(1)以外でも、例えばNeovimのNeogitではlogを折り畳みつつ本文部分の検索ができたりします。もちろんキーボードから一時も指を離すことなく。このスタイルであれば10,000行のPR descriptionであってもさほどの影響は無いと思います。 (インスパイア元であるEmacsのMagitも同じことができる…と思ったのですがよく覚えていない)

image

<Neogit起動のキーバインド>ll/segfault<C-j>

image

C-mまたはReturn

image

あとPRのdescriptionをマージメッセージにしているっぽい有名リポジトリを調べてみました。マージ時にわざわざPRの「結論」をまとめ直してメッセージを書いているらしきところもそこそこ目にしました。 (ちなみにですが、有名リポジトリを片っ端から調べてみると"Create a merge commit"方式のリポジトリがかなり多かったです。"Squash and merge"に匹敵するどころがこちらの方がメジャーでは?と思えるほど)

PRのdescriptionをメッセージにしているっぽいもの

PRのdescriptionをベースにしつつ、たまに手書きしているっぽいもの

タイトルのみのもの

割愛。ただし結構あって、Pythonもそうなはず。


まあGitHubとの相性の悪いGit自体の機能はいくつもありますし、正直コミットメッセージもその一つだと思います。実際ここにいる多くの人はコミットメッセージを全く見ないとは思うので、判断は任せます。

Hiroshiba commented 3 weeks ago

気になって自分も調べてみました。 正直descriptionでも良さそうに思いました! もし定型文がある場合はメッセージを短くしたほうが良さそう。(今のとこほぼないので問題ない)

タイトルのみ https://github.com/vuejs/core https://github.com/microsoft/TypeScript https://github.com/electron/electron // 各commitメッセージを束ねたのをメッセージにしてることもある

descriptionベース https://github.com/elastic/elasticsearch https://github.com/redis/redis https://github.com/flutter/flutter // チェックリストとかは除外

merge commitベース(ここより上は全部squash merge) https://github.com/kubernetes/kubernetes

その他 https://github.com/apache/kafka // JIRAチケットあるものはマージメッセージがない https://github.com/django/django // ? https://github.com/openssl/openssl // リベースマージ?

qryxip commented 7 hours ago

descriptionベースですが、コミットメッセージ本文はMarkdownとみなされないため```の中に'#'や'@'が入ってたりするとリンクされてしまうようです。microsoft/onnxruntimeでも結構発生しているみたい。 例: https://github.com/microsoft/onnxruntime/commit/3e934030f48bffc07c92e97a35b33cf2aad2d51f

この問題を避けるならマージ時に「PRの結論」を丁寧に書くのが多分ベストで、次点でタイトルのみ、という感じになるかなと…

Hiroshiba commented 6 hours ago

なーーーーるほどです・・・ 😇

とりあえずタイトルのみにしようか迷ってます。思考回路こんな感じです。

「タイトルのみにする」か「skip ciされちゃっても良いから全コミットメッセージ含む」かだと、タイトルのみのが実害でなくてマシ・・・・・・・なのかなぁ・・・。

追記)あ! メンテナ次第では「手動でマージ時に書く」もあり!!!