Skip to content

Commit rule

nmaya edited this page Aug 24, 2025 · 13 revisions

コミットルール

修正ブランチとコミット

修正する場合には作業ブランチを作成する。

  • ブランチになっていれば(並行して進行中の別の機能を除いた)その機能の修正だけを進められる
  • 修正途中で他の人に見てもらい、その後さらに修正が入ることもあるので、ブランチになっていると管理しやすい
  • その機能だけを追加したバイナリを AppVeyor でビルドできる
  • コードのみ修正していてドキュメントがまだない、まだ翻訳が終わっていない、というような不完全な状態でマージしてはならない
  • この作業ブランチの修正を stable_5_x にマージする必要があるか、issue に書いてわかるようにする

軽微な修正で、1コミットで完結するような場合はブランチを作らなくてもよい。 main への直接コミットを禁止しました。

cf. https://github.com/TeraTermProject/osdn-download/issues/13, https://github.com/TeraTermProject/teraterm/issues/371

コンフリクトが起きた場合

WebEditor で解決すると、Shift_JIS のファイルが UTF-8 に変換されてしまう。

外部からの PR

  • fork した先でブランチを作ってもらい、そこで修正してもらう
  • PR を出してもらう(TeraTermProject:main への PR になる)
  • マージする

考えられること

  • コンフリクトが起こる
    • 修正(upstream/main のマージ)をお願いする
  • さらに修正が必要/修正しなければならない・ファイルが足りない(ドキュメント/変更履歴)状態で PR されてしまう
    • 修正をお願いする
    • PR を修正してマージする
      • TeraTermProjet/teraterm に PR受け入れ用ブランチ を作成する
      • PR の base ブランチを main から PR受け入れ用ブランチ に変更する
      • PR をマージする
      • PR受け入れ用ブランチ を修正する
      • PR受け入れ用ブランチをマージする PR を作成する
      • PR受け入れ用ブランチをマージする PR をマージする
      • 例: PR #781, PR #782

その他

  • Require approvals は使わない

cf. https://github.com/TeraTermProject/teraterm/issues/178

コミットメッセージ

(1)コミットメッセージは修正した内容が簡潔に分かるように書く。

  • 事例(1)

よくない例

プロジェクトファイルを修正した。

よい例

VS2005でビルドが通らない問題を修正した。
XXXヘッダファイルの指定ミス。
  • 事例(2)

よくない例

TTSSHが落ちる問題を修正した。

よい例

SSH2接続でXXXした時にTTSSHが落ちる問題を修正した。

(2)チケットに関連するコミットメッセージにはissue番号を記載する

GitHub でソースを見たときに、コミットメッセージからissueへリンクが自動的に張られるからである。

XXXという問題を修正した。 #12345

こうなっているとソースから PR, issue が追いやすいという例

または

から

参考 cf. https://github.com/TeraTermProject/teraterm/issues/178#issuecomment-2020027091

コードレビュー

ソースコードのコードレビュー(クロスレビュー・クロスチェック)は行わない。

コミットしたコードがかならずチェックされるわけではないため、コードレビューが必要な場合は、別途依頼を出すこと。

コンポーネントのバージョン

Tera Term, TTSSH, TTProxyなどのバージョン情報を上げるタイミングは決められています。 ドキュメントの「リリースの手順」を参照してください。

コミット禁止(コードフリーズ)期間

  • リリース予定日の週にRC版が提供されるため、リリース予定日から約一週間前をコードフリーズとし、大きな修正は入れないものとする。
  • コードフリーズ期間中はバグ修正のみ行う。
  • ドキュメントに関してはリリース直前まで修正可能。

ドキュメントの「コードフリーズについて」を参照してください。

言語ファイル(.lng)

  • lng ファイルを更新した場合は、1行目の「Updated by TeraTerm Project」の日付を更新する。
  • 1行目の「TeraTerm Project 最終更新日」より 2行目の「最終翻訳日」が古い場合は「未翻訳部分がある」、つまり言語ファイルのメンテナンスが必要であることを表せるようになっています。

Wikiの「国際化メッセージの追加」を参照してください。

ビルド確認

Wikiの「AppVeyor」を参照してください。

Clone this wiki locally