Waffle Server release - Gapminder/waffle-server GitHub Wiki

How to perform a release of new WS version

**Note:** `aaaaaaaaaabbbbbbbbbbccccccccccffffffffff` - is the fake token. To generate proper one you need to follow [github tutorial](https://help.github.com/articles/creating-an-access-token-for-command-line-use)

**Important note:** you should merge `development` branch into `master` and **perform `npm version` on `master`** branch according to our [gitflow](https://github.com/valor-software/valor-style-guides/tree/master/gitflow). Don't forget after finishing of creation new release merge `master` into `development` branch as merge commit via `git merge master`.

**Even more important note:** while generating a token (using tutorial given above) you need to choose which permissions should be granted to it. For our *release purposes* you need to choose all permissions under the `repo` section, 
  1. npm run changelog - generates content for CHANGELOG.md file with changes that have happened since the last release
  2. npm version - this one is a bit more complicated. Let's start with what it needs to run.
  • CONVENTIONAL_GITHUB_RELEASER_TOKEN environment variable should be set up for this command:

    Example: CONVENTIONAL_GITHUB_RELEASER_TOKEN=aaaaaaaaaabbbbbbbbbbccccccccccffffffffff npm version minor

  • this command accepts following parameters:

    • major (having initially version 0.0.0 by applying this option it will be changed to 1.0.0).

      Example:

        CONVENTIONAL_GITHUB_RELEASER_TOKEN=aaaaaaaaaabbbbbbbbbbccccccccccffffffffff npm version major
      
    • minor (having initially version 0.0.0 by applying this option it will be changed to 0.1.0)

      Example:

        CONVENTIONAL_GITHUB_RELEASER_TOKEN=aaaaaaaaaabbbbbbbbbbccccccccccffffffffff npm version minor
      
    • patch (having initially version 0.0.0 by applying this option it will be changed to 0.0.1)

      Example:

        CONVENTIONAL_GITHUB_RELEASER_TOKEN=aaaaaaaaaabbbbbbbbbbccccccccccffffffffff npm version patch
      

    During the release process two files will be changed and pushed to GitHub:

    1. CHANGELOG.md - because of added history.
    2. package.json - because of bumped version.