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.
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 the verification script:
- Unix: https://dist.apache.org/repos/dist/dev/jclouds/verify_jclouds_rc.sh (if you're running this on a Mac, you'll need brew and to do a brew install gpg first).
- Windows: https://dist.apache.org/repos/dist/dev/jclouds/verify_jclouds_rc.cmd (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).
- Run it and watch for failures:
- Unix: ./verify_jclouds_rc.sh 1.9.2-rc1
- Windows: .\verify_jclouds_rc.cmd <dists-folder> 1.9.2-rc1
Check that the expanded source archive matches contents of RC tag.
- Download the tag comparison script: https://dist.apache.org/repos/dist/dev/jclouds/compare_tarball_tag.sh
- Run it as: ./compare_tarball_tag.sh <path to the folder where all the tar files are>.
- Watch for differences.
Validate the Maven staging repos
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.
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.
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.