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.

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.

4) If the above are problems, would it be worth considering a patch for branch-20 that provides a client that is compatible with either, based on the datanode protocol version number of the server? It seems like a bit of
scary complexity, but wanted to throw it out there.

I would like Hairong to consider if she could fix the issue in 0.20 without the incompatible change. If it can not be done (or no one wants to do the work), we should vote whether the change should be made.

-- Owen

Reply via email to