Tools Evaluation List
status: draft
security: YES
safety: ASIL_B
tags: tool_management
version: 1

Tools Evaluation List#

This document provides a comprehensive initial inventory of all tools used across the Eclipse S-CORE project.

The list is categorized by tool type, e.g. documentation tools, static analysis tools, testing frameworks, build tools, etc.

The list is intended to be used for the evaluation of tools for safety and security impact, as part of the tool management process defined in the S-CORE Tool Management Plan.

In future iterations, the list will be completed and updated, and delivered with every platform release, as part of the Tool Verification Report.

1 Compiler#

1a C++ Compiler#

Table 21 C++ Compiler#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

1a-1

GCC

Host C++ compiler with linker, generates compiler warnings, builds unit tests and binaries for SW integration testing

12+ (see [1])

YES

rl__infrastructure_tooling_community

gcc (doc_tool__gcc)

YES

1a-2

QNX 8.x SDP

Qualified compiler/linker from BlackBerry for QNX, used for target compilation

12+ (see [1])

YES

rl__infrastructure_tooling_community

qcc (doc_tool__qcc)

N/A

1b Rust Compiler#

Table 22 Rust Compiler#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

1b-1

Ferrocene

Qualified Rust compiler (planned for target, safety-critical use), see ferrocene

1.90.0 (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

1b-2

Rust (standard)

For host development, no current selection for S-CORE host compiler

1.90.0 (see [1])

YES

rl__infrastructure_tooling_community

N/A

NO

2 Static Analysis & Code Quality#

2a C++#

Table 23 C++ Static Analysis & Code Quality#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

2a-1

clang-tidy

Static analysis for C++, used with Clang compiler

19.1.1 (see [1])

YES

rl__infrastructure_tooling_community

clang-tidy (doc_tool__clang_tidy)

YES

2a-2

clang-analyzer

Static analyzer from LLVM project

19.x (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

2a-3

clang-format

Code formatter (linter) from LLVM project

19.1.1 (see [1])

YES

rl__infrastructure_tooling_community

clang-format (doc_tool__clang_format)

YES

2a-4

CodeQL

CodeQL is a semantic code analysis engine used for security and code quality analysis.

T.B.D. (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

2a-5

gcovr

Code coverage tool (uses gcov from GCC), part of GNU compiler collection

T.B.D. (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

2b Rust#

Table 24 Rust Static Analysis & Code Quality#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

2b-1

clippy

Rust linter for static code analysis

1.90.0 (see [1])

YES

rl__infrastructure_tooling_community

clippy (doc_tool__clippy)

YES

2b-2

rustfmt

Rust code formatter

1.8.0 (see [1])

YES

rl__infrastructure_tooling_community

rustfmt (doc_tool__rustfmt)

YES

2b-3

rust-analyzer

Rust language server for IDE support

1.8.0 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2c Python#

Table 25 Python Static Analysis & Code Quality#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

2c-1

ruff

Fast Python formatter and linter, replaces multiple tools

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2c-2

pyright

Python static type checker

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2c-3

pylint

Python code quality analysis

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2c-4

pytest-cov

Python test coverage reporting

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2c-5

basedpyright

Alternative Python type checker

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2d Other#

Table 26 Other Static Analysis & Code Quality#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

2d-1

yamlfmt

YAML file formatter

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2d-2

actionlint

GitHub Actions workflow linter

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2d-3

starpls

Starlark (Bazel) language server

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2d-4

score_tooling

Copyright checker, CLI helper, license checker

1.0.4 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2d-5

bazel-tools-cc

Clang-tidy based static code checker for Bazel

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

2d-6

gitlint

Commit message linting

0.19.1 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3 Build & Development Tools#

Table 27 Build & Development Tools#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

3-1

Bazel

Main build system

8.3.0 (see [1])

YES

rl__infrastructure_tooling_community

Bazel (doc_tool__bazel)

YES

3-2

buildifier

Bazel file formatter and linter

8.2.0.2 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-3

rules_python

Bazel Python build rules

1.4.1 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-4

aspect_rules_py

Enhanced Python rules (provides py_venv)

1.6.3 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-5

aspect_rules_lint

Generic linting and formatting rules

1.5.3 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-6

rules_pkg

Packaging dependencies

1.1.0 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-7

rules_java

Java build rules

8.15.1 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-8

rules_cc

C/C++ build rules

0.2.1 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-9

rules_rust

Rust build rules for Bazel

0.63.0 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-10

score_toolchains_qnx

QNX SDP toolchain including compiler, linker, image creation tools

0.5 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-11

score_toolchains_gcc

GCC toolchain packages for various targets

0.5 (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

3-12

toolchains_llvm

LLVM toolchain rules for Bazel (host configuration, C++17 standard)

1.4.0 (see [1])

YES

rl__infrastructure_tooling_community

N/A

N/A

3-13

score_toolchains_rust

Rust toolchains for SCORE project

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

4 Testing Frameworks#

Table 28 Testing Frameworks#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

4-1

gtest (GoogleTest)

C++ testing framework

1.15.0 (see [1])

YES

rl__testing_community

gtest (doc_tool__gtest)

YES

4-2

ITF

Integration Testing Framework, pytest-based

0.1.0 (see [1])

YES

rl__testing_community

ITF (doc_tool__itf)

YES

4-3

pytest

Python testing framework

T.B.D. (see [1])

YES

rl__testing_community

N/A

YES

5 Version Control & CI/CD#

Table 29 Version Control and CI/CD Tools#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

5-1

Git

Version control system

2.x (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

5-2

GitHub

Code hosting and collaboration platform

cloud

YES

rl__infrastructure_tooling_community

github (doc_tool__github)

YES

5-3

GitHub Actions

CI/CD automation platform

T.B.D. (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

6 Documentation Tools#

Table 30 Documentation Tools#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

6-1

Doc-as-Code

Documentation generation tool

7.0.1 (see [1])

YES

rl__infrastructure_tooling_community

Doc-as-Code (doc_tool__doc_as_code)

YES

6-2

Sphinx

Python documentation generator (underlying Doc-as-Code)

Latest (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

6-3

sphinx-needs

Requirements tracking extension for Sphinx

T.B.D. (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

6-4

PlantUML

UML diagram generation

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

6-5

Graphviz

Graph visualization software

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

6-6

sphinxcontrib.plantuml

PlantUML integration for Sphinx

T.B.D. (see [1])

NO

rl__infrastructure_tooling_community

N/A

YES

6-7

TRLC

BMW Requirements Traceability Language and Compiler

2.0.2 (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

6-8

LOBSTER

BMW Requirements traceability and documentation tool

T.B.D. (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES

7 License & Security#

Table 31 License & Security#

ID

Tool Name

Description

Version

Relevant [YES|NO]

Tool ownership

Link to Verification Report (if relevant)

Confirmation of Use [YES|NO] (if relevant)

7-1

Eclipse Dash

License analysis tool

T.B.D. (see [1])

YES

rl__infrastructure_tooling_community

N/A

YES