# Tera Term 開発者向け

1. 開発環境
2. ライブラリ
3. SVN コミッターへの注意
4. TERATERM.INI への項目追加
5. メニューID追加時の命名規則
6. マクロコマンド追加時の作業リスト
7. ライブラリのビルド方法
8. Tera Termのビルド方法
9. TeraTerm Menuのビルド方法
10. TTXKanjiMenuのビルド方法
11. TTProxyのビルド方法
12. TTSSHのビルド方法
13. CygTermのビルド方法
14. TTXSamplesのビルド方法
15. ヘルプファイルのビルド方法
16. リリースの手順

## 開発環境

- OS
  - Windows XP Professional
  - Windows 8 Pro
  - Windows 8.1 Pro
  - Windows 10 Pro
- Tera Term Project でリリースに使用しているコンパイラ
  - Visual Studio 2005 SP1 (Standard Edition 以上)
    - Service Pack 1 (VS80sp1-KB926601-X86-ENU.exe)
    - Microsoft Visual Studio 2005 Service Pack 1 MFC セキュリティ更新プログラム (VS80sp1-KB2538218-v2-X86-INTL.exe)
    - Windows Vista 以上でビルドする場合は、Visual Studio 2005 Service Pack 1 Update for Windows Vista (VS80sp1-KB932236-X86-JPN.exe)
    - Windows Server 2003 R2 Platform SDK(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1)
      注: Visual Studio 2005 Standard Editionでは、OpenSSL のビルドが失敗します。Windows Server 2003 R2 Platform SDK をインストールし、"Crypt32.Lib"をリンクできるようにしておく必要があります。
      SDK でインストールされたディレクトリが最優先になるよう、INCLUDE および LIB 環境変数を設定します。

          e.g. INCLUDE "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include"
               LIB     "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib"

      修正バッチファイル C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat
- サポートされているコンパイラ
  - Visual Studio 2005 (Express EditionはTera Term 4.103から対応)
    - with SDK 7.0
      - Windows Server 2003 R2 Platform SDK (= Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1) (5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.img)
        注: Microsoftのサイトからは入手不可能(2019/04/07時点)
    - with SDK 7.1
      - Microsoft Windows SDK for Windows 7 and .NET Framework 4 (GRMSDK_EN_DVD.iso)
      - Visual Studio 2005で利用するにはKB949009(VS80sp1-KB949009-X86-INTL.exe)かKB980422(VS80sp1-KB980422-x86-INTL.exe)が必要
        注: KB949009,KB980422はMicrosoftのサイトから入手不可能
      Windows95でも動作するバイナリをビルド可能
  - Visual Studio 2008 SP1 (Standard Edition 以上)
    注: コンパイルされた実行ファイルは Windows NT 4.0, 95, 98, Me で動きません。
  - Visual Studio 2010 SP1 (Professional Edition 以上)
    注: コンパイルされた実行ファイルは Windows 2000, NT 4.0, 95, 98, Me で動きません。
  - Visual Studio 2012 Update 4 (Professional Edition 以上)
    注: コンパイルされた実行ファイルは Windows Vista, XP, 2000, NT 4.0, 95, 98, Me で動きません。
    Windows Vista, XP をサポートするには v110_xp を指定してください。
  - Visual Studio Community 2013 Update 5
    - MFC MBCS DLL アドオン (vc_mbcsmfc.exe)
    注: コンパイルされた実行ファイルは Windows Vista, XP, 2000, NT 4.0, 95, 98, Me で動きません。
    Windows Vista, XP をサポートするには v120_xp を指定してください。
  - Visual Studio Community 2015 Update 3
    注: コンパイルされた実行ファイルは Windows Vista, XP, 2000, NT 4.0, 95, 98, Me で動きません。
    Windows Vista, XP をサポートするには v140_xp を指定してください。
  - Visual Studio Community 2017
    注: コンパイルされた実行ファイルは Windows Vista, XP, 2000, NT 4.0, 95, 98, Me で動きません。
    Windows Vista, XP をサポートするには v141_xp を指定してください。
  - Visual Studio Community 2019
    注: コンパイルされた実行ファイルは Windows Vista, XP, 2000, NT 4.0, 95, 98, Me で動きません。
  - バッチファイルからビルドするために
    Visual Studio のコマンドプロンプトからバッチファイルを実行するか、以下のように環境変数を設定してください。
    使用したいバージョンの Visual Studio の "(x86) Native Tools Command Prompt" を実行し、コンパイラのパスに関係する PATH と VSINSTALLDIR 変数を環境変数に登録してください。

        Example:
        INCLUDE       C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;
        LIB           C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86;
        PATH          C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN;C:\Program Files (x86)\Windows Kits\8.1\bin\x86
        VSINSTALLDIR  C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC

- インストーラ
  - Inno Setup 6.2.0 (https://jrsoftware.org/isinfo.php)
  - Inno Script Studio 2.5.1 (https://www.kymoto.org/products/inno-script-studio)
- その他
  - Cygwin 最新版(v4.105からCygTerm+はVista以降対応となったため)
  - ActivePerl 5.10 以上 または Strawberry Perl 5.30.1.1 以上
    ビルド過程で使用します
    - OpenSSL のコンパイル(必須)
    - ドキュメントファイルの文字コード・改行コード変換(必須)
    - リビジョン番号取得 (perlがない場合リビジョン番号を取得せずにビルドします)
  - Subversion for Windows (http://sourceforge.net/projects/win32svn/)
    リビジョン番号取得時に使用します
    buildtools/svnrev/toolinfo.txt に svn.exe のフルパスを記述いてください。
    詳しくは buildtools/svnrev/readme.md を参照ください

## ライブラリ

- Oniguruma 6.9.8 (https://github.com/kkos/oniguruma/)
- SFMT 1.5.1 (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html)
- LibreSSL 3.4.3 (https://www.libressl.org/)
- zlib 1.2.12 (https://www.zlib.net/)
- PuTTY 0.76 (https://www.chiark.greenend.org.uk/~sgtatham/putty/)
- The reference C implementation of Argon2 20190702 (https://github.com/P-H-C/phc-winner-argon2/)
- cJSON 1.7.14 (https://github.com/DaveGamble/cJSON/)

## SVN コミッターへの注意

SVN リポジトリは一般向けとは違い、以下の通りです。

    svn+ssh://svn.osdn.net/svnroot/ttssh2/trunk

ファイルを別のディレクトリで編集しないでください。
コミットしたときに別の人の修正を削除してしまうことがあります。

アップデート・コミット時の注意
svnの処理が失敗することがあるので、ファイルをエディタ等で開いたままで行わないでください。

言語ファイル編集時の注意
言語ファイル(installer\release\lang\*.lng)は多言語対応エディタ(vim, EmEditor, Notepad++等)で編集してください。

## TERATERM.INI への項目追加

項目名
すでに EnableFoo... や DisableBar... が混在してしまっているが、混乱しやすい。
今後は Baz... という形式にするのが望ましい。

## メニューID追加時の命名規則

    1桁目は 5

    2桁目は
      Tera Term VT ウィンドウなら  0
      Tera Term TEK ウィンドウなら 1
      TTSSH なら                   2
      TTProxy なら                 3
      TTXKanjiMenu なら            4

    3桁目は
      [File] メニューなら    1
      [Edit] メニューなら    2
      [Setup] メニューなら   3
      [Control] メニューなら 4
      [Window] メニューなら  8
      [Help] メニューなら    9

例：File配下にTTSSHのメニューを追加する

    #define ID_SSHSCPMENU       52110

## マクロコマンド追加時の作業リスト

Tera Termマクロを新設するときの作業手順について、以下に示します。

- ソースコードの修正
  - コマンドの内部 ID を採番する。（「内部 ID」は"helpid.h"にも使用される）
    ... teraterm/ttmacro/ttmparse.h
  - コマンド名を走査して内部 ID に変換する。
    ... CheckReservedWord@teraterm/ttmacro/ttmparse.c
  - コマンドの内部 ID から実際に処理をする関数を呼ぶ。
    ... ExecCmnd@teraterm/ttmacro/ttl.c
  - 処理する関数を作る。
- ヘルプ(言語ごと)
  - コマンドのヘルプを作る。
    ... doc/LANG/html/macro/command/hogefunc.html
  - コマンド一覧ページに追加する。
    ... doc/LANG/html/macro/command/index.html
  - ヘルプトピックに追加する。
    ... doc/LANG/teraterm.hhc
  - ヘルプページのコンテキスト ID を採番する。
    値は コマンドの内部 ID + 92000。
    ... teraterm/common/helpid.h
  - コンテキスト ID と呼び出すファイルのエイリアスを作成する。
    テキストエディタで直接開き、[ALIAS]にHTMLを追加する。
    ... doc/LANG/teraterm.hhp

## ライブラリのビルド方法

- PuTTY (used by TTSSH)
  1. PuTTY のソースを libs/putty の中に展開する。
     ttssh ソリューション配下の putty プロジェクトにより必要な機能のみが静的ライブラリ化され、ttxssh.dll にリンクされるため、展開するだけでよい。
- Oniguruma (used by Tera Term Macro)
  1. oniguruma のソースを libs/oniguruma の中に展開する。
  2. スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。
  3. コマンドプロンプト上から libs ディレクトリに移動し、buildoniguruma6.bat を実行する。
- OpenSSL (used by TTSSH)
  1. openssl のソースを libs/openssl の中に展開する。
  2. OpenSSL 1.0.0e 以降で、libs/openssl/Makefile.bak が最初から存在する場合は、一度だけ手動で削除してください。
  3. スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。
  4. コマンドプロンプト上から libs ディレクトリに移動し、buildopenssl11.bat を実行する。
- Zlib (used by TTSSH)
  1. zlib のソースを libs/zlib の中に展開する。
  2. スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。
  3. コマンドプロンプト上から libs ディレクトリに移動し、buildzlib.bat を実行する。
- SFMT (used by Tera Term Macro)
  1. SFMT のソースを libs/SFMT の中に展開する。
  2. スタートメニューから「Visual Studio 2005 コマンド プロンプト」を起動する。
  3. コマンドプロンプト上から libs ディレクトリに移動し、buildSFMT.bat を実行する。
  4. 必要に応じて libs/SFMT/SFMT_version_for_teraterm.h のバージョン番号を修正する。
- cJSON (used by TTXCheckUpdate plugin)
  1. EcJSON のソースを libs/cJSON の中に展開する。
- The reference C implementation of Argon2 (used by TTSSH)
  1. argon2 のソースを libs/argon2 の中に展開する。
     argon2 リファレンス実装には静的ライブラリを生成するプロジェクトファイルが含まれていない。
     ttssh ソリューション配下の argon2 プロジェクトにより静的ライブラリが生成され、ttxssh.dll にリンクされるため、展開するだけでよい。

## Tera Termのビルド方法

Tera Termのビルド方法について以下に示します。
ビルドにはVisual Studio 2005 Standard Edition以上が必要です。（Visual Studio 2005 Express Editionは不可）

1. ソースコードをOSDN(https://ja.osdn.net/projects/ttssh2/)からチェックアウトする。
2. teraterm\visualc\ttermpro.sln をVisual Studioで開く。
   .slnファイルの改行コードが"LF"になっていると、Visual Studioが起動しないので注意願います。
3. ソリューションをビルドする。
4. ビルドに成功するとteraterm ディレクトリに実行プログラムが生成される。

## TeraTerm Menuのビルド方法

1. Checkout TeraTerm Menu source code from OSDN(https://osdn.net/projects/ttssh2/).
2. ttpmenu\ttpmenu.sln をVisual Studioで開く。
3. ソリューションをビルドする。
4. ビルドに成功すると ttpmenu ディレクトリに ttpmenu.exe が生成される。

## TTXKanjiMenuのビルド方法

1. Checkout TeraTerm Menu source code from OSDN(https://osdn.net/projects/ttssh2/).
2. TTXKanjiMenu\ttxkanjimenu.sln をVisual Studioで開く。
3. ソリューションをビルドする。
4. ビルドに成功すると TTXKanjiMenu ディレクトリに ttxkanjimenu.dll が生成される。

## TTProxyのビルド方法

TTProxyのビルド方法について以下に示します。
ビルドにはVisual Studio 2005(VC++8.0)が必要です。

1. ソースコードをOSDN(https://ja.osdn.net/projects/ttssh2/)からチェックアウトする。
2. TTProxy\TTProxy.sln をVisual Studioで開く。
3. ソリューションをビルドする。
4. ビルドに成功すると TTProxy ディレクトリにDLLが生成される。

## TTSSHのビルド方法

TTSSHのビルド方法について以下に示します。
ビルドにはVisual Studio 2005(VC++8.0)、ActivePerlが必要です。

TTSSH単体のビルドは VS2005 Express Edition でも可能です。ttpcmn.libをリンクするため、Tera Termのビルドを事前に行っておく必要があります。VS2005 Express EditionではTera Termのビルドはできませんが、ttpcmn.libは作成することができます。

VS2008 Express Editionでビルドすると、.rcファイルで下記のエラーが発生します。
.\ttxssh.rc(10) : fatal error RC1015: cannot open include file 'afxres.h'.
本現象を回避するには、.rcファイルをテキストエディタで開き、afxres.hのincludeを削除し、新規に2行を追加します。

    - #include "afxres.h"
    + #include
    + #define IDC_STATIC -1

1. ソースコードをOSDN(https://ja.osdn.net/projects/ttssh2/)からチェックアウトする。
2. ttssh2\ttssh.sln をVisual Studioで開く。
3. ソリューションをビルドする。
4. ビルドに成功するとttssh2\ttxssh ディレクトリにDLLが生成される。

## CygTermのビルド方法

CygTermのビルド方法について以下に示します。

1. Cygwin(https://www.cygwin.com/)をインストールする。
2. Cygwinのシェルを起動し、cygterm ディレクトリへ移動する。

       # cd cygterm

3. CygTermをコンパイルする。

       # make

## TTXSamplesのビルド方法

リポジトリのTTXSamplesに Tera Term Extension (TTX)のサンプルがあります。TTXを作る際の参考にしてください。
TTXSamplesのビルドにはVisual Studio 2005(VC++8.0)が必要です。Tera Term本体とは違い、Express Editionでもビルド可能です。

1. ソースコードをOSDN(https://ja.osdn.net/projects/ttssh2/)からチェックアウトする。
2. TTXSamples\TTXSamples.sln をVisual Studioで開く。
3. ソリューションをビルドする。
4. ビルドに成功すると TTXSamples ディレクトリにDLLが生成される。

各TTXの詳細については、プロジェクト内のReadMe-ja.txtを参照してください。

## ヘルプファイルのビルド方法

ヘルプファイルのビルド方法について以下に示します。

1. HTML Help Compiler を入手する。
   Visual Studio (2017 以降) を "C++ MFC" オプションを選択してインストールすると、HTML Help Compiler (hhc.exe) がインストールされる。
2. doc\makechm.bat を実行する。

## リリースの手順

TeraTerm Project でのリリース手順について以下に示します。

### リリース作業の開始からRC作成まで

1. チケット、ブランチなどを確認する
   - プロジェクトチーム内で確認する
     - 今回のリリースに入れるもの・次回以降に延期するものを整理・決定する
   - ブランチをマージする
     - trunk と 4-stable 間、作業中のブランチなど
   - チケットをクローズする
     - すでに修正済み、処理済みのものはクローズする
       リリース時には、対象のマイルストーンのチケットはすべてクローズされている状態になる
     - 次のリリースへ回すものはマイルストーンを変更する
       次のリリース用マイルストーンを作成する
   - この時点で新たに出てくるチケットの対応を検討する
2. ツール、ライブラリ、インポート元の最新版をチェックする
   - Visual Studio (https://visualstudio.microsoft.com/)
   - Inno Setup (https://jrsoftware.org/isdl.php)
   - Oniguruma (https://github.com/kkos/oniguruma/)
   - SFMT (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html)
   - LibreSSL (https://www.libressl.org/)
   - zlib (http://www.zlib.net/)
   - PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/)
   - cJSON (https://github.com/DaveGamble/cJSON/)
   - The reference C implementation of Argon2 (https://github.com/P-H-C/phc-winner-argon2/)

   リリースに使うバージョンはこの時点でおおむね決定する。

3. 今回のリリースに入れたいものが落ち着く

### RC作成からリリースまで

1. ドキュメントを確認する
   - ダイアログ上の設定項目・UIのない特別オプション・コマンドラインパラメータ・新規マクロコマンドなど、対応するドキュメントに漏れがないか確認する。
   - 変更履歴を確認し、書き忘れがあれば追記する。
   - 変更履歴の順番を変更する。だいたいの指針としては、ターミナルエミュレーション関係・アプリケーションとしての変更・マクロの順。
   - ドキュメント差分が翻訳されていることを確認し、翻訳忘れがあれば翻訳する。
2. バージョンを一つインクリメントする

   一般にテストを呼びかけ、旧バージョンとの同時実行が考えられるため、このタイミングとする（例: TT_FILEMAPNAME 定義 など）。

   - teraterm\common\tt-version.h
   - ttssh2\ttxssh\ttxssh-version.h
   - Onttpmenu\ttpmenu.rc // 変更時のみ
   - TTProxy\TTProxy.rc // 変更時のみ
   - TTXKanjiMenu\ttxkanjimenu.rc // 変更時のみ

   CygTerm+ は例外で、リリースとは関係なくバージョンが上がる。
   修正がコミットされると即リリース扱いになり、リリース日はその日付となる。そのため、修正・バージョンのインクリメント・変更履歴を同時にコミットする。
   これはコンパイラの入手が容易なため。

3. この年における最初のリリースの場合は、著作権表示の「最後の発行の年」をインクリメントする
   - 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
   - teraterm\ttptek\ttptek-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
4. 64bit Cygwin バイナリを差し替える

   前回のリリースから CygTerm+ に変更がある場合は、64bit Cygwinでビルドした cygterm\cygterm+-x86_64\cygterm.exe をコミットする。
   ソース修正をコミットするときに、同時にバイナリがコミットされていれば、リリース時にこの工程を行う必要はない。

5. インストーラを作成する
   - teraterm.iss の AppVer を「次のバージョン-RC」とする

         - #define AppVer "4.105"
         + #define AppVer "4.106-RC1"

   - teraterm.iss の snapshot をコメントアウトする

         - #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
         + ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');

   - teraterm.iss から起動するバッチを、リリース用に「リビルド有効」「アーカイブ作成有効」にする

           [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

   - この状態でコミットする
   - Inno Script Studio で teraterm\installer\teraterm.iss を開き、"Project"-"Compile" でインストーラを作成する
   - 作成されたポータブル版を zip で圧縮する
6. サポートされている全 OS でインストーラの実行、起動、接続をチェックする
7. OSDN のリリース物件に追加する
   - 「Tera Term RC」パッケージに新しいリリース（例: "4.106 RC"）を追加する
   - 新しいリリースに、インストーラ・ポータブル版の zip ファイルを追加する
8. RCの作成をアナウンスする
   - ttssh2-users メーリングリスト
   - Twitter (https://twitter.com/Tera_Term)
9. フィードバックを受け入れる

   修正が入ったら再度「ドキュメントを確認する」「サポートされている全 OS で起動・接続チェックする」

### リリース作業

1. ドキュメントを確認する (詳細は同上)
2. リリース日を変更する
   - html/about/hisotry.html
3. インストーラを作成する
   - teraterm.iss の AppVer を変更する

         - #define AppVer "4.106-RC1"
         + #define AppVer "4.106"

   - ISTool で teraterm\installer\teraterm.iss を開き、"Project"-"Compile Setup" で作成する
4. この状態でコミットする
5. SVN のタグを作成する
   タグ名は「teraterm-バージョン」。（例: v4.106ならば"teraterm-4_106"）

       svn copy -m "Release 4.106" \
           svn+ssh://svn.osdn.net/svnroot/ttssh2/branches/4-stable \
           svn+ssh://svn.osdn.net/svnroot/ttssh2/tags/teraterm-4_106

6. リリース用のタグでチェックアウトし直す

   SVN のリビジョン以外のすべてが、開発ブランチと同じ状態になる

7. インストーラを作成する
   - Inno Script Studio で teraterm\installer\teraterm.iss を開き、"Project"-"Compile" で作成する
   - 作成されたポータブル版を zip で圧縮する
8. OSDN を更新する
   - 「Tera Term」パッケージに新しいリリース（例: "4.106"）を追加する
   - 新しいリリースに、インストーラ・ポータブル版の zip ファイルを追加する
   - ドキュメントの変更履歴から、リリースの「変更履歴」に（Wikiフォーマットで）転記する（日本語・英語とも）
   - ニュース記事を作成する
9. プロジェクトページ (https://ttssh2.osdn.jp) を更新する

   更新のしかたは プロジェクトページの更新手順 を参照

10. リリースをアナウンスする
    - ttssh2-users メーリングリスト
    - Twitter (https://twitter.com/Tera_Term)
      - リリースアナウンスのツイートを固定ツイートにする
11. 開発ブランチの teraterm.iss を戻し、コミットする

        - ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
        + #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');

          [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

12. Chocolatey の登録を更新する

### コードフリーズについて

コードフリース中は、原則的には致命的なバグの修正のみ可能となります。
コードフリーズは、RC作成（開発ブランチ で teraterm.iss に RC を付けるコミット）からリリース（開発ブランチの teraterm.iss を戻すコミット）までとします。