OpenCMIS Release Process

This is a rough description of the OpenCMIS release process.
In its current state it covers all steps, but not all details. It should be refined and updated with every release. Parts of could even be scripted.


  1. Make sure you have the following pre-requisite software.

    • Java 8
    • Apache Maven 3.x
    • SVN 1.9 or above
    • gpg2 (e.g. GnuPG or GPG Tools for Mac)
  2. Pre-requisite credentials.

    • Your PGP Key is public and cross-signed by Apache members on the Web of Trust (see all details at
    • Credentials to deploy to org/apache/chemistry in the Maven Repository (all committers should have those).
    • Put your credentials into your <home>/.m2/settings.xml file.
  3. Prepare JIRA.

    • Create the next version in JIRA if it not already exists.
    • Check all open issues in JIRA and either fix or postpone them.
  4. Get a fresh check out of the source code: svn co

  5. Run build and tests.

    • Run mvn clean install
    • Run mvn apache-rat:check
    • Run mvn site:site -Papache-release
  6. Prepare relase.

    • Run mvn release:prepare
      • Select next DEV version (e.g. 1.3.0)
      • The TAG should always be in the form of chemistry-opencmis-<versionNumber>-RC1 for release candidates. The tag will then have to be renamed upon successful vote.
  7. Perform release.

  8. Build and deploy site.

    • Build site.
      • Go to the checkout directory <opencmisReleaseCheckoutDir>/target/checkout
      • Run mvn site:site -Papache-release
      • TODO: change staging URL to <deployedSiteDir> (file://...)
      • Run mvn site:deploy -Papache-release
    • Deploy site.
      • Check out web site: svn co
      • Create new directory <websiteDir>/content/java/<versionNumber>/maven
      • Copy <deployedSiteDir> to <websiteDir>/content/java/<versionNumber>/maven
      • Add new directory: svn add <versioNumber>
      • Submit changes: svn commit -m 'adding <versionNumber> site docs'
      • The site should be live at<versioNumber>/maven/
  9. Create RC Dist packages.

    • Check out dist/dev: svn co
    • Create new directory: mkdir chemistry-opencmis-<versionNumber>-RC1
    • Download packages: <chemistryReleaseCheckoutDir>/chemistry-dist/release-scripts/ <versionNumber> <stagingRepoRelativeDir>
    • Add all packages: svn add *
    • Commit packages: svn commit -m 'publishing packages for OpenCMIS <versionNumber>'
    • Artifacts should be live at<versionNumber>-RC1/


  1. Send release vote to

    Subject: [VOTE] Release Apache Chemistry <versionNumber> - RC1
    Hi all,
    OpenCMIS <versionNumber> is ready for voting.
    <... add release highlights here ...>
    You can find the commodity packages release candidate artifacts (for final
    distribution at at [1].
    The full set of Maven artifacts (for distribution at and
    Maven Central) is staged at [2].
    Sources tag can be found at [3].
    Maven generated javadoc/test reports are being deployed at [4].
    For detailed release notes check Jira at [5] (unresolved issues will be
    pushed to the next release).
    The vote is open for 72 hours and passes if a majority of at least three +1
    Chemistry PMC votes are cast.
    Please cast your votes!
    [ ] +1 Release packages as Apache Chemistry OpenCMIS <versionNumber>
    [ ] -1 Do not release this package because...
    Thanks for taking the time to vote!
  2. Tally and send [VOTE][RESULT] - PASSED or iterate from the beginnig until a successful vote is reached


  1. Promote repository at so it will be synced to Maven Central.

  2. Publish packages.

    • Check out dist/release: svn co
    • Copy RC packages: svn export<versionNumber>-RC1 <versionNumber>
    • Add packages: svn add <versionNumber>
    • Check in: svn commit -m 'added OpenCMIS <versionNumber> release to dist'
  3. Update the web site.

    • Check out web site: svn co
    • Update the OpenCMIS page: <websiteDir>/content/java/opencmis.mdtext
    • Update the download page: <websiteDir>/content/java/download.mdtext
    • Update the homepage: <websiteDir>/content/index.mdtext
    • Maintain the javadoc link in <websiteDir>/content/java: svn propset svn:externals '../java/<versionNumber>/maven/apidocs/ javadoc' .
    • Check in: svn commit -m 'updated web site for OpenCMIS <versionNumber>'
  4. Publish site.

  5. Remove old packages: svn rm<versionNumber-1> -m 'removed previous release'

  6. Close version in JIRA.

  7. Rename tag: svn mv<versionNumber>-RC1<versionNumber> -m 'renamed tag after successful release'.

  8. Update DOAP file.

  9. Wait 24 hours and then send email to (with GPG signature):

    Subject: [ANNOUNCEMENT] Apache Chemistry OpenCMIS <versionNumber> released
    the Apache Chemistry OpenCMIS PMC is pleased to announce the release of
    Apache Chemistry OpenCMIS <versionNumber>.
    What is OpenCMIS?
    OpenCMIS is a collection of Java libraries, frameworks, and tools around
    the OASIS CMIS (Content Management Interoperability Services) specification [0].
    OpenCMIS <versionNumber>
    <... add release highlights here ...>
    Download OpenCMIS <versionNumber>
    OpenCMIS <versionNumber> download packages are available on the Apache mirrors [1]
    or you can get them via the ASF Maven repository [2] as described at [3].
    Refer to for OpenCMIS documentation and code samples.
    The Apache Chemistry OpenCMIS Dev team