サッカー カジノ

Tera Term 開発者向け

  1. 開発環境・ライブラリ
    1. コンパイラ・ツール
    2. 使用しているライブラリ
  2. ビルドする
    1. 環境構築
    2. ビルド手順 (Quick Start)
      1. ソースコードのチェックアウト
      2. ビルド
    3. ビルド手順 (詳説)
      1. ソースコードの clone
      2. ライブラリのビルド
      3. Tera Termのビルド
      4. TTSSHのビルド
      5. TTProxyのビルド
      6. TTXKanjiMenuのビルド
      7. TTXSamplesのビルド
      8. TeraTerm Menuのビルド
      9. CygTerm+のビルド
      10. Cyglaunchのビルド
      11. ヘルプファイルのビルド
      12. インストーラの作成
  3. 開発作業メモ
    1. TERATERM.INI への項目追加
    2. メニューID追加時の命名規則
    3. マクロコマンド追加時の作業リスト
    4. アイコン
  4. リリースの手順
    1. リリース作業の開始からRC作成まで
    2. RC作成からリリースまで
    3. リリース作業
    4. コードフリーズについて

開発環境・ライブラリ

コンパイラ・ツール

Tera Term Project でリリースに使用しているコンパイラは以下の通りです。

ビルドに必要なツールは以下の通りです。

ライブラリ

開発環境・ライブラリ

環境構築

Tera Term をビルドするために上記のツールを新規導入するのではなく、すでにインストール済みのツールを使うこともできます。
installer\release.bat がインストール済みのツールを見つけられない場合は、installer\toolinfo_sample.bat を installer\toolinfo.bat にコピーし、適宜編集してください。
また、必要であれば buildtools\svnrev\toolinfo_sample.txt を buildtools\svnrev\toolinfo.txt にコピーし、適宜編集してください。

ビルド手順 (Quick Start)

ソースコードのチェックアウト

ソースコードを GitHub (//github.com/TeraTermProject/teraterm) から clone します。

ビルド

installer\release.bat を実行し、3を選択します。

ビルド手順 (詳説)

ソースコードの clone

ソースコードを GitHub (//github.com/TeraTermProject/teraterm) から clone します。

ライブラリのビルド

"x86 Native Tools Command Prompt for VS 2022" を立ち上げるか、適切な PATH を通しておく必要があります。
* の bat を個別に実行するかわりに、libs\buildall.bat を実行することでまとめてビルドすることができます。

Tera Termのビルド

  1. teraterm\ttermpro.sln をVisual Studioで開く。
    .slnファイルの改行コードが"LF"になっていると、Visual Studioが起動しないので注意願います。
  2. ソリューションをビルドする。
  3. ビルドに成功すると teraterm\Debug / teraterm\Release ディレクトリに実行プログラムが生成される。

TTSSHのビルド

あらかじめ teraterm\ttermpro.sln によって common_static.lib がビルドされている必要があります。
  1. ttssh2\ttssh.sln をVisual Studioで開く。
  2. ソリューションをビルドする。
  3. ビルドに成功すると ttssh2\ttxssh\Debug / ttssh2\ttxssh\Release ディレクトリにDLLが生成される。

TTProxyのビルド

あらかじめ teraterm\ttermpro.sln によって common_static.lib がビルドされている必要があります。
  1. TTProxy\TTProxy.sln をVisual Studioで開く。
  2. ソリューションをビルドする。
  3. ビルドに成功すると TTProxy\Debug / TTProxy\Release ディレクトリにDLLが生成される。

TTXKanjiMenuのビルド

あらかじめ teraterm\ttermpro.sln によって common_static.lib がビルドされている必要があります。
  1. TTXKanjiMenu\ttxkanjimenu.sln をVisual Studioで開く。
  2. ソリューションをビルドする。
  3. ビルドに成功すると TTXKanjiMenu\Debug / TTXKanjiMenu\Release ディレクトリに ttxkanjimenu.dll が生成される。

TTXSamplesのビルド

リポジトリのTTXSamplesに Tera Term Extension (TTX)のサンプルがあります。TTXを作る際の参考にしてください。

あらかじめ teraterm\ttermpro.sln によって common_static.lib がビルドされている必要があります。
  1. TTXSamples\TTXSamples.sln をVisual Studioで開く。
  2. ソリューションをビルドする。
  3. ビルドに成功すると TTXSamples\Debug / TTXSamples\Release ディレクトリにDLLが生成される。

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

TeraTerm Menuのビルド

あらかじめ teraterm\ttermpro.sln によって common_static.lib がビルドされている必要があります。
  1. ttpmenu\ttpmenu.sln をVisual Studioで開く。
  2. ソリューションをビルドする。
  3. ビルドに成功すると ttpmenu\Debug / ttpmenu\Release ディレクトリに ttpmenu.exe が生成される。

CygTerm+のビルド

  1. Cygwinのシェルを起動し、cygterm ディレクトリへ移動する。
    # cd cygterm
    
  2. CygTerm+をコンパイルする。
    # make
    
  3. cygterm.exe が生成される。

Cyglaunchのビルド

事前に teraterm\ttermpro.sln の common_static.lib がビルドされている必要があります。
  1. cygwin\cygwin.sln をVisual Studioで開く。
  2. ソリューションをビルドする。
  3. ビルドに成功すると cygwin\Debug / cygwin\Release ディレクトリに cyglaunch.exe が生成される。

ヘルプファイルのビルド

  1. doc\makechm.bat を実行する。

インストーラの作成

AppVeyor を使用する場合
AppVeyor で "NEW BUILD" を実行します。
内部では installer\release.bat が呼ばれています。
installer\release.bat を使用する場合
installer\release.bat を実行して、インストーラー、zipを作成します。
作成されるファイル名は buildtool\svnrev\sourcetree_info.bat の値から生成されます。このファイルは buildtools\svnrev\svnrev.bat が teraterm\common\tt-version.h などをもとに生成します。
Inno Script Studio を使う場合
RC,リリースを作成する場合は、installer\release.batを使用するほうが便利ですが、 インストーラーのデバグなどInno Script Studioを使用すると便利です。
作成されるファイル名は、インストーラは installer\teraterm.iss の定義により、ポータブル版は buildtool\svnrev\sourcetree_info.bat に書き込まれたものから生成されます。

開発作業メモ

TERATERM.INI への項目追加

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

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マクロを新設するときの作業手順について、以下に示します。

アイコン

アイコンファイルには、4bit の 32px, 16px 画像、32bit の 256px, 48px, 32px, 16px 画像を含めます。
各アイコンファイルには以下の種類の画像が含まれています。

T (Tera Term)
icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\common\teraterm.ico TTERM (Default)BMP BMP PNG BMP BMP BMP
teraterm\common\teraterm_classic.icoTTERM_CLASSIC BMP BMP - - - -
teraterm\common\teraterm_3d.ico TTERM_3D BMP BMP PNG BMP BMP BMP
teraterm\common\teraterm_flat.ico TTERM_FLAT BMP BMP PNG BMP BMP BMP
VT (VT Window)
icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\common\vt.ico VT (Default)BMP BMP PNG BMP BMP BMP
teraterm\common\vt_classic.icoVT_CLASSIC BMP BMP - - - -
teraterm\common\vt_3d.ico VT_3D BMP BMP PNG BMP BMP BMP
teraterm\common\vt_flat.ico VT_FLAT BMP BMP PNG BMP BMP BMP
TEK (TEK Windows)
icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\common\tek.icoTEK BMP BMP - - - -
M (Macro)
icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\ttpmacro\ttmacro.ico - BMP BMP PNG BMP BMP BMP
teraterm\ttpmacro\ttmacro_3d.ico - BMP BMP PNG BMP BMP BMP
teraterm\ttpmacro\ttmacro_flat.ico- BMP BMP PNG BMP BMP BMP
MF (Macro File)
icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\ttpmacro\ttmacrof.ico- BMP BMP PNG BMP BMP BMP
keycode
icon file icon name4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\keycode\keycode.ico- BMP BMP - BMP - -
TTSSH
icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
teraterm\ttpmacro\ttsecure.ico flat2 (Default)BMP BMP PNG BMP BMP BMP
teraterm\ttpmacro\ttsecure_classic.icoclassic BMP BMP - - - -
teraterm\ttpmacro\ttsecure_yellow.ico yellow BMP BMP PNG BMP BMP BMP
teraterm\ttpmacro\ttsecure_green.ico green BMP BMP PNG BMP BMP BMP
teraterm\ttpmacro\ttsecure_flat.ico flat BMP BMP PNG BMP BMP BMP
TeraTerm Menu
icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
ttpmenu\teraterm.ico- BMP BMP - BMP BMP BMP
Cygterm+
icon file icon name 4bit 32px4bit 16px32bit 256px32bit 48px32bit 32px32bit 16px
cygwin\cygterm\cygterm.icoCYGTERM BMP BMP - BMP BMP BMP

アイコンファイルへの画像の格納順は「ビット数が小さい順、サイズが大きい順」とします。
そうでないと、プログラムがサイズを指定せずに「最大サイズの画像」を取得しようとしたときに「最初の画像」が取り出されるためです。

アイコンファイルには 4bit 画像を含めます。
Windows NT 4.0 は 4bit アイコンのみサポートしているためです。また、Windows 2000 の通知領域も 4bit アイコンのみサポートしています。
4bit アイコンには以下の色が使用できます。

  #000000(0,0,0)
  #800000(128,0,0)
  #ff0000(255,0,0)
  #ff00ff(255,0,255)
  #008080(0,128,128)
  #008000(0,128,0)
  #00ff00(0,255,0)
  #00ffff(0,255,255)
  #000080(0,0,128)
  #800080(128,0,128)
  #0000ff(0,0,255)
  #c0c0c0(192,192,192)
  #808080(128,128,128)
  #808000(128,128,0)
  #ffff00(255,255,0)
  #ffffff255,255,255

アイコン用画像のソースファイルは以下に格納されています。

source file bit T VT Macro SSH Cygwin
teraterm\common\flat_icon_16.psd 4bit v v v v v
32bit v v v v v
teraterm\common\flat_icon_32.psd 4bit v v v v v
32bit v v v v v
teraterm\common\flat_icon_48.psd 32bit v v v v v
teraterm\common\flat_icon_256.psd 32bit v v v v -
source file bit Keycode
teraterm\common\keycode_48.psd 4bit v
source file bit T VT Macro Macro File SSH Cygwin
teraterm\common\flat2_icon_16.psd 4bit v v v v v v
32bit v v v v v v
teraterm\common\flat2_icon_32.psd 4bit v v v v v v
32bit v v v v v v
teraterm\common\flat2_icon_48.psd 32bit v v v v v v
teraterm\common\flat2_icon_256.psd 32bit v v v v v -

リリースの手順

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

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

  1. チケット、ブランチなどを確認する
  2. ツール、ライブラリ、インポート元の最新版をチェックする

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

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

RC作成からリリースまで

  1. ドキュメントを確認する
  2. バージョンをインクリメントする

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

  3. この年における最初のリリースの場合は、著作権表示の「最後の発行の年」をインクリメントする
  4. この状態でコミットする
  5. インストーラを作成する
  6. サポートされている全 OS でインストーラの実行、起動、接続をチェックする
  7. push して AppVeyor でビルドする
  8. RCの作成をアナウンスする
  9. フィードバックを受け入れる

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

リリース作業

  1. ドキュメントを確認する (詳細は同上)
  2. "RC" を削除する
  3. リリース日を変更する
  4. インストーラを作成する

    ビルド・インストーラの生成がエラーなくできることを確認する。

  5. この状態でコミットする
  6. タグを作成する

    タグは annotated tags とする。
    タグ名は「v(バージョン)」。(例: 5.0ならば "v5.0" )

    git tag -a v5.0 -m "Release 5.0"
    
  7. インストーラを作成する
  8. プロジェクトサイトを更新する
  9. プロジェクトWebページ (//perthsounds.com) を更新する

    更新のしかたは を参照

  10. リリースをアナウンスする
  11. バージョンをインクリメントする
  12. Chocolatey の登録を更新する

コードフリーズについて

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