tl;dr should two compatible versions be considered both wire and binary compatible or just the former?
Hey devs, 0.92 is compatible with 0.94, meaning that you can run a client for either against the other and you can roll restart from 0.92 to 0.94. What about binary compatibility? Meaning, can you run user code compiled against 0.92 with 0.94's jars? Unfortunately, the answer is "no" in this case if you invoke setters on HColumnDescriptor as you'll get: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V HBASE-5357 "Use builder pattern in HColumnDescriptor" changed the method signatures by changing "void" to "HColumnDescriptor" so it' not the same methods anymore. I don't think we really had talks about binary compatibility before so this is why I'm raising it up now. Should "compatible" versions be just wire compatible or both wire and binary compatible? The latter means we need new tests. I think it should be both. What do you guys think? J-D
