- Sign up for a Sonatype JIRA account here
- Click Sign Up in the login box, follow instructions
-
Go to community support
-
Ask for publish rights by creating an issue similar to this one
- You must be logged in to create a new issue
- Use the Create button at the top tab
-
Generate the key
gpg --gen-key
- Keep the defaults, but specify a passphrase
-
Determine your
gpg
version:gpg -- version
-
Find the ID of your public key
- If you're using GPG version 1.y.z,
gpg --list-secret-keys
- Look for the line with format
sec 2048R/ABCDEFGH 2015-11-17
- The
ABCDEFGH
is the ID for your public key
- Look for the line with format
- If you're using GPG version 2.y.z
gpg --list-secret-keys --keyid-format LONG
- Look for line with format
sec rsa2048/ABCDEFGHIJKLMNOP
- The
ABCDEFGHIJKLMNOP
is the ID. It is 16-byte long, but Gradle only support 8-byte keys. Use the last 8 bytes of the key when following the rest of this document. gpg --export-secret-keys $HOME/.gnupg/secring.gpg
- Look for line with format
- If you're using GPG version 1.y.z,
-
Upload your public key to a public server:
gpg --send-keys --keyserver hkp://pgp.mit.edu <YOUR-KEY-ID-HERE>
- Create a settings file at
$HOME/.gradle/gradle.properties
with your key information and your sonatype username/password
signing.keyId=<YOUR-KEY-ID-HERE>
signing.password=<YOUR-PASSWORD-HERE>
signing.secretKeyRingFile=/usr/local/google/home/<YOUR-USER-NAME>/.gnupg/secring.gpg
ossrhUsername=<YOUR-NEXUS-USERNAME>
ossrhPassword=<YOUR-NEXUS-PASSWORD>
- Update
version.txt
to the release version you want - Run
./gradlew stageRelease
to:
- Regenerate
gh-pages
branch containing Javadocs - Stage artifacts on Sonatype: to the staging repository if "-SNAPSHOT" is not included in the version; otherwise to the snapshot repository only
- Submit a pull request, get it reviewed, and submit
- Run
./gradlew finalizeRelease
- Note: this will release ALL versions that have been staged to Sonatype: if you have staged versions you do not intend to release, remove these first from the Nexus Repository Manager by logging in (upper right) and browsing staging repositories (left panel)
- It will take some time (~10 min to ~8 hours) for the package to transition
- Publish a new release on Github:
- Go to the releases page and click "Draft a new release" in order to start a new draft.
- Make sure the "Tag Version" is
vX.Y.Z
and the "Release Title" isX.Y.Z
, whereX.Y.Z
is the release version as listed in theversion.txt
files. - Add the commits since the last release into the release draft. Try to group them into sections with related
changes. Anything that is a breaking change needs to be marked with
*breaking change*
. Such changes are only allowed for alpha/beta modules and@BetaApi
features. - Ensure that the format is consistent with previous releases. After adding any missing updates and reformatting as necessary, publish the draft.
- Update
version.txt
to the following "-SNAPSHOT" version