2018-11-04 for Version 0.68

Release steps.
Just in case I don't do a release for a while and forget what to do... =)
Change the date at the first line of this document.

1. Make sure CI (continuous integration - Travis and AppVeyor) has passed.
   This should ensure all tests pass and building
   (including cross-compiling) for Windows works.

2. Update documentation for the release

2a. Update the version number and rebuild (make sure the option CMAKE_BUILD_TYPE is set to Release).
   Replace the old version with the new version everywhere except in ChangeLog.
   Specific files to update:
    ChangeLog
    CMakeLists.txt
      At lines under "# Generate uncrustify_version.h"
      (Check the value of "CURRENT_VERSION", such as "Uncrustify-0.68_f")
    documentation/htdocs/index.html
      At line <li>Highly configurable
      TODO: (automat for this) Change the values of <options> and version.
    package.json
      At line "version" the number
      At line "preinstall"
      At line "url"
    README.md
      At line * highly configurable
      TODO: (automat for this) Change the values of options and version.

2b. Update the option count in documentation/htdocs/index.html .
   Check the number of options at ./tests/cli/output/help.txt
   or use uncrustify --help .

2d. Update the man file, if any command-line options have changed.

2e. Update the ChangeLog to indicate the release date

2f. (optional) Generate a commit.log
   $ git log > commit.log

3. Make sure there are no modified files in the workspace.
   Check in all the changes you just made.
   $ git commit <all the files created above>
   $ git push --repo=https://github.com/uncrustify/uncrustify.git
     (use an admin)
   Test the build of 32-bit and 64-bit version before going on.

4. Create a GIT tag and push it

4a.
   $ git tag -a uncrustify-0.nn -m uncrustify-0.nn
   Push to the server
   $ git push --tags --repo=https://github.com/uncrustify/uncrustify.git
     (use an admin)

4b. Update the config files
   $ cd build
   $ # remove the old file
   $ rm uncrustify_version.h
   $ # to be sure to generate a new one with the new version
   $ cmake ..
   $ make
   $ ctest

6. Build for windows via mingw (save the zip file)
   Make sure the compiler mingw-w64 is installed.

   $ mkdir buildwin-32
   $ cd buildwin-32
   $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw32.cmake -DCMAKE_EXE_LINKER_FLAGS="-static -s" ..
   $ make
   $ cpack

   $ mkdir buildwin-64
   $ cd buildwin-64
   $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw64.cmake -DCMAKE_EXE_LINKER_FLAGS="-static -s" ..
   $ make
   $ cpack
   $ # make the name of the zip-file shorter
   $ mv uncrustify-Uncrustify-0.67-win64.zip uncrustify-0.67-win64.zip

5. The source tarball is available from the release on GitHub, or to build it here use
   $ # generate the config files
   $ scripts/update-defaults.sh
   $ # use the git gui command to commit or use the following:
   $ git commit -m "make default files" \
       documentation/htdocs/config.txt \
       documentation/htdocs/default.cfg \
       etc/defaults.cfg \
       etc/uigui_uncrustify.ini \
       release-steps.txt
   $ git archive -o uncrustify-0.nn.tar.gz `git rev-parse HEAD`
   Test it somewhere else

7. Update the web page files
   $ cd uncrustify-$UNC_REL/
      Login as admin under:
        https://sourceforge.net/projects/uncrustify/

      change to "Files"
        https://sourceforge.net/projects/uncrustify/files/?source=navbar

      change to "uncrustify"
        https://sourceforge.net/projects/uncrustify/files/uncrustify/

      "Add Folder"
        <Name of a new folder, i.e. uncrustify-0.nn>

      change to "uncrustify-0.nn"
        https://sourceforge.net/projects/uncrustify/files/uncrustify/uncrustify-0.nn/

      "Add File"
      Select files, or drag & drop files here.
        README.md
        uncrustify-0.nn.tar.gz
        buildwin-32/uncrustify-0.nn-win32.zip
        buildwin-64/uncrustify-0.nn-win64.zip

      "Done"

   $ scp -r documentation/htdocs/* ChangeLog USER,uncrustify@web.sourceforge.net:htdocs/

8. Use the web interface (file manager) to create the release folder and
   upload the files to sourceforge.

9. (optional) Create a news item

10. (optional) Update freshmeat.net project
