Hi folks, Apache Thrift 0.12.0 has been released. The site thrift.apache.org is still being updated, but you can download source tarballs and a statically linked windows thrift executable from the GitHub release page, which contains a link to all of the release notes as well:
https://github.com/apache/thrift/releases/tag/v0.12.0 One change we made during this process is that our build tag now begins with a "v" prefix, in this case "v0.12.0". This allows thrift to be compatible with some third party package managers. We're working hard to automate the release processes. In the meantime we have been able to simultaneously release thrift 0.12.0 to more package managers than ever before! See: - [dart] *NEW* (now 0.12.0) https://pub.dartlang.org/packages/thrift - [dlang] *NEW* (now 0.12.0) https://code.dlang.org/packages/apache-thrift - [npmjs] (0.11.0 still) https://www.npmjs.com/package/thrift - [perl] (now 0.12.0-1) https://metacpan.org/release/Thrift - [php] (0.11.0 still) https://packagist.org/packages/apache/thrift - [pypi] (0.11.0 still) https://pypi.org/project/thrift - [rust] (now 0.12.0) https://crates.io/crates/thrift Note that as part of the 0.12.0 release we have deprecated: * cocoa (use swift instead) * C++03 (thrift 0.12.0 is the last release that will support 0.12.0 - why? THRIFT-4441 describes removing all boost dependencies from the C++ runtime library, and using C++11 standards. This will simplify downstream package management so as to not require a boost and non-boost C++ library distribution.) We're still looking for folks who are interested in being language experts for thrift. We have a number of languages with little representation on the current committer team. If you are passionate about a particular language and you want to see thrift available and grow in capability and stability for that language, please visit the Apache Thrift Jira <https://issues.apache.org/jira/projects/THRIFT/issues> site and look for open issues for your language in the THRIFT project. Get involved! Submit pull requests. Your work will not go unnoticed. The following late-breaking issues were discovered in the 0.12.0 release that were not resolved in the 0.12.0 branch. This may not be a comprehensive list - it is only what we know of: - [dart] the license file in lib/dart was not named correctly to work with dart pub however this was corrected before `pub publish`. This change will be pulled into master but it is not in the 0.12.0 tag. - [perl] the module version was set to 'v0.12.0_0' instead of 'v0.12.0' however this was corrected in the CPAN upload. This change does not affect master. It will not affect usage. - [swift] the Thrift.podspec "s.source:tag" specified '0.12.0' instead of 'v0.12.0' - [swift] the Thrift-swift3.podspec "s.source:tag" specified '0.12.0' instead of 'v0.12.0' The master branch hasn't been updated with the final manual merge of the 0.12.0 release notes (in the top level file called CHANGES) and other issues identified and fixed in 0.12.0 as part of the release - this will happen shortly. As part of the release process there have been a couple long-standing release issues that have been identified for correction: 1. The master branch has always had a version of "1.0.0-dev", however as we approach actually having a "1.0.0" release this will not be sustainable. 2. The release branches are incorrectly named (they do not have a prefix of "release/" and it is impossible to merge the release branches back into master. To prepare for the eventual 1.0.0 release and to resolve the inability to merge release branches back into master, the master branch will now contain the version number of the next scheduled release. Before a release branch is cut, master will be set to the release number being cut, and then a release branch will be created. If changes are needed to stabilize the release branch, they can be merged back into master easily. After the release, the version numbers on the master branch will be bumped again. This resolves these two long-standing release issues. As we make improvements we're moving towards more timely releases. To date the Apache Thrift project has been releasing approximately one update yearly. In 2019 we will aim to have two releases - one in the Summer and one in the Winter. In 2020, we will aim to have four releases, one per quarter. This will force us to automate some of the pain points of the release cycle, which is a good thing. I'm very proud of the project and community and our ability to innovate. If you look at the history of the Apache Thrift project and the number of languages supported, it's nothing short of amazing: 2007 - Facebook releases thrift to open source 2008 - Thrift enters the Apache Incubator, version 0.2.0, 10 languages 2010 - Thrift becomes an Apache Top Level Project, version 0.6.0, 17 languages 2015 - Thrift releases 0.9.3 with 20 languages supported 2018 - Thrift releases 0.12.0 with 28 languages supported Over the past year we have drained the long backlog of pull requests from 120 open requests down to just 12! I'd like to thank all the folks who submitted pull requests and all the committers who have moved these issues to completion. Without you none of this would have been possible. Thanks, Jim King, PMC Member, Apache Thrift