Release process
===============

1. Check CI

   * Travis: https://travis-ci.org/nanomsg/nanomsg
   * AppVeyor: https://ci.appveyor.com/project/nanomsg/nanomsg
   * Waterfall: http://build.nanomsg.org/waterfall (note may be broken)

2. "make dist" to check whether the packaging process still works.

3. Try to build the resulting package to make sure packages compile.

4. Bump ABI version as appropriate (see the docs on versioning). This happens
   in src/nn.h, check links there on which numbers to update.

5. Commit and push back to the public repo.

6. Tag the new version, e.g. git tag -a 0.3-beta.  (Make sure to use -a
   to create an annotated tag.)

7. Push the tag to the repo, e.g. git push origin 0.3-beta.

8. Wait a little bit for Travis CI to build, and create artifacts.
   (Travis does this automatically for tagged releases.)

9. Check the github releases page - a release for the tag should have
   already been created with artifacts ready to download.

10. Upload the "download" page on the website (see gh-pages branch of the
    repo).  The only thing that needs to be updated is the LATEST RELEASE
    number and date.

11. In online docs (gh-pages) make a new folder (e.g. v0.3) and copy the HTML
    docs (*.html from build directory) there.

12. Link the docs from "documentation.html" page.

13. Send the announcement about the release. These commands might be useful:
    git log --oneline 0.2-alpha..0.3-beta | wc -l
    git diff -U0 0.2-alpha..0.3-beta AUTHORS

14. Update the topic in the chatroom accordingly.
