Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # user - AsyncHBase 1.5.0-rc1 available for download and testing (HBase 0.96 compatibility inside)


Copy link to this message
-
Re: AsyncHBase 1.5.0-rc1 available for download and testing (HBase 0.96 compatibility inside)
tsuna 2013-10-29, 17:27
On Tue, Oct 29, 2013 at 9:05 AM, Ted Yu <[EMAIL PROTECTED]> 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