My $0.02... Wire (client-server and server-server) compatibility is a must have. Binary compatibility should be a best effort. I.e. we shouldn't go out of our way to break things, but if we want to clean up an API we should do that. So much for 0.98.
Going forward... Once we go past version 1.0 and to semantic versioning this will need a bigger discussion. As discussed in the past there are at least four angles here: 1. Client-server wire compatibility 2. Server-server wire compatibility 3. Client binary compatibility 4. Server interface binary compatibility (for coprocessors) #4 is surprisingly important as it basically turns into a #1 problem when a project ships with coprocessors. Then we need to define compatibility rules for major/minor/patch versions. In the last PMC meeting we had a start on this. We need to finish the details. -- Lars ----- Original Message ----- From: Andrew Purtell <apurt...@apache.org> To: "dev@hbase.apache.org" <dev@hbase.apache.org> Cc: Sent: Monday, February 3, 2014 3:08 PM Subject: Binary API compatibility is not a requirement for any 0.98 release candidate If you would like to change this consensus now, we can do so, and add it as a release criterion. That would require undoing the comparator cleanups and related breaking changes that went in as HBASE-9245 and subtasks. So let's not. I am -1 on making a change like this late in the day, after we have already had two RCs and I am hoping to get a third out tomorrow. -- Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)