# Public Release Manuel
WARNING
Public Release means deploy to Maven Central. Only core team members are granted to deploy into Public Repository.
# Setup GPG
Install on macOS
brew install gnupg
Generate key if you don't have it.
gpg --full-generate-key
Publish public key
gpg --send-keys [key-id] --keyserver hkp://subkeys.pgp.net
Show keys
gpg --list-keys
# Setup Sonatype Authentication
Edit and put below configurations into ~/.m2/settings.xml
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>{username}</username>
<password>{password}</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>{username}</username>
<password>{password}</password>
</server>
</servers>
# Cut Branch
It's only need for feature release, you should cut a branch from master.
git checkout -b 2.6
# Bump Release Version
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=2.6.0
git commit -am '(release) prepare release v2.6.0-rc0'
# Package and Deploy to Sonatype
mvn clean deploy -DskipTests -Prelease -Pscala-2.11 -Pspark-2.4
mvn clean deploy -DskipTests -Prelease -Pscala-2.12 -Pspark-3.0
# Publish Release
Go to Sonatype Repository (opens new window)
- verify artifacts
- close repository
- release to Maven Central
# Announce on GitHub
Edit at GitHub Release Page (opens new window)
# Bump Development Version
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=2.7.0-SNAPSHOT
git commit -am '(release) prepare for next development iteration'