- 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
gpgversion: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
ABCDEFGHis 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
ABCDEFGHIJKLMNOPis 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.propertieswith 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>
See releasetool for installation instructions. You will need python 3.6+ to run this tool.
- Run
releasetool start. Select "minor" or "patch" for the release type. This will bump the artifact versions, ask you to edit release notes, and create the release pull request.
- Note: be sure to make these notes nice as they will be used for the release notes as well.
- Request a review on the PR.
- Run
./gradlew stageReleaseto:
- Regenerate
gh-pagesbranch 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 the PR.
- 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 using releasetool.
- Run
releasetool tag. It will list the last few merged PRs. Select the newly merged release PR. - Releasetool will create the GitHub release with notes extracted from the pull request and tag the new release.
- Run
releasetool startagain, but specify "snapshot" when prompted for the type of release. This will bump the artifact versions and create a new snapshot pull request. - Review and submit the PR.