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