...
- Sanity test pending CAS release by testing protocol and major features (this should be automated) : on a Maven overlay, login, service ticket validate, logout...
- Ensure criteria for a release has been met (no outstanding JIRA issues, etc.)
- Ensure all outstanding changes are committed.
- Ensure all tests pass on CI (https://developer.jasig.org/bamboo/browse/CAS4-TIB) [tests are disabled during release process]
- Set up your environment :
- Ensure your settings.xml file has the Sonatype repository defined with the appropriate credentials
- Load your SSH key on your local computer
- Ensure this SSH key is also referenced in Github
- Checkout the CAS project :
- mkdir casrelease
- cd casrelease
- git clone git@github.com:Jasig/cas.git .
- Ensure version numbers in CAS server artifacts are correct for the release that will be cut.
Ensure web.xml <display-name> declares the correct CAS server version(No longer required as of fix in
).Jira Legacy server JASIG Issue Tracker serverId 76221f40-4501-3df1-8578-6c87908cbdf7 key CAS-1081 - Sanity test common configuration by having an other CAS deployer update and build their local Maven WAR overlay (or keep a sample around that can be used).
Ensure licensing conformity before release by executing the following goals from the project root:
Code Block language bash title Licensing Checks mvn -o notice:check mvn -o license:check mvn -o checkstyle:check
If either of the above, the notice:generate and license:format goals may be used (the latter with care) to help remedy the situation. See maven-notice-plugin for more information on NOTICE file generation.
Prepare for release by running prepare goal of Maven Release Plugin, which prompts for version numbers:
Code Block shell shell export MAVEN_OPTS="-Xmx2048m" mvn release:prepare
Alternatively, you may specify the release version number directly on the command line:
Code Block language bash export MAVEN_OPTS="-Xmx2048m" mvn -DreleaseVersion=x.y.z -DdevelopmentVersion=a.b.c release:prepare
Perform the release by executing the following command and answering ensuing questions. Ensure that you have the credentials to sign the releases; note that builds will fail if the tests fail so make sure all tests pass!)
Code Block shell shell mvn release:perform
- Follow the process for deploying artifacts to Maven Central via Sonatype OSS repository. See Deploying Maven Artifacts for background.
- Log into https://oss.sonatype.org.
- Find the staged repository for CAS artifacts created by the
mvn release:perform g
oal. - "Close" the repository.
- "Release" the repository. Both c and d should be accompanied by email confirmation.
- Check out source from generated branch : form from this step, the procedure should be followed only for release (not for RC and GA versions), except sending an email to cas-user and cas-dev mailing lists
Build the assembly using the following command:
Code Block shell shell mvn -DskipTests clean package assembly:assembly && mvn -N antrun:run
- Upload assembly to Jasig Download Servers. See Publishing Project Downloads for instructions.
- Trigger release in JIRA
- Generate release note/message
- Add entry to download section of jasig.org/cas with release notes
- Update download block on jasig.org/cas site to point to most current download. Direct link: http://www.jasig.org/admin/build/block/configure/block/21.
- Update "current" version in site
- Send message to cas-announce, cas-user and cas-dev
- Post news announcement on Jasig site
- Optionally: announce on Twitter, Facebook, etc.
...