Versions Compared

Key

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

Validating an Apache jclouds release involves verifying the following:

  • Verify that the checksums are valid.
  • Verify that the PGP signatures are valid.
  • Check that the expanded source archive matches contents of RC tag.
  • Verify that the expanded source archive builds and passes tests.
  • Check that LICENSE and NOTICE files are present and correct.
  • Make sure all files have license headers where appropriate.
  • Check that all dependencies have compatible licenses.
  • Verify that no compiled archives bundled in source archive.

You can help validate a release. A [VOTE] thread (e.g. [VOTE] Release Apache jclouds-1.6.3-rc1) will begin on the dev list containing all of the relevant info.

Some steps require a manual verification, and others are fully automated. The following scripts can be used:

 

Verify RAT, build, tests, checksums and signatures in one script

...

 

    Download 
  1. Download the verification script:
    1. Unix: 
    1. https://
  2. github
    1. dist.apache.
  3. com
    1. org/
  4. jclouds
    1. repos/
  5. jclouds
    1. dist/
  6. blob
    1. dev/
  7. master/scripts
    1. jclouds/
  8. release/
    1. verify_jclouds_rc.sh
  9. .  
  10.  Run it, as ./verify_jclouds_rc.sh 1.6.3-rc1. Watch for failures.  
  11.  As noted, this is beta, and will need to be updated once we're out of incubating.  

 

...

    Download 
    1.  (if you're running this on a Mac, you'll need brew and to do a brew install gpg first).

 

Verify RAT, build, tests, checksums, signatures and compile blobstore-basics example in one script on Windows (beta)

    1. Windows: https://dist.apache.org/repos/dist/dev/jclouds/verify_jclouds_rc.cmd
  1. .
    1.  
  2.  
  3.  
    1. (Set the values of the variables TAR_EXEC (TarTool), FCIV_EXEC (FCIV), GPG_EXEC and SED_EXEC (GNU sed for Windows) to match your local environment
      
    1. ).
  4. Run it and watch for failures:
    1. Unix: ./verify_jclouds_rc.sh 1.9.2-rc1
    2. Windows: 
     Run it, as 
    1. .\verify_jclouds_rc.cmd <dists-
    folder> [release version]. Watch for failures.  
  5.  As noted, this is beta.

 

Build from source

  1. In the [VOTE] thread look for the "Source and binary files" section. Follow the link and download the source tarballs (e.g. jclouds-1.6.3-source-release.tar.gz, jclouds-chef-1.6.3-source-release.tar.gz, etc.)  
  2.  Untar these with tar zxvf <filename> into their own directories.  
  3.  Go into these dirs and run the command mvn clean install  

 

Wait for a BUILD SUCCESS message at the end. If something goes wrong, please notify the dev@ list by replying to the [DISCUSS] thread for the release candidate.

    1. folder> 1.9.2-rc1

 

Check that the expanded source archive matches contents of RC tag.

  1. Download the tag comparison script: https://dist.apache.org/repos/dist/dev/jclouds/compare_tarball_tag.sh
  2. Run it as: ./compare_tarball_tag.sh <path to the folder where all the tar files are>.
  3. Watch for differences.

...

Validate the Maven staging repos

1. On your local machine create a directory and a pom.xml file to download the release candidate JARs from the staging repo. In the [VOTE] thread look for the "Maven staging repos" section and replace the xxxx below with the value from the "Maven staging repos" section.  

Code Block
languagexml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <properties>
    <jclouds.version>1.6.3</jclouds.version>
  </properties>
  <groupId>org.apache.jclouds.examples<jclouds</groupId>
  <artifactId>jclouds-examples<staging</artifactId>
  <version>1.0</version>
  <dependencies>
    <dependency>
      <groupId>org.apache.jclouds</groupId>
      <artifactId>jclouds-all</artifactId>
      <version>${jclouds.version}</version>
    </dependency>
    <!-- Add any jclouds additional dependency here -->
  </dependencies>
  <profiles>
    <profile>
      <id>jclouds-staging</id>
        <repositories>
          <repository>
            <id>jclouds-staging</id>
            <url>https://repository.apache.org/content/repositories/orgapachejclouds-xxxx/</url>
          </repository>
        </repositories>
    </profile>
  </profiles>
</project>  

2. Run the command mvn clean -Pjclouds-staging dependency:copy-dependencies "-DoutputDirectory=./lib" -U to download the JARs to a lib directory.  

 

At the end of it you should have a simple directory structure like so.  

 

Code Block
languagebash
jclouds-1.69.3$2$ ls
lib/     pom.xml

With the lib directory full of jclouds JARs. You can now use these JARs to do things like run the jclouds-examples. If something goes wrong, notify the dev list.

 

Validate the signatures and checksums

1. Validate the signature  

 

See the Apache release signing guide - you'll need to import the KEYS file for jclouds, or the signer's key from people.apache.org before doing this. Check each tar.gz and .asc file in the release.  

 

2. Verify the checksums  

 

...