Apache Thrift v0.9.1 Release Notes

Release Date: 2014-02-02 // about 10 years ago
  • ๐Ÿ› Bug

    • THRIFT-1440 - debian packaging: minor-ish policy problems
    • THRIFT-1402 - Generated Y_types.js does not require() X_types.js when an include in the IDL file was used
    • THRIFT-1551 - 2 thrift file define only struct (no service), one include another, the gen nodejs file didn't have "requires" at the top
    • THRIFT-1264 - TSocketClient is queried by run loop after deallocation in Cocoa
    • ๐Ÿš€ THRIFT-1600 - Thrift Go Compiler and Library out of date with Go 1 Release.
    • THRIFT-1603 - Thrift IDL allows for multiple exceptions, args or struct member names to be the same
    • THRIFT-1062 - Problems with python tutorials
    • 0๏ธโƒฃ THRIFT-864 - default value fails if identifier is a struct
    • ๐Ÿ’Ž THRIFT-930 - Ruby and Haskell bindings don't properly support DESTDIR (makes packaging painful)
    • THRIFT-820 - The readLength attribute of TBinaryProtocol is used as an instance variable and is decremented on each call of checkReadLength
    • THRIFT-1640 - None of the tutorials linked on the website contain content
    • THRIFT-1637 - NPM registry does not include version 0.8
    • THRIFT-1648 - NodeJS clients always receive 0 for 'double' values.
    • THRIFT-1660 - Python Thrift library can be installed with pip but not easy_install
    • ๐Ÿ’ป THRIFT-1657 - Chrome browser sending OPTIONS method before POST in xmlHttpRequest
    • THRIFT-2118 - Certificate error handling still incorrect
    • ๐Ÿ— THRIFT-2137 - Ruby test lib fails jenkins build #864
    • ๐Ÿ— THRIFT-2136 - Vagrant build not compiling java, ruby, php, go libs due to missing dependencies
    • โœ… THRIFT-2135 - GO lib leaves behind test files that are auto generated
    • THRIFT-2134 - mingw-cross-compile script failing with strip errors
    • โœ… THRIFT-2133 - java TestTBinaryProtocol.java test failing
    • THRIFT-2126 - lib/cpp/src/thrift/concurrency/STD* files missing from DIST
    • THRIFT-2125 - debian missing from DIST
    • โœ… THRIFT-2124 - .o, .so, .la, .deps, .libs, gen-* files left tutorials, test and lib/cpp when making DIST
    • ๐Ÿ— THRIFT-2123 - GO lib missing files in DIST build
    • THRIFT-2121 - Compilation bug for Node.js
    • THRIFT-2129 - php ext missing from dist
    • โœ… THRIFT-2128 - lib GO tests fail with funct ends without a return statement
    • THRIFT-2286 - Failed to compile Thrift0.9.1 with boost1.55 by VS2010 if select Debug-mt&x64 mode.
    • THRIFT-1973 - TCompactProtocol in C# lib does not serialize and deserialize negative int32 and int64 number correctly
    • โš  THRIFT-1992 - casts in TCompactProtocol.tcc causing "dereferencing type-punned pointer will break strict-aliasing rules" warnings from gcc
    • THRIFT-1930 - C# generates unsigned byte for Thrift "byte" type
    • โšก๏ธ THRIFT-1929 - Update website to use Mirrors for downloads
    • THRIFT-1928 - Race may still exist in TFileTransport::flush()
    • THRIFT-1934 - Tabs in Example section on main page are not working
    • THRIFT-1933 - Delphi generator crashes when a typedef references another typedef from an included file
    • THRIFT-1942 - Binary accelerated cpp extension does not use Thrift namespaces for Exceptions
    • ๐Ÿ‘ THRIFT-1959 - C#: Add Union TMemoryBuffer support
    • THRIFT-1958 - C#: Use static Object.Equals instead of .Equals() calls in equals
    • THRIFT-1957 - NodeJS TFramedTransport and TBufferedTransport read bytes as unsigned
    • โœ… THRIFT-1955 - Union Type writer generated in C# does not WriteStructBegin
    • THRIFT-1952 - Travis CI
    • ๐Ÿ— THRIFT-1949 - WP7 build broken
    • ๐Ÿ“„ THRIFT-1943 - docstrings for enum values are ignored
    • THRIFT-2070 - Improper `HexChar' and 'HexVal' implementation in TJSONProtocol.cs
    • ๐Ÿ“œ THRIFT-2017 - Resource Leak in thrift struct under compiler/cpp/src/parse/t_program.h
    • THRIFT-2032 - C# client leaks sockets/handles
    • THRIFT-1996 - JavaME Constants generation is broken / inconsistent with regular Java generation
    • โœ… THRIFT-2002 - Haskell: Test use Data.Maybe instead of Maybe
    • ๐Ÿ— THRIFT-2051 - Vagrant fails to build erlang
    • THRIFT-2050 - Vagrant C# lib compile fails with TException missing
    • ๐Ÿ’Ž THRIFT-1978 - Ruby: Thrift should allow for the SSL verify mode to be set
    • THRIFT-1984 - namespace collision in python bindings
    • ๐Ÿ— THRIFT-1988 - When trying to build a debian package it fails as the file NEWS doesn't exist
    • THRIFT-1975 - TBinaryProtocol CheckLength can't be used for a client
    • THRIFT-1995 - '.' allowed at end of identifier generates non-compilable code
    • THRIFT-2112 - Error in Go generator when using typedefs in map keys
    • โœ๏ธ THRIFT-2088 - Typos in Thrift compiler help text
    • THRIFT-2080 - C# multiplex processor does not catch IOException
    • THRIFT-2082 - Executing "gmake clean" is broken
    • THRIFT-2102 - constants are not referencing to correct type when included from another thrift file
    • THRIFT-2100 - typedefs are not correctly referenced when including from other thrift files
    • THRIFT-2066 - 'make install' does not install two headers required for C++ bindings
    • THRIFT-2065 - Not valid constants filename in Java
    • THRIFT-2047 - Thrift.Protocol.TCompactProtocol, intToZigZag data lost (TCompactProtocol.cs)
    • THRIFT-2036 - Thrift gem warns about class variable access from top level
    • โœ… THRIFT-2057 - Vagrant fails on php tests
    • THRIFT-2105 - Generated code for default values of collections ignores t_field::T_REQUIRED
    • โš  THRIFT-2091 - Unnecessary 'friend' declaration causes warning in TWinsockSingleton
    • THRIFT-2090 - Go generator, fix including of other thrift files
    • ๐Ÿ‘ THRIFT-2106 - Fix support for namespaces in GO generator
    • THRIFT-1783 - C# doesn't handle required fields correctly
    • THRIFT-1782 - async only defined in silverlight
    • THRIFT-1779 - Missing process_XXXX method in generated TProcessor implementation for all 'oneway' service functions
    • ๐Ÿ THRIFT-1692 - SO_REUSEADDR allows for socket hijacking on Windows
    • ๐Ÿ’Ž THRIFT-1720 - JRuby times out on successful connection
    • THRIFT-1713 - Named and Anonymous Pipe transport (Delphi)
    • THRIFT-1699 - Native Union#read has extra read_field_end call
    • THRIFT-1749 - Python TSSLSocket error handling obscures actual error
    • THRIFT-1748 - Guard and RWGuard macros defined in global namespace
    • ๐Ÿš€ THRIFT-1734 - Front webpage is still advertising v0.8 as current release
    • ๐Ÿ”จ THRIFT-1729 - C glib refactor left empty folders in svn
    • THRIFT-1767 - unions can't have required fields (Delphi)
    • ๐Ÿ–จ THRIFT-1765 - Incorrect error message printed for null or negative keys
    • ๐Ÿ”ง THRIFT-1778 - Configure requires manual intervention due to tar failure
    • THRIFT-1777 - TPipeServer is UNSTOPPABLE
    • ๐Ÿ THRIFT-1753 - Multiple C++ Windows, OSX, and iOS portability issues
    • THRIFT-1756 - 'make -j 8' fails with "unterminated #ifdef" error
    • THRIFT-1773 - Python library should run on python 2.4
    • THRIFT-1769 - unions can't have required fields (C++)
    • THRIFT-1768 - unions can't have required fields (Compiler)
    • โš  THRIFT-1666 - htonll usage in TBinaryProtocol.tcc generates warning with MSVC2010
    • THRIFT-1919 - libthrift depends on httpcore-4.1.3 (directly) and httpcore-4.1.4 (transitively)
    • THRIFT-1864 - implement event handler for non-blocking server
    • THRIFT-1859 - Generated error c++ code with -out and include_prefix param
    • THRIFT-1869 - TThreadPoolServer (java) dies when threadpool is consumed
    • THRIFT-1842 - Memory leak with Pipes
    • ๐Ÿ— THRIFT-1838 - Can't build compiler on OS X because of missing thrifty.h
    • ๐Ÿ— THRIFT-1846 - Restore socket.h header to support builds with Android NDK
    • โœ… THRIFT-1850 - make check hangs on TSocket tests in TransportTest.cpp
    • THRIFT-1873 - Binary protocol factory ignores struct read/write flags
    • THRIFT-1872 - issues with TBufferedTransport buffer
    • THRIFT-1904 - Incorrect code is generated for typedefs which use included types
    • THRIFT-1903 - PHP namespaces cause binary protocols to not be used
    • THRIFT-1895 - Delphi: reserved variable name "result" not detected properly
    • ๐Ÿš€ THRIFT-1881 - TNonblockingServer does not release open connections or threads on shutdown
    • THRIFT-1888 - Java Thrift client can't connect to Python Thrift server on same host
    • THRIFT-1831 - Bug in list deserializer
    • โš  THRIFT-1824 - many compile warning, becase Thread.h includes config.h
    • THRIFT-1823 - Missing parenthesis breaks "IS_..." macro in generated code
    • THRIFT-1806 - Python generation always truncates init.py files
    • THRIFT-1795 - Race condition in TThreadedServerPool java implementation
    • THRIFT-1794 - C# asyncctp broken
    • ๐Ÿ’Ž THRIFT-1804 - Binary+compact protocol single byte error in Ruby library (ARM architecture): caused by different char signedness
    • ๐Ÿ“š THRIFT-1800 - Documentation text not always escaped correctly when rendered to HTML
    • THRIFT-1788 - C#: Constants static constructor does not compile
    • THRIFT-1816 - Need "require" included thrift files in "xxx_types.js"
    • โš  THRIFT-1907 - Compiling namespace and sub-namespace directives for unrecognized generators should only be a warning
    • THRIFT-1913 - skipping unknown fields in java unions
    • THRIFT-2553 - C++ linker error) - transport/TSocket
    • ๐Ÿš€ THRIFT-274 - Towards a working release/versioning process

    ๐Ÿ“š Documentation

    ๐Ÿ‘Œ Improvement

    • THRIFT-1574 - Apache project branding requirements: DOAP file [PATCH]
    • THRIFT-1347 - Unify the exceptions returned in generated Go code
    • ๐ŸŽ THRIFT-1353 - Switch to performance branch, get rid of BinaryParser
    • ๐Ÿ”ง THRIFT-1629 - Ruby 1.9 Compatibility during Thrift configure, make, install
    • ๐Ÿ”จ THRIFT-991 - Refactor Haskell code and generator
    • THRIFT-990 - Sanify gettimeofday usage codebase-wide
    • THRIFT-791 - Let C++ TSimpleServer be driven by an external main loop
    • 0๏ธโƒฃ THRIFT-2117 - Cocoa TBinaryProtocol strictWrite should be set to true by default
    • ๐Ÿ’… THRIFT-2014 - Change C++ lib includes to use style throughout
    • ๐Ÿ‘ THRIFT-1972 - Add support for async processors
    • THRIFT-1970 - [Graphviz] Adds option to render exceptions relationships
    • ๐Ÿ‘ THRIFT-1966 - Support different files for SSL certificates and keys
    • THRIFT-1965 - Adds Graphviz (graph description language) generator
    • THRIFT-1956 - Switch to Apache Commons Lang 3
    • THRIFT-1962 - Multiplex processor should send any TApplicationException back to client
    • THRIFT-1960 - main() declares 22 unused gen bools
    • THRIFT-1951 - libthrift.jar has source files in it
    • ๐Ÿ”ง THRIFT-1997 - Add accept backlog configuration method to TServerSocket
    • ๐Ÿ—„ THRIFT-2003 - Deprecate senum
    • 0๏ธโƒฃ THRIFT-2052 - Vagrant machine image defaults to only 384MB of RAM
    • THRIFT-1980 - Modernize Go tooling, fix go client library.
    • ๐Ÿ›  THRIFT-1977 - C# compiler should generate constant files prefixed with thrift file name
    • ๐Ÿ— THRIFT-1985 - add a Vagrantfile to build and test Apache Thrift fully reproducible
    • ๐Ÿ—„ THRIFT-1994 - Deprecate slist
    • THRIFT-1993 - Factory to create instances from known (generated) interface types with Delphi
    • โฑ THRIFT-2081 - Specified timeout should be used in TSocket.Open()
    • THRIFT-2084 - Delphi: Ability to create entity Thrift-generated instances based on TypeInfo
    • THRIFT-2083 - Improve the go lib: buffered Transport, save memory allocation, handle concurrent request
    • ๐Ÿ‘ THRIFT-2109 - Secure connections should be supported in Go
    • ๐Ÿ›  THRIFT-2107 - minor Go generator fixes
    • โš  THRIFT-1695 - allow warning-free compilation in VS 2012 and GNU 4.6
    • ๐Ÿ— THRIFT-1735 - integrate tutorial into regular build
    • THRIFT-1716 - max allowed connections should be PIPE_UNLIMITED_INSTANCES
    • ๐Ÿ— THRIFT-1715 - Allow excluding python parts when building contrib/fb303
    • ๐Ÿ— THRIFT-1733 - Fix RPM build issues on RHEL6/OL6 systems
    • THRIFT-1728 - Upgradation of httpcomponents
    • THRIFT-1876 - Use enum names instead of casted integers in assignments
    • โฑ THRIFT-1874 - timeout for the server-side end of a named pipe
    • ๐Ÿ‘ THRIFT-1897 - Support validation of required fields
    • THRIFT-1896 - Add TBase protocol for Cocoa
    • THRIFT-1880 - Make named pipes server work asynchronously (overlapped) to allow for clean server stops
    • THRIFT-1878 - Add the possibility to send custom headers
    • THRIFT-1882 - Use single include
    • THRIFT-1793 - C#: Use static read instead of instance read
    • THRIFT-1799 - Option to generate HTML in "standalone mode"
    • THRIFT-1815 - Code generators line buffer output
    • THRIFT-1890 - C++: Make named pipes server work asynchronously
    • ๐Ÿ’Ž THRIFT-474 - Generating Ruby on Rails friendly code

    ๐Ÿ†• New Feature

    • ๐Ÿ’Ž THRIFT-801 - Provide an interactive shell (irb) when generating ruby bindings
    • THRIFT-2292 - Android Library Project
    • THRIFT-2012 - Modernizing Go
    • โœ… THRIFT-1969 - C#: Tests not properly linked from the solution
    • THRIFT-1785 - C#: Add TMemoryBuffer serializer/deserializer
    • THRIFT-1780 - Add option to generate nullable values
    • THRIFT-1786 - C# Union Typing
    • ๐Ÿ THRIFT-591 - Make the C++ runtime library be compatible with Windows and Visual Studio
    • ๐Ÿ”ง THRIFT-514 - Add option to configure compiler output directory

    Question

    • THRIFT-1764 - how to get the context of client when on a rpc call in server side?
    • THRIFT-1791 - thrift's namespace directive when generating haskell code

    Sub-task

    • โœ… THRIFT-1594 - Java test clients should have a return codes that reflect whether it succeeds or not.
    • โœ… THRIFT-1595 - Java test server should follow the documented behavior as of THRIFT-1590
    • THRIFT-986 - st: add version Info to the library
    • THRIFT-985 - php: add version Info to the library
    • THRIFT-984 - ocaml: add version Info to the library
    • THRIFT-1924 - Delphi: Inconsistency in serialization of optional fields
    • THRIFT-1922 - C#: Inconsistency in serialization of optional fields
    • โœ… THRIFT-1961 - C# tests should be in lib/csharp/test/...
    • โœ… THRIFT-1822 - PHP unit test does not work
    • ๐Ÿ‘ THRIFT-1902 - C++: Support for Multiplexing Services on any Transport, Protocol and Server
    • ๐Ÿ‘ THRIFT-1901 - C#: Support for Multiplexing Services on any Transport, Protocol and Server
    • ๐Ÿ‘ THRIFT-1899 - Delphi: Support for Multiplexing Services on any Transport, Protocol and Server
    • ๐Ÿ‘ THRIFT-563 - Support for Multiplexing Services on any Transport, Protocol and Server