samurai is a ninja-compatible build tool written in C99 with a focus on
simplicity, speed, and portability.
samurai implements the ninja build language through version 1.9.0 except
for MSVC dependency handling (`deps = msvc`). It uses the same format
for `.ninja_log` and `.ninja_deps` as ninja, currently version 5 and 4
respectively.
It is feature-complete and supports most of the same options as ninja.
samurai requires various POSIX.1-2008 interfaces.
3.16.0:
New Features
============
Languages
---------
* CMake learned to support the Objective C ("OBJC") and Objective
C++ ("OBJCXX") languages. They may be enabled via the "project()"
and "enable_language()" commands. When "OBJC" or "OBJCXX" is
enabled, source files with the ".m" or ".mm", respectively, will be
compiled as Objective C or C++. Otherwise they will be treated as
plain C++ sources as they were before.
Compilers
---------
* The "Clang" compiler is now supported on "Solaris".
Platforms
---------
* On AIX, executables using the "ENABLE_EXPORTS" target property now
produce a linker import file with a ".imp" extension in addition to
the executable file. Plugins (created via "add_library()" with the
"MODULE" option) that use "target_link_libraries()" to link to the
executable for its symbols are now linked using the import file. The
"install(TARGETS)" command now installs the import file as an
"ARCHIVE" artifact.
* On AIX, runtime linking is no longer enabled by default. CMake
provides the linker enough information to resolve all symbols up
front. One may manually enable runtime linking for shared libraries
and/or loadable modules by adding "-Wl,-G" to their link flags (e.g.
in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS"
variable). One may manually enable runtime linking for executables
by adding "-Wl,-brtl" to their link flags (e.g. in the
"CMAKE_EXE_LINKER_FLAGS" variable).
Command-Line
------------
* "cmake(1)" "-E" now supports "true" and "false" commands, which do
nothing while returning exit codes of 0 and 1, respectively.
* "cmake(1)" gained a "--trace-redirect=" command line option
that can be used to redirect "--trace" output to a file instead of
"stderr".
* The "cmake(1)" "--loglevel" command line option has been renamed
to "--log-level" to make it consistent with the naming of other
command line options. The "--loglevel" option is still supported to
preserve backward compatibility.
Commands
--------
* The "add_test()" command learned the option "COMMAND_EXPAND_LISTS"
which causes lists in the "COMMAND" argument to be expanded,
including lists created by generator expressions.
* The "file()" command learned a new sub-command,
"GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the
list of libraries linked by an executable or library. This sub-
command is intended as a replacement for "GetPrerequisites".
* The "find_file()", "find_library()", "find_path()",
"find_package()", and "find_program()" commands have learned to
check the following variables to control searching
* "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching
the cmake-specific environment variables.
* "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake-
specific cache variables.
* "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching
cmake platform specific variables.
* "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of
"_ROOT" variables.
* "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the
searching the standard system environment variables.
* The "find_package()" command has learned to check the following
variables to control searching
* "CMAKE_FIND_USE_PACKAGE_REGISTRY" - Controls the searching the
cmake user registry.
* The "message()" command learned indentation control with the new
"CMAKE_MESSAGE_INDENT" variable.
* The "target_precompile_headers()" command was added to specify a
list of headers to precompile for faster compilation times.
Variables
---------
* The "CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS" variable has been
introduced to optionally initialize the
"CUDA_RESOLVE_DEVICE_SYMBOLS" target property.
* The "CMAKE_ECLIPSE_RESOURCE_ENCODING" variable was added to
specify the resource encoding for the the "Eclipse CDT4" extra
generator.
Properties
----------
* The "BUILD_RPATH" and "INSTALL_RPATH" target properties now
support "generator expressions".
* The "INSTALL_REMOVE_ENVIRONMENT_RPATH" target property was added
to remove compiler-defined "RPATH" entries from a target. This
property is initialized by the
"CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH" variable.
* The "PRECOMPILE_HEADERS" target property was added to specify a
list of headers to precompile for faster compilation times. Set it
using the "target_precompile_headers()" command.
* The "UNITY_BUILD" target property was added to tell generators to
batch include source files for faster compilation times.
* The "VS_CONFIGURATION_TYPE" target property now supports
"generator expressions".
* The "VS_DPI_AWARE" target property was added to tell Visual Studio
Generators to set the "EnableDpiAwareness" property in ".vcxproj"
files.
* The "XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING" target property was
added to tell the "Xcode" generator to set the value of the "Allow
debugging when using document Versions Browser" schema option.
Modules
-------
* The "FindDoxygen" module "doxygen_add_docs()" command gained a new
"USE_STAMP_FILE" option. When this option present, the custom
target created by the command will only re-run Doxygen if any of the
source files have changed since the last successful run.
* The "FindGnuTLS" module now provides an imported target.
* The "FindPackageHandleStandardArgs" module
"find_package_handle_standard_args()" command gained a new
"REASON_FAILURE_MESSAGE" option to specify a message giving the
reason for the failure.
* The "FindPkgConfig" module "pkg_search_module()" macro now defines
a "_MODULE_NAME" result variable containing the first
matching module name.
* The "FindPython3" and "FindPython" modules gained options to
control which "ABIs" will be searched.
* The "FindPython3", "FindPython2", and "FindPython" modules now
support direct specification of artifacts via cache entries.
Autogen
-------
* When using "AUTOMOC", CMake now generates the "-p" path prefix
option for "moc". This ensures that "moc" output files are
identical on different build setups (given, that the headers
compiled by "moc" are in an "include directory"). Also it ensures
that "moc" output files will compile correctly when the source
and/or build directory is a symbolic link.
The "moc" path prefix generation behavior can be configured by
setting the new "CMAKE_AUTOMOC_PATH_PREFIX" variable and/or
"AUTOMOC_PATH_PREFIX" target property.
CTest
-----
* "ctest(1)" now has the ability to serialize tests based on
resource requirements for each test. See Resource Allocation for
details.
* A new test property, "SKIP_REGULAR_EXPRESSION", has been added.
This property is similar to "FAIL_REGULAR_EXPRESSION" and
"PASS_REGULAR_EXPRESSION", but with the same meaning as
"SKIP_RETURN_CODE". This is useful, for example, in cases where the
user has no control over the return code of the test. For example,
in Catch2, the return value is the number of assertion failed,
therefore it is impossible to use it for "SKIP_RETURN_CODE".
CPack
-----
* "cpack(1)" learned support for multiple configurations for "-C"
option.
* The "CPack DEB Generator" is now able to format generic text
(usually used as the description for multiple CPack generators)
according to the Debian Policy Manual. See the
"CPACK_PACKAGE_DESCRIPTION_FILE" and
"CPACK_DEBIAN__DESCRIPTION" variables.
* The "CPack Archive Generator" learned to generate ".tar.zst"
packages with Zstandard compression.
Deprecated and Removed Features
===============================
* An explicit deprecation diagnostic was added for policy "CMP0067"
("CMP0066" and below were already deprecated). The "cmake-
policies(7)" manual explains that the OLD behaviors of all policies
are deprecated and that projects should port to the NEW behaviors.
* The "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been
deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable
instead.
* The "GetPrerequisites" module has been deprecated, as it has been
superceded by "file(GET_RUNTIME_DEPENDENCIES)".
* The "CPACK_INSTALL_SCRIPT" variable has been deprecated in favor
of the new, more accurately named "CPACK_INSTALL_SCRIPTS" variable.
Other Changes
=============
* The "cmake(1)" "-C " option now evaluates the
initial cache script with "CMAKE_SOURCE_DIR" and "CMAKE_BINARY_DIR"
set to the top-level source and build trees.
* The "cmake(1)" "-E remove_directory" command-line tool, when given
the path to a symlink to a directory, now removes just the symlink.
It no longer removes content of the linked directory.
* The "ctest(1)" "--build-makeprogram" command-line option now
specifies the make program used when configuring a project with the
"Ninja" generator or the Makefile Generators.
* The "ExternalProject" module "ExternalProject_Add()" command has
been updated so that "GIT_SUBMODULES """ initializes no submodules.
See policy "CMP0097".
* The "FindGTest" module has been updated to recognize MSVC build
trees generated by GTest 1.8.1.
* The "project()" command no longer strips leading zeros in version
components. See policy "CMP0096".
* The Qt Compressed Help file is now named "CMake.qch", which no
longer contains the release version in the file name. When CMake is
upgraded in-place, the name and location of this file will remain
constant. Tools such as IDEs, help viewers, etc. should now be able
to refer to this file at a fixed location that remains valid across
CMake upgrades.
* "RPATH" entries are properly escaped in the generated CMake
scripts used for installation. See policy "CMP0095".
* When using "CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS" on Windows the auto-
generated exports are now updated only when the object files
providing the symbols are updated.
A Go implementation of JSON Web Tokens.
This library supports the parsing and verification as well as the
generation and signing of JWTs. Current supported signing algorithms
are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for
adding your own.
Guile-Gcrypt provides a Guile 2.x interface to a subset of the
GNU Libgcrypt crytographic library, which is itself used by the
GNU Privacy Guard (GPG).
Guile-Gcrypt provides modules for cryptographic hash functions,
message authentication codes (MAC), public-key cryptography, strong
randomness, and more. It is implemented using the foreign function
interface (FFI) of Guile.
guile-bytestructures is a library offering a system imitating the
type system of the C programming language, to be used on bytevectors.
C's type system works on raw memory, and Scheme ones work on
bytevectors which are an abstraction over raw memory in Scheme.
The system elevates types to first-class status.
go-compress is based on an optimized Deflate function,
which is used by gzip/zip/zlib packages.
It offers slightly better compression at lower compression
settings, and up to 3x faster encoding at highest compression level.
go-cpuid provides information about the CPU running
the current program.
CPU features are detected on startup, and kept for
fast access through the life of the application.
Currently x86 / x64 (AMD64) is supported, and no
external C (cgo) code is used, which should make
the library very easy to use.
You can access the CPU information by accessing the
shared CPU variable of the cpuid library.
go-bytebufferpool is an implementation of a pool of byte buffers
with anti-memory-waste protection.
The pool may waste limited amount of memory due to fragmentation.
This amount equals to the maximum total size of the
byte buffers in concurrent use.
pytest 5.2.1:
Bug Fixes
* Fix warnings about deprecated cmp attribute in attrs>=19.2.
pytest 5.2.0:
Deprecations
* Passing arguments to pytest.fixture() as positional arguments is deprecated - pass them as a keyword argument instead.
Features
* The scope parameter of @pytest.fixture can now be a callable that receives the fixture name and the config object as keyword-only parameters. See the docs for more information.
* New behavior of the --pastebin option: failures to connect to the pastebin server are reported, without failing the pytest run
Bug Fixes
* Fix “lexer” being used when uploading to bpaste.net from --pastebin to “text”.
* Fix --setup-only and --setup-show for custom pytest items.
Trivial/Internal Changes
* The HelpFormatter uses py.io.get_terminal_width for better width detection.
pytest 5.1.3:
Bug Fixes
* Fix pypy3.6 (nightly) on windows.
* Handle --fulltrace correctly with pytest.raises.
* Windows: Fix regression with conftest whose qualified name contains uppercase characters.
pytest 5.1.2:
Bug Fixes
* Fixed self reference in function-scoped fixtures defined plugin classes: previously self would be a reference to a test class, not the plugin class.
* Fixed long standing issue where fixture scope was not respected when indirect fixtures were used during parametrization.
* Fix decoding error when printing an error response from --pastebin.
* Chained exceptions in test and collection reports are now correctly serialized, allowing plugins like pytest-xdist to display them properly.
* Windows: Fix error that occurs in certain circumstances when loading conftest.py from a working directory that has casing other than the one stored in the filesystem (e.g., c:\test instead of C:\test).
pytest 5.1.1:
Bug Fixes
* Fixed TypeError when importing pytest on Python 3.5.0 and 3.5.1.
pytest 5.1.0:
Removals
* As per our policy, the following features have been deprecated in the 4.X series and are now removed:
Request.getfuncargvalue: use Request.getfixturevalue instead.
pytest.raises and pytest.warns no longer support strings as the second argument.
message parameter of pytest.raises.
pytest.raises, pytest.warns and ParameterSet.param now use native keyword-only syntax. This might change the exception message from previous versions, but they still raise TypeError on unknown keyword arguments as before.
pytest.config global variable.
tmpdir_factory.ensuretemp method.
pytest_logwarning hook.
RemovedInPytest4Warning warning type.
request is now a reserved name for fixtures.
For more information consult Deprecations and Removals in the docs.
* Removed unused support code for unittest2.
* pytest.fail, pytest.xfail and pytest.skip no longer support bytes for the message argument.
Features
* New Config.invocation_args attribute containing the unchanged arguments passed to pytest.main().
* New NUMBER option for doctests to ignore irrelevant differences in floating-point numbers. Inspired by Sébastien Boisgérault’s numtest extension for doctest.
Improvements
* JUnit XML now includes a timestamp and hostname in the testsuite tag.
* Time taken to run the test suite now includes a human-readable representation when it takes over 60 seconds, for example:
Bug Fixes
* Fix RuntimeError/StopIteration when trying to collect package with “__init__.py” only.
* Warnings issued during pytest_configure are explicitly not treated as errors, even if configured as such, because it otherwise completely breaks pytest.
* The XML file produced by --junitxml now correctly contain a <testsuites> root element.
* Fix issue where tmp_path and tmpdir would not remove directories containing files marked as read-only, which could lead to pytest crashing when executed a second time with the --basetemp option.
* Replace importlib_metadata backport with importlib.metadata from the standard library on Python 3.8+.
* Improve type checking for some exception-raising functions (pytest.xfail, pytest.skip, etc) so they provide better error messages when users meant to use marks (for example @pytest.xfail instead of @pytest.mark.xfail).
* Fixed internal error when test functions were patched with objects that cannot be compared for truth values against others, like numpy arrays.
* pytest.exit is now correctly handled in unittest cases. This makes unittest cases handle quit from pytest’s pdb correctly.
* Improved output when parsing an ini configuration file fails.
* Fix collection of staticmethod objects defined with functools.partial.
* Skip async generator test functions, and update the warning message to refer to async def functions.
Improved Documentation
* Add docstring for Testdir.copy_example.
Trivial/Internal Changes
* XML files of the xunit2 family are now validated against the schema by pytest’s own test suite to avoid future regressions.
* Cache node splitting function which can improve collection performance in very large test suites.
* Simplified internal SafeRepr class and removed some dead code.
* When invoking pytest’s own testsuite with PYTHONDONTWRITEBYTECODE=1, the test_xfail_handling test no longer fails.
* Replace manual handling of OSError.errno in the codebase by new OSError subclasses (PermissionError, FileNotFoundError, etc.).
pytest 5.0.1:
Bug Fixes
* Improve quoting in raises match failure message.
* Fixed using multiple short options together in the command-line (for example -vs) in Python 3.8+.
* --step-wise now handles xfail(strict=True) markers properly.
Improved Documentation
* Improve “Declaring new hooks” section in chapter “Writing Plugins”
pytest 5.0.0:
Important
This release is a Python3.5+ only release.
For more details, see our Python 2.7 and 3.4 support plan.
Removals
* Pytest no longer accepts prefixes of command-line arguments, for example typing pytest --doctest-mod inplace of --doctest-modules. This was previously allowed where the ArgumentParser thought it was unambiguous, but this could be incorrect due to delayed parsing of options for plugins.
* PytestDeprecationWarning are now errors by default.
* ExceptionInfo objects (returned by pytest.raises) now have the same str representation as repr, which avoids some confusion when users use print(e) to inspect the object.
From homepage:
pylint-common
Note: No longer maintained
This was used as part off prospector but has been removed. It is no longer maintained (in this fork at least) as most of the functions are now replaced by pylint builtins or are no longer valid.
Track and report code coverage for your package and (optionally) upload
the results to a coverage service like 'Codecov' <http://codecov.io> or
'Coveralls' <http://coveralls.io>.
Code coverage is a measure of the amount of code being exercised by a set
of tests. It is an indirect measure of test quality and completeness.
This package is compatible with any testing methodology or framework and
tracks coverage of both R code and compiled C/C++/FORTRAN code.
The motivation is to consider meson as an application, so there is only
one copy on the system, and as a python 3 program, it can build python 2
packages.
pytest-watch a zero-config CLI tool that runs pytest, and re-runs it when
a file in your project changes. It beeps on failures and can run arbitrary
commands on each passing and failing test run.
Thrift 0.12.0
New Languages
* Common LISP (cl)
* Swift
* Typescript (nodets)
Deprecated Languages
* Cocoa
Breaking Changes (since 0.11.0)
* Rust enum variants are now camel-cased instead of uppercased to conform to Rust naming conventions
* Support for golang 1.6 and earlier has been dropped.
* PHP now uses the PSR-4 loader by default instead of class maps.
* method signatures changed in the compiler's t_oop_generator.
* The C (GLib) compiler's handling of namespaces has been improved.
Known Issues (Blocker or Critical)
* build: use a single build system for thrift
* build: bootstrap.sh is missing from source tarball
* csharp: socket exhaustion in csharp implementation
* cocoa: Getters for fields defined with uppercase names do not work
* cocoa: Extended services aren't subclasses in generated Cocoa
* cocoa: Thrift de-capitalizes the name of IsSet property in Cocoa
* cpp: the http implementation is not standard; interop with other languages is spotty at best
* cpp: Impossible to build Thrift C++ library for Android (NDK)
* cpp: Using multiple async services simultaneously is not thread-safe
* haskell: Defaulted struct parameters on a service generates invalid Haskell
* nodejs: Exception swallowed by deserialization function
* nodejs: map<i64,value> key treated as hex value in JavaScript
* nodejs: ERROR in ./node_modules/thrift/lib/nodejs/lib/thrift/connection.js Module not found: Error: Can't resolve 'child_process'
* nodejs: Sequence numbering for multiplexed protocol broken
* php: sequence and reconnection management issues
* php: Error during deserialization int64 on 32-bit architecture
* php: thrift type i64 java to php serialize/deserealize not working
* php: PHP gets stuck in infinite loop
* python: sending int or float in a double field breaks the connection
* python: unix sockets can get stuck forever
* python: generated code is out of order and causes load issues
* py3: UnicodeDecideError in Python3
Build Process
* D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang
* Use Ubuntu Bionic (18.04 LTS) for CI builds instead of Artful (17.10)
* Define CI operating system coverage rules for the project and (hopefully) simplify CI a little more
* ubuntu install instructions broken on 16.04
* Appveyor builds are failing due to a haskell / cabal update in chocolatey
* optimize Dockerfile (only onetime apt-get update)
* rm `build/docker/ubuntu-trusty/Dockerfile.orig`
* Ubuntu Artful doesn't appear to be compatible with Thrift and Haxe 3.4.2
* DLang Client Pool Test fails sporadically
* CL tutorial build fails sporadically
* Make haxelib download quiet so it doesn't blow up the build log
* bootstrap.sh fails if automake=1.16.1
c_glib
* The C (GLib) compiler's handling of namespaces has been improved.
* glibC compilation issue
* c glib is unable to handle client close unexpectedly
cl (new language support in 0.12.0)
* Common Lisp support
csharp
* reserved Csharp keywords are not escaped in some cases
* C# async mode generates incorrect code with inherited services
* IAsyncResult style methods not being supported by certain transports leads to issues in mixed ISync/IAsync use cases
* Allow TBufferedTransport to be used as base class
* XML docs; code cleanup (tabs->spaces; String->string)
* protected ExceptionType type member of TApplicationException cannot be accessed
* JSONProtocol Base64 Encoding Trims Padding
* Missing dispose calls in ThreadedServer & ThreadpoolServer
* keep InnerException wherever appropriate
* IAsyncResult not supported by layered transports (buffered/framed)
cpp
* Typecasting problem on list items
* TNonblockingServer throwing THRIFT LOGGER: TConnection::workSocket(): THRIFT_EAGAIN (unavailable resources)
* TBufferTransports.h does not compile under Visual Studio 2017
* TNonblockingServer crash because of limitation of select()
* TZlibTransport.cpp doesn't ensure that there is enough space for the zlib flush marker in the buffer.
* ZeroMQ contrib library needs a refresh
* TSSLServerSocket incorrectly prints errors
* Move `TAsyncProtocolProcessor` into main thrift library
* evhttp_connection_new is deprecated; use evhttp_connection_base_new
compiler
* Compiler cannot be compiled on macOS(maybe also on other platforms with clang)
* Thrift generates wrong Python code for immutable structures with optional members
* thrift generated code is not stable for constants
* Avoid updating Thrift compiler generated code if the output has not changed
* Visual Studio Compiler project should link runtime statically in release builds
* plugin.thrift t_const_value is not used as a union in C++ code -- fix this
* Dealing with language keywords in Thrift (e.g. service method names)
* repeated runs of compiler produce different binary output at plugin interface
dlang
* Thrift will not build with dlang 2.078 or later
* dlang servers logError on normal client disconnection
* D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang
dart
* Effective Dart and Exceptions
* Shouldn't download dart.deb directly.
delphi
* Calling wrong exception CTOR leads to "call failed: unknown result" instead of the real exception being thrown
* uncompileable code with member names that are also types under specific conditions
* Add Async implementation via IFuture
* Possible invalid ptr AV with overlapped read/write on pipes
* Thrift exceptions should derive from TException
* buffered transport broken when trying to re-open a formerly closed transport
* Move Thrift.Console.pas out of the Library
* Allow a default service as fallback for multiplex processors connected by old clients
* Large writes/reads may cause range check errors in debug mode
* Compiler directive should match Delphi XE4
* First line in Console duplicated
* FPU ctrl word settings may cause an unexpected "denormalized" error
erlang
* Erlang records should use map() for map type
* Erlang records should allow 'undefined' for non-required fields
* Fix erlang tutorial unpack on Windows
* Ubuntu Xenial erlang 18.3 "make check" fails
golang
* Support for golang 1.6 and earlier has been dropped.
* Go generator assigns strings to field in const instead of pointers.
* Unions Field Count Does Not Consider Binary
* Golang: Panic on p.c.Call when using deprecated initializers
* Required field incorrectly marked as set when fieldType does not match
* Golang: -remote.go client cleanup
* TSimpleServer can exit Accept loop with lock still acquired
* Add support for go 1.10
* golang tests rely on gomock, which has change behaviour, causing tests to fail
* Communication crash when using binary/compact protocol and zlib transport
* golang race detected when closing listener socket
haskell
* Haskell builds with older cabal cannot reconcile complex version requirements
java
* Thrift does not compile due to Ant Maven task errors
* Compiling Thrift from source: Class org.apache.tools.ant.taskdefs.ConditionTask doesn't support the nested "typefound" element
* proposal: add nullability annotations to generated Java code
* Generate missing @Nullable annotations for Java iterator getters
* Getter of binary field in Java creates unnecessary copy
* libthrift is deployed on central with pom packaging instead of jar
* Java Configure Fails for Ant >= 1.10
* Java libraries missing from package when using cmake
* pom files are not generated or provided in the build
* Maven can't download resource from central when behind a proxy and won't use local repository
* Optional rethrow of unhandled exceptions in java processor
* Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters
* Pass message of unhandled exception to optional rethrow.
* Remove assertion in Java SASL code that would be ignored in release builds
* Include popular IDE file templates to gitignore
* Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization
* Fix logic of THRIFT-2268
* Increase Java Socket Buffer Size
* Remove Magic Number In TFIleTransport
js
* JavaScript: Use modern Promise implementations
* let / const variable decorators for es6 compiler
* ES6 Classes
* JS: readI32 performance on large arrays is very poor in Chrome
* js and nodejs libraries need to be refreshed with current libraries
* thrift.js: Incorrect usage of 'this' in TWebSocketTransport.__onOpen
* Deserialization of nested list discards content
* JS WebSocket client callbacks invoked twice on parallel requests
* Duplicate declaration of InputBufferUnderrunError in lib/nodejs/lib/thrift/json_protocol.js
* Add prettier for consistent JS code formatting
lua
* lua client uses two write() calls per framed message send
* Can't "make install" Lua Library
netcore
* .NET Core Server doesn't close properly when cancelled
* Update .NET Core components, add tests for .Net Core library and .Net Core compiler, fix bugs and build process
* JSONProtocol Base64 Encoding Trims Padding
node.js
* Error handling malformed arguments leaks memory, corrupts transport buffers causing next RPC to fail
* Memory leak while calling oneway method
* add typescript directory support
* TBufferedTransport can leave corrupt data in the buffer
* Node.js Fileserver webroot path
* Unix domain socket support for NodeJS client
* node.js json_protocol throws error in skip function
* NodeJS: Expose Int64 from browser.js for consumption by browser
* NodeJS warning on binary_protocol writeMessageEnd when seqid = 0
perl
* Replace the use of Perl Indirect Object Syntax calls to new()
* Thrift CPAN release is missing Makefile.PL and the clients are unable to build the module
* Perl CPAN Packaging Improvements
php
* PHP generator use PSR-4 default
* PHP generated code match PSR-2
* Extending Thrift class results in "Attempt serialize from non-Thrift object"
* TSocket block on read
* migrate php library to psr-4
* infinite loop in latest PHP library
* TBufferedTransport must have underlying transport
* lib/php/test should be checked for PSR-2
* add phpcs back
* php library use PSR-2
* TCurlClient doesn't check for HTTP status code
* TCurlClient: show actual error message when throwing TTransportException
* Add stream context support into PHP/THttpClient
* reduce php library directory depth
python
* Twisted, slots, and void method fails with "object has no attribute 'success'"
* Potentially server-crashing typo in Python TNonblockingServer
* Supporting TBinaryProtocolAccelerated protocol when using TMultiplexedProcessor in Python
* Outdated cipher string in python unit test
* python build on Vagrant Windows boxes fails
* THeader for Python
* make socket backlog configurable for python
* Python: cleanup socket timeout settings
ruby
* Thrift RSpec test suite fails with Ruby 2.4.x due to Fixnum deprecation
* Support ruby rspec 3
* Add ssl socket option to ruby cross tests
* Add seek support to TCompactInputProtocol in Rust
* Codegen Creates Invalid Ruby for Recursive Structs
* Fix the genspec for ruby so it does not complain about an invalid license
rust
* Rust const string calls function at compile time
* Rust enum name wrong case in generated structs
* Avoid generating conflicting struct names in Rust code
* Rust generation should include #![allow(non_snake_case)] or force conform to Rust style guidelines
* Rust binary protocol and buffered transport cannot handle writes above 4096 bytes
* Rust framed transport cannot handle writes above 4096 bytes
* Rust's TBinaryInputProtocol fails when strict is false
* Dart -> Rust Framed cross tests fail
* Rust cannot create ReadHalf/WriteHalf to implement custom tranports
swift (new language support in 0.12.0)
* Swift Library
test suite
* Gracefully shutdown cross-test servers to fully test teardown
* Add .NET Core to the make cross standard test suite
* Add unix domain sockets in ruby to cross test - code exists
typescript (new language support in 0.12.0)
* add typescript directory support