CAS 5.0.x Release Process

This page documents the steps that a release engineer should take for cutting a CAS server release.

Account Setup

You will need to sign up for a Sonatype account and must ask to be authorized to publish releases to the org.apereo package. Once you have, you may be asked to have one of the current project members vouch for you.

Environment Review

  • Load your SSH key and ensure this SSH key is also referenced in Github.
  • Adjust $GRADLE_OPTS to initialize the JVM heap size, if necessary.
  • Load your ~/.gradle/gradle.properties file with the following as an example:
1
2
3
4
signing.keyId=7A24P9QB
signing.password=P@$$w0rd
signing.secretKeyRingFile=/Users/example/.gnupg/secring.gpg
org.gradle.daemon=false
  • Checkout the CAS project: git --depth=10 clone git@github.com:apereo/cas.git cas-server
  • Make sure you have the latest version of JDK 8 installed via java -version.

Preparing the Release

  • If necessary, create an appropriate branch for the next release. Generally, you should do this only for major or minor releases. (i.e. 4.2.x, 5.0.x)
  • In the project’s gradle.properties, change the project version to the release version. (i.e. 5.0.0-RC1)
  • Build the project using the following command:
1
./gradlew clean assemble install -x test --parallel -x check
  • Release the project using the following commands:
1
./gradlew uploadArchives -DpublishReleases=true -DsonatypeUsername=<UID> -DsonatypePassword=<PASSWORD>

Performing the Release

Follow the process for deploying artifacts to Maven Central via Sonatype OSS repository.

  • Log into https://oss.sonatype.org.
  • Find the staged repository for CAS artifacts
  • “Close” the repository.
  • “Release” the repository.

Finalizing the Release

  • Create a tag for the released version, commit the change and push the tag to the upstream repository. (i.e. v5.0.0-RC1).
  • Switch to the release branch and in the project’s gradle.properties, change the project version to the next development version (i.e. 5.0.0-RC2-SNAPSHOT).
  • Push your changes to the upstream repository.

Housekeeping

  • Close the milestone for this release.
  • Find the release that is mapped to the released tag, update the description with the list of resolved/fixed issues and publish it as released.
  • Mark the release as pre-release, when releasing RC versions of the project.
  • Send an announcement message to @cas-announce, @cas-user and @cas-dev mailing lists. A template follows:
1
2
3
4
5
6
7
CAS Community,

CAS x.y.z is available for testing and evaluation. We encourage adopters to grab 
this release from Maven Central, integrate into your environment, and provide feedback.

Regards,
John Smith

Update Overlays

Update the following overlay projects to point to the newly released CAS version.

Update Maintenance Policy

Update the Maintenance Policy to note the release schedule and EOL timeline. This task is only relevant when dealing with major or minor releases.

Docker Image (Optional)

Release a new CAS Docker image. This task is only relevant when dealing with GA releases.