Allen,

You've summarized what I wanted to say even better than I could (and
believe me I tried!).

I really appreciate you taking the time to read and being receptive of my
feedback.

Thanks for personally committing to taking it into account in the future.

Thrift is a great project and I would like to see it continue to thrive.

-Renan



On Thu, Apr 5, 2018 at 7:33 PM, Allen George <allen.geo...@gmail.com> wrote:

> Hi Renan - thanks for reaching out. Note that my comments are personal, and
> I'm in no way speaking for the project or its members.
>
> I think your comments can be summarized as follows:
>
> 1. Breaking changes are made between releases without enough communication
> 2. Changes are made without soliciting feedback from the community
> 3. It's hard to understand what has changed from release to release
> 4. In this specific instance, the repo change was not communicated to the
> user list
>
> On the git issue specifically: personally, unless I work day-to-day with a
> language I forget its idiosyncrasies. For example, while I work with Go off
> and on, and it totally slipped my mind that imports are tied to actual repo
> locations. So, what I thought of as an infrastructure-only change turned
> into a larger issue. Second, I can say that what's considered a breaking
> change can be a little murky, especially when dealing with code-generation.
> There is, as you know, a cost to adding switches and introducing additional
> code paths in the thrift compiler. And, sometimes, what seems like an
> innocuous change can be depended on by downstream users. This is of course
> tougher when you're dealing with many languages, each with their individual
> cadences.
>
> That said, I've taken your point about communication to heart, and, for the
> languages I work on, will make it a priority to:
>
> - keep a changelog
> - solicit feedback from the user list when changing type details etc. wrt.
> generated code.
>
> I appreciate your using Thrift, and sending this mail.
>
> Best,
> Allen
>
>
>
> ---
>
> Terminal Musings: http://www.allengeorge.com/
> Twitter: https://twitter.com/allenageorge/
> Raft in Java: https://github.com/allengeorge/libraft/
> Thrift Rust Bindings: https://thrift.apache.org
>
> On Thu, Apr 5, 2018 at 1:03 PM, Renan DelValle <re...@apache.org> wrote:
>
> > 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 (
> git.apache.org/thrift.git)
> > 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
> > git.apache.org/thrift.git 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
> > project.
> >
> > -Renan
> >
> > [1] http://mail-archives.apache.org/mod_mbox/thrift-dev/201804.mbox/%
> > 3CCAHJqfcLgVZ0JKX2RGRvKkk5ksG9wfjigsscMbwjqmuXwvMPT1A%40mail.gmail.com
> %3E
> > [2] https://github.com/apache/thrift/blob/master/CHANGES
> > [3] https://github.com/apache/thrift/pull/976
> > [4] https://github.com/apache/thrift/pull/1156
> > [5] https://github.com/apache/thrift/pull/1459
> > [6] https://issues.apache.org/jira/browse/THRIFT-4261
> > [7] https://issues.apache.org/jira/browse/THRIFT-4453
> > [8] http://mail-archives.apache.org/mod_mbox/thrift-dev/201803.mbox/%
> > 3CCY4PR2001MB1045B65EB761CD015624C5FAC8AA0%40CY4PR2001MB1045.namprd20.
> > prod.outlook.com%3E
> > [9] https://issues.apache.org/jira/browse/THRIFT-4542
> >
>

Reply via email to