Release history
Balau uses a continuous integration methodology, with a Jenkins build running on Bora's servers. Use of the head of the master branch should thus provide a stable library. Release tags are also created periodically in order to provide reference versions to link against.
V2020.2.1
New features in this release:
- new injector get methods that supply a default value via a supplied function;
- injector post-construction and pre-destruction callback registration;
- injector static singleton registration (useful for rearchitecting non-DI based code);
- custom deleters for unique_ptr and shared_ptr injector bindings;
- other miscellaneous injector improvements;
- test runner improvements;
- error recovery support in the language parsing framework;
- new utility functions (Containers::contains, Strings::simplify);
- new App utility functions (getUserApplicationDataDirectory, getGlobalApplicationDataDirectory, getUserApplicationConfigDirectory, getGlobalApplicationConfigDirectory, getApplicationRuntimeDataDirectory);
- dependency graph improvements;
- improved Balau build options and introduced BalauConfig.hpp options switches header;
- separate Balau CMake default build configuration for use in dependent projects;
- changed BALAU_ENABLE_CURL option to default on;
- relaxed required Boost version to allow all Boost versions from 1.61.0 onwards (disables HTTP components for Boost < 1.68.0);
- Maven based build, test, and assembly using Balau Maven plugins;
- new "isA" test assertion;
- to-string functions for complex numbers.
V2019.6.1
New features in this release:
- XML based test report generation;
- test runner now uses SSV style command line options;
- command line parser supports multiple final values in SSV mode.
V2019.5.3
New features in this release:
- corrected compilation with BALAU_ENABLE_CURL option off;
- changed BALAU_ENABLE_CURL option to default off;
- added build option documentation.
V2019.5.2
New features in this release:
- HTTP server implementation refinements;
- use ASIO strand in HttpSession instances to close sessions;
- manual ignore method in unit test framework test group class;
- test runner main threads named as current test;
- further refinements for GCC 6 support;
- CMake options to disable zlib/libzip/curl functionalities;
- other miscellaneous refinements.
Pending features not yet in this release:
- HTTP client implementation incomplete;
- WebSocket application framework and documentation;
- WebSocket client;
- HTTP client keep alive;
- tutorial application example.
V2019.5.1
New features in this release:
- modifications to support GCC 6 (for RHEL DTS6).
V2019.3.1
New features in this release:
- singleton test runner;
- automatic instantiation and registration of test groups;
- test runner run methods that parse argc/argv;
- selective test running via globbed test name lists.
V2019.2.1
New features in this release:
- UTF-8 URL decoding;
- added try-catch block for sending internal server error responses on HTTP webapp errors;
- moved HTTP server listener onAccept method to header file in order to facilitate application debugging;
- added integer fromString functions that accept a numeric base;
- support for Fedora 28 / 29;
- support for RHEL 7.6 with GCC 7;
- documentation corrections and updates.
V2019.1.1
New features in this release:
- hierarchical property format and parser;
- environment configuration framework integrated with injector;
- logging system now uses hierarchical properties configuration format;
- client sessions in HTTP server connections;
- new redirections HTTP web application;
- new toString<Allocator> functions;
- optional thread local logger allocator using toString<Allocator> functions;
- optional stacktrace support in exceptions;
- unified fromString function with std::basic_string_view API;
- support for CentOS 7.6 with GCC 7;
- draft tutorial added to documentation.
Pending features not yet in this release:
- log rotation;
- WebSocket application framework and documentation;
- WebSocket client;
- HTTP client keep alive;
- tutorial application example.
V2018.9.1
Initial import into GitHub repository. Main features in the initial import:
- dependency injection framework;
- logging system;
- test framework;
- unified to-string functions;
- unified from-string functions;
- Unicode character and string utilities;
- Unified resource identification and resource access;
- data structures (ObjectTrie, DependencyGraph, BlockingArrayQueue);
- shared memory data structures (SharedMemoryQueue, SharedMemoryObject);
- hand written language parser utilities;
- HTTP clients and server;
- utilities (system, compression, files, hashing, streams, strings, etc.).