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

Reply via email to