Release scripts for websocketd
==============================

Perform a fully automated repeatable release of websocketd.

This is three-stage process in normal release cycle that's performed by
repository maintainers.

* Update CHANGES and Tag
* Build
* Release

Those that do not have permissions to push tags could still use this build
chain to build their own customized versions or packages.

## Step 1: Update CHANGES and Tag

First edit and commit CHANGES file. List all significant updates between releases.

Annotated tags require for release:

    git tag -a vx.x.x

To see currently tagged version run tag with -l option.

## Step 2: Build

release/Makefile contains all required to download pre-verified for build release of Go and cross-compile
websocketd for all platforms that we release for.

    cd release
    make

Is generally recommended but other build options are available:

* go-compile: build cross-platform golang pakages
* binaries: only create websocketd binaries, do not generate zip distributions
* deb, rpm: only create particular kind of packages
* clean-go: remove build files for go
* clean-out: remove built binaries, zip and linux packages
* clean: remove everything (go and release files)

Building requires to have gcc and other build tools installed. Building rpm/deb files would fail without fpm ("gem install fpm" itself requires ruby devel tools).

Create CHECKSUMS.asc file using gpg and key that other developers shared with you:

    gpg -u KEYID --clearsign CHECKSUMS

(key has to be installed in your gpg environment first)


## Step 3: Release

In order to make release official following steps required:

    # push tags (assuming joewalnes repo is origin):
    go push --tags origin master:master

Upload files to github release (to be automated). Use these instructions for now: https://github.com/blog/1547-release-your-software


