Skip to content

Development: Making a Release

linma (ThinLinc team) edited this page Nov 28, 2024 · 6 revisions

Quick guide to how we make releases.

Creating a new branch

  1. Update the translation template file:

    $ make translations_update
    $ git commit -m "Update translation template file" po/tigervnc.pot
  2. Create the release branch:

    $ git branch 1.2-branch master
  3. Check out the master branch:

    $ git checkout master
  4. Update the version number in these files:

    • CMakeLists.txt
    • java/CMakeLists.txt
    • unix/xserver/hw/vnc/xvnc.c

    If the release is 1.2.0 then the master branch should have 1.2.80 as the version number.

  5. Commit the version change:

    $ git commit -m "Change development version to 1.2.80" \
    CMakeLists.txt java/CMakeLists.txt unix/xserver/hw/vnc/xvnc.c
  6. Push the master branch to GitHub:

    $ git push --dry-run git@github.com:TigerVNC/tigervnc.git master
    
    (check that everything looks sane)
    
    $ git push git@github.com:TigerVNC/tigervnc.git master

Beta

  1. Check out the release branch:

    $ git checkout 1.2-branch
  2. Update the version number in these files:

    • CMakeLists.txt
    • java/CMakeLists.txt
    • unix/xserver/hw/vnc/xvnc.c
  3. Commit the version change:

    $ git commit -m "TigerVNC 1.1.90 (1.2.0 beta)" \
    CMakeLists.txt java/CMakeLists.txt unix/xserver/hw/vnc/xvnc.c
  4. Tag the beta:

    $ git tag -a -m "TigerVNC 1.1.90 (1.2.0 beta)" v1.1.90 1.2-branch
  5. Push everything to GitHub:

    $ git push --dry-run git@github.com:TigerVNC/tigervnc.git v1.1.90 1.2-branch
    
    (check that everything looks sane)
    
    $ git push git@github.com:TigerVNC/tigervnc.git v1.1.90 1.2-branch
  6. Create a build (only Brian can do this right now)

  7. Create a release entry on SourceForge. Use the beta folder.

  8. Fill out the GitHub release using this template as a base:

    A beta of TigerVNC 1.2.0 is now available. Lots of changes have been made since
    the last release, but the highlights are:
    
      - Something
      - Something else
      - Something more
    
    
    Binaries are available from SourceForge:
    
    https://sourceforge.net/projects/tigervnc/files/beta/1.2beta
    
    Regards
    The TigerVNC Developers
  9. Use the same template as above and send an annoucement to the tigervnc-announce mailing list.

  10. Inform the translation project that a new release needs translation.

Proper release

This follows the same steps as the beta, except for these changes:

  • Don't inform the translation project about the new release.

  • Use the simple "TigerVNC 1.2.0" as the version commit and tag message.

  • Update the HTML version of the man pages on the main web page. You can generate them using groff:

    $ groff -mandoc -Thtml -P-l Xvnc.man > Xvnc.html
  • Use the stable folder on SourceForge.

Bug fix releases

No beta is done for bug fix releases, and commits should be added to the already existing release branch (e.g. 1.14-branch when creating bug fix release 1.14.1). See instructions below:

  1. Check out the release branch:

    $ git checkout 1.14-branch
  2. Cherry-pick the commits that should be included in the new release. Remember to use git cherry-pick -x to get a reference to the original commit.

    • A tip is to push a small number of commits at a time, to simplify troubleshooting if the GitHub checks do not pass.
  3. Update the version number in these files:

    • CMakeLists.txt
    • java/CMakeLists.txt
    • unix/xserver/hw/vnc/xvnc.c
  4. Commit the version change:

    $ git commit -m "TigerVNC 1.14.1" \
    CMakeLists.txt java/CMakeLists.txt unix/xserver/hw/vnc/xvnc.c
  5. Tag the beta:

    $ git tag -a -m "TigerVNC 1.14.1" v1.14.1 1.14-branch
  6. Push everything to GitHub:

    $ git push --dry-run git@github.com:TigerVNC/tigervnc.git v1.14.1 1.14-branch
    
    (check that everything looks sane)
    
    $ git push git@github.com:TigerVNC/tigervnc.git v1.14.1 1.14-branch
  7. Create a build (only Brian can do this right now)

  8. Create a release entry on SourceForge. Use the stable folder.

  9. Update the HTML version of the man pages on the main web page. You can generate them using groff:

    $ groff -mandoc -Thtml -P-l Xvnc.man > Xvnc.html
  10. Fill out the GitHub release using this template as a base:

    The bugfix release TigerVNC 1.14.1 is now available. This release fixes a number
    of regressions, the most prominent being:
    
      - Something
      - Something else
      - Something more
    
    
    Binaries are available from SourceForge:
    
    https://sourceforge.net/projects/tigervnc/files/stable/1.14.1
    
    Regards
    The TigerVNC Developers
  11. Use the same template as above and send an announcement to the tigervnc-announce mailing list.