This project will test the binary compatibility of Cascading with differing releases of an underlying platform.
Cascading 2.1 is currently built and published against Apache Hadoop 1.0.x. So is fully tested with that Apache release.
This suite allows other distributions to be verified as being compatible with the current Cascading release as available through Maven and through other tools apart of the Cascading ecosystem.
To see the current results, visit the Cascading Compatibility page.
See the FAQ, included in this project, for more information.
Cascading is built against a target set of dependencies and made available through the Conjars.org Maven repository.
In the case of Apache Hadoop, and likely any future platforms, there are multiple stable releases, many of which are API backwards compatible, but not necessary binary backwards compatible.
A recompile of Cascading across each release should not be necessary. This test suite is intended to help identify which platform release is not compatible with a current Cascading stable release.
To execute all tests across all platforms, install Gradle 1.0 and execute:
> gradle testAny non-Apache Haddoop distribution may fork this project and add a sub-project specific to the vendor distribution.
To add a sub-project, copy one of the current Apache sub-projects to a new directory named after the new distribution. For example,
> cp -R apache-0.20.2 vendor-1.0Update the setting.gradle to include the new directory.
> echo "include 'vendor-1.0'" >> settings.gradleThen make the necessary changes in the vendor-1.0/build.gradle file. For example, pointing to a different
Maven repository, and updating the Gradle Maven dependencies.
The line loading the hadoop-settings.gradle settings should not be changed.
When updated, to run the tests, call:
> gradle :vendor-1.0:test -i > gradle -Dtest.single=CoGroupFieldedPipesPlatformTest :apache-0.20.2:test -iNote that -i allows you to see the tests running and is quite useful when calling just the test target.
This will create an .iml file for each sub-project:
> gradle ideaModule