thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Renan DelValle <>
Subject Feedback from a maintainer of a project using the go thrift bindings
Date Thu, 05 Apr 2018 17:03:45 GMT
Hi all,

I'm a PMC of Apache Aurora, which uses Thrift. As part of my job, I
maintain separate (from the apache project) thrift go bindings in order to
interact with Aurora.

Yesterday, I had team members unable to compile my project because,
suddenly, the Apache git repository for Thrift (
went missing.

It took me far too long to find that there was a vote to move from this
location that was originally taking place in private@[1] (which Jake
Ferrell thankfully addressed).
No official announcements were made as far as I can tell.

This lack of communication isn't new as I'm continuously finding out (by
reading the commit log) about changes that cause breakage between code
generated by newer versions of Thrift and my codebase.

Taking a look at the thrift/CHANGES[2] for example, the changes for version
0.11.0 are not even listed. At the very least there should be release notes
warning users about breaking changes.

In the past two versions of thrift, three changes broke backwards
compatibility for go:

* In version 0.10.0, the way sets are represented was changed[3].

* In version 0.11.0, the way sets are represented was changed again[4] and
context generation was added[5].

These created a ton of work for project maintainers to move from one
version to another.

When a user brought up the addition of context as breaking change[6], I was
disappointed to see maintainers seemingly dismiss his concerns instead of
working to find a solution. For example, one solution is that this change
could have been set behind a flag, allowing the user the flexibility to
turn it off. (In fact, I created a JIRA issue to that end a while ago [7].)

I understand there is sometimes no way around making breaking changes
between versions, but the lack of communication, and the seeming lack of
concern for changing the generation in a way that breaks existing projects,
without publicly exploring alternatives, makes it difficult to advocate for
using Thrift for go based projects.

Now that the location of the git repository changed, code generation is
broken because all generated files try to import from forcing users to upgrade or to use dependency
management capable of changing the source of this repository.

This change is incredibly impactful, even to users dependent on older
releases, so I'm curious about why this change was not communicated on the
user@ list? Further, why is it not listed anywhere on the website or
repository that this is happening? And finally, why were the side-effects
of this change not considered in the voting discussion[8]?

Unfortunately, the list of users affected by this latest change will only
continue to grow [9].

As a user who depends on the go Thrift library, the current situation is
unacceptable, and I'm offering my help to alleviate these issues if it's
required (and welcomed), but this should not go on any longer. Engagement
with the community is a must. Not doing so is bad for users,  is bad for
adoption rates, and is unhealthy for the project.

My hope is that this feedback is taken as constructive criticism and is in
no way meant to attack the project. I'm a volunteer as well, and I greatly
appreciate the effort and time maintainers and contributors put into this



  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message