TeraTerm Project でのリリース手順について以下に示します。
リリースビルドには CI ツールを使っているため、Visual Studio の詳細バージョンはコントロールできない。どのバージョンになるかは、ビルド時点で CI ツールがどのバージョンを採用しているかに左右される。
リリースに使うライブラリのバージョンはこの時点でおおむね決定する。
安定版リリースでは、ライブラリは元になった定期リリースから更新しない。(ライブラリにセキュリティ修正がある場合は個別に検討する。)
git switch main git pull --rebase git checkout -b release/5_4_0-RC
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 4 #define TT_VERSION_PATCH 0 - #define TT_VERSION_SUBSTR "dev" + #define TT_VERSION_SUBSTR "RC" //#undef TT_VERSION_SUBSTRTT_VERSION_MINOR または TT_VERSION_PATCH は、前回のリリース直後にインクリメントされている。
git switch main git pull --rebase git checkout -b release/5_4_0
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 4 #define TT_VERSION_PATCH 0 - #define TT_VERSION_SUBSTR "RC" - //#undef TT_VERSION_SUBSTR + //#define TT_VERSION_SUBSTR "dev" + #undef TT_VERSION_SUBSTR
ビルド・インストーラの生成がエラーなくできることを確認する。
タグは annotated tags とする。
タグ名は「v(バージョン)」。(例: 5.4.0ならば "v5.4.0" )
git switch main git pull --rebase git tag -a v5.4.0 -m "Release 5.4.0" git push origin v5.4.0
更新のしかたは プロジェクトページの更新手順 を参照
git switch main git pull --rebase git checkout -b stable_5_4
定期リリースの場合
git switch main git pull --rebase git checkout -b release/unfroze
#define TT_VERSION_MAJOR 5 - #define TT_VERSION_MINOR 4 + #define TT_VERSION_MINOR 5 #define TT_VERSION_PATCH 0 - //#define TT_VERSION_SUBSTR "dev" - #undef TT_VERSION_SUBSTR + #define TT_VERSION_SUBSTR "dev" + //#undef TT_VERSION_SUBSTR
#define TTSSH_VERSION_MAJOR 3 - #define TTSSH_VERSION_MINOR 4 + #define TTSSH_VERSION_MINOR 5 #define TTSSH_VERSION_PATCH 0
<h3 id="teraterm_5.5.0">YYYY.MM.DD (Ver 5.5.0 not released yet)</h3>
<ul class="history">
<!--li>Changes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Bug fixes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Misc
<ul>
<li>
</li>
</ul>
</li-->
</ul>
<h3 id="ttssh_3.5.0">YYYY.MM.DD (Ver 3.5.0 not released yet)</h3>
<ul class="history">
<!--li>Changes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Bug fixes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Misc
<ul>
<li>
</li>
</ul>
</li-->
</ul>
git switch stable_5_4 git pull --rebase git checkout -b release/unfroze
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 4 - #define TT_VERSION_PATCH 0 - #undef TT_VERSION_SUBSTR + #define TT_VERSION_PATCH 1 - //#define TT_VERSION_SUBSTR "dev" - #undef TT_VERSION_SUBSTR + #define TT_VERSION_SUBSTR "dev" + //#undef TT_VERSION_SUBSTR
#define TTSSH_VERSION_MAJOR 3 #define TTSSH_VERSION_MINOR 4 - #define TTSSH_VERSION_PATCH 0 + #define TTSSH_VERSION_PATCH 1
<h3 id="teraterm_5.4.1">YYYY.MM.DD (Ver 5.4.1 not released yet)</h3>
<ul class="history">
<!--li>Changes
<ul>
<li></li>
</ul>
</li-->
<!--li>Bug fixes
<ul>
<li></li>
</ul>
</li-->
<!--li>Misc
<ul>
<li></li>
</ul>
</li-->
</ul>
<h3 id="ttssh_3.4.1">YYYY.MM.DD (Ver 3.4.1 not released yet)</h3>
<ul class="history">
<!--li>Changes
<ul>
<li></li>
</ul>
</li-->
<!--li>Bug fixes
<ul>
<li></li>
</ul>
</li-->
<!--li>Misc
<ul>
<li></li>
</ul>
</li-->
</ul>
安定版リリースの場合
git switch stable_5_4 git pull --rebase git checkout -b release/unfroze
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 4 - #define TT_VERSION_PATCH 1 - #undef TT_VERSION_SUBSTR + #define TT_VERSION_PATCH 2 - //#define TT_VERSION_SUBSTR "dev" - #undef TT_VERSION_SUBSTR + #define TT_VERSION_SUBSTR "dev" + //#undef TT_VERSION_SUBSTR
#define TTSSH_VERSION_MAJOR 3 #define TTSSH_VERSION_MINOR 4 - #define TTSSH_VERSION_PATCH 1 + #define TTSSH_VERSION_PATCH 2
<h3 id="teraterm_5.4.2">YYYY.MM.DD (Ver 5.4.2 not released yet)</h3>
<ul class="history">
<!--li>Changes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Bug fixes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Misc
<ul>
<li>
</li>
</ul>
</li-->
</ul>
<h3 id="ttssh_3.4.2">YYYY.MM.DD (Ver 3.4.2 not released yet)</h3>
<ul class="history">
<!--li>Changes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Bug fixes
<ul>
<li>
</li>
</ul>
</li-->
<!--li>Misc
<ul>
<li>
</li>
</ul>
</li-->
</ul>
git switch main git pull --rebase git checkout -b port/changelog
ダウンロードしたファイルを実行すると、SmartScreen が「WindowsによってPCが保護されました」という警告を出すことがある。
これが解消されないと、窓の杜はインストーラを掲載しない。
Microsoft Edge でダウンロードすると、SmartScreen が「一般的にダウンロードされていません」という警告を出す。
ウイルス対策ソフトが誤検出することがある。
keycode.exe がキーロガーとして検出されやすいらしい。
Microsoft には誤検出の申し立てができる。「PCが保護されました」の解消のため報告する。
ウイルス対策ソフトに検出されている状態だと push したバイナリが公開差し止めになることがある。
同じバージョンを複数回 push できないようなので、push 作業をミスることができない。
現在 teraterm5 パッケージは reject されている。
コードフリース中は、原則的には致命的なバグの修正のみ可能となります。
コードフリーズは、RC作成(teraterm.iss に RC を付けるコミット)から(バージョンをインクリメントするコミット)までとします。