hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tsuna <tsuna...@gmail.com>
Subject Re: AsyncHBase 1.5.0-rc1 available for download and testing (HBase 0.96 compatibility inside)
Date Tue, 29 Oct 2013 17:27:52 GMT
On Tue, Oct 29, 2013 at 9:05 AM, Ted Yu <yuzhihong@gmail.com> wrote:
> If protoc 2.4.1 is installed on user's machine, the build artifact wouldn't
> be able to communicate with HBase 0.96.0

The Makefile checks that you have protoc 2.5, it's just doing this as
a hidden command:

$(PROTOBUF_GEN_DIR)/%PB.java: protobuf/%.proto
        @mkdir -p $(proto_generated_builddir)
        @case `$(PROTOC) --version` in \
          (*2.5*) :;; \
          (*) echo You need the protobuf compiler v2.5 2>&1; exit 1;; \
        esac
        $(PROTOC) -Iprotobuf --java_out=$(proto_generated_builddir) $<

So your build would fail if you were to use 2.4.1

The problem, however, isn't that if you were to use 2.4.1 you wouldn't
be able to communicate with HBase, since it's not the protobuf format
that changed between 2.4 and 2.5, but rather the API to protobufs.
Kind of ironic that for a format that helps maintaining wire
compatibility, they keep breaking API compatibility.  Oh well.

So AsyncHBase could use whatever protobuf version it wants, it
wouldn't matter as far as compatibility with HBase.

> Have you thought of putting the generated Java code in repo ?

Yes, and we won't be doing that.  Generated code doesn't belong in the
repository, except under rare circumstances.  Developers are expected
to have the right tools at their disposal.  If you have multiple
versions of protoc installed on your system, simply doing "make
PROTOC=path/to/protobuf-2.5.0/protoc" would do the trick.

-- 
Benoit "tsuna" Sigoure

Mime
View raw message