.. # ******************************************************************************* # Copyright (c) 2024 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. # # This program and the accompanying materials are made available under the # terms of the Apache License Version 2.0 which is available at # https://www.apache.org/licenses/LICENSE-2.0 # # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* Logging Documentation ===================== This documentation describes the structure, usage and configuration of the Bazel-based C++/Rust logging module. .. contents:: Table of Contents :depth: 2 :local: 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. Requirements ------------ .. stkh_req:: Example Functional Requirement :id: stkh_req__docgen_enabled__example :status: valid :safety: QM :security: YES :reqtype: Functional :rationale: Ensure documentation builds are possible for all modules Project Layout -------------- The logging module includes the following top-level structure: - ``score/``: Main C++/Rust sources - ``tests/``: Unit and integration tests - ``examples/``: Usage examples - ``docs/``: Documentation using ``docs-as-code`` - ``.github/workflows/``: CI/CD pipelines Quick Start ----------- To build the module: .. code-block:: bash bazel build //score/... To run tests: .. code-block:: bash bazel test //tests/... Configuration ------------- The ``project_config.bzl`` file defines metadata used by Bazel macros. Example: .. code-block:: python PROJECT_CONFIG = { "asil_level": "QM", "source_code": ["cpp", "rust"] } This enables conditional behavior (e.g., choosing ``clang-tidy`` for C++ or ``clippy`` for Rust). Decision records ---------------- .. TODO: move decision records to proper location once docs are made. .. toctree:: :maxdepth: 1 :glob: design_decisions/explicit_init.rst