Prerequisites
-------------

1. Get a dockerhub account if you don't have one.  Ask to be added to
   the fission dockerhub account.

2. Get a Github "personal access token":
   https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

   Save the token to ~/.gh-access-token (make sure that the file is
   readable only by you)

3. Go toolchain set up.

   The ability to build docker images.

   `docker login` with your own username; get this username added to
   the fission team on dockerhub.
   
4. Install changelog generator tool "github_changelog_generator": https://github.com/skywinder/github-changelog-generator


Update versions
---------------

Update the version in the helm charts:

In each charts, the version is in Chart.yaml, values.yaml and
templates/NOTES.yaml.

Commit your changes, push them, open a PR, merge it.

Update doc versions: Docs live at github.com/fission/docs.fission.io


Make the release
----------------


1. cd to the top of the repo, create a branch:

   git checkout -b vX.Y.Z

   Commit & push the version changes.

2. Run

   ./hack/release.sh <VERSION>

   This script checks to make sure you're releasing from the master
   branch, and that your repo is clean (no modified/staged files).

   This will take a while.

3. Push docs update to github

4. Copy over charts into charts repo, update helm chart index, push to github

5. Manually test an installation, just for a sanity check

6. Switch the github release from pre-release to release.


Update chart repo
-----------------

Copy the helm charts over to the fission-charts repo.

Run `index.sh` in that repo.  (Don't edit the index.yaml in this repo
manually.  index.sh generates it, using the helm repo CLI.)

git add, git commit, and git push your changes.

The chart repo is a github page, so once you push the master branch,
you're all set.


Update the docs website
-----------------------

Rebuild the docs website using hugo.

Create a new folder named by version under fission.io/docs.  Copy the
generated docs public folder into this folder.

Update the 'latest' symlink to point to the new version of the docs.

git add, git commit, git push.


Announce the release
--------------------

Announce the release on #contributors.
