Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Sanity test pending CAS release by testing protocol and major features (this should be automated) : on a Maven overlay, login, service ticket validate, logout...
  2. Ensure criteria for a release has been met (no outstanding JIRA issues, etc.)
  3. Ensure all outstanding changes are committed.
  4. Ensure all tests pass on CI (https://developer.jasig.org/bamboo/browse/CAS4-TIB) [tests are disabled during release process]
  5. Set up your environment :
    1. Ensure your settings.xml file has the Sonatype repository defined with the appropriate credentials
    2. Load your SSH key on your local computer
    3. Ensure this SSH key is also referenced in Github
  6. Checkout the CAS project :
    1. mkdir casrelease
    2. cd casrelease
    3. git clone git@github.com:Jasig/cas.git .
  7. Ensure version numbers in CAS server artifacts are correct for the release that will be cut.
    1. Ensure web.xml <display-name> declares the correct CAS server version (No longer required as of fix in 
      Jira Legacy
      serverJASIG Issue Tracker
      serverId76221f40-4501-3df1-8578-6c87908cbdf7
      keyCAS-1081
      ).
    2. 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).
  8. Ensure licensing conformity before release by executing the following goals from the project root:

    Code Block
    languagebash
    titleLicensing 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.

  9. 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
    languagebash
    export MAVEN_OPTS="-Xmx2048m"
    mvn -DreleaseVersion=x.y.z -DdevelopmentVersion=a.b.c release:prepare
  10. 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
  11. Follow the process for deploying artifacts to Maven Central via Sonatype OSS repository.  See Deploying Maven Artifacts for background.
    1. Log into https://oss.sonatype.org.
    2. Find the staged repository for CAS artifacts created by the mvn release:perform goal.
    3. "Close" the repository.
    4. "Release" the repository.  Both c and d should be accompanied by email confirmation.
  12. 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
  13. Build the assembly using the following command:

    Code Block
    shell
    shell
    mvn -DskipTests clean package assembly:assembly && mvn -N antrun:run
    
  14. Upload assembly to Jasig Download Servers.  See Publishing Project Downloads for instructions.
  15. Trigger release in JIRA
  16. Generate release note/message
  17. Add entry to download section of jasig.org/cas with release notes
  18. 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.
  19. Update "current" version in site
  20. Send message to cas-announce, cas-user and cas-dev
  21. Post news announcement on Jasig site
  22. Optionally: announce on Twitter, Facebook, etc.

...