リリースの手順
- リリース作業の開始からRC作成まで
- RC作成からリリースまで
- リリース作業
- コードフリーズについて
TeraTerm Project でのリリース手順について以下に示します。
リリース作業の開始からRC作成まで
- チケット、ブランチなどを確認する
- プロジェクトチーム内で確認する
- 今回のリリースに入れるもの・次回以降に延期するものを整理・決定する
- ブランチをマージする
- trunk と 4-stable 間、作業中のブランチなど
- チケットをクローズする
- すでに修正済み、処理済みのものはクローズする
リリース時には、対象のマイルストーンのチケットはすべてクローズされている状態になる
- 次のリリースへ回すものはマイルストーンを変更する
次のリリース用マイルストーンを作成する
- この時点で新たに出てくるチケットの対応を検討する
- ツール、ライブラリ、インポート元の最新版をチェックする
リリースに使うバージョンはこの時点でおおむね決定する。
- 今回のリリースに入れたいものが落ち着く
RC作成からリリースまで
- ドキュメントを確認する
- ダイアログ上の設定項目・UIのない特別オプション・コマンドラインパラメータ・新規マクロコマンドなど、対応するドキュメントに漏れがないか確認する。
- 変更履歴を確認し、書き忘れがあれば追記する。
- 変更履歴の順番を変更する。だいたいの指針としては、ターミナルエミュレーション関係・アプリケーションとしての変更・マクロの順。
- ドキュメント差分が翻訳されていることを確認し、翻訳忘れがあれば翻訳する。
- バージョンをインクリメントする
-
teraterm\common\tt-version.h
TT_VERSION_SUBSTR を "RC" にする
#define TT_VERSION_MAJOR 5
#define TT_VERSION_MINOR 0
- #define TT_VERSION_SUBSTR "dev"
+ #define TT_VERSION_SUBSTR "RC"
TT_VERSION_MINOR は、前回のリリース直後にインクリメントされている。
- ttssh2\ttxssh\ttxssh-version.h
TTSSH_VERSION_MINOR は、前回のリリース直後にインクリメントされている。
- ttpmenu\ttpmenu.rc // 変更時のみ
- TTProxy\TTProxy.rc // 変更時のみ
- TTXKanjiMenu\ttxkanjimenu.rc // 変更時のみ
-
installer\teraterm.iss
RC に変更し、アーカイブの作成も有効にします。
- #define AppVer "5.0-dev"
+ #define AppVer "5.0-RC"
[PreCompile]
Name: makechm.bat
- Name: build.bat
- ;Name: build.bat; Parameters: rebuild
+ ;Name: build.bat
+ Name: build.bat; Parameters: rebuild
[PostCompile]
- ;Name: makearchive.bat; Parameters: release
+ Name: makearchive.bat; Parameters: release
CygTerm+ は例外で、リリースとは関係なくバージョンが上がる。
修正がコミットされると即リリース扱いになり、リリース日はその日付となる。そのため、修正・バージョンのインクリメント・変更履歴を同時にコミットする。
これはコンパイラの入手が容易なため。
- この年における最初のリリースの場合は、著作権表示の「最後の発行の年」をインクリメントする
- teraterm\keycode\keycode-version.rc // VERSIONINFO
- teraterm\teraterm\tt-version.rc // VERSIONINFO
- teraterm\ttpcmn\ttpcmn-version.rc // VERSIONINFO
- teraterm\ttpdlg\ttpdlg.rc // dialog
- teraterm\ttpmacro\ttm-version.rc // VERSIONINFO
- ttssh2\ttxssh\ttxssh.rc // dialog
- ttssh2\ttxssh\ttxssh-version.rc // VERSIONINFO
- ttpmenu\ttpmenu.rc // dialog, VERSIONINFO
- TTProxy\TTProxy.rc // dialog, VERSIONINFO(en), VERSIONINFO(ja)
- TTXKanjiMenu\ttxkanjimenu.rc // VERSIONINFO
- installer\teraterm.iss
- installer\release\license.txt // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
- doc\en\html\index.html
- doc\en\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
- doc\en\html\macro\index.html
- doc\ja\html\index.html
- doc\ja\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu
- doc\ja\html\macro\index.html
- この状態でコミットする
- インストーラを作成する
- サポートされている全 OS でインストーラの実行、起動、接続をチェックする
- push して AppVeyor でビルドする
- RCの作成をアナウンスする
- フィードバックを受け入れる
修正が入ったら再度「ドキュメントを確認する」「サポートされている全 OS で起動・接続チェックする」
リリース作業
- ドキュメントを確認する (詳細は同上)
- "RC" を削除する
- リリース日を変更する
- インストーラを作成する
ビルド・インストーラの生成がエラーなくできることを確認する。
- この状態でコミットする
- タグを作成する
タグは annotated tags とする。
タグ名は「v(バージョン)」。(例: 5.0ならば "v5.0" )
git tag -a v5.0 -m "Release 5.0"
git push origin v5.0
- インストーラを作成する
AppVeyor の "github-release" プロジェクトを使用する。
- GitHub の Releases に追加する
- 上で追加したタグを選択する
- インストーラとポータブル版の zip ファイルを追加する
- ドキュメントの変更履歴からリリースノートの概要を(日本語・英語ともに)記述する
- ウイルス対策ソフトの検知を確認する
- Chrome でダウンロードしてみる
- Edge でダウンロードしてみる
Edge は「Defender SmartScreen」は「一般的にダウンロードされていません」の警告を出す。これを正しくない検知として報告する。
- プロジェクトWebページ (https://teratermproject.github.io) を更新する
更新のしかたは プロジェクトページの更新手順 を参照
- リリースをアナウンスする
- バージョンをインクリメントする
-
teraterm/common/tt-version.h
TT_VERSION_MINOR を1つ進めて、SUBSTR を "dev" にする。
#define TT_VERSION_MAJOR 5
- #define TT_VERSION_MINOR 0
- #undef TT_VERSION_SUBSTR
+ #define TT_VERSION_MINOR 1
+ #define TT_VERSION_SUBSTR "dev"
-
ttssh2/ttssh/ttxssh-version.h
TTSSH_VERSION_MINOR を1つ進める。
#define TTSSH_VERSION_MAJOR 3
- #define TTSSH_VERSION_MINOR 0
+ #define TTSSH_VERSION_MINOR 1
-
installer\teraterm.iss
AppVer を「次のバージョン-dev」とする
- #define AppVer "5.0"
+ #define AppVer "5.1-dev"
[PreCompile]
Name: makechm.bat
- ;Name: build.bat
- Name: build.bat; Parameters: rebuild
+ Name: build.bat
+ ;Name: build.bat; Parameters: rebuild
[PostCompile]
- Name: makearchive.bat; Parameters: release
+ ;Name: makearchive.bat; Parameters: release
- Chocolatey の登録を更新する
コードフリーズについて
コードフリース中は、原則的には致命的なバグの修正のみ可能となります。
コードフリーズは、RC作成(開発ブランチ で teraterm.iss に RC を付けるコミット)から(バージョンをインクリメントするコミット)までとします。