On Mar 10, 2015, at 12:40 PM, Karthik Kambatla <[email protected]> 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."