Apache Thrift v0.15.0 Release Notes
-
๐ Known Open Issues (Blocker or Critical)
- โ THRIFT-3877 - C++: library don't work with HTTP (csharp server, cpp client; need cross test enhancement)
โ Removed Languages
- ๐ THRIFT-5229 - ActionScript 3 support dropped
- ๐ THRIFT-5347 - Haskell support dropped
๐ฅ Breaking Changes
- THRIFT-5381 - possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
- ๐ THRIFT-5396 - deprecate netstd "Async" method postfix
- THRIFT-5453 - go: NewTSocketConf and NewTSSLSocketConf no longer return an error
AS3
- ๐ THRIFT-5229 - Deprecate/remove ActionScript 3 support
๐ Build Process
- ๐ THRIFT-5334 - version of thrift-maven-plugin is not sync with the main project
- ๐ท THRIFT-5394 - AppVeyor CI tries to download outdated cmake
- THRIFT-5429 - build: autotools: add foreign to AM_INIT_AUTOMAKE
C glib
- ๐ THRIFT-5244 - Dynamic exception specifications are deprecated in C++11[-Wdeprecated]
- THRIFT-5265 - Add the zlib transport to c_glib
- THRIFT-5399 - Fix socket leak in abnormal situation
- THRIFT-5421 - Fix the problem of incorrect setting of errno in some files
C++
- ๐ THRIFT-5341 - Fix Old-Style-Cast, Missing override and Possible noexcept
- ๐ THRIFT-5342 - Apply 'noexcept' attribute to Init/Copy/Move Constructors and Assignments
- THRIFT-5355 - Do not rely on compiler and check boundaries
D language
- ๐ THRIFT-4303 - D deprecation warnings
- ๐ THRIFT-4979 - Still D deprecation warnings about std.datetime.* in current master
- ๐ THRIFT-5376 - Fix deprecation warnings in D library
Dart
- โก๏ธ THRIFT-5285 - Update to dart 2, widen range on http package
Delphi
- ๐ THRIFT-5350 - 0.14.0 fails to build on non-x86
- THRIFT-5438 - Inconsistent handling of exceptions during message read vs. message write phase
- THRIFT-5384 - Improved error message for HTTP transports
- THRIFT-5385 - XML-HTTP client reports IsOpen=TRUE even if it is not
- THRIFT-5386 - XML-HTTP client may throw "max message size reached" incorrectly
- โ THRIFT-5387 - Improved and simplified Delphi test setup
- THRIFT-5390 - Named Pipes transport hardening
- ๐ THRIFT-5428 - Prevent costly reallocations to improve performance
- THRIFT-5437 - Make TProtocolImpl CTOR virtual
๐ Documentation
- THRIFT-5332 - Question: list all the reserved words in thrift doc
- โก๏ธ THRIFT-5348 - Update debian/copyright
Erlang
- ๐ THRIFT-5377 - Remove Erlang R16 support
Go
- THRIFT-5337 - Go set fields write improvement
- THRIFT-5353 - Namespace from type is ignored in generated code
- THRIFT-5358 - Add go.mod file(s)
- ๐ฐ THRIFT-5369 - Malformed payload can still cause huge allocations
- THRIFT-5389 - Thrift compiler generates uncompilable go code around optional constants
- โฑ THRIFT-5404 - TTransportException.Timeout would correctly return true when it's connect timeout during TSocket.Open call
- ๐ THRIFT-5447 - Update supported Go versions before 0.15.0 release
- THRIFT-5453 - go: NewTSocketConf should not call net.ResolveTCPAddr
- ๐ป THRIFT-5459 - Adding a new exception to an endpoint is kinda breaking in go
- โฑ THRIFT-5453 - Defer DNS lookups from NewTSocketConf (without any timeout check) to TSocket.Open (subject to ConnectTimeout set in TConfiguration)
- THRIFT-5459 - Client calls will return TApplicationException with MISSING_RESULT when the result is a struct but is unset, and no other error is known.
Haskell
- ๐ THRIFT-5347 - Deprecate Haskell bindings
Haxe
- THRIFT-5370 - Haxe 4 compatibility
- THRIFT-5381 - possible collisions at VOID type with some 3rd-party libraries on Haxe cpp targets
- THRIFT-5393 - Incorrect namespaces for included types
- ๐ฆ THRIFT-3036 - create official haxelib Thrift package
- THRIFT-5413 - Int vs String in method get_size required by property size
Java
- โ THRIFT-5375 - Put org.apache.tomcat.embed:tomcat-embed-core into scope test
- THRIFT-5383 - TJSONProtocol Java readString throws on bounds check
- ๐ฆ THRIFT-5400 - Java library does not export the .annotation package
- ๐ป THRIFT-5425 - Throw an exception when reading TSimpleJson in Java
- ๐ THRIFT-5430 - FieldMetaData synchronized method can trigger deadlock during static class initialization in JVM native code
- THRIFT-5432 - TSaslTransport throw TTransportException of MaxMessageSize reached
- THRIFT-5433 - Add Counter To Thread Name of TThreadPoolServer
JavaScript
- THRIFT-3508 - JS:TS Generator set all fields of the struct as required
Lua
- 0๏ธโฃ THRIFT-5417 - Fix Lua compiler omitting default values in Lua service functions
- ๐ THRIFT-5439 - Lua Generator does not support const i64
netstd
- โ THRIFT-5354 - disable IDE0083 warning
- 0๏ธโฃ THRIFT-5382 - Netstd default list/set enums values are generated incorrectly in some cases
- THRIFT-5395 - inconsistent treatment of methods ending in "Async"
- ๐ THRIFT-5396 - deprecate "Async" method postfix
- ๐ THRIFT-5408 - Support for deprecated methods (via annotation)
- THRIFT-5414 - Use of specific parameter names generates uncompileable code
- THRIFT-5442 - Separate client service calls into send/recv methods and make them public
- THRIFT-5444 - Netstd generator produces uncompileable code for enums ending with "_result" or "_args"
- THRIFT-5445 - "cancellationToken" cannot be used as argument name
- โฑ THRIFT-5236 - THttpTransport.cs still has bad timeout code
- ๐ THRIFT-5349 - Add net5.0 as supported platform
- THRIFT-5373 - HTTP status in case of Protocol/Transport exceptions
- THRIFT-5391 - Named pipes transport hardening
- THRIFT-5398 - ThreadPoolServer not stoppable via CancellationToken
- ๐ THRIFT-5407 - Keep support for .NET Core 3.1
- ๐ THRIFT-5419 - Incorrect usage of thread pool in TThreadPoolAsyncServer may lead to poor performance
- โ THRIFT-5422 - add threadpool server to netstd test suite impl
- THRIFT-5431 - Response should include 'content-type' header
- 0๏ธโฃ THRIFT-5436 - Timeout.Infinite is not a good default
PHP
- THRIFT-5318 - PHP 8 compatible version of binary protocol
- THRIFT-5440 - Add php8 to composer.json
Python
- THRIFT-5352 - Python: IDL exceptions with no fields can't be instantiated
๐ Ruby
- ๐ง THRIFT-5312 - The Ruby compilation configuration in the .gemspec file is modified to be compatible with later bundler versions.
- ๐ THRIFT-5367 - Ruby library crashes when using GC.compact
Rust
- ๐ THRIFT-4098 - Support user-defined output namespaces in generated Rust modules
- THRIFT-4101 - Make auto-generated Rust enums and unions more user-extensible
- THRIFT-5314 - Enum forward compatibility
- THRIFT-5363 - All-caps constant rendered incorrectly