## 2.14 2019-05-20

Bug Fix and Improvements

Fix segfault when process-max > 8 for archive-push/archive-get.

Bypass database checks when stanza-delete issued with force.

Add configure script for improved multi-platform support.

Filter improvements. Only process next filter in `IoFilterGroup` when input buffer is full or flushing. Improve filter's notion of done to optimize filter processing.

Improve performance of non-blocking reads by using maximum buffer size.

Add `storageInfoList()` to get detailed info about all entries in a path.

Allow `storageInfo()` to follow links.

Allow `StorageFileWrite` to set user, group, and modification time.

Add `pathExists()` to `Storage` object.

Improve zero-length content handling in `HttpClient` object.

Don't append `strerror()` to error message when `errno` is 0.

Improve type safety of interfaces and drivers.

Add --c option to request a C remote.

Add common/macro.h for general-purpose macros.

Add macros for object free functions.

Various `MemContext` callback improvements.

Various `Buffer` improvements.

Simplify storage object names.

Add `ioWriteStr()` and `ioWriteStrLine()`.

Add separate functions to encode/decode each JSON type.

Add macros to create constant `Buffer` objects.

Add missing `httpUriEncode()` in S3 request.

Add `unsigned int` `Variant` type and update code to use it.

Expose handle (file descriptor) from `IoWrite` when applicable.

Add `iniSave()` and `iniMove()` to `Ini` object.

Add `*Save()` functions to most `Info` objects.

Extern `infoHash()` so it can be used by other modules.

`varNewKv()` accepts a `KeyValue` object rather than creating one.

Add constant for maximum buffer sizes required by `cvt*()` functions.

Add true and false `String` constants.

Refactor `Ini` interface to expose `String` values instead of `Variant`.

Refactor `main()` as a `switch()` statement.

Add `cfgOptionUInt()` and `cfgOptionUInt64()` and update code to use them.

Improve log performance, simplify macros, rename `logWill()` to `logAny()`.

Improve coverage in perl/exec, config/config, and config/parse modules.

Remove -Wswitch-enum compiler option.

Error on multiple option alternate names and simplify help command.

Use `THROW_ON_SYS_ERROR*()` to improve code coverage.

Improve macros and coverage rules that were hiding missing coverage.

Improve efficiency of `FUNCTION_LOG*()` macros.

Add user guides for CentOS/RHEL 6/7.

Automate coverage summary report generation.

Add --out-preserve to preserve contents of output path.

Restore index menu url default lost in b85e51d6.

Add `harnessInfoChecksum/Z()` to ease creation of test info files.

Update containers with minor releases and liblz4.

Add `testUser()` and `testGroup()`.

Add build-max option to set max build processes.

Reduce ScalityS3 processes since only two are needed.

Update mock/expire module test matrix so expect tests output.