TeraTerm Project でのリリース手順について以下に示します。
リリースビルドには CI ツールを使っているため、Visual Studio の詳細バージョンはコントロールできない。どのバージョンになるかは、ビルド時点で CI ツールがどのバージョンを採用しているかに左右される。
リリースに使うライブラリのバージョンはこの時点でおおむね決定する。
安定版リリースでは、ライブラリは元になった定期リリースから更新しない。(ライブラリにセキュリティ修正がある場合は個別に検討する。)
git switch main git pull --rebase git checkout -b release/5_6_0-RC
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 6 #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_6_0
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 6 #define TT_VERSION_PATCH 0 - #define TT_VERSION_SUBSTR "RC" - //#undef TT_VERSION_SUBSTR + //#define TT_VERSION_SUBSTR "dev" + #undef TT_VERSION_SUBSTR
git switch main git pull --rebase git tag -a v5.6.0 -m "Release 5.6.0" git push origin v5.6.0
git switch main git pull --rebase git checkout -b stable_5_6 git push -u origin stable_5_6
定期リリースの場合
git switch main git pull --rebase git checkout -b release/unfroze
#define TT_VERSION_MAJOR 5 - #define TT_VERSION_MINOR 6 + #define TT_VERSION_MINOR 7 #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 6 + #define TTSSH_VERSION_MINOR 7 #define TTSSH_VERSION_PATCH 0
git switch stable_5_6 git pull --rebase git checkout -b release/unfroze
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 6 - #define TT_VERSION_PATCH 0 - //#define TT_VERSION_SUBSTR "dev" - #undef TT_VERSION_SUBSTR + #define TT_VERSION_PATCH 1 + #define TT_VERSION_SUBSTR "dev" + //#undef TT_VERSION_SUBSTR
#define TTSSH_VERSION_MAJOR 3 #define TTSSH_VERSION_MINOR 6 - #define TTSSH_VERSION_PATCH 0 + #define TTSSH_VERSION_PATCH 1
安定版リリースの場合
git switch stable_5_5 git pull --rebase git checkout -b release/unfroze
#define TT_VERSION_MAJOR 5 #define TT_VERSION_MINOR 5 - #define TT_VERSION_PATCH 2 - //#define TT_VERSION_SUBSTR "dev" - #undef TT_VERSION_SUBSTR + #define TT_VERSION_PATCH 3 + #define TT_VERSION_SUBSTR "dev" + //#undef TT_VERSION_SUBSTR
#define TTSSH_VERSION_MAJOR 3 #define TTSSH_VERSION_MINOR 5 - #define TTSSH_VERSION_PATCH 2 + #define TTSSH_VERSION_PATCH 3
git switch main git pull --rebase git checkout -b port/changelog
コードフリース中は、原則的には致命的なバグの修正のみ可能となります。
コードフリーズは、RC作成(teraterm.iss に RC を付けるコミット)から(バージョンをインクリメントするコミット)までとします。