On Mar 10, 2015, at 12:40 PM, Karthik Kambatla <ka...@cloudera.com> wrote:
> > Are we okay with breaking other forms of compatibility for Hadoop-3, like > behavior, dependencies, JDK, classpath, environment? I think so. Are we > okay with breaking these forms of compatibility in future Hadoop-2.x? > Likely not. Does our compatibility policy allow these changes in 2.x? > Mostly yes, but that is because we don't have policies for a lot of these > things that affect end-users. I’d disagree with that last statement. The compatibility guarantees in Compatibility.md covers all of these examples. Changing the JDK: * Build Artifacts * Hardware/Software Requirements * Hadoop ABI API compatibility: * Java API * Build artifacts * Hadoop ABI Wire compatibility violations: * Wire compatibility * Hadoop ABI Environment: * Depends upon what is meant by that, but it’s pretty much all of the above, plus CLI, env var, etc. All of these are very clear that this stuff should change in a major version only in order not to disrupt our users. The only one we can change are dependencies, covered under class path: "Currently, there is NO policy on when Hadoop's dependencies can change.” But it is heavily implied that this is a bad thing to do: "Adding new dependencies or updating the version of existing dependencies may interfere with those in applications' class paths."