Skip to content

Publishing Releases

Nils Homer edited this page Jun 22, 2017 · 15 revisions

Publishing to Sonatype

Required Reading

See: http://www.scala-sbt.org/0.13/docs/Using-Sonatype.html

Requirements

Set up PGP

See: http://www.scala-sbt.org/sbt-pgp/

Add the following to your ~/.sbt/0.13/plugins/gpg.sbt file:

addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")

If you do not currently have gpg installed you may need to install it (on Mac: brew install gpg). Once installed you'll need to generate a key with gpg --gen-key. After generating a key run gpg --export --armor and upload the key to http://pgp.mit.edu/ .

Set up your Sonatype credentials

Create .sbt/0.13/sonatype.sbt with your credentials as described here: https://github.com/xerial/sbt-sonatype

Perform the release

(1) Remove the snapshot version and perform a commit.

(2) Verify that all dependencies are on a release version, in particular dagr.

(3) Perform the release

sbt +publishSigned
sbt sonatypeRelease

(4) Bump the version number and add -SNAPSHOT. Do so for any dependencies which we want to use the snapshot version, in particular dagr.

Please note that sbt sonatypeRelease does the following:

sbt sonatypeClose
sbt sonatypePromote

(5) Add a release on github: https://github.com/fulcrumgenomics/fgbio/releases

Update Documentation on the GitHub Pages site

  1. Run the run_metrics_doclet.sh script to generate target/metrics.md
  2. Run java -cp target/scala-2.12/fgbio-{version}.jar com.fulcrumgenomics.internal.InternalTools BuildToolDocs -o /tmp/docs.{version}
  3. Checkout the gh-pages branch of the repository
  4. Copy target/metrics.md to metrics/{version}/index.md (you will need to mkdir metrics/{version})
  5. Copy (recursively) /tmp/docs.{version} to tools/{version}
  6. In each of the tools and metrics directories delete the latest symlink and re-create it using a relative link to the new version. E.g. cd tools && rm latest && ln -s {version} latest && cd ...
  7. Add the new files to git. E.g. git add tools/{version} mertrics/{version}.
  8. Edit the index.md file to change the JAR version (ex. 0.1.4 to 0.2.0).
  9. Commit the changes to the documentation and git push the gh-pages branch.