On Jan 5, 2010, at 2:06 PM, Owen O'Malley wrote:
On Jan 5, 2010, at 11:29 AM, Todd Lipcon wrote:
> 1) Although we certainly do not guarantee wire compatibility between
> minor
> versions (0.20 -> 0.21) have we previously implied wire
compatibility
> between bugfix releases?
Correction. Pre-1.0, the 0.N to 0.N+1 is a major upgrade. After 1.0,
1.N to 1.N+1 is a minor. In both cases, X.Y.z to X.Y.z+1 is a patch
release.
I thought we had it documented somewhere, but can't find it. There is
some discussion of compatibility in HADOOP-5071 that should be pulled
out into a wiki page.
Hadoop-5071 documents the *proposed* post 1.0 rules quite well.
The standing rules are that you don't incompatibly break APIs or wire
protocols in patch release. So, this patch violates the rule and
should have had a vote called before it was applied to branch-0.20.
(And arguably branch-0.21, although since it hasn't been released, it
isn't nearly the same level or problem.
> 2) Is the above something we *should* be guaranteeing already?
Patch releases:
1. Must be backwards API compatible without a client recompile.
2. Must be on the wire compatible.
Exceptions require a vote of the committers. We should also put a
notice of any exceptions at the top of the release notes.
This is also my understanding of the current rules.
For patch releases, the current pre-1.0 rules and the *proposed*
post-1.0 rules in Hadoop-5071 are the same - no breakage of APIs or
wire protocol in a patch release.