Skip to content
Gunnar Hillert edited this page Dec 4, 2024 · 5 revisions

Release Process

Coherence Spring uses the Nexus Staging Maven Plugin to deploy releases to Maven Central:

Requirements:

Make sure your settings.xml is setup for GitHub and Sonatype access, e.g.:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>github</id>
            <password>your-access-key</password>
        </server>
        <server>
            <id>github-pages</id>
            <password>your-access-key</password>
        </server>
        <server>
            <id>sonatype</id>
            <username>username</username>
            <password>password</password>
        </server>
</settings>

If you need to create or renew your signing keys, please see: https://central.sonatype.org/publish/requirements/gpg/

Release steps:

Dry-run:

./mvn release:prepare -DdryRun=true -Darguments="-Dskip-sign-artifacts=false -Psign"

Do the actual release:

  • ./mvnw release:prepare -Darguments="-Dskip-sign-artifacts=false -Psign"

  • ./mvnw release:perform -Darguments="-Dskip-sign-artifacts=false -Psign"

If you see an error such as:

gpg: signing failed: Inappropriate ioctl for device”

This may help:

export GPG_TTY=$(tty)

Rollback:

  • ./mvnw release:rollback or

  • ./mvnw release:abort

  • ./mvnw release:clean

Delete the remote tag using git push --delete upstream v3.4.0

Clone this wiki locally