All notable changes to project [Dev essential libraries][] will be documented here. For upcoming features and known issues see the bottom of this file.
The format is based on [Keep a Changelog][] and this project adheres to [Semantic Versioning][].
- 1.0.0 | Changes | Fixes | Known issues | Release date: 2021/08/04
- Upcoming
- 5.8.0 | Changes | Fixes | Known issues | Release date: 2021/02/17
- 5.7.0 | Changes | Fixes | Known issues | Release date: 2020/05/20
- 5.6.1 | Changes | Fixes | Known issues | Release date: 2020/02/12
- 5.6.0 | Changes | Fixes | Known issues | Release date: 2019/09/06
- 5.5.0 | Changes | Fixes | Known issues | Release date: 2019/04/12
- 5.4.0 | Changes | Fixes | Known issues | Release date: 2018/11/07
- 5.3.0 | Changes | Fixes | Known issues | Release date: 2018/09/21
- 5.2.0 | Changes | Fixes | Known issues | Release date: 2018/03/30
- 5.1.0 | Changes | Fixes | Known issues | Release date: 2017/12/08
- 5.0.0 | Changes | Fixes | Known issues | Release date: 2017/09/01
- 4.6.0 | Changes | Fixes | Known issues | Release date: 2021/02/22
- 4.5.0 | Changes | Fixes | Known issues | Release date: 2020/05/25
- 4.4.1 | Changes | Fixes | Known issues | Release date: 2020/02/12
- 4.4.0 | Changes | Fixes | Known issues | Release date: 2019/09/06
- 4.3.0 | Changes | Fixes | Known issues | Release date: 2019/06/14
- 4.2.1 | Changes | Fixes | Known issues | Release date: 2019/03/19
- 4.2.0 | Changes | Fixes | Known issues | Release date: 2018/11/08
- 4.1.0 | Changes | Fixes | Known issues | Release date: 2018/06/30
- 4.0.0 | Changes | Fixes | Known issues | Release date: 2017/12/06
dev_essential 1.0.0 - 2021/08/04
This release is the successor of a_util, ddl library and pkg_rpc, merging all three libraries into one repository.
- [ODAUTIL-79] - [Result] Enable usage of error description objects with static storage
- [ODAUTIL-270] - Enable position independent code and position independent executables
- [ODAUTIL-301] - [build] Elevate compiler warning levels for all util components
- [ODAUTIL-302] - [build] Fix all compiler warnings and set compiler warnings as errors
- [ODAUTIL-313] - Integrate cdpkgrpc master and tags into a_util repository
- [ODAUTIL-314] - Integrate cdddl master and tags into a_util repository
- [ODAUTIL-385] - Move or copy DDL description generation code from ADTF 3 to DDL Library
- [ODAUTIL-405] - Add type reflection API to the DDL Library
- [ODAUTIL-423] - Improve XML Data Model and DDL Parser
- [ODAUTIL-431] - Redesign OO DDL Description API (Data Model + API)
- Breaking change: The deprecated
ddl::DDLDescriptionAPI has been replaced with the DDL DataDefinition. Customer code using the deprecatedddl::DDLDescriptionneeds to be rewritten accordingly.
- Breaking change: The deprecated
- [ODAUTIL-451] - Integrate cdpkgrpc into top level directory of a_util
- [ODAUTIL-459] - Provide ddl, pkg_rpc and a_util as dev_essential package version 1.0.0
- [ODAUTIL-461] - Integrate cdddl into top level directory of a_util
- [ODAUTIL-462] - Update license disclaimers to MPL2.0 and VW Group copyright
- [ODAUTIL-463] - [BuildSystem] Add Linux_x64_gcc7, Linux_armv8_gcc7, and Windows_x64_vc142_VS2019 profile
- [ODAUTIL-468] - [BuildSystem] Provide Release builds for additional platforms
- [ODAUTIL-471] - [BuildSystem] Provide updated build information in README.md
- [ODAUTIL-472] - Remove ddl2header and header2ddl
- The successors of those tools will be available as part of the DDL Utilities. See [here] and [here] for details.
- [ODAUTIL-454] - [filesystem]
a_util::filesytem::Path::makeRelative()fails if any path contains ".." - [ODAUTIL-464] - remove / access for DDL internal datastructures type_access_list, type_access_map are not working correctly
- [ODAUTIL-467] - If removing a struct_type which is used in another type the validation model will crash
- [ODAUTIL-470] - Mapping Configuration for invalid file will crash
- [ODAUTIL-473] - Codec: serialized and deserialized offsets of structures in array elements are not evaluated right
Important note for users updating their downstream projects to this version:
Some of the implementation details of component Result had to be made public and are part of the users code now. This results in a change of exported symbols in the delivered binary. To prevent linker errors due to missing symbols recompiling and relinking against the a_util 5.8.0 is necessary.
- [ODAUTIL-125] - Provide component
a_util::resultheader-only and deploy as single library- Starting from this release, the Result component can be built and deployed as own header-only
package. To require the package, conan reference
a_util_result/5.8.0@fep/stablecan be used. Changes tofind_package(a_util ...)calls are not required.
- Starting from this release, the Result component can be built and deployed as own header-only
package. To require the package, conan reference
- [ODAUTIL-175] - [memory] Add support for
std::make_unique()for pre C++14 compilers- This introduces backport implementations
a_util::memory::make_unique()
- This introduces backport implementations
- [ODAUTIL-188] - [build] Use native GTest and CMake functionality
- [ODAUTIL-191] - [filesystem] Compare content of two files
- This introduces new functions
a_util::filesystem::compareFiles()
- This introduces new functions
- [ODAUTIL-196] - Use user "fep" instead of "aev25" in package references of the conan recipes
- Starting from this release, a_util packages can be required with the conan reference
a_util/<version>@fep/<channel>, e.g.a_util/5.8.0@fep/stable.
- Starting from this release, a_util packages can be required with the conan reference
- [ODAUTIL-199] - Add .clang-format file and apply ruleset on C++ codebase
- [ODAUTIL-200] - Add preprocessor component to a_util library
- This adds the new component
a_util::preprocessorfor basic preprocessor functionality
- This adds the new component
- [ODAUTIL-205] - [build] Provide packages for missing new profiles
- [ODAUTIL-206] - [build] Define and apply whitespace settings in .gitattributes file
- [ODAUTIL-208] - [build] Generate API documentation using CoRTEXDocumentationHelper with doxygen
- [ODAUTIL-219] - [build] License information of dependencies must be part of the package
- [ODAUTIL-300] - [documentation] Provide easier access and better overview for API documentation
- [ODAUTIL-122] - [variant] Copy Constructor does not correctly copy array values
- [ODAUTIL-174] - Product name in wiki does not match delivery
- [ODAUTIL-181] - [cmake] Redundant include directories and link libraries defined by targets
- [ODAUTIL-204] - [result] Functional test "result_type_from_lib_test" runs the wrong executable
- [ODAUTIL-207] - [build] Missing includes for VS2019 vc142
- [ODAUTIL-209] - [filesystem]
a_util::filesystem::Path::makeRelative()fails for Root - [ODAUTIL-211] - [build] Conan recipes not compatible with conan versions >1.16.2
- [ODAUTIL-212] - [result] Exported CMake config does not work for either 32 bit or 64 bit architectures
- [ODAUTIL-215] - [build] Packaged CMake target 'a_util' not part of export set
Important note for users updating to this version:
If you encounter any link errors due to unresolved symbols or any build errors due to missing or unknown types, please consult the documentation of the types and functions in question about the correct components to link and headers to include.
Those errors may be raised due to fixes and clean up of includes and linked libraries, but will not break any other existing code.
- [ODAUTIL-76] - [filesystem] Provide means to convert absolute to relative paths and vice versa
- [ODAUTIL-93] - [system] Get path to executable in currently running process
- [ODAUTIL-124] - [filesystem] Appending arbitrary strings to basenames of paths
- [ODAUTIL-138] - [filesystem]
operator<<required fora_util::filesystem::Path - [ODAUTIL-161] - [build] Generate documentation using conan
- [ODAUTIL-176] - [build] Use the newly defined profiles as base for the delivery packages
- [ODAUTIL-182] - [build] All public header files need to be self contained
- [ODAUTIL-183] - [documentation] Provide thorough documentation for the public API
- [ODAUTIL-163] - Extend Jenkinsfile for cross platform build of QNX target on Windows host
- [ODAUTIL-105] - [Result] Warning "unreferenced formal parameter" arises when including result_type_impl.h
- [ODAUTIL-157] - [BuildSystem] Language standard C++11 is not propagated
- [ODAUTIL-168] - [Result] Macros cannot be used with a closing semicolon without compiler warning
- [ODAUTIL-169] - Function findNode of dom.h raises
-Werror=commentwarning on gcc
- [ODAUTIL-139] - Implement new license mechanism in a_util
- [ODAUTIL-150] - Add Conan recipe and Jenkinsfile to support Jenkins Multibranch Pipeline jobs
- [ODAUTIL-155] - [BuildSystem] Change names of delivered library (*.lib and *.a) files
- [ODAUTIL-142] - [memory] new allocated buffer is not nullified
- [ODAUTIL-149] - [system]
getCurrentUserName()doesn't work correctly when running on QNX - [ODAUTIL-160] - [log] log.h file is not self contained
- [ODAUTIL-119] - Porting to SCALEXIO QNX
- [ODAUTIL-121] - Remove C++11 compatibility code
- Breaking change: Compilers without C++11 support are not supported anymore. Please check the supported compiler section in the documentation.
- [ODAUTIL-123] - Include the Open Source Disclaimer to the package
- [ODAUTIL-131] - Add install complete reference files
- [ODAUTIL-126] - Use of plain signature of
target_link_librarieson test targets leads to CMake error during configuration - [ODAUTIL-129] - [Changelog] "Known Issues" use the wrong query
- [ODAUTIL-133] - Usage of gtest and gtest_main instead of
GTest::GTestandGTest::Mainas link libraries leads to linker errors
- [ODAUTIL-115] - [common] Remove ADPL and add MPL 2.0 License
- since the ADPL license is NOT compatible with the terms and conditions of the GPLv3 we will now distribute the A Util library under the common MPL 2.0 (Mozilla Public License 2.0). This will allow to reuse the library under GPLv3.
- [ODAUTIL-94] - [parser] Add basic functionality to parse comma separated value (CSV) files
- New component
a_util::parseradded with initial implementation to read comma separated value (*.csv) files - Usage:
find_package(a_util COMPONENTS csv_reader)includes the csv reader into the current projecttarget_link_libraries(myProject a_util_csv_reader)might be used to link against the library- #include "a_util/parser.h" includes the parser API into your current source file
- New component
- [ODAUTIL-103] - [process] Add a component for process control
- New component
a_util::processadded with initial implementations to run executables within a new process as well as retrieve the current process id - Usage:
find_package(a_util COMPONENTS process)includes the process component into the current projecttarget_link_libraries(myProject a_util_process)might be used to link against the library- #include "a_util/process.h" includes the process API into your current source file
- New component
- [ODAUTIL-108] - [process] Add reading and writing environment variables to the process
- [ODAUTIL-109] - Changelog must provide more and better readable information
- [ODAUTIL-99] - Make odautil compiles out of the box
- [ODAUTIL-101] - [CMAKE] Could not call
find_package(a_util COMPONENTS ...)more than one time- Important note: This encourages the usage of CMake package components to include the wanted
a_util components into projects. So instead of writing
find_package(a_util_strings)we encourage you to writefind_package(a_util COMPONENTS strings)
- Important note: This encourages the usage of CMake package components to include the wanted
a_util components into projects. So instead of writing
- [ODAUTIL-3] - Add Solution for old cCommandLine (AUL-69)
- [Clara] v1.1.2 was added as 3rdparty command line tool (C++11 and above required)
- Usage: After a successful
find_package(a_util)consuming projects may first callfind_package(Clara)followed by atarget_link_libraries(myLibrary Clara). Afterwards, Clara can be used as documented on its [project page]
- [ODAUTIL-77] - [DateTime] Timestamps must be generated with reference to Julian Time or Unix Time
enum TimeStampReferencemay be used to choose the wanted behavior in methodsDateTime::setandDateTime::toTimestamp
- [ODAUTIL-95] - Use googletest functionality provided by CMake command
find_package(GTest) - [ODAUTIL-98] - Add changelog file and initially start documenting changes for version 5.2.0
- [ODAUTIL-81] -
Semaphore::wait_forloops forever if timeout is too big - [ODAUTIL-90] - [DateTime] Scoped enums and
std::chronodon't compile with pre-C++11 gcc compilers - [ODAUTIL-97] - [base] CMake
configure_file()must not generate config.h into source tree
- [ODAUTIL-61] - [Result] Add debug helper for Visual Studio 2012+ (.natvis file) (AUL-65)
- [ODAUTIL-68] - Remove googletest as 3rdparty dependency (AUL-68)
- [ODAUTIL-72] - Add ADPL License Info to all artefact (Header, CPPs)
- [ODAUTIL-73] - Automatically set C++ standard to the platform maximum
- [ODAUTIL-75] - Add try_wait method to
a_util::concurrency::semaphoreclass
- [ODAUTIL-10] - Thread detach() test can fail due to race condition (AUL-67)
- [ODAUTIL-66] - StackPtr Test crashes on U1604_x64_gcc54 (AUL-66)
- [ODAUTIL-12] - Fix Timer by rewriting Thread (AUL-63)
- [ODAUTIL-14] - [XML] Provide functionality to check for empty DOM and DOMElement objects (AUL-61)
- [ODAUTIL-15] - Split API and implementation of header only libraries into separate files (AUL-60)
- [ODAUTIL-16] - Apply style guidelines (AUL-57)
- [ODAUTIL-17] - [Base] Provide static_assert() backport (AUL-56)
- [ODAUTIL-20] - Test result output path must be configurable in integrated build scenario (AUL-53)
- [ODAUTIL-21] - Adapt API to updated style guidelines (AUL-51)
- [ODAUTIL-22] - Improve DOM FindNodes performance (AUL-50)
- [ODAUTIL-26] - Create a_util_base component (AUL-46)
- [ODAUTIL-29] - Provide interface target pulling in all AUL components at once (AUL-42)
- [ODAUTIL-32] - Provide mechanism to generate GUIDs (AUL-38)
- [ODAUTIL-33] - Provide support for high resolution timing on all platforms (AUL-37)
- [ODAUTIL-34] - Provide access to hostname (AUL-36)
- [ODAUTIL-35] - Disallow deleted CCTORS and assignment operators in concurrency fallback classes (AUL-35)
- [ODAUTIL-37] - [Base] Implement nullptr fallback for compilers not providing an implementation (AUL-33)
- [ODAUTIL-38] - Add basic semaphore implementation (AUL-32)
- [ODAUTIL-40] - Add missing string functionality (AUL-30)
- [ODAUTIL-41] - [Result] Port tResult and error handling mechanism from a_util 4 (AUL-29)
- [ODAUTIL-42] -
a_util::memory::MemoryBuffermust support wrapping non-owned memory (AUL-28) - [ODAUTIL-43] -
a_util::filesystemhas to have a rename or move function (AUL-27) - [ODAUTIL-44] - extend
a_util::memoryfor a mem_zero (AUL-26) - [ODAUTIL-45] - Add copy functionality to
a_util::strings(AUL-25) - [ODAUTIL-46] - [System] Provide periodic timer - {Redmine #38883} (AUL-24)
- [ODAUTIL-47] - [System] Provide access to system API - {Redmine #37454} (AUL-22)
- [ODAUTIL-48] - [Filesystem] Provide support for filesytem access - {Redmine #37451} (AUL-20)
- [ODAUTIL-49] - [Chrono] Provide date and time functionality - {Redmine #37446} (AUL-19)
- [ODAUTIL-50] - [Regex] Provide support for regular expressions - {Redmine #37432} (AUL-18)
- [ODAUTIL-51] - [Logging] Provide infrastructure for application logging - {Redmine #37426} (AUL-17)
- [ODAUTIL-52] - [Variant] Provide wrapper to store arbitrary data types - {Redmine #37424} (AUL-16)
- [ODAUTIL-53] - [Strings] Provide extended functionality for
std::stringand C-style strings - {Redmine #37423} (AUL-15) - [ODAUTIL-54] - [XML] Implement XML API - {Redmine #37350} (AUL-13)
- [ODAUTIL-55] - [cmake] Enable a_util_library to be usable as CMake package - {Redmine #37301} (AUL-12)
- [ODAUTIL-56] - Provide solution for last system error (AUL-11)
- [ODAUTIL-57] - [PortableTypes] Provide portable base types for all supported platforms - {Redmine #37352} (AUL-10)
- [ODAUTIL-58] - Enable doxygen documentation (AUL-3)
- [ODAUTIL-62] - [cmake] Naming convention of target libraries must reflect their platform dependence and build type - {Redmine #37994} (AUL-23)
- [ODAUTIL-63] - [Memory] Provide support for handling raw memory - {Redmine #37452} (AUL-21)
- [ODAUTIL-64] - [Memory] Provide smart pointer implementations for platforms not providing them - {Redmine #37353} (AUL-14)
- [ODAUTIL-65] - [Concurrency] Provide threading and synchronization mechanisms - {Redmine #38652} (AUL-4)
- [ODAUTIL-70] - Provide means to make canonical paths in
a_util::filesystem(AUL-43) - [ODAUTIL-71] - Provide fallback for C++11 type traits (AUL-41)
- [ODAUTIL-13] - [Result] Error definitions must not pollute the global namespace (AUL-62)
- [ODAUTIL-18] - System error test fails on Windows 7 / Visual Studio 2010 (AUL-55)
- [ODAUTIL-23] -
concurrency::thread::detachcrashes on fallback platforms (AUL-49) - [ODAUTIL-24] - [Test] Overwrite
add_test()macro instead of providing wrapperadd_util_test()(AUL-48) - [ODAUTIL-25] - [Test] Fix disabled installation of googletest (AUL-47)
- [ODAUTIL-31] - [Testing] Setting an alternative working directory (AUL-39)
- [ODAUTIL-36] - [Testing] Remove link dependency to a_util_filesystem for test targets (AUL-34)
- [ODAUTIL-39] -
a_util::variant::VariantCCTOR doesn't properly copy strings (AUL-31)
- [CDDDL-116] - [Header2DDL] Types of hexadecimal values in enums must be interpreted as underlying type
- [CDDDL-117] - [Header2DDL] Basic preprocessor functionality needs to be implemented
- [CDDDL-118] - [Header2DDL] Basic arithmetic operation of constant integers must be implemented
- [CDDDL-132] - Use user "fep" instead of "aev25" in package references of the conan recipes
- [CDDDL-136] - [build] Define and apply whitespace settings in .gitattributes file
- [CDDDL-140] - [build] Use native GTest and CMake functionality
- [CDDDL-141] - [build] Generate API documentation using CoRTEXDocumentationHelper with doxygen
- [CDDDL-142] - [build] Restructure files and folders in source tree compliant to common configuration management
- [CDDDL-146] - Add .clang-format file and apply ruleset on C++ codebase
- [CDDDL-155] - [test] Use more fitting test macros
- [CDDDL-60] - Make cdddl compiles out of the box
- [CDDDL-97] - [ddlcontainer] Segmentation fault on linux during deleteAll()
- [CDDDL-98] - [build] Mutual dependency between conan recipe and CMake build automation of 'list_used_licenses.md.in'
- [CDDDL-126] - [ddl2header] Test fixture cTesterddlgeneratorCmdLine fails on platforms using gcc
- [CDDDL-134] - [build] Unresolved symbols after making parts of a_util_result header-only
- [CDDDL-138] - [build] Conan recipes not compatible with conan versions >1.16.2
- [CDDDL-139] - [ddl2header] Might crash with --struct command line option
- [CDDDL-153] - [Mapping] Possible null pointer exception
- [CDDDL-123] - Use the newly defined profiles as base for the delivery packages
- [CDDDL-126] - [build] Build errors after update to a_util 5.7.0
- [CDDDL-111] - Extend Jenkinsfile for cross platform build of QNX target on Windows host
- [CDDDL-119] - Missing semicolons when using a_util
_MAKE_ERRORlead to error during compile time
- [CDDDL-85] - Implement new license mechanism in ddl
- [CDDDL-89] - Implement valid copy and move semantics
- [CDDDL-99] - Add conan recipe and Jenkinsfile to repository
- [CDDDL-102] - [BuildSystem] Change names of delivered libraries (*.lib and *.a) files
- [CDDDL-92] - Missing merge of CDDDL-56 into master
- [CDDDL-103] - [BuildSystem] Language standard C++11 is not propagated
- [CDDDL-74] - [Test] Normalize AEV_TEST macro to standard GoogleTest macro
- [CDDDL-81] - [Test] Exchange
aev_add_gtest()with ordinary CMake command `add_test()`` - [CDDDL-82] - Porting to QNX
- [CDDDL-84] - Add reference files for tester install complete to verify DDL Library package
- [CDDDL-65] - [ddlrepresentation] cannot rename sorted DDLContainer item
- [CDDDL-67] - [ddlinspector] Min/max values for tBool hold literals instead of numeric values
- [CDDDL-70] - [DDLDescription] Default min+max values for tInt8 and tUInt8 are not numbers
- [CDDDL-71] - [DDLCloner] Check for memory leak in cDDLCloner
- [CDDDL-75] - [ddlinspector] Default value of a structure element without bounding limits is not compared with datatype bounding limits
- [CDDDL-77] - DDLResolver uses current date and time in generated description
- [CDDDL-61] - Create XSDs for DDL 3 and 4
- [CDDDL-62] - Remove ADPL and add MPL 2.0 License
- [CDDDL-64] - DDL version migrate cmake makro throws warnings
- [CDDDL-15] - Change Version Variable of OO DDL from Floating to a struct Major/Minor
- [CDDDL-16] - Change to new Coding Style
- [CDDDL-17] - Reenable Documentation creation
- [CDDDL-24] - Unify commandline arguments with other utilities - commandline tooling must use --my_parameter (corresponding -mp)
- [CDDDL-34] - [DOC] DDL Documentation must use Markdown format and the content must be updated
- [CDDDL-39] - Create clang-tidy script for porting usercode from 4.0 to 4.1
- [CDDDL-44] - [Mapping] Add method to mapping engine to check whether a signal has any triggers
- [CDDDL-45] - Add simple possibility to identify dynamic arrays
- [CDDDL-46] - [DDLInspector] Invalid numbers containing multiple '.' must be detected and corrected
- [CDDDL-48] - Check const correctness of DDL Library
- [CDDDL-35] - cDDLImporter uses
ArraySizeSourcewrong - [CDDDL-36] - cDDLCloner cannot clone FEP Driver DDL
- [CDDDL-41] - [DDL] Type names containing '/' are not supported
Shows the upcoming features.