To make a release you'll need to be a maintainer with GitHub permissions to push to the main and gh-pages branches, and Sonatype permissions to publish.
Here are the steps, which should be automated but aren't (PR welcome!):
- write release notes in NEWS.md following the format already in there. update README with the new version. Commit.
- create a signed git tag "vX.Y.Z"
- start sbt;
show version
should confirm that the version was taken from the tag - clean
- test (double check that release works)
- doc (double check that docs build, plus build docs to be copied to gh-pages later)
- if test or doc fails, delete the tag, fix it, start over.
- publishSigned
- make a separate clone of the repo in another directory and check out the gh-pages branch
- /bin/rm -rf latest/api on gh-pages checkout
- copy config/target/api from main checkout to vX.Y.Z in gh-pages so you have vX.Y.Z/index.html
- copy config/target/api from main checkout into latest/ so you have latest/api/index.html
- commit all that to gh-pages, check the diff for sanity (latest/api should be mostly just changed timestamps)
- push gh-pages
- log into sonatype website and go through the usual hoops (under Staging Repositories, search for com.typesafe, verify the artifacts in it, close, release)
- push the "vX.Y.Z" tag
- announce release, possibly wait for maven central to sync first