リリースの手順

  1. リリース作業の開始
  2. RC作成とその後
  3. リリース作業
  4. コードフリーズについて

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

リリース作業の開始

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

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

    リリースビルドには CI ツールを使っているため、Visual Studio の詳細バージョンはコントロールできない。どのバージョンになるかは CI ツールがどのバージョンを採用するかに左右される。

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

RC 作成とその後

  1. 作業ブランチを作成する(main または定期リリース用ブランチから)
    git switch main
    git checkout -b release/5_4_0-RC
    
  2. ドキュメントを確認する
  3. バージョンをインクリメントする
  4. この年における最初のリリースの場合は、著作権表示の「最後の発行の年」をインクリメントする
  5. インストーラを作成する(確認用)
  6. サポートされている全 OS でインストーラの実行、起動、接続をチェックする
  7. コミット、push する
  8. 作業ブランチをマージするための Pull Request を作成する
  9. Pull Request をマージする(main または定期リリース用ブランチへ)
  10. GitHub Actions の workflow が実行されてビルドされる
    ビルドは3回実行されます: 作業ブランチへの push・Pull Request の作成・main または安定版ブランチへのマージコミット
    マージコミットを RC とみなします。
  11. RCの作成をアナウンスする
  12. 作業ブランチを削除する
  13. フィードバックを受け入れる
    修正が入ったら再度「ドキュメントを確認する」「サポートされている全 OS で起動・接続チェックする」
  14. RC2 を出す場合は、この項目の手順を作業ブランチの作成から再度行う

リリース作業

  1. 作業ブランチを作成する(main または定期リリース用ブランチから)
    git switch main
    git checkout -b release/5_4_0
    
  2. ドキュメントを確認する (詳細は同上)
  3. "RC" を削除する
  4. リリース日を変更する
  5. インストーラを作成する(確認用)

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

  6. コミット、push する
  7. 作業ブランチをマージするための Pull Request を作成する
  8. Pull Request をマージする(main または定期リリース用ブランチへ)
  9. タグを作成し、push する

    タグは 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
    
  10. GitHub Actions の workflow が実行されてビルドされる
    ビルドは4回実行されます: 作業ブランチへの push・Pull Request の作成・main または安定版ブランチへのマージコミット・タグの作成
    リリースではタグの作成をリリースとみなします。
    リリース時には、workflow は途中で SignPath での承認を待ちます。SignPath.io にログインして署名リクエストを Approve します。
  11. GitHub の Releases に追加する
  12. ウイルス対策ソフトの検知を確認する
  13. プロジェクトWebページ (https://teratermproject.github.io) を更新する

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

  14. リリースをアナウンスする
  15. 定期リリースの場合は、安定版ブランチを作成する
    git checkout -b stable_5_4
    
  16. 次のリリースに向けてバージョンをインクリメントする

    定期リリースの場合

    安定版リリースの場合

  17. インストーラバイナリのダウンロードに関する確認をする

    ダウンロードしたファイルを実行すると、SmartScreen が「WindowsによってPCが保護されました」という警告を出すことがある。
    これが解消されないと、窓の杜はインストーラを掲載しない。

    Microsoft Edge でダウンロードすると、SmartScreen が「一般的にダウンロードされていません」という警告を出す。

    ウイルス対策ソフトが誤検出することがある。
    keycode.exe がキーロガーとして検出されやすいらしい。

    Microsoft には誤検出の申し立てができる。「PCが保護されました」の解消のため報告する。

  18. Chocolatey の登録を更新する

    ウイルス対策ソフトに検出されている状態だと push したバイナリが公開差し止めになることがある。

    同じバージョンを複数回 push できないようなので、push 作業をミスることができない。

    現在 teraterm5 パッケージは reject されている。

  19. 作業ブランチを削除する

コードフリーズについて

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