Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 69 Next »

Releases are now performed using Maven 2 so you need to have Maven 2 installed (see the building page).

  1. There four code trunks which have separate release cycles (in this order): pom, resources, core, extensions.
  2. In each code trunk:
    1. Check if there have been SVN commits on that artifact since the latest stable release. If there have been, you'll need to release.
      1. The parent and resources typically don't change between versions.
    2. In the artifact's topmost pom.xml, if there are links to other trunks (core/pom.xml contains a property called cargo.resources.version, for example), update these to the latest release
    3. Release the code trunk
    4. In the artifact's topmost pom.xml, change the links to the other trunks' versions to the new SNAPSHOT version
  3. Before releasing, make sure what is going to be released is fully functional. In particular, run the core/samples using the all-downloadable profile (mvn clean install -Pall-downloadable).
    1. The Continous Integration for CARGO actually passes tests for all containers. Green ones are doing well
    2. If any container is not passing, move it to the all-unstable-downloadable list.
    3. Make sure all containers in the all-stable-downloadable profile pass the samples.
  4. Releases are done with the maven release plugin.
    1. We use the Codehaus Nexus instance for releases. Read more about it on Codehaus Maven Repository Usage Guide
      1. In particular, you need to have the GNU privacy guard (GPG) installed on your machine and at least one secret key. The secret key's public part must have been uploaded to the MIT PGP Public Key Server.
    2. You must provide your Codehaus Xircles credentials using your settings.xml file (in the $
      Unknown macro: {user.home}

      /.m2/ directory). Here's an example settings.xml:

        1. Start by erasing your local Maven repository ($
      /.m2/repository/, unless you've reconfigured this in your settings.xml). This will ensure that you don't have any artifacts cached locally that can't be found in public repositories.
    3. The typical Maven release procedure is to execute these commands for each trunk (i.e. repeat this for each trunk):
      1. Please do a dry-run before doing the actual release to ensure there aren't any problems:
        mvn clean release:prepare -DdryRun=true
      2. mvn release:prepare : the actual release preparation, with the actual tagging process
        1. If the Subversion commit fails, try executing the same command but add -Dusername=your_user_name -Dpassword=your_password (of course, replace with your own user name and password on the CARGO SCM)
      3. mvn release:perform : deploys the tagged artifacts on the Codehaus repository (itself mirrored by the Maven central repository, with a delay of a few hours)
        1. You might get a message saying Error deploying artifact: Failed to create destination WebDAV collection (directory): unable to find valid certification path to requested target, that's because the Codehaus HTTPS WebDAV servers' certificate is not installed on your computer. In this case:
          1. Download and compile the program from
          2. Execute the program java InstallCert and make it install one of the certificates. If you run the program again, it should be happy and tell you that all certificates are installed.
          3. Add the generated jssecacerts file to your $JAVA_HOME/jre/lib/security directory.
        2. If you get a message saying: Error deploying artifact: Failed to transfer file. Return code is: 401 Unauthorized, please make sure your credentials in the settings.xml file are correct.
  5. Log onto Cargo JIRA, release the current version and add the next version.
  6. Check that the Cargo wiki is up to date. Specifically, perform the following updates:
    1. Modify the status on the home page about the delivery:
      1. Make sure the Containers list is complete
      2. Make sure the Navigation page is complete
      3. Make sure the Javadocs for the Core Containers are complete
      4. Make sure the documentation for each container is up to date. The source files (that you need to copy-paste in each container's page manually) are generated in core/documentation/target/[container's name].log.
    2. Move the old version to the Archived Downloads page
      1. Remember to move the old documentation archive from the Downloads page to that page as well
    3. Modify the Home and Downloads pages to update the download links, available version number and release note links
    4. Export the wiki to a zipped HTML file (select all pages except for the Downloads page) and add it the Downloads page
  7. Send an announcement email to Cargo mailing lists ... and to other relevent sites you know about. Mailing lists of some servers can also be interesting.
  8. Create a blog post
  • No labels