Skip to content

Latest commit

 

History

History
318 lines (285 loc) · 18.3 KB

CHANGELOG.md

File metadata and controls

318 lines (285 loc) · 18.3 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

2.0.6 (2022-08-20)

  • code cleanup to eliminate compiler/linter warnings and improve code quality.

2.0.5 (2022-08-20)

Features

  • add ccache support to dev container (202c27a)
  • make ccache usable on all platforms (412730f)

Bug Fixes

  • #10 no more template export header (dd8ffd5)
  • #11 refactor compiler options management (78ae493)
  • #12 disable used-but-marked-unused (6d42d83)
  • #5 update cmake/common to latest (5034b22)
  • #9 remove no longer used function (5a7416f)
  • #6: properly setup install layout (71fd5d5), closes #6
  • #7: add build and ops commit types (0d9187e), closes #7
  • #8: add standard ccov excluded directories by default (a8aabb3), closes #8
  • add alaises used by cmake common functions (9c33906)
  • alias variable to enable/disable building tests (3992b0f)
  • define asap_top_level_install as empty when project install should be skipped (616deed)
  • typo in variable name to enable/disable building tests (9950fe2)
  • use correct links for documentation (486144c), closes #4
  • use only white-listed properties for interface library (227de02)

Documentation

  • add badge for OpenSSF best practices (26c01c8)
  • add CPM as preferred way of managing third party deps (5a33f70)
  • add last-updated-on timestamp (d3e5ec3)
  • add tutorial videos (cb13248)
  • fix thumbnail and links of project docs video (1a6269e)
  • how to report security vulnerabilities (46426e9)
  • improve the key features section (79119ba)
  • include build status badges for all branches (2b98ae1)
  • revamp the project README (e72c4c3)
  • rewrite the contributing section (c7e39c4)
  • update instructions for repo from template scenario (1cafdb5)
  • update project docs video (c7f79fc)

2.0.4 (2022-03-15)

  • speedup build and CI actions by removing unnecessary dependency on Google Test and the apt-get update step.

Bug Fixes

  • only add sanitizers if building tests (182d039)
  • use variable for checking if project must install targets (3c4b088)

2.0.3 (2022-03-07)

Bug Fixes

  • enable code coverage all targets (2399bc3)

2.0.2 (2022-03-06)

docs: add last-updated-on timestamp

2.0.1 (2022-03-06)

Bug Fixes

  • define asap_top_level_install as empty when project install should be skipped (593da1e)
  • incorrect chapter heading (c716b18)
  • incorrect project title (aaa5331)
  • wrong links were still being used (166a996)

2.0.0 (2022-03-06)

This is a major refactoring of the asap family of projects and as such introduces several breaking changes. The following detailed change log is not entirely relevant as many of the modules have been extracted in the final stage out of common into their own projects. The history is here for continuity from the old asap projects.

⚠ BREAKING CHANGES

  • The state machine library is now in its own separate module to keep the common module as small as possible. The api can be used via <fsm/fsm.h> instead of previously <<common/fsm.h>.
  • Using exceptions to report completion or events not being consumed results in significant overhead on the FSM due to exception handling and a loss of performance. Changes were made to the API and implementation to make state OnLeave and OnEnter return a Status and to let the action Execute method also return a status.
  • The logging Registry is now implemented as a singleton class and therefore it needs to be accessed via its instance() method. All other methods in its interface are not static anymore.
  • Prefix the options with ASAP_ to make them unique and avoid clashing with other projects that may use the generic OPTION_xxx names. Additionally, the build presets now always activate building of tests and examples except in release builds where examples are not built.
  • This option is no longer relevant as we believe that 3rd party dependencies should be installed using their own projects. In the wrostcase scenario, they should be explicitly added as install instructions to the project in a visible and documented way.
  • The project requires C++17 as it is widely available in compilers now. Logical traits such as conjunction, disjunction and negation are available from the <type_traits> standard include.
  • major redesign of the cmake build system, many macros and functions have been changed and the build system overall has been simplified. Refer to the documentation for more information.
  • catch2 has been replaced by Google Test/Mock, which provide more features, less compiler earnings and are more popular. Catch2 or any other framework can still be easily added and used to an asap based project.
  • hedley was removed from common and was replaced by a much lighter new file compilers.h.
  • nowide was removed from common and will be replaced by the standalone boost nowide library when needed.
  • filesystem footprint is too large to be included by default in asap starter project. It will be provided separately and a mechanism to easily add it into an asap based project will be implemented in a future update.
  • logging is in a new module: asap::logging.

Many modules would want to only get the basic common functionality without pulling extra 3rd party dependencies such as spdlog, fmt etc... For this reason, the logging functionality is taken out of the common submodule and moved to logging submodule.

  • logging is in a new module: asap::logging.

Many modules would want to only get the basic common functionality without pulling extra 3rd party dependencies such as spdlog, fmt etc... For this reason, the logging functionality is taken out of the common submodule and moved to logging submodule.

Features

  • add gsl library (9b982f1)
  • add support for .editorconfig (5a7a689)
  • add support for CMake presets (bdcfa4d)
  • add support for Conventional Commits and auto Changelog (7b827fa)
  • contract checking api (assertions) (c691446)
  • doxygen snippets from test or examples source directories (85b8000)
  • lightweight mixin support library (84b4ae8)
  • msvc build on windows (d7eccb8)
  • overload pattern for variant visitation on the fly (53ea7cc)
  • provide a way to distinguish between debug and release builds via preprocessor define (bbd84a2)
  • replace cmake compiler detection with hedley (8bf0a3d)
  • State Machine implementation library (55278fa)
  • text wrapping module (8cece41)

Bug Fixes

  • "-Wreserved-identifier" only if not APPLE (05fac12)
  • adjust doc target names to work in renamed projects (60acc65)
  • always use top level build dir for output (1b01db2)
  • cmake option was placed in the wrong command (b634b15)
  • cmake require c++ 14 in all modules (f05c9a6)
  • configure compilation database for clangd when using cmake presets (7493c24)
  • contract api docs now in contract module (d3366bd)
  • doc: wrong chapter title in logging module page (5966912)
  • doxygen and sphinx target conflict with modules (02375ff)
  • doxygen doc generation uses wrong module info (8833474)
  • export members instead of whole class to accomodate MSVC STL in DLL restrictions (eb504b8)
  • generate doc only if project is master (82190fa)
  • hardcode asap in places where we should not use the custom project name (7f81298)
  • include CTest module (4cffc36)
  • keep src even when empty for doxygen not to complain (be28f42)
  • make ctest work again (0f3cac0)
  • make doxygen targets sub-project friendly (546fe73)
  • make gtest work again (3ce658c)
  • make sphinx targets sub-project friendly (024cc77)
  • match Clang and Apple Clang for compiler options (7e1e123)
  • merge changes from upstream asap (8eabccd)
  • need to hardoce asap when linking common (e038a70)
  • only add clang-format/tidy targets if master project (060f082)
  • only add sanitizers if building tests (c98881c)
  • only install files if requested to install (9caaf9b)
  • paragraph marks surrounded by white spaces not properly tokenized (7dc72f8)
  • put noexcept specifications where it makes sense (f1c1036)
  • remove axiom from the contrcat check apis (5000c96)
  • remove reference to thread local (f912630)
  • remove trailing comma (3d8ca08)
  • removed reference to thread local (7152ae8)
  • reorganize third_party modules for use of FetchContent (cc65bc2)
  • undefined symbol in release build due to inlining of function (e45a8eb)
  • use clang pragma when clang is the compiler (4ad38e4)
  • use correct path for the master docs (2322694)
  • use correct tagets for doc builds (559558e)
  • use correct tagets for doc builds (0d7049f)
  • use correct url for logo image (96d1e01)
  • use correct url for master index page (a56c327)
  • use lower case META_PROJECT_ID (311e433)
  • use lower-case name for sphinx (f3005b5)
  • use separate sphinx cache dir for each module (03f36fc)
  • wrong variable used for target name (829f351)
  • clean the logging API implementation (25535c7)
  • convert git submodule to local module (4e32e8a)
  • convert unit testing to gtest/gmock (b99c8d0)
  • extract fsm module out of common (0269f2d)
  • make the options to build tests and examples unique (3a35b79)
  • move logging functionality to separate module (0d1ca72)
  • move logging functionality to separate module (46f4dd9)
  • redesign cmake build system (31ce14a)
  • remove filesystem submodule (e2089ae)
  • remove logical traits backport (5ed0fe6)
  • remove OPTION_SELF_CONTAINED cmake cache variable (3c4e0e5)
  • restrict exceptions to error reporting (014b96b)