Apache Thrift v0.10.0 Release Notes

Release Date: 2017-01-06 // over 7 years ago
  • πŸ› Bug

    • THRIFT-1840 - Thrift Generated Code Causes Global Variable Leaks
    • 🚚 THRIFT-1828 - moc_TQTcpServer.cpp was removed from source tree but is in thrift-0.9.0.tar.gz
    • THRIFT-1790 - cocoa: Duplicate interface definition error
    • THRIFT-1776 - TPipeServer should implement "listen", so that TServerEventHandler preServe will work right
    • THRIFT-1351 - Compiler does not care about binary strings
    • THRIFT-1229 - Python fastbinary.c can not handle unicode as generated python code
    • THRIFT-749 - C++ TBufferedTransports do not flush their buffers on delete
    • THRIFT-747 - C++ TSocket->close calls shutdown breaking forked parent process
    • THRIFT-732 - server exits abnormally when client calls send_xxx function without calling recv_xxx function
    • THRIFT-3942 - TSSLSocket does not honor send and receive timeouts
    • THRIFT-3941 - WinXP version of thrift_poll() relies on undefined behavior by passing a destructed variable to select()
    • THRIFT-3940 - Visual Studio project file for compiler is broken
    • THRIFT-3943 - Coverity Scan identified some high severity defects
    • THRIFT-3929 - PHP "nsglobal" Option Results in Syntax Error in Generated Code (Trailing Backslash)
    • πŸ–¨ THRIFT-3936 - Cannot compile 0.10.0 development tip with VS2013 and earlier (snprintf, uint32_t)
    • THRIFT-3935 - Incorrect skipping of map and set
    • πŸ’Ž THRIFT-3920 - Ruby: Ensuring that HTTP failures will clear the http transport outbuf var
    • THRIFT-3919 - C# TTLSServerSocket does not use clientTimeout
    • THRIFT-3917 - Check backports.ssl_match_hostname module version
    • πŸ— THRIFT-3909 - Fix c_glib static lib CMake build
    • THRIFT-3904 - Typo in node tutorial leads to wrong transport being used
    • THRIFT-3848 - As an implementer of a perl socket server, I do not want to have to remember to ignore SIGCHLD for it to work properly
    • THRIFT-3844 - thrift_protocol cannot compile in 7.0.7
    • THRIFT-3843 - integer issues with Haxe PHP targets cause ZigZag encoding to fail
    • THRIFT-3842 - Dart generates incorrect code for a const struct
    • THRIFT-3841 - dart compact protocol incorrectly serializes/deserialized doubles
    • THRIFT-3708 - NameError: global name 'TProtocol' is not defined
    • THRIFT-3704 - "TConnectedClient died: Could not refill buffer" message shown when using HTTP Server
    • THRIFT-3678 - Fix javadoc errors on JDK 8
    • πŸ‘ THRIFT-3014 - AppVeyor support
    • THRIFT-2994 - Node.js TJSONProtocol cannot be used for object serialization.
    • THRIFT-2974 - writeToParcel throws NPE for optional enum fields
    • THRIFT-2948 - Python TJSONProtocol doesn't handle structs with binary fields containing invalid unicode.
    • THRIFT-2845 - ChildService.Plo: No such file or directory
    • THRIFT-3276 - Binary data does not decode correctly using the TJSONProtocol when the base64 encoded data is padded.
    • βœ… THRIFT-3253 - Using latest version of D gives deprecation notices
    • THRIFT-2883 - TTwisted.py, during ConnectionLost processing: exceptions.RuntimeError: dictionary changed size during iteration
    • THRIFT-2019 - Writing on a disconnected socket on Mac causes SIG PIPE
    • THRIFT-2020 - Thrift library has some empty files that haven't really been deleted
    • 🏁 THRIFT-2049 - Go compiler doesn't build on native Windows
    • THRIFT-2024 - TServer.cpp warns on 64-bit platforms about truncating an rlim_t into an int
    • 🏁 THRIFT-2023 - gettimeofday implementation on Windows errors when no time zone is passed in.
    • THRIFT-2022 - CoB and dense code generation still uses TR1 bind, even though that doesn't work with clang
    • THRIFT-2027 - Minor 64-bit and NOMINMAX issues in C++ library
    • THRIFT-2156 - TServerSocket::listen() is throwing exceptions with misleading information
    • THRIFT-2154 - Missing <operator body
    • THRIFT-2148 - TNonblockingMultiFetchClient imports log4j
    • πŸ‘ THRIFT-2103 - [python] Support for SSL certificates with Subject Alternative Names
    • THRIFT-1931 - Sending a frame size of zero to a TNonblockingServer causes an assertion failure
    • THRIFT-1751 - definition of increase_max_fds doesn't compile when HAVE_SYS_RESOURCE_H is not defined
    • THRIFT-1522 - TServerSocket potential memory leak with addrinfo *res0
    • πŸ— THRIFT-1547 - Problems building against static libevent
    • THRIFT-1545 - Generated javascript code uses "for in" for looping over arrays
    • THRIFT-1487 - Namespace problem, compile fails on generated code
    • πŸ”§ THRIFT-1472 - Configuration conflicts with boost platform include header
    • THRIFT-6 - Thrift libraries and compiler lack version number
    • THRIFT-1680 - make install requires GNU make
    • πŸ— THRIFT-3869 - Dart Tutorial build fails with Error 65 at "pub get"
    • πŸ— THRIFT-3861 - Travis CI builds are timing out - C++TServerIntegrationTest appears to be hanging
    • THRIFT-3855 - In the go simple server, if Stop() is called multiple times it hangs
    • THRIFT-3885 - PHP: Error when readI64 in TCompactProtocol
    • βœ… THRIFT-3883 - Go TestAllConnection can fail with port 9090 collision
    • THRIFT-3884 - Fix Erlang compact protocol double endianess and boolean list
    • THRIFT-3880 - Erlang Compact protocol - boolean values inverted
    • THRIFT-3879 - Undefined evaluation order causes incorrect processing in the C++ library JSON protocol
    • THRIFT-3851 - Golang thrift continually adds the x/thrift content type
    • πŸ— THRIFT-3850 - All apache builds are failing when initiated from a github pull request
    • πŸ— THRIFT-3837 - Thift 0.9.3 can't be build with QuickCheck 2.8.2 and unordered-containers 0.2.6
    • πŸ— THRIFT-3831 - build of test/cpp/src/TestClient.cpp fails with newer gcc on platforms with unsigned char due to narrowing conversions
    • THRIFT-3827 - php CompactProtocol readI64 function has bug, when value has 32bit ~64bit, Example:value=1461563457000
    • βœ… THRIFT-3825 - Javascript test dependency is no longer available
    • βœ… THRIFT-3814 - Fix contention in TNonblockingServerTest
    • πŸ— THRIFT-3793 - Appveyor builds reference an ant version that is no longer there
    • THRIFT-3786 - Node.js TLS emits 'connect' before connection is ready
    • THRIFT-3780 - Fix dart int64 usage when compiled to js
    • THRIFT-3789 - Node.js lacks ability to destroy connection
    • πŸ“¦ THRIFT-3796 - There's no --dbg for dh_strip, maybe someone has mistaken this for --dbg-package.
    • THRIFT-3795 - Generated hashValue method in Swift will overflow
    • ⏱ THRIFT-3790 - Fix Delphi named pipe client to use timeout even when pipe doesn't yet exist
    • THRIFT-3787 - Node.js Connection object doesn't handle errors correctly
    • THRIFT-3791 - Delphi pipe client may fail even in a non-error condition
    • THRIFT-3771 - TBufferedTransport gets in invalid state on read/write errors
    • THRIFT-3764 - PHP "make install" does not install TMultiplexedProtocol.php nor TSimpleJSONProtocol.php
    • THRIFT-3768 - TThreadedServer may crash if it is destroyed immediately after it returns from serve(); TThreadedServer disconnects clients
    • THRIFT-3765 - memory leak in python compact protocol extension
    • THRIFT-3758 - TApplicationException::getType and TProtocolException::getType should be const
    • πŸ’» THRIFT-3763 - Fix serialization of i64 larger than 253 for browserify
    • THRIFT-3759 - required fields that are nil are silently ignored on write
    • THRIFT-3753 - TServerFramework::stop may fail to interrupt connected clients
    • 🏁 THRIFT-3755 - TDebugProtocol::writeString hits assert in isprint on Windows with debug CRT
    • THRIFT-3751 - Compiler allows field ids that are too large for generated code
    • THRIFT-3748 - Node.js Deserialization of lists of lists is broken
    • πŸ“¦ THRIFT-3760 - Fix install paths etc of debian packages for py and perl
    • 🏁 THRIFT-3757 - Fix various build warnings on Windows with VS2015 compiler
    • THRIFT-3750 - NSCopying copyWithZone: implementation does not check isSet
    • πŸ— THRIFT-3747 - Duplicate node.js build on Travis-CI
    • THRIFT-3744 - The precision should be 17 (16 bits need after dot) after dot for double type.
    • βœ… THRIFT-3741 - haxe test is broken
    • πŸ—„ THRIFT-3739 - Deprecation warning in codegen/base.d
    • πŸ‘» THRIFT-3735 - JSON protocol left in incorrect state when an exception is thrown during read or write operations
    • THRIFT-3734 - To compare two string as lowercase.
    • πŸ‘» THRIFT-3743 - Java JSON protocol left in incorrect state when an exception is thrown during read or write operations
    • βœ… THRIFT-3731 - Perl multiplex test is flaky
    • THRIFT-3729 - Restrict rake version
    • THRIFT-3727 - Incorrect require paths in Node.js tutorial
    • THRIFT-3723 - Fix Lua include path
    • 🐧 THRIFT-3722 - Fix cert path in C++ cross tests for non-Linux platform
    • THRIFT-3726 - Fix incorrect conditional in TMultiplexedProcessor.py
    • βœ… THRIFT-3725 - Skip a flaky cross test entry (d-dart compact framed-ip)
    • THRIFT-3724 - Fix incorrect timeval conversion in libevent.d
    • πŸ‘― THRIFT-3721 - CLONE - why not add unicode strings support to python directly?
    • THRIFT-3720 - TTcpSocketStreamImpl.Read() returns 0 if not all requested bytes could be read
    • THRIFT-3719 - Dart generator should use lowerCamelCase for service names
    • THRIFT-3902 - TSocket.open throws NullPointerException
    • THRIFT-3901 - TFramedTransport.open throws NullPointerException
    • THRIFT-3893 - Command injection in format_go_output
    • THRIFT-3807 - Swift compiler does not escape reserved words
    • THRIFT-3798 - THttpClient does not use proxy from http_proxy, https_proxy environment variables
    • THRIFT-3809 - wrong/unused BINARY type code
    • THRIFT-3806 - Swift generator does not handle self-referring structs
    • THRIFT-3805 - Golang server susceptible to memory spike from malformed message
    • THRIFT-3797 - Generated Delphi processor shouldn't error out on timed out exceptions
    • πŸ— THRIFT-3813 - Appveyor builds reference an openssl version that is no longer there
    • THRIFT-3658 - Missing file in THRIFT-3599
    • THRIFT-3649 - Python TSaslClientTransport initializes TTransportException incorrectly
    • THRIFT-3650 - incorrect union serialization
    • βœ… THRIFT-3713 - lib/d/test/thrift_test_runner.sh is flaky on Jenkins
    • THRIFT-3668 - range check error in compact protocol
    • πŸ— THRIFT-3663 - CMake cpp test fails to build on system without zlib
    • THRIFT-3712 - TTornadoServer cannot handle IPv6 address
    • THRIFT-3710 - Dart generator does not camel case Constants class names
    • THRIFT-3697 - Dart generator does not name imports
    • πŸ— THRIFT-3690 - Work around docker image build failures on Travis-CI
    • THRIFT-3689 - thrift_reconnecting_client start failed when server is not available
    • βœ… THRIFT-3695 - Fix D test scripts
    • THRIFT-3675 - Union is not serialized correctly by Thrift C Glib
    • πŸ‘» THRIFT-3673 - API fails with std::exception after a timeout occurred in earlier any API call
    • THRIFT-3709 - Comment syntax can produce broken code
    • THRIFT-3705 - Go map has incorrect types when used with forward-defined types
    • βœ… THRIFT-3702 - Fix cross tests for Dart compact protocol (3 failing)
    • THRIFT-3683 - BadYieldError in thrift py:tornado server
    • βœ… THRIFT-3682 - Do not reuse refused sockets in test scripts
    • πŸ— THRIFT-3681 - Fix Dart tutorial build
    • THRIFT-3680 - Java async processor fails to notify errors to clients
    • THRIFT-3714 - Thrift.TProtocolException is not defined in js/src/thrift.js
    • βœ… THRIFT-3688 - Fix socket bind failure detection of cross test
    • πŸ’Ž THRIFT-3641 - Ruby client should try to connect to every result of getaddrinfo
    • βœ… THRIFT-3635 - D transport_test is flaky on Jenkins and Travis
    • πŸ—„ THRIFT-3618 - Python TSSLSocket deprecation message should print caller's location
    • THRIFT-3145 - JSON protocol does not handle bool and empty containers correctly
    • THRIFT-3158 - TBase#deepCopy should return T
    • THRIFT-3157 - TBase signature should be TBase, F extends TFieldIdEnum>
    • THRIFT-3156 - Node TLS: server executes processing logic two full times
    • πŸ‘» THRIFT-3154 - tutorial/py.tornado throw EOF exception
    • πŸ— THRIFT-3063 - C++ build -Wunused-parameter warnings on processor_test, TransportTest
    • THRIFT-3056 - Add string/collection length limits for Python protocol readers
    • THRIFT-3237 - Fix TNamedPipeServer::createNamedPipe memory leak
    • 🚚 THRIFT-3233 - Fix C++ ThreadManager::Impl::removeWorker worker join
    • THRIFT-3232 - Cannot deserialize json messages created with fieldNamesAsString
    • πŸ— THRIFT-3206 - Fix Visual Studio build failure due 'pthread_self': identifier not found
    • THRIFT-3200 - JS and nodejs do not encode JSON protocol binary fields as base64
    • πŸ“‡ THRIFT-3199 - Exception field has basic metadata
    • πŸ‘» THRIFT-3182 - TFramedTransport is in an invalid state after frame size exception
    • THRIFT-2536 - new TSocket, uninitialised value reported by valgrind
    • THRIFT-2527 - Apache Thrift IDL Compiler code generated for Node.js should be jshint clean
    • THRIFT-2519 - "processor" class is not being generated
    • βœ… THRIFT-2431 - TFileTransportTest fails with "check delta < XXX failed"
    • πŸ‘ THRIFT-2708 - Erlang library does not support "oneway" message type
    • THRIFT-3377 - Deep copy is actually shallow when using typedef members
    • THRIFT-3376 - C# and Python JSON protocol double values lose precision
    • βœ… THRIFT-3373 - Various fixes for cross test servers and clients
    • THRIFT-3370 - errno extern variable redefined. Not compiling for Android
    • THRIFT-3379 - Potential out of range panic in Go JSON protocols
    • THRIFT-3371 - Abstract namespace Unix domain sockets broken in C++
    • ⬆️ THRIFT-3380 - nodejs: 0.9.2 -> 0.9.3 upgrade breaks Protocol and Transport requires
    • THRIFT-3367 - Fix bad links to coding_standards.md #634
    • THRIFT-3401 - Nested collections emit Objective-C code that cannot compile
    • THRIFT-3403 - JSON String reader doesn't recognize UTF-16 surrogate pairs
    • βœ… THRIFT-3362 - make check fails for C++ at the SecurityTest
    • THRIFT-3395 - Cocoa compiler produces corrupt code when boxing enums inside map.
    • THRIFT-3394 - compiler generates uncompilable code
    • THRIFT-3388 - hash doesn't work on set/list
    • βœ… THRIFT-3391 - Wrong bool formatting in test server
    • THRIFT-3390 - TTornado server doesn't handle closed connections properly
    • THRIFT-3382 - TBase class for C++ Library
    • THRIFT-3392 - Java TZlibTransport does not close its wrapper streams upon close()
    • ⚠ THRIFT-3383 - i64 related warnings
    • ⚠ THRIFT-3386 - misc. warnings with make check
    • THRIFT-3385 - warning: format β€˜%lu’ expects β€˜long unsigned int’, but has type β€˜std::basic_string::size_type {aka unsigned int}
    • πŸ“¦ THRIFT-3355 - npm WARN package.json [email protected] No license field.
    • βœ… THRIFT-3360 - Improve cross test servers and clients further
    • THRIFT-3359 - Binary field incompatibilities
    • THRIFT-3354 - Fix word-extraction substr bug in initialism code
    • THRIFT-3350 - Python JSON protocol does not encode binary as Base64
    • βœ… THRIFT-3577 - assertion failed at line 512 of testcontainertest.c
    • βœ… THRIFT-3576 - Boost test --log_format arg does not accept lowercase
    • THRIFT-3575 - Go compiler tries to use unexported library methods when using read_write_private
    • THRIFT-3574 - Cocoa generator makes uncompilable imports
    • 🚚 THRIFT-3570 - Remove duplicate instances that are added by upstream
    • βœ… THRIFT-3571 - Make feature test result browsable
    • THRIFT-3569 - c_glib protocols do not check number of bytes read by transport
    • THRIFT-3568 - THeader server crashes on readSlow
    • THRIFT-3567 - GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
    • βœ… THRIFT-3566 - C++/Qt: TQTcpServerTest::test_communicate() is never executed
    • πŸ‘» THRIFT-3564 - C++/Qt: potential core dump in TQTcpServer in case an exception occurs in TAsyncProcessor::process()
    • βœ… THRIFT-3558 - typos in c_glib tests
    • THRIFT-3559 - Fix awkward extra semi-colons with Cocoa container literals
    • πŸ”§ THRIFT-3555 - 'configure' script does not honor --with-openssl= for libcrypto for BN_init
    • THRIFT-3554 - Constant decls may lead to "Error: internal error: prepare_member_name_mapping() already active for different struct"
    • THRIFT-3552 - glib_c Memory Leak
    • πŸ“¦ THRIFT-3551 - Thrift perl library missing package declaration
    • THRIFT-3549 - Exceptions are not properly stringified in Perl library
    • THRIFT-3546 - NodeJS code should not be namespaced (and is currently not strict-mode compliant)
    • THRIFT-3545 - Container type literals do not compile
    • 🚚 THRIFT-3538 - Remove UnboundMethodType in TProtocolDecorator
    • THRIFT-3536 - Error 'char' does not contain a definition for 'IsLowSurrogate' for WP7 target
    • πŸ— THRIFT-3534 - Link error when building with Qt5
    • THRIFT-3533 - Can not send nil pointer as service method argument
    • THRIFT-3507 - THttpClient does not use proxy from http_proxy, https_proxy environment variables
    • THRIFT-3502 - C++ TServerSocket passes small buffer to getsockname
    • THRIFT-3501 - Forward slash in comment causes compiler error
    • THRIFT-3498 - C++ library assumes optional function pthread_attr_setschedpolicy is available
    • πŸ— THRIFT-3497 - Build fails with "invalid use of incomplete type"
    • πŸ’… THRIFT-3496 - C++: Cob style client fails when sending a consecutive request
    • 🏁 THRIFT-3493 - libthrift does not compile on windows using visual studio
    • ⚠ THRIFT-3488 - warning: unused variable 'program'
    • πŸ—„ THRIFT-3489 - warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    • πŸ‘ THRIFT-3487 - Full support for newer Delphi versions
    • ⚠ THRIFT-3528 - Fix warnings in thrift.ll
    • THRIFT-3527 - -gen py:dynamic,utf8strings ignores utf8strings option
    • THRIFT-3526 - Code generated by py:utf8strings does not work for Python3
    • πŸ—„ THRIFT-3524 - dcc32 warning "W1000 Symbol 'IsLowSurrogate' is deprecated: 'Use TCharHelper'" in Thrift.Protocol.JSON.pas
    • THRIFT-3525 - py:dynamic fails to handle binary list/set/map element
    • βœ… THRIFT-3521 - TSimpleJSONProtocolTest is not deterministic (fails when run on JDK 8)
    • THRIFT-3520 - Dart TSocket onError stream should be typed as Object
    • THRIFT-3519 - fastbinary does not work with -gen py:utf8strings
    • THRIFT-3518 - TConcurrentClientSyncInfo files were missing for Visual Studio
    • πŸ— THRIFT-3512 - c_glib: Build fails due to missing features.h
    • THRIFT-3483 - Incorrect empty binary handling introduced by THRIFT-3359
    • THRIFT-3479 - Oneway calls should not return exceptions to clients
    • βͺ THRIFT-3478 - Restore dropped method to THsHaServer.java
    • πŸ“œ THRIFT-3477 - Parser fails on enum item that starts with 'E' letter and continues with number
    • THRIFT-3476 - Missing include in ./src/thrift/protocol/TJSONProtocol.cpp
    • 🐳 THRIFT-3474 - Docker: thrift-compiler
    • πŸ‘€ THRIFT-3473 - When "optional' is used with a struct member, C++ server seems to not return it correctly
    • THRIFT-3468 - Dart TSocketTransport onError handler is too restrictive
    • THRIFT-3451 - thrift_protocol PHP extension missing config.m4 file
    • THRIFT-3456 - rounding issue in static assert
    • THRIFT-3455 - struct write method's return value is incorrect
    • THRIFT-3454 - Python Tornado tutorial is broken
    • πŸ— THRIFT-3463 - Java can't be disabled in CMake build
    • THRIFT-3450 - NPE when using SSL
    • THRIFT-3449 - TBaseAsyncProcessor fb.responseReady() never called for oneway functions
    • THRIFT-3471 - Dart generator does not handle uppercase argument names
    • THRIFT-3470 - Sporadic timeouts with pipes
    • THRIFT-3465 - Go Code With Complex Const Initializer Compilation Depends On Struct Order
    • THRIFT-3464 - Fix several defects in c_glib code generator
    • THRIFT-3462 - Cocoa generates Incorrect #import header names
    • 🚚 THRIFT-3453 - remove rat_exclude
    • THRIFT-3418 - Use of ciphers in ssl.wrap_socket() breaks python 2.6 compatibility
    • THRIFT-3417 - "namespace xsd" is not really working
    • THRIFT-3413 - Thrift code generation bug in Go when extending service
    • THRIFT-3420 - C++: TSSLSockets are not interruptable
    • THRIFT-3415 - include unistd.h conditionally
    • 🏁 THRIFT-3414 - #include in THeaderTransport.h breaks windows build
    • πŸ“¦ THRIFT-3411 - Go generates remotes with wrong package qualifiers when including
    • THRIFT-3430 - Go THttpClient does not read HTTP response body to completion when closing
    • THRIFT-3423 - First call to thrift_transport:read_exact fails to dispatch correct function
    • THRIFT-3422 - Go TServerSocket doesn't close on Interrupt
    • THRIFT-3421 - rebar as dependency instead of bundling (was: rebar fails if PWD contains Unicode)
    • βœ… THRIFT-3428 - Go test fails when running make check
    • THRIFT-3445 - Throwable messages are hidden from JVM stack trace output
    • THRIFT-3443 - Thrift include can generate uncompilable code
    • THRIFT-3444 - Large 64 bit Integer does not preserve value through Node.js JSONProtocol
    • βœ… THRIFT-3436 - misc. cross test issues with UTF-8 path names
    • πŸ“¦ THRIFT-3435 - Put generated Java code for fullcamel tests in a separate package/namespace
    • THRIFT-3433 - Doubles aren't interpreted correctly
    • πŸ— THRIFT-3437 - Mingw-w64 build fail
    • THRIFT-3434 - Dart generator produces empty name in pubspec.yaml for includes without namespaces
    • THRIFT-3408 - JSON generator emits incorrect types
    • ⏱ THRIFT-3406 - Cocoa client should not schedule streams on main runloop
    • THRIFT-3404 - JSON String reader doesn't recognize UTF-16 surrogate pair
    • THRIFT-3636 - Double precision is not fully preserved in C++ TJSONProtocol
    • βœ… THRIFT-3632 - c_glib testserialization fails with glib assertion
    • 🐧 THRIFT-3619 - Using Thrift 0.9.3 with googletest on Linux gcc 4.9 / C++11
    • πŸ— THRIFT-3617 - CMake does not build gv/xml generators
    • THRIFT-3615 - Fix Python SSL client resource leak on connection failure
    • βœ… THRIFT-3616 - lib/py/test/test_sslsocket.py is flaky
    • THRIFT-3643 - Perl SSL server crushes if a client disconnect without handshake
    • THRIFT-3639 - C# Thrift library forces TLS 1.0, thwarting TLS 1.2 usage
    • πŸ— THRIFT-3633 - Travis "C C++ - GCC" build was using clang
    • THRIFT-3634 - Fix Python TSocket resource leak on connection failure
    • ⚑️ THRIFT-3630 - Debian/Ubuntu install docs need an update
    • πŸ“œ THRIFT-3629 - Parser sets exitcode on errors, but generator does not
    • πŸ— THRIFT-3608 - lib/cpp/test/SecurityTest is flaky in jenkins Thrift-precommit build.
    • πŸ‘ THRIFT-3601 - Better conformance to PEP8 for generated code
    • THRIFT-3599 - Validate client IP address against cert's SubjectAltName
    • THRIFT-3598 - TBufferedTransport doesn't instantiate client connection
    • βœ… THRIFT-3597 - make check hangs in go tests
    • 0️⃣ THRIFT-3589 - Dart generator uses wrong name in constructor for uppercase arguments with defaults
    • THRIFT-3588 - Using TypeScript with --noImplicitAny fails
    • THRIFT-3584 - boolean false value cannot be transferred
    • THRIFT-3578 - Make THeaderTransport detect TCompact framed and unframed
    • THRIFT-3323 - Python library does not handle escaped forward slash ("/") in JSON
    • βœ… THRIFT-3322 - CMake generated "make check" failes on python_test
    • THRIFT-3321 - Thrift can't be added as a subdirectory of another CMake-based project
    • THRIFT-3314 - Dots in file names of includes causes dots in javascript variable names
    • πŸ’Ž THRIFT-3307 - Segfault in Ruby serializer
    • THRIFT-3309 - Missing TConstant.php in /lib/php/Makefile.am
    • THRIFT-3810 - unresolved external symbol public: virtual void __cdecl apache::thrift::server::TServerFramework::serve(void)
    • πŸ— THRIFT-3736 - C++ library build fails if OpenSSL does not surrpot SSLv3
    • THRIFT-3878 - Compile error in TSSLSocket.cpp with new OpenSSL [CRYPTO_num_locks]
    • βœ… THRIFT-3949 - missing make dist entry for compiler/cpp/test
    • THRIFT-449 - The wire format of the JSON Protocol may not always be valid JSON if it contains non-UTF8 encoded strings
    • THRIFT-162 - Thrift structures are unhashable, preventing them from being used as set elements
    • πŸ‘» THRIFT-3961 - TConnectedClient does not terminate the connection to the client if an exception while processing the received message occures.
    • πŸ— THRIFT-3881 - Travis CI builds are failing due to docker failures (three retries, and gives up)
    • THRIFT-3937 - Cannot compile 0.10.0 development tip with gcc-4.6.x
    • 0️⃣ THRIFT-3964 - Unsupported mechanism type ????? due to dependency on default OS-dependent charset
    • THRIFT-3038 - Use of volatile in cpp library
    • THRIFT-3301 - Java generated code uses imports that can lead to class name collisions with IDL defined types
    • THRIFT-3348 - PHP TCompactProtocol bool&int64 readvalue bug
    • THRIFT-3955 - TThreadedServer Memory Leak
    • THRIFT-3829 - Thrift does not install Python Libraries if Twisted is not installed
    • THRIFT-3932 - C++ ThreadManager has a rare termination race
    • THRIFT-3828 - cmake fails when Boost_INCLUDE_DIRS (and other variables passed to include_directories()) is empty
    • 🏁 THRIFT-3958 - CMake WITH_MT option for windows static runtime linking does not support the cmake build type RelWithDebInfo
    • ⏱ THRIFT-3957 - TConnectedClient does not disconnect from clients when their timeout is reached.
    • THRIFT-3953 - TSSLSocket::close should handle exceptions from waitForEvent because it is called by the destructor.
    • THRIFT-3977 - PHP extension creates undefined values when deserializing sets
    • THRIFT-3947 - sockaddr type isn't always large enough for the return of getsockname
    • πŸ‘· THRIFT-2755 - ThreadSanitizer reports data race in ThreadManager::Impl::addWorker
    • 🏁 THRIFT-3948 - errno is not the correct method of getting the error in windows
    • THRIFT-4008 - broken ci due to upstream dependency versioning break
    • πŸ“¦ THRIFT-3999 - Fix Debian & Ubuntu package dependencies
    • βœ… THRIFT-3886 - PHP cross test client returns 0 even when failing
    • πŸ— THRIFT-3997 - building thrift libs does not support new openssl

    πŸ“š Documentation

    • THRIFT-3867 - Specify BinaryProtocol and CompactProtocol

    Epic

    • THRIFT-3049 - As an iOS developer, I want a generator and library that produces Swift code
    • THRIFT-2336 - UTF-8 sent by PHP as JSON is not understood by TJsonProtocol

    πŸ‘Œ Improvement

    • πŸ‘ THRIFT-1867 - Python client/server should support client-side certificates.
    • πŸ‘ THRIFT-1313 - c_glib compact support
    • THRIFT-1385 - make install doesn't install java library in the setted folder
    • ⚑️ THRIFT-1437 - Update RPM spec
    • βœ… THRIFT-847 - Test Framework harmonization across all languages
    • THRIFT-819 - add Enumeration for protocol, transport and server types
    • THRIFT-3927 - Emit an error instead of throw an error in the async callback
    • THRIFT-3931 - TSimpleServer: If process request encounter UNKNOWN_METHOD, don't close transport.
    • 🏁 THRIFT-3934 - Automatically resolve OpenSSL binary version on Windows CI
    • THRIFT-3918 - Run subset of make cross
    • 🐳 THRIFT-3908 - Remove redundant dependencies from Dockerfile
    • πŸ— THRIFT-3907 - Skip Docker image build on CI when unchanged
    • THRIFT-3868 - Java struct equals should do identity check before field comparison
    • THRIFT-3849 - Port Go serializer and deserializer to dart
    • πŸ— THRIFT-2989 - Complete CMake build for Apache Thrift
    • THRIFT-2980 - ThriftMemoryBuffer doesn't have a constructor option to take an existing buffer
    • πŸ”¨ THRIFT-2856 - refactor erlang basic transports and unify interfaces
    • ⚑️ THRIFT-2877 - Optimize generated hashCode
    • βœ… THRIFT-2869 - JSON: run schema validation from tests
    • THRIFT-3112 - [Java] AsyncMethodCallback should be typed in generated AsyncIface
    • THRIFT-3263 - PHP jsonSerialize() should cast scalar types
    • THRIFT-2905 - Cocoa compiler should have option to produce "modern" Objective-C
    • THRIFT-2821 - Enable the use of custom HTTP-Header in the Transport
    • THRIFT-2093 - added the ability to set compression level in C++ zlib transport
    • THRIFT-2089 - Compiler ignores duplicate typenames
    • 🚚 THRIFT-2056 - Moved all #include config.h statements to #include
    • πŸ”§ THRIFT-2031 - Make SO_KEEPALIVE configurable for C++ lib
    • 🐎 THRIFT-2021 - Improve large binary protocol string performance
    • THRIFT-2028 - Cleanup threading headers / libraries
    • πŸ’… THRIFT-2014 - Change C++ lib includes to use style throughout
    • πŸ— THRIFT-2312 - travis.yml: build everything
    • THRIFT-1915 - Multiplexing Services
    • THRIFT-1736 - Visual Studio top level project files within msvc
    • πŸ— THRIFT-1735 - integrate tutorial into regular build
    • THRIFT-1533 - Make TTransport should be Closeable
    • 🚚 THRIFT-35 - Move language tests into their appropriate library directory
    • πŸ‘ THRIFT-1079 - Support i64 in AS3
    • πŸ’Ž THRIFT-1108 - SSL support for the Ruby library
    • ⚑️ THRIFT-3856 - update debian package deependencies
    • 🌐 THRIFT-3833 - haxe http server implementation (by embeding into php web server)
    • 🐎 THRIFT-3839 - Performance issue with big message deserialization using php extension
    • THRIFT-3820 - Erlang: Detect OTP >= 18 to use new time correction
    • πŸ— THRIFT-3816 - Reduce docker build duration on Travis-CI
    • THRIFT-3815 - Put appveyor dependency versions to one place
    • πŸ‘ THRIFT-3788 - Compatibility improvements and Win64 support
    • πŸ”§ THRIFT-3792 - Timeouts for anonymous pipes should be configurable
    • πŸ‘» THRIFT-3794 - Split Delphi application, protocol and transport exception subtypes into separate exceptions
    • THRIFT-3774 - The generated code should have exception_names meta info
    • πŸ— THRIFT-3762 - Fix build warnings for deprecated Thrift "byte" fields
    • πŸ“š THRIFT-3756 - Improve requiredness documentation
    • πŸ“¦ THRIFT-3761 - Add debian package for Python3
    • πŸ‘ THRIFT-3742 - haxe php cli support
    • ⏱ THRIFT-3733 - Socket timeout improvements
    • THRIFT-3728 - http transport for thrift-lua
    • THRIFT-3905 - Dart compiler does not initialize bool, int, and double properties
    • πŸ’Ž THRIFT-3911 - Loosen Ruby dev dependency version requirements
    • βœ… THRIFT-3906 - Run C# tests with make check
    • THRIFT-3900 - Add Python SSL flags
    • πŸ‘» THRIFT-3897 - Provide meaningful exception type based on WebExceptionStatus in case of timeout
    • THRIFT-3808 - Missing DOUBLE in thrift type enumeration
    • 🚚 THRIFT-3803 - Remove "file" attribute from XML generator
    • βœ… THRIFT-3660 - Add V4 mapped address to test client cert's altname
    • πŸ— THRIFT-3661 - Use https to download meck in erlang test build
    • πŸ”§ THRIFT-3659 - Check configure result of CMake on CI
    • πŸ‘ THRIFT-3667 - Add TLS SNI support to clients
    • THRIFT-3651 - Make backports.match_hostname and ipaddress optional
    • πŸ— THRIFT-3666 - Build D tutorial as part of Autotools build
    • 🐳 THRIFT-3665 - Add D libevent and OpenSSL to docker images
    • 🚚 THRIFT-3664 - Remove md5.c
    • 🐳 THRIFT-3662 - Add Haskell to debian docker image
    • βœ… THRIFT-3711 - Add D to cross language test
    • πŸ’… THRIFT-3691 - Run flake8 Python style check on Travis-CI
    • πŸ— THRIFT-3692 - (Re)enable Appveyor C++ and Python build
    • πŸ— THRIFT-3677 - Improve CMake Java build
    • βœ… THRIFT-3679 - Add stdout log to testBinary in Java test server
    • πŸ— THRIFT-3718 - Reduce size of docker image for build environment
    • THRIFT-3698 - [Travis-CI] Introduce retry to apt commands
    • THRIFT-3127 - switch -recurse to --recurse and reserve -r
    • THRIFT-3087 - Pass on errors like "connection closed"
    • πŸ‘ THRIFT-3240 - Thrift Python client should support subjectAltName and wildcard certs in TSSLSocket
    • βœ… THRIFT-3213 - make cross should indicate when it skips a known failing test
    • πŸ— THRIFT-3208 - Fix Visual Studio solution build failure due to missing source
    • THRIFT-3186 - Add TServerHTTP to Go library
    • THRIFT-2342 - Add FILE and LINE to Thrift C++ excpetions
    • THRIFT-3372 - Add dart generator to Visual Studio project
    • βœ… THRIFT-3366 - ThriftTest to implement standard return values
    • THRIFT-3402 - Provide a perl Unix Socket implementation
    • THRIFT-3361 - Improve C# library
    • THRIFT-3393 - Introduce i8 to provide consistent set of Thrift IDL integer types
    • πŸ‘ THRIFT-3339 - Support for database/sql
    • THRIFT-3565 - C++: T[Async]Processor::getEventHandler() should be declared as const member functions
    • THRIFT-3563 - C++/Qt: removed usage of macro QT_PREPEND_NAMESPACE as it isn't consequently used for all references to Qt types.
    • 🚚 THRIFT-3562 - Removed unused TAsyncProcessor::getAsyncServer()
    • THRIFT-3561 - C++/Qt: make use of Q_DISABLE_COPY() to get rid of copy ctor and assignment operator
    • THRIFT-3556 - c_glib file descriptor transport
    • βœ… THRIFT-3544 - Make cross test fail when server process died unexpectedly
    • THRIFT-3540 - Make python tutorial more in line with PEP8
    • THRIFT-3535 - Dart generator argument to produce a file structure usable in parent library
    • ✨ THRIFT-3505 - Enhance Python TSSLSocket
    • πŸ’… THRIFT-3506 - Eliminate old style classes from library code
    • 0️⃣ THRIFT-3503 - Enable py:utf8string by default
    • πŸ“¦ THRIFT-3499 - Add package_prefix to python generator
    • βœ… THRIFT-3495 - Minor enhancements and fixes for cross test
    • THRIFT-3486 - Java generated getFieldValue is incompatible with setFieldValue for binary values.
    • THRIFT-3484 - Consolidate temporary buffers in Java's TCompactProtocol
    • βœ… THRIFT-3516 - Add feature test for THeader TBinaryProtocol interop
    • βœ… THRIFT-3515 - Python 2.6 compatibility and test on CI
    • THRIFT-3514 - PHP 7 compatible version of binary protocol
    • 🐳 THRIFT-3469 - Docker: Debian support
    • THRIFT-3416 - Retire old "xxx_namespace" declarations from the IDL
    • THRIFT-3426 - Align autogen comment in XSD
    • πŸ— THRIFT-3424 - Add CMake android build option
    • THRIFT-3439 - Run make cross using Python3 when available
    • THRIFT-3440 - Python make check takes too much time
    • πŸ— THRIFT-3441 - Stabilize Travis-CI builds
    • THRIFT-3431 - Avoid "schemes" HashMap lookups during struct reads/writes
    • THRIFT-3432 - Add a TByteBuffer transport to the Java library
    • πŸ’… THRIFT-3438 - Enable py:new_style by default
    • THRIFT-3405 - Go THttpClient misuses http.Client objects
    • βœ… THRIFT-3614 - Improve logging of test_sslsocket.py
    • πŸ— THRIFT-3647 - Fix php extension build warnings
    • βœ… THRIFT-3642 - Speed up cross test runner
    • THRIFT-3637 - Implement compact protocol for dart
    • THRIFT-3613 - Port Python C extension to Python 3
    • THRIFT-3612 - Add Python C extension for compact protocol
    • βœ… THRIFT-3611 - Add --regex filter to cross test runner
    • THRIFT-3631 - JSON protocol implementation for Lua
    • 🚚 THRIFT-3609 - Remove or replace TestPortFixture.h
    • THRIFT-3605 - Have the compiler complain about invalid arguments and options
    • πŸ‘ THRIFT-3596 - Better conformance to PEP8
    • THRIFT-3585 - Compact protocol implementation for Lua
    • πŸ“‡ THRIFT-3582 - Erlang libraries should have service metadata
    • THRIFT-3579 - Introduce retry to make cross
    • THRIFT-3306 - Java: TBinaryProtocol: Use 1 temp buffer instead of allocating 8
    • πŸ— THRIFT-3910 - Do not invoke pip as part of build process
    • πŸ‘ THRIFT-1857 - Python 3.X Support
    • THRIFT-1944 - Binding to zero port
    • THRIFT-3954 - Enable the usage of structs called "Object" in Java
    • THRIFT-3981 - Enable analyzer strong mode in Dart library
    • THRIFT-3998 - Document ability to add custom tags to thrift structs
    • 🚚 THRIFT-4006 - Add a removeEventListener method on TSocket

    πŸ†• New Feature

    • πŸ—„ THRIFT-640 - Support deprecation
    • πŸ‘ THRIFT-948 - SSL socket support for PHP
    • πŸ‘ THRIFT-764 - add Support for Vala language
    • THRIFT-3046 - Allow PSR4 class loading for generated classes (PHP)
    • πŸ‘ THRIFT-2113 - Erlang SSL Socket Support
    • πŸ‘ THRIFT-1482 - Unix domain socket support under PHP
    • πŸ‘ THRIFT-519 - Support collections of types without having to explicitly define it
    • πŸš… THRIFT-468 - Rack Middleware Application for Rails
    • THRIFT-1708 - Add event handlers for processor events
    • πŸ“‡ THRIFT-3834 - Erlang namespacing and exception metadata
    • THRIFT-2510 - Implement TNonblockingServer's ability to listen on unix domain sockets
    • THRIFT-3397 - Implement TProcessorFactory in C# to enable per-client processors
    • THRIFT-3523 - XML Generator
    • THRIFT-3510 - Add HttpTaskAsyncHandler implementation
    • THRIFT-3318 - PHP: SimpleJSONProtocol Implementation
    • THRIFT-3299 - Dart language bindings in Thrift
    • THRIFT-2835 - Add possibility to distribute generators separately from thrift core, and load them dynamically
    • THRIFT-184 - Add OSGi Manifest headers to the libthrift java library to be able to use Thrift in the OSGi runtime
    • πŸ‘» THRIFT-141 - If a required field is not present on serialization, throw an exception
    • 🏁 THRIFT-1891 - Add Windows ALPC transport which is right counterpart of Unix domain sockets

    Question

    Story

    • THRIFT-3452 - .travis.yml: Migrating from legacy to container-based infrastructure

    Sub-task

    • πŸ— THRIFT-1811 - ruby tutorial as part of the regular build
    • πŸ“œ THRIFT-2779 - PHP TJSONProtocol encode unicode into UCS-4LE which can't be parsed by other language bindings
    • πŸ‘ THRIFT-2110 - Erlang: Support for Multiplexing Services on any Transport, Protocol and Server
    • πŸ‘· THRIFT-3852 - A Travis-CI job fails with "write error"
    • THRIFT-3740 - Fix haxelib.json classpath
    • THRIFT-3653 - incorrect union serialization
    • THRIFT-3652 - incorrect serialization of optionals
    • THRIFT-3655 - incorrect union serialization
    • THRIFT-3654 - incorrect serialization of optionals
    • THRIFT-3656 - incorrect serialization of optionals
    • THRIFT-3699 - Fix integer limit symbol includes in Python C extension
    • 🏁 THRIFT-3693 - Fix include issue in C++ TSSLSocketInterruptTest on Windows
    • 🏁 THRIFT-3694 - [Windows] Disable tests of a few servers that are not supported
    • πŸ— THRIFT-3696 - Install pip to CentOS Docker images to fix Python builds
    • THRIFT-3638 - Fix haxelib.json
    • THRIFT-3251 - Add http transport for server to Go lib
    • THRIFT-2424 - Recursive Types
    • THRIFT-2423 - THeader
    • THRIFT-2413 - Python: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
    • THRIFT-2409 - Java: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
    • THRIFT-2412 - D: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
    • THRIFT-2411 - C++: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
    • THRIFT-2410 - JavaMe: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
    • βœ… THRIFT-2668 - TestSuite: detailed result on passed tests by feature
    • βœ… THRIFT-2659 - python Test Server fails when throwing TException
    • πŸ— THRIFT-3398 - Add CMake build for Haskell library and tests
    • THRIFT-3396 - DART: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
    • πŸ’Ž THRIFT-3364 - Fix ruby binary field encoding in TJSONProtocol
    • THRIFT-3381 - Fix for misc. codegen issues with THRIFT-2905
    • βœ… THRIFT-3573 - No rule to make target `../../../test/c_glib/src/.deps/testthrifttest-thrift_test_handler.Po'.
    • THRIFT-3572 - "Unable to determine the behavior of a signed right shift"
    • βœ… THRIFT-3542 - Add length limit support to Java test server
    • 🚚 THRIFT-3537 - Remove the (now obsolete) csharp:asyncctp flag
    • πŸ”§ THRIFT-3532 - Add configurable string and container read size limit to Python protocols
    • βœ… THRIFT-3531 - Create cross lang feature test for string and container read length limit
    • THRIFT-3482 - Haskell JSON protocol does not encode binary field as Base64
    • 🐳 THRIFT-3425 - Minor fixes + simplification for CentOS Dockerfile
    • βœ… THRIFT-3442 - Run CMake tests on Appveyor
    • THRIFT-3409 - NodeJS binary field issues
    • βœ… THRIFT-3621 - Fix lib/cpp/test/SecurityTest.cpp to use ephemeral ports
    • βœ… THRIFT-3628 - Fix lib/cpp/test/TServerIntegrationTest.cpp to use ephemeral ports
    • βœ… THRIFT-3625 - Kill unused #include "TestPortFixture.h" in lib/cpp/test/TServerTransportTest.cpp.
    • πŸ— THRIFT-3646 - Fix Python extension build warnings
    • βœ… THRIFT-3626 - Fix lib/cpp/test/TSocketInterruptTest.cpp to use ephemeral ports.
    • βœ… THRIFT-3624 - Fix lib/cpp/test/TServerSocketTest.cpp to use ephemeral ports
    • βœ… THRIFT-3623 - Fix Fix cpp/lib/test/TSSLSocketInterruptTest.cpp to use ephemeral ports
    • βœ… THRIFT-3592 - Add basic test client
    • THRIFT-3980 - add TExtendedBinaryProtocol.java

    Task

    • πŸ”€ THRIFT-1801 - Sync up TApplicationException codes across languages and thrift implementations
    • THRIFT-1259 - Automate versioning

    βœ… Test

    Wish

    • 🚚 THRIFT-3923 - Maybe remove Aereo from the "Powered by" list
    • 0️⃣ THRIFT-2149 - Add an option to disable the generation of default operators