From c5dffc0f1db61dfc6472a594e346c188926e2d6e Mon Sep 17 00:00:00 2001 From: Andrey Babanin Date: Mon, 23 Mar 2026 17:20:49 +0100 Subject: [PATCH 1/3] Move ABI compatible data types to Baselibs feature Fixes: https://github.com/eclipse-score/score/issues/1456 --- .../abi_compatible_data_types/index.rst | 4 ++-- .../abi_compatible_data_types/requirements.rst | 0 docs/features/baselibs/index.rst | 2 +- docs/features/communication/index.rst | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) rename docs/features/{communication => baselibs}/abi_compatible_data_types/index.rst (99%) rename docs/features/{communication => baselibs}/abi_compatible_data_types/requirements.rst (100%) diff --git a/docs/features/communication/abi_compatible_data_types/index.rst b/docs/features/baselibs/abi_compatible_data_types/index.rst similarity index 99% rename from docs/features/communication/abi_compatible_data_types/index.rst rename to docs/features/baselibs/abi_compatible_data_types/index.rst index c5992d11822..96a3547a878 100644 --- a/docs/features/communication/abi_compatible_data_types/index.rst +++ b/docs/features/baselibs/abi_compatible_data_types/index.rst @@ -17,11 +17,11 @@ ABI Compatible Data Types ######################### -.. document:: ABI Compatible Datatypes +.. document:: ABI Compatible Data Types :id: doc__abi_compatible_data_types :status: valid :safety: ASIL_B - :tags: feature_request, change_management, communication, abi_compatible_data_types + :tags: feature_request, change_management, abi_compatible_data_types :security: YES :realizes: wp__feat_request diff --git a/docs/features/communication/abi_compatible_data_types/requirements.rst b/docs/features/baselibs/abi_compatible_data_types/requirements.rst similarity index 100% rename from docs/features/communication/abi_compatible_data_types/requirements.rst rename to docs/features/baselibs/abi_compatible_data_types/requirements.rst diff --git a/docs/features/baselibs/index.rst b/docs/features/baselibs/index.rst index c6a06a9dade..f251031a575 100644 --- a/docs/features/baselibs/index.rst +++ b/docs/features/baselibs/index.rst @@ -36,7 +36,7 @@ Base Libraries (v0.5 beta) docs/safety_analysis/dfa.rst docs/safety_analysis/fmea.rst docs/safety_planning/index.rst - + abi_compatible_data_types/index.rst Feature flag ============ diff --git a/docs/features/communication/index.rst b/docs/features/communication/index.rst index 62000c6fc91..460c6fd7538 100644 --- a/docs/features/communication/index.rst +++ b/docs/features/communication/index.rst @@ -34,7 +34,6 @@ Communication (v0.5 beta) docs/**/index ipc/index some_ip_gateway/index - abi_compatible_data_types/index Feature flag ============ From 0e3b4c8904dd486237a305f6097d6e9f83e8e9e5 Mon Sep 17 00:00:00 2001 From: Andrey Babanin Date: Tue, 24 Mar 2026 09:31:52 +0100 Subject: [PATCH 2/3] Move message_passing component to communication feature The message_passing source code is located in the communication repo --- docs/features/baselibs/docs/architecture/index.rst | 6 +++--- .../features/communication/docs/architecture/index.rst | 2 +- docs/modules/baselibs/docs/index.rst | 4 ++-- docs/modules/communication/docs/index.rst | 2 +- .../ipc_binding/docs/architecture/index.rst | 2 +- .../message_passing/docs/architecture/index.rst | 10 +++++----- .../message_passing/docs/index.rst | 0 7 files changed, 13 insertions(+), 13 deletions(-) rename docs/modules/{baselibs => communication}/message_passing/docs/architecture/index.rst (81%) rename docs/modules/{baselibs => communication}/message_passing/docs/index.rst (100%) diff --git a/docs/features/baselibs/docs/architecture/index.rst b/docs/features/baselibs/docs/architecture/index.rst index f37888b2c60..084d965cbef 100644 --- a/docs/features/baselibs/docs/architecture/index.rst +++ b/docs/features/baselibs/docs/architecture/index.rst @@ -89,7 +89,7 @@ Static Architecture :security: YES :safety: ASIL_B :status: valid - :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view + :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view :consists_of: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend .. feat_arc_sta:: Baselibs Static View @@ -98,7 +98,7 @@ Static Architecture :safety: ASIL_B :status: valid :fulfils: feat_req__baselibs__core_utilities - :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view + :includes: logic_arc_int__baselibs__json, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__result, logic_arc_int__baselibs__bit_manipulation, logic_arc_int__baselibs__bit_mask_operator, logic_arc_int__baselibs__dynamic_array, logic_arc_int__baselibs__intrusive_list, logic_arc_int__baselibs__filesystem, logic_arc_int__baselibs__utils_base64, logic_arc_int__baselibs__utils_scoped_op, logic_arc_int__baselibs__promise, logic_arc_int__baselibs__future, logic_arc_int__baselibs__shared_future, logic_arc_int__baselibs__executor, logic_arc_int__baselibs__task, logic_arc_int__baselibs__task_result, logic_arc_int__baselibs__synchronized_queue, logic_arc_int__baselibs__condition_variable, logic_arc_int__safecpp__aborts_upon_ex, logic_arc_int__safecpp__coverage_termination, logic_arc_int__baselibs__safemath, logic_arc_int__baselibs__safeatomics, logic_arc_int__baselibs__scoped_function, logic_arc_int__baselibs__string_view :tags: inspected :belongs_to: feat__baselibs @@ -117,4 +117,4 @@ The Baselibs feature exposes the following logical interfaces: :style: table :columns: title;id;status :sort: title - :filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__message_passing' ,'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op', 'logic_arc_int__baselibs__promise', 'logic_arc_int__baselibs__future', 'logic_arc_int__baselibs__shared_future', 'logic_arc_int__baselibs__executor', 'logic_arc_int__baselibs__task', 'logic_arc_int__baselibs__task_result', 'logic_arc_int__baselibs__synchronized_queue', 'logic_arc_int__baselibs__condition_variable', 'logic_arc_int__safecpp__aborts_upon_ex', 'logic_arc_int__safecpp__coverage_termination', 'logic_arc_int__baselibs__safemath', 'logic_arc_int__baselibs__safeatomics', 'logic_arc_int__baselibs__scoped_function', 'logic_arc_int__baselibs__string_view'] + :filter: id in ['logic_arc_int__baselibs__json', 'logic_arc_int__baselibs__memory_shared', 'logic_arc_int__baselibs__result', 'logic_arc_int__baselibs__bit_manipulation', 'logic_arc_int__baselibs__bit_mask_operator', 'logic_arc_int__baselibs__dynamic_array', 'logic_arc_int__baselibs__intrusive_list', 'logic_arc_int__baselibs__filesystem', 'logic_arc_int__baselibs__utils_base64', 'logic_arc_int__baselibs__utils_scoped_op', 'logic_arc_int__baselibs__promise', 'logic_arc_int__baselibs__future', 'logic_arc_int__baselibs__shared_future', 'logic_arc_int__baselibs__executor', 'logic_arc_int__baselibs__task', 'logic_arc_int__baselibs__task_result', 'logic_arc_int__baselibs__synchronized_queue', 'logic_arc_int__baselibs__condition_variable', 'logic_arc_int__safecpp__aborts_upon_ex', 'logic_arc_int__safecpp__coverage_termination', 'logic_arc_int__baselibs__safemath', 'logic_arc_int__baselibs__safeatomics', 'logic_arc_int__baselibs__scoped_function', 'logic_arc_int__baselibs__string_view'] diff --git a/docs/features/communication/docs/architecture/index.rst b/docs/features/communication/docs/architecture/index.rst index f32f3de7520..e2dcdae4be7 100644 --- a/docs/features/communication/docs/architecture/index.rst +++ b/docs/features/communication/docs/architecture/index.rst @@ -42,7 +42,7 @@ This ensures a stable public API, independent of the underlying binding(s). At t :safety: ASIL_B :status: valid :includes: logic_arc_int__communication__user - :consists_of: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend + :consists_of: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend, comp__com_message_passing .. feat_arc_sta:: Feature Architecture Communication :id: feat_arc_sta__com__communication diff --git a/docs/modules/baselibs/docs/index.rst b/docs/modules/baselibs/docs/index.rst index 08d90300d74..25bc7d8fef9 100644 --- a/docs/modules/baselibs/docs/index.rst +++ b/docs/modules/baselibs/docs/index.rst @@ -14,14 +14,14 @@ .. mod:: Baselibs :id: mod__baselibs - :includes: comp__baselibs_json, comp__baselibs_message_passing, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp + :includes: comp__baselibs_json, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp :status: valid :safety: ASIL_B :security: YES .. mod_view_sta:: Baselibs Static View :id: mod_view_sta__baselibs__baselibs - :includes: comp__baselibs_json, comp__baselibs_message_passing, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp + :includes: comp__baselibs_json, comp__baselibs_memory_shared, comp__baselibs_result, comp__baselibs_bit_manipulation, comp__baselibs_containers, comp__baselibs_filesystem, comp__baselibs_utils, comp__baselibs_concurrency, comp__baselibs_safecpp .. needarch:: :scale: 50 diff --git a/docs/modules/communication/docs/index.rst b/docs/modules/communication/docs/index.rst index 7a5322656a0..f350a895a68 100644 --- a/docs/modules/communication/docs/index.rst +++ b/docs/modules/communication/docs/index.rst @@ -14,7 +14,7 @@ .. mod:: Communication :id: mod__com_communication - :includes: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend + :includes: comp__com_configuration, comp__com_ipc_binding, comp__com_mock_binding, comp__com_frontend, comp__com_message_passing .. needarch:: :scale: 50 diff --git a/docs/modules/communication/ipc_binding/docs/architecture/index.rst b/docs/modules/communication/ipc_binding/docs/architecture/index.rst index 34da4de8f66..07ae2f61f23 100644 --- a/docs/modules/communication/ipc_binding/docs/architecture/index.rst +++ b/docs/modules/communication/ipc_binding/docs/architecture/index.rst @@ -20,7 +20,7 @@ IPC Binding Component Architecture :security: YES :safety: ASIL_B :status: valid - :uses: logic_arc_int__logging__logging, logic_arc_int__tracing__tracing, logic_arc_int__baselibs__memory_shared, logic_arc_int__baselibs__message_passing, logic_arc_int__baselibs__json + :uses: logic_arc_int__logging__logging, logic_arc_int__tracing__tracing, logic_arc_int__baselibs__memory_shared, logic_arc_int__com__message_passing, logic_arc_int__baselibs__json .. needarch:: :scale: 50 diff --git a/docs/modules/baselibs/message_passing/docs/architecture/index.rst b/docs/modules/communication/message_passing/docs/architecture/index.rst similarity index 81% rename from docs/modules/baselibs/message_passing/docs/architecture/index.rst rename to docs/modules/communication/message_passing/docs/architecture/index.rst index cb791c123df..130131acc1e 100644 --- a/docs/modules/baselibs/message_passing/docs/architecture/index.rst +++ b/docs/modules/communication/message_passing/docs/architecture/index.rst @@ -16,11 +16,11 @@ Message Passing Component Architecture ************************************** .. comp:: Message Passing - :id: comp__baselibs_message_passing + :id: comp__com_message_passing :security: YES :safety: ASIL_B :status: valid - :implements: logic_arc_int__baselibs__message_passing + :implements: logic_arc_int__com__message_passing :uses: logic_arc_int__os__message_passing .. needarch:: @@ -31,14 +31,14 @@ Message Passing Component Architecture .. logic_arc_int:: Message Passing - :id: logic_arc_int__baselibs__message_passing + :id: logic_arc_int__com__message_passing :security: YES :safety: ASIL_B :status: valid .. logic_arc_int_op:: Send Message - :id: logic_arc_int_op__baselibs__mp_register + :id: logic_arc_int_op__com__mp_register :security: YES :safety: ASIL_B :status: valid - :included_by: logic_arc_int__baselibs__message_passing + :included_by: logic_arc_int__com__message_passing diff --git a/docs/modules/baselibs/message_passing/docs/index.rst b/docs/modules/communication/message_passing/docs/index.rst similarity index 100% rename from docs/modules/baselibs/message_passing/docs/index.rst rename to docs/modules/communication/message_passing/docs/index.rst From 8b7a6eaee59b7a4e773c0ca0e1c2753756039c71 Mon Sep 17 00:00:00 2001 From: Andrey Babanin Date: Tue, 24 Mar 2026 10:14:51 +0100 Subject: [PATCH 3/3] Relocate list of libs for Baselibs feature to module The list is too detailed to be placed in the feature description. --- docs/features/baselibs/index.rst | 37 ------------------- .../baselibs/docs/release/release_note.rst | 4 +- docs/modules/baselibs/index.rst | 36 ++++++++++++++---- 3 files changed, 30 insertions(+), 47 deletions(-) diff --git a/docs/features/baselibs/index.rst b/docs/features/baselibs/index.rst index f251031a575..707c8260d40 100644 --- a/docs/features/baselibs/index.rst +++ b/docs/features/baselibs/index.rst @@ -76,43 +76,6 @@ or C++ and provide bindings to the other language to maximize maintainability an However, if there are strong technical reasons (such as language-specific performance or safety requirements), a library may be implemented separately in both Rust and C++. -Specification -============= - -The base libraries feature consists of the following libraries, all of which are currently implemented in C++: - -- **bitmanipulation**: Utilities for bit manipulation. -- **concurrency**: Provides a generic interface to execute any C++ callable in a parallel context, - supporting various execution strategies (e.g., thread pool, timed execution), thread safety, - interruption handling, and periodic/delayed task execution. -- **containers**: Offers a ``DynamicArray`` (fixed-size array with dynamic construction-time size) - and an intrusive linked list implementation conforming to the - `P0406R1 proposal `_. -- **json**: JSON abstraction layer that can switch between different parsers/serializers under the hood. -- **filesystem**: Filesystem manipulation library similar to ``std::filesystem``. -- **futurecpp**: Extends the C++14 Standard Library with features from newer C++ standards up to C++26, - as well as selected proposals for the C++ Standard Library. -- **safecpp/aborts_upon_exception**: Globally prevents creation of exception objects by calling ``std::abort()`` - immediately. -- **safecpp/coverage_termination_handler**: Helper library to enable collective code coverage information in - GTest death tests. -- **safecpp/safe_math**: Provides safe implementations for arithmetic and related operations for - signed/unsigned integral types and floating point types. -- **safecpp/scoped_function**: Allows developers to consciously limit when an enclosed callable - (function) can be invoked. -- **memory**: Utility library for memory handling, including an abstraction layer for shared memory. -- **os**: OS Abstraction Layer (OSAL) to interface with different POSIX-like operating systems such - as Linux and QNX. -- **result**: Provides a unified approach to error handling without exceptions, conforming to C++23 - ``std::expected``. -- **static_reflection_with_serialization**: A header-only library for binary serialization, - deserialization, and compile-time type reflection of heterogenuous C++ data structures with focus - on compile-time safety and efficiency of serialization, as well as efficiency of filtering by - content during deserialization. -- **mw::log**: Logging library. -- **utils**: Provides a collection of small, reusable utilities that do not fit into the other - base libraries. - Backwards Compatibility ======================= diff --git a/docs/modules/baselibs/docs/release/release_note.rst b/docs/modules/baselibs/docs/release/release_note.rst index d8a75964833..320b1990851 100644 --- a/docs/modules/baselibs/docs/release/release_note.rst +++ b/docs/modules/baselibs/docs/release/release_note.rst @@ -24,6 +24,4 @@ Release Note :security: YES :realizes: wp__module_sw_release_note -The following releases notes are available for Baselibs module: - -- v0.1.3 (as part of S-CORE 0.5 Alpha Release): `_ +For the release notes, see the `Baselibs releases `_ on GitHub. diff --git a/docs/modules/baselibs/index.rst b/docs/modules/baselibs/index.rst index c9de56d580f..c161d5abe19 100644 --- a/docs/modules/baselibs/index.rst +++ b/docs/modules/baselibs/index.rst @@ -17,17 +17,39 @@ Baselibs Module .. toctree:: :titlesonly: - :maxdepth: 2 + :hidden: + :glob: ./docs/index language/index + ./*/docs/index Components ========== -.. toctree:: - :titlesonly: - :maxdepth: 1 - :glob: - - ./*/docs/index +- :need:`doc__bitmanipulation`: Utilities for bit manipulation. +- :need:`doc__concurrency`: Provides a generic interface to execute any C++ callable in a parallel context, + supporting various execution strategies (e.g., thread pool, timed execution), thread safety, + interruption handling, and periodic/delayed task execution. +- :need:`doc__containers`: Offers a ``DynamicArray`` (fixed-size array with dynamic construction-time size) + and an intrusive linked list implementation conforming to the + `P0406R1 proposal `_. +- :need:`doc__json`: JSON abstraction layer that can switch between different parsers/serializers under the hood. +- :need:`doc__filesystem`: Filesystem manipulation library similar to ``std::filesystem``. +- :need:`doc__futurecpp`: Extends the C++17 Standard Library with features from newer C++ standards up to C++26, + as well as selected proposals for the C++ Standard Library. +- :need:`doc__safecpp`: A collection of utilities that helps developers write safer C++ code, including + overflow-safe arithmetic, scoped callable execution, abort-on-exception enforcement, atomic overflow + prevention, null-terminated string view utilities, and coverage data preservation in GTest death tests. +- :need:`doc__memory`: Utility library for memory handling, including an abstraction layer for shared memory. +- :need:`doc__os`: OS Abstraction Layer (OSAL) to interface with different POSIX-like operating systems such + as Linux and QNX. +- :need:`doc__result`: Provides a unified approach to error handling without exceptions, conforming to C++23 + ``std::expected``. +- :need:`doc__static_reflection_with_serialization`: A header-only library for binary serialization, + deserialization, and compile-time type reflection of heterogenuous C++ data structures with focus + on compile-time safety and efficiency of serialization, as well as efficiency of filtering by + content during deserialization. +- *mw::log*: Logging frontend. +- :need:`doc__utils`: Provides a collection of small, reusable utilities that do not fit into the other + base libraries.