Persistency Documentation#

This documentation describes the structure, usage and configuration of the Bazel-based C++/Rust module template according to the SCORE module folder structure and the SCORE building blocks concept.

Overview#

This repository provides a standardized setup for projects using C++ or Rust and Bazel as a build system. It integrates best practices for build, test, CI/CD and documentation.

Module Layout#

The module template includes the following top-level structure:

<module_name>/                      # Root folder of the module, subfolder only if more than one module exists in the repository
├── .github/
│   └── workflows/                  # CI/CD pipelines
├── docs/                           # Global documentation of the module
│   ├── features/                   # Feature documentation and architecture
│   │   └── <feature_name>/         # Feature folder parts for each feature which should be in module documentation
│   │       ├── architecture/       # Feature architecture [wp__feature_arch] and of architecture review [wp__sw_arch_verification]
│   │       ├── safety_analysis/    # Feature safety analysis artifacts ([wp__feature_fmea], [wp__feature_dfa], [wp__requirements_feat_aou])
│   │       ├── safety_planning/    # Feature safety planning artifacts
│   │       ├── security_analysis/  # Feature security analysis artifacts [wp__feature_security_analysis]
│   │       └── security_planning/  # Feature security planning artifacts
│   ├── module/                     # Module documentation
│   │   ├── manuals/                # Module manual, integration manual, table of assumptions of use,
│   │   │                           #   safety manual [wp__module_safety_manual],
│   │   │                           #   needs table of [wp__requirements_feat_aou]
│   │   │                           #   security manual [wp__module_security_manual]
│   │   ├── release/                # Module release note [wp__module_sw_release_note]
│   │   ├── safety_mgt/             # Module safety plan [wp__module_safety_plan],
│   │   │                           #   module safety package [wp__module_safety_package],
│   │   │                           #   formal document and safety analysis reviews [wp__fdr_reports]
│   │   └── security_mgt/           # Module security plan [wp__module_security_plan],
│   │                               #   module security package [wp__module_security_package],
│   │                               #   formal document reviews [wp__fdr_reports_security],
│   │                               #   module SW bill of material [wp__sw_module_sbom]
│   └── verification_report/        # Module verification report,
│                                   #   module verifications [wp__verification_module_ver_report],
├── examples/                       # Usage examples for the module / features
├── score/                          # Components of the module
│   └── <component_name>/           # Component folder for each component of the module
│   │   ├── docs/                   # Documentation of the component
│   │   │   ├── architecture/       # Component architecture [wp__component_arch]
│   │   │   │                       #   (only if lower level components exist)
|   │   |   |                       #   architecture review [wp__sw_arch_verification],
│   │   │   ├── detailed_design/    # Detailed design [wp__sw_implementation]
│   │   │   │                       #   code inspection [wp__sw_implementation_inspection]
│   │   │   ├── requirements/       # Component requirements [wp__requirements_comp],[wp__requirements_inspect]
│   │   │   ├── safety_analysis/    # Safety analysis [wp__sw_component_fmea], [wp__sw_component_dfa], [wp__requirements_comp_aou]
|   │   |   |                       #   Component classification [wp__sw_component_class] for pre-existing software
│   │   │   │                       #   (only if component architecture exists)
│   │   │   ├── security_analysis/  # Security analysis [wp__sw_component_security_analysis]
│   │   │   │                       #   (only if component architecture exists)
│   │   │   └── manuals/            # User documentation (of a single component, e.g., user manual of a library component, optional)
│   │   ├── <pub_interface_files>/  # Public interfaces and implementation files of the component; the optional src/ is omitted
│   │   ├── <lower_level_comp>/     # Lower level component (follows <component_name> structure)
│   │   └── tests/                  # Component-level tests (e.g., integration and unit tests)
├── tests/                          # Module-level tests (e.g., feature integration tests, system tests) [wp__verification_feat_int_test]
├── MODULE.bazel                    # Bazel module definition
├── BUILD                           # Root build rules
├── project_config.bzl              # Project metadata used by Bazel macros
└── README.md                       # Entry point of the repository

Module / Feature Documentation#

Module / Feature documentation overview#

Title

ID

Safety

Security

Status

ABI Compatible Data Types

doc__abi_compatible_data_types

ASIL_B

YES

valid

ABI Compatible Data Types Architecture

doc__abi_compatible_data_types_architecture

ASIL_B

YES

valid

ABI Compatible Data Types Requirements

doc__abi_compatible_data_types_requirements

ASIL_B

YES

valid

Bit Manipulation Library

doc__bitmanipulation

ASIL_B

YES

draft

Bit Manipulation Requirements

doc__bitmanipulation_requirements

ASIL_B

YES

draft

bitmanipulation Architecture

doc__bitmanipulation_architecture

ASIL_B

YES

valid

Bitmanipulation Architecture Inspection Checklist

doc__bitmanipulation_arc_inspection

ASIL_B

YES

valid

bitmanipulation DFA

doc__bitmanipulation_dfa

ASIL_B

YES

draft

bitmanipulation FMEA

doc__bitmanipulation_fmea

ASIL_B

NO

valid

Bitmanipulation Implementation Inspection Checklist

doc__bitmanipulation_impl_inspection

ASIL_B

YES

draft

Bitmanipulation Requirements Inspection Checklist

doc__bitmanipulation_req_inspection

ASIL_B

YES

valid

Concurrency Architecture

doc__concurrency_architecture

ASIL_B

YES

valid

Concurrency Architecture Inspection Checklist

doc__concurrency_arc_inspection

ASIL_B

YES

valid

concurrency DFA

doc__concurrency_dfa

ASIL_B

NO

draft

concurrency FMEA

doc__concurrency_fmea

ASIL_B

NO

draft

Concurrency Implementation Inspection Checklist

doc__concurrency_impl_inspection

ASIL_B

YES

draft

Concurrency Library

doc__concurrency

ASIL_B

YES

draft

Concurrency Requirements

doc__concurrency_requirements

ASIL_B

YES

draft

Concurrency Requirements Inspection Checklist

doc__concurrency_req_inspection

ASIL_B

YES

draft

Container Architecture

doc__containers_architecture

ASIL_B

YES

valid

Containers Architecture Inspection Checklist

doc__containers_arc_inspection

ASIL_B

YES

valid

containers DFA

doc__containers_dfa

ASIL_B

NO

draft

containers FMEA

doc__containers_fmea

ASIL_B

NO

draft

Containers Implementation Inspection Checklist

doc__containers_impl_inspection

ASIL_B

YES

draft

Containers Library

doc__containers

ASIL_B

YES

draft

Containers Library Requirements

doc__containers_lib_requirements

ASIL_B

YES

draft

Containers Requirements Inspection Checklist

doc__containers_req_inspection

ASIL_B

YES

draft

Datarouter Component Requirements

doc__data_router_requirements

QM

NO

valid

Datarouter Detailed Design

doc__datarouter_detailed_design

QM

NO

draft

Filesystem Architecture

doc__filesystem_architecture

ASIL_B

YES

valid

Filesystem Architecture Inspection Checklist

doc__filesystem_arc_inspection

ASIL_B

YES

valid

filesystem DFA

doc__filesystem_dfa

ASIL_B

NO

draft

filesystem FMEA

doc__filesystem_fmea

ASIL_B

NO

draft

Filesystem Implementation Inspection Checklist

doc__filesystem_impl_inspection

ASIL_B

YES

draft

Filesystem Library

doc__filesystem

ASIL_B

YES

draft

Filesystem Library Requirements

doc__filesystem_lib_requirements

ASIL_B

YES

draft

Filesystem Requirements Inspection Checklist

doc__filesystem_req_inspection

ASIL_B

YES

draft

FlatBuffers Requirements

doc__flatbuffers_requirements

ASIL_B

YES

valid

FlatBuffers-Library

doc__flatbuffers

ASIL_B

YES

valid

FutureCPP Library

doc__futurecpp

ASIL_B

YES

draft

Hash Library

doc__hash

ASIL_B

NO

draft

Hash Requirements

doc__hash_requirements

ASIL_B

NO

draft

Health Monitor Architecture Inspection Checklist

doc__health_monitor_arc_inspection

ASIL_B

YES

draft

Health Monitor DFA

doc__health_monitor_dfa

ASIL_B

NO

draft

Health Monitor FMEA

doc__health_monitor_fmea

ASIL_B

NO

draft

Health Monitor Implementation Inspection Checklist

doc__health_monitor_impl_inspection

ASIL_B

YES

draft

Health Monitor Requirements Inspection Checklist

doc__health_monitor_req_inspection

ASIL_B

YES

draft

HealthMonitor

doc__health_monitor

ASIL_B

NO

draft

HealthMonitor Architecture

doc__health_monitor_architecture

ASIL_B

NO

draft

HealthMonitor Detailed Design

doc__health_monitor_detailed_design

ASIL_B

NO

draft

HealthMonitor Requirements

doc__health_monitor_requirements

ASIL_B

NO

draft

JSON Architecture

doc__json_architecture

ASIL_B

YES

draft

Json Architecture Inspection Checklist

doc__json_arc_inspection

ASIL_B

YES

draft

JSON Component Classification

doc__json_comp_class

ASIL_B

NO

valid

JSON DFA

doc__json_dfa

ASIL_B

NO

draft

JSON FMEA

doc__json_fmea

ASIL_B

NO

draft

Json Implementation Inspection Checklist

doc__json_impl_inspection

ASIL_B

YES

draft

JSON Requirements

doc__json_requirements

ASIL_B

YES

draft

JSON Requirements Inspection Checklist

doc__json_req_inspection

ASIL_B

YES

draft

JSON Wrapper Requirements

doc__json_wrapper_requirements

ASIL_B

YES

valid

JSON-Library

doc__json

ASIL_B

YES

valid

KVS

doc__kvs

ASIL_B

NO

valid

KVS Architecture Inspection Checklist

doc__kvs_arc_inspection

ASIL_B

YES

draft

KVS Detailed Design

doc__kvs_detailed_design

ASIL_B

NO

draft

KVS DFA

doc__kvs_dfa

ASIL_B

NO

valid

KVS FMEA

doc__kvs_fmea

ASIL_B

NO

valid

KVS Implementation Inspection Checklist

doc__kvs_impl_inspection

ASIL_B

YES

draft

KVS Module Architecture

doc__kvs_architecture

ASIL_B

NO

valid

KVS Requirements

doc__kvs_requirements

ASIL_B

NO

valid

KVS Requirements Inspection Checklist

doc__kvs_req_inspection

ASIL_B

YES

valid

Launch Manager Architecture

doc__launch_manager_architecture

ASIL_B

YES

draft

Launch Manager Architecture Inspection Checklist

doc__launch_manager_arc_inspection

ASIL_B

YES

draft

Launch Manager Component AoU

doc__launch_manager_comp_aou

ASIL_B

NO

draft

Launch Manager Detailed Design

doc__launch_manager_detailed_design

ASIL_B

NO

draft

Launch Manager DFA

doc__launch_manager_dfa

ASIL_B

NO

draft

Launch Manager FMEA

doc__launch_manager_fmea

ASIL_B

NO

draft

Launch Manager Implementation Inspection Checklist

doc__launch_manager_impl_inspection

ASIL_B

YES

draft

Launch Manager Requirements

doc__launch_manager_requirements

ASIL_B

YES

valid

Launch Manager Requirements Inspection Checklist

doc__launch_manager_req_inspection

ASIL_B

YES

draft

Log Assumptions of Use

doc__log_assumptions_of_use

ASIL_B

NO

valid

Log Detailed Design

doc__log_detailed_design

ASIL_B

NO

draft

Log Frontend Architecture

doc__log_architecture

ASIL_B

NO

draft

Log Frontend Architecture Inspection Checklist

doc__log_arc_inspection

ASIL_B

YES

draft

Log Requirements

doc__log_requirements

ASIL_B

NO

valid

log_frontend DFA

doc__log_dfa

ASIL_B

NO

draft

log_frontend FMEA

doc__log_fmea

ASIL_B

NO

draft

log_frontend Implementation Inspection Checklist

doc__log_impl_inspection

ASIL_B

YES

draft

log_frontend Requirements Inspection Checklist

doc__log_req_inspection

ASIL_B

YES

draft

Memory Library

doc__memory

ASIL_B

YES

draft

Memory Library Requirements

doc__memory_lib_requirements

ASIL_B

YES

draft

mw::log Backend

doc__mw_log_backend

ASIL_B

NO

draft

mw::log Backend Architecture

doc__mw_log_backend_architecture

ASIL_B

NO

draft

mw::log Backend Component AoU

doc__mw_log_backend_comp_aou

ASIL_B

NO

draft

mw::log Backend Component Requirements

doc__mw_log_backend_requirements

ASIL_B

YES

valid

mw::log Backend Detailed Design

doc__mw_log_backend_detailed_design

ASIL_B

YES

draft

mw::log Backend DFA

doc__mw_log_backend_dfa

ASIL_B

NO

draft

mw::log Backend FMEA

doc__mw_log_backend_fmea

ASIL_B

NO

draft

mw::log Backend Implementation Inspection Checklist

doc__mw_log_backend_impl_inspection

ASIL_B

YES

draft

mw::log Backend Requirements Inspection Checklist

doc__mw_log_backend_req_inspection

ASIL_B

YES

draft

OS Architecture

doc__os_architecture

ASIL_B

YES

valid

OS Architecture Inspection Checklist

doc__os_arc_inspection

ASIL_B

YES

valid

os DFA

doc__os_dfa

ASIL_B

NO

draft

os FMEA

doc__os_fmea

ASIL_B

NO

draft

OS Implementation Inspection Checklist

doc__os_impl_inspection

ASIL_B

YES

draft

OS Library

doc__os

ASIL_B

YES

draft

OS Library Requirements

doc__os_lib_requirements

ASIL_B

YES

draft

OS Requirements Inspection Checklist

doc__os_req_inspection

ASIL_B

YES

draft

Persistency JSON

doc__persistencyjson

ASIL_B

NO

valid

Result Architecture

doc__result_architecture

ASIL_B

YES

valid

result DFA

doc__result_dfa

ASIL_B

NO

draft

result FMEA

doc__result_fmea

ASIL_B

NO

valid

Result Lib Implementation Inspection Checklist

doc__result_lib_impl_inspection

ASIL_B

YES

draft

Result Library

doc__result

ASIL_B

YES

draft

Result Library Architecture Inspection Checklist

doc__result_lib_arc_inspection

ASIL_B

YES

valid

Result Library Requirements

doc__result_lib_requirements

ASIL_B

YES

draft

Result Library Requirements Inspection Checklist

doc__result_library_req_inspection

ASIL_B

YES

valid

Rust Containers Architecture

doc__containers_rust_architecture

ASIL_B

NO

draft

Rust Containers Library

doc__containers_rust

ASIL_B

NO

draft

Rust Containers Library Requirements

doc__containers_rust_lib_requirements

ASIL_B

NO

draft

Safecpp Architecture

doc__safecpp_architecture

ASIL_B

YES

valid

Safecpp Architecture Inspection Checklist

doc__safecpp_arc_inspection

ASIL_B

YES

valid

SafeCpp DFA

doc__safecpp_dfa

ASIL_B

NO

draft

SafeCpp FMEA

doc__safecpp_fmea

ASIL_B

NO

draft

Safecpp Implementation Inspection Checklist

doc__safecpp_impl_inspection

ASIL_B

YES

draft

Safecpp Library

doc__safecpp

ASIL_B

YES

draft

Safecpp Requirements

doc__safecpp_requirements

ASIL_B

NO

draft

Safecpp Requirements Inspection Checklist

doc__safecpp_req_inspection

ASIL_B

YES

draft

Static Reflection Architecture Inspection Checklist

doc__static_reflection_arc_inspection

ASIL_B

YES

draft

Static Reflection DFA

doc__static_reflection_dfa

ASIL_B

NO

draft

Static Reflection FMEA

doc__static_reflection_fmea

ASIL_B

NO

draft

Static Reflection Implementation Inspection Checklist

doc__static_reflection_impl_inspection

ASIL_B

YES

draft

Static Reflection Requirements Inspection Checklist

doc__static_reflection_req_inspection

ASIL_B

YES

draft

Static Reflection With Serialization Library

doc__static_reflection_with_serialization

ASIL_B

YES

draft

Static Reflection with Serialization Library Requirements

doc__static_reflect_serial_lib_req

ASIL_B

YES

draft

static_reflection_with_serialization Architecture

doc__static_refl_with_serial_arch

ASIL_B

YES

valid

Utils Architecture

doc__utils_architecture

ASIL_B

YES

valid

Utils Architecture Inspection Checklist

doc__utils_arc_inspection

ASIL_B

YES

valid

utils DFA

doc__utils_dfa

ASIL_B

NO

draft

utils FMEA

doc__utils_fmea

ASIL_B

NO

draft

Utils Implementation Inspection Checklist

doc__utils_impl_inspection

ASIL_B

YES

draft

Utils Library

doc__utils

ASIL_B

YES

draft

Utils Library Requirements

doc__utils_lib_requirements

ASIL_B

YES

draft

Utils Requirements Inspection Checklist

doc__utils_req_inspection

ASIL_B

YES

valid

vajson

doc__vajson

ASIL_B

NO

valid

VaJson Architecture

doc__vajson_architecture

ASIL_B

YES

draft

VaJson Requirements

doc__vajson_requirements

ASIL_B

YES

draft

Component documentation#

See Component documentation for details.

Examples#

No examples yet.

Quick Start#

To build the module:

bazel build --config=per-x86_64-linux -- //score/...

Building without an explicit --config (e.g. per-x86_64-linux, per-x86_64-qnx, per-arm64-qnx) is not supported.

To run all tests:

bazel test //...

To run Unit Tests:

bazel test //:unit_tests

To run Component / Feature Integration Tests:

bazel test //:cit_tests

Module Configuration#

The project_config.bzl file defines metadata used by Bazel macros.

Example:

PROJECT_CONFIG = {
    "asil_level": "QM",
    "source_code": ["cpp", "rust"]
}

This enables conditional behavior (e.g., choosing clang-tidy for C++ or clippy for Rust).