Development: Making a release - novnc/noVNC GitHub Wiki

This page contains the rough outline for the steps of making a new official release of noVNC.

Preparation

  1. Check that the documentation is up to date:

    • README.md - General check
    • LICENSE.md - Any components added or removed that affect licenses?
    • API.md - Any changes in the public API?
    • EMBEDDING.md and LIBRARY.md - Any changes on how to deploy/integrate noVNC?
  2. Temporarily edit package.json and update it to the new version. This makes sure we get the correct version number in the translation files.

  3. Update the translation template:

    $ make -C po update-pot
    $ git commit -m "Update translation template file" po/noVNC.pot
    

    You need to have run npm install beforehand to have the proper dependencies.

  4. Restore package.json:

    $ git checkout -- package.json
    
  5. Update the .po files but do not commit these:

    $ make -C po update-po
    

    The reason we do not commit these is to avoid needless clutter in the history. They will soon be replaced with filled out versions anyway.

  6. Send out a request for translations to the noVNC group with the .po files attached and using this template:

    A new release of noVNC is shortly here so we need your help updating the
    translations. Please grab one of the attached `.po` files, update the
    needed strings and reply to this message with the updated file.
    
    If you are new to doing translations, then please have a look at poedit
    as a good tool for editing these files:
    
    https://poedit.net/
    
    Regards
    The noVNC Developers
    
  7. Reset the .po files in your working copy:

    $ git checkout -- po/*.po
    

Beta

  1. Update the version number in package.json to the format "X.Y.Z-beta", e.g. "1.1.0-beta".

  2. Commit and tag the version change:

    $ git commit -m "noVNC 1.1.0 beta" package.json
    $ git tag -a -m "noVNC 1.1.0 beta" v1.1.0-beta
    
  3. Push the changes to GitHub:

    $ git push --dry-run [email protected]:noVNC/noVNC.git v1.1.0-beta master
    
    (check that everything looks sane)
    
    $ git push [email protected]:noVNC/noVNC.git v1.1.0-beta master
    
  4. Fill out the GitHub release using this template, don't forget to check the "Pre-release" checkbox for the beta:

    A beta of noVNC 1.1.0 is now available. Lots of changes have been made since
    the last release, but the highlights are:
    
    **Application:**
    
      - Something
      - Something else
      - Something more
    
    **Library:**
    
      - Something
      - Something else
      - Something more
    
    Regards
    The noVNC Developers
    
  5. Use the same template and send an announcement to the noVNC group.

Release

Pretty much the same as the beta but without the beta marker on everything. There is one preceding step though:

  1. Update the translations using the updated .po files gotten on the noVNC group:

    $ make -C po update-js
    
  2. Commit each translation individually, using the author and date from the respective .po file:

    $ git commit -m "Update Polish translation" \
    --author "John Doe <[email protected]>" \
    --date "2018-01-12 12:23+0100" \
    po/pl.po app/locale/pl.json
    
  3. Update the noVNC.com web page with the new release of noVNC:

    $ (cd noVNC && git fetch && git checkout v1.1.0)
    $ git commit -m "Update to noVNC 1.1.0 release" noVNC