Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
106 lines (76 sloc) 2.77 KB


Prerequisite: Sonatype (Maven Central) Account

Create an account on the Sonatype issues site. Ask an existing publisher to open an issue requesting publishing permissions for misk projects.

Prerequisite: GPG Keys

Generate a GPG key (RSA, 4096 bit, 3650 day) expiry, or use an existing one. You should leave the password empty for this key.

$ gpg --full-generate-key 

Upload the GPG keys to public servers:

$ gpg --list-keys --keyid-format LONG
pub   rsa4096/XXXXXXXXXXXXXXXX 2019-07-16 [SC] [expires: 2029-07-13]
uid           [ultimate] John Barber <>
sub   rsa4096/ZZZZZZZZZZZZZZZZ 2019-07-16 [E] [expires: 2029-07-13]

$ gpg --send-keys --keyserver XXXXXXXXXXXXXXXX

Prerequisite: Gradle Properties

Define publishing properties in ~/.gradle/


signing.keyId is the GPG key's ID. Get it with this:

$ gpg --list-keys --keyid-format SHORT

signing.password is the password for this key. This might be empty!

signing.secretKeyRingFile is the absolute path for secring.gpg. You may need to export this file manually with the following command where XXXXXXXX is the keyId above:

$ gpg --keyring secring.gpg --export-secret-key XXXXXXXX > ~/.gnupg/secring.gpg

Cutting a Release

  1. Update

  2. Set versions:

  3. Set environment variables with your Sonatype credentials.

    export SONATYPE_NEXUS_USERNAME=johnbarber
    export SONATYPE_NEXUS_PASSWORD=`pbpaste`
  4. Update, build, and upload:

    sed -i "" \
    sed -i "" \
      "s/\"misk:\([^\:]*\):[^\"]*\"/\"misk:\1:$RELEASE_VERSION\"/g" \
      `find . -name ""`
    ./gradlew clean uploadArchives
  5. Visit Sonatype Nexus to promote (close then release) the artifact. Or drop it if there is a problem!

  6. Tag the release, prepare for the next one, and push to GitHub.

    git commit -am "Prepare for release $RELEASE_VERSION."
    git tag -a misk-$RELEASE_VERSION -m "Version $RELEASE_VERSION"
    sed -i "" \
    git commit -am "Prepare next development version."
    git push && git push --tags
You can’t perform that action at this time.