How to release Tera Term installation package

  1. Start release operation
  2. Create RC, and after that
  3. Release
  4. About code freeze

To release Tera Term installation package is shown in the following step:

Start release operation

  1. Confirm ticket and branches.
  2. Confirm tools, libraries, import sources.

    We use CI tool for release build. For this reason, the detailed version of Visual Studio is uncontrollable. The detailed version will depend on what version is currently adopted by the CI tool at build time.

    Library versions are mostly determined at this timing.

    In a stable release, library versions are not updated from periodic release. (However, if a library has a security fix, we will handle it on a case-by-case basis.)

  3. What change is included in this release of not included is mostly determined.

Create RC, and aftet that

  1. Create a branch for RC work. (from main branch or stable branch)
    git switch main
    git pull --rebase
    git checkout -b release/5_4_0-RC
    
  2. Confirm documents.
  3. Increment the year of last publication of copyright notice if it is first release in this year.
  4. Increment the version while RC release process.
  5. Create installer. (for check)
  6. Test run installer, run and connect in all supported OS.
  7. Commit and push.
  8. Create the Pull Request to merge working branch.
  9. Merge the Pull Request. (into main branch or stable branch)
  10. A build workflow runs on GitHub Actions.
    Three builds are triggered on: The build binary generated from the merge commit is considered the release candidate artifact.
  11. Announce RC release.
  12. Delete a working branch.
  13. Get feedbacks.
    If changed source code, redo "Confirm documents" and "Test run and connect in all supported OS."
  14. If you are going to release RC2, repeat the steps in this section starting from creating a working branch.

Release

  1. Prepare an announcement texts.
  2. Create a branch for release work. (from main branch or stable branch)
    git switch main
    git pull --rebase
    git checkout -b release/5_4_0
    
  3. Confirm documents. (same as above)
  4. Modify release date.
  5. Remove "RC" string.
  6. Create installer. (for check)

    Check that build and installer generation without error.

  7. Commit and push. *
  8. Create the Pull Request to merge working branch. *
  9. Merge the Pull Request. (into main branch or stable branch) *
  10. Create a tag and push. *

    Use annotated tags. The naming rule is `v(version)' (e.g. 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
    
  11. A build workflow runs on GitHub Actions.
    Four builds are triggered on: The build binary generated from the release tag is considered the release artifact.
    During the release process, the workflow sends code signing requests to SignPath. SignPath's release-signing policy requires manual approval. Therefore, the workflow will wait until the code signing is approved. To approve the requests, log in to SignPath.io and approve signing requests.
  12. Delete a working branch.
  13. Add to GitHub "Releases."
  14. Check anti-virus software
  15. Update project web page (https://teratermproject.github.io).

    How to update project home page (in Japanese).

  16. Announce release.
  17. Create stable branch (only for periodic releases).
    git switch main
    git pull --rebase
    git checkout -b stable_5_4
    
  18. Increment the version for text release

    When periodic release,

    When stable release,

  19. Modify changelog (only for stable releases).
  20. Configure GitHub Milestones (only for periodic releases). The Milestone of stable release is not to be created.
  21. Check for download a installer binary.

    When execute a download binary, SmartScreen alerts "Windows protected your PC."

    When download a binary with Microsoft Edge, Smart screen warns "File is not commonly downloaded."

    Anti-Virus Software reports false positive.

  22. Update Chocolatey.

About code freeze.

After code freeze, only critical bug fix is able to committed.
Code freeze start with RC commit, and end with version increment commit..