From f1609353ee7497714d3008044569a4306e33433a Mon Sep 17 00:00:00 2001 From: janis-qorix Date: Mon, 5 Oct 2026 21:01:32 +0200 Subject: [PATCH 1/3] update root_cause to failure_root_cause within fmea and dfa --- docs/internals/requirements/requirements.rst | 2 +- src/extensions/score_metamodel/metamodel.yaml | 4 ++-- .../rst/safety/test_saf_optional_attrs.rst | 6 +++--- .../basic_docs/_expected/needs_json/needs.json | 18 +++++++++--------- .../_expected/data_bundle_needs.json | 18 +++++++++--------- .../isolated_source_bundle_needs.json | 18 +++++++++--------- .../_expected/needs_json/needs.json | 18 +++++++++--------- .../_expected/needs_json/needs.json | 18 +++++++++--------- .../_expected/root_needs_local.json | 18 +++++++++--------- .../_expected/needs_json/needs.json | 18 +++++++++--------- .../component/_expected/needs_local.json | 18 +++++++++--------- .../_expected/needs_json/needs.json | 18 +++++++++--------- .../_expected/needs_local.json | 18 +++++++++--------- .../_expected/needs_json/needs.json | 18 +++++++++--------- .../consumer/_expected/needs_json/needs.json | 18 +++++++++--------- .../producer/_expected/needs_json/needs.json | 18 +++++++++--------- 16 files changed, 123 insertions(+), 123 deletions(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index 79c2be891..5d0796475 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -1270,7 +1270,7 @@ Safety Analysis (DFA + FMEA) Process to Tool Requirement Mapping :parent_covered: YES Docs-As-Code shall allow FMEA needs (``feat_saf_fmea``, ``comp_saf_fmea``) - to have an optional ``root_cause`` attribute with non-empty content. + to have an optional ``failure_root_cause`` attribute with non-empty content. 🔒 Security Analysis diff --git a/src/extensions/score_metamodel/metamodel.yaml b/src/extensions/score_metamodel/metamodel.yaml index 52dd1886c..50a587a15 100644 --- a/src/extensions/score_metamodel/metamodel.yaml +++ b/src/extensions/score_metamodel/metamodel.yaml @@ -847,7 +847,7 @@ needs_types: # req-Id: tool_req__docs_saf_attrs_safety_relevant safety_relevant: ^(yes|no)$ # req-Id: tool_req__docs_saf_attrs_root_cause - root_cause: ^[\s\S]+$ + failure_root_cause: ^[\s\S]+$ mitigation_issue: ^https://github\.com/[^/]+/[^/]+/issues/\d+$ mandatory_links: # req-Id: tool_req__docs_saf_attrs_violates @@ -878,7 +878,7 @@ needs_types: optional_options: # req-Id: tool_req__docs_saf_attrs_mitigation_issue safety_relevant: ^(yes|no)$ - root_cause: ^[\s\S]+$ + failure_root_cause: ^[\s\S]+$ mitigation_issue: ^https://github\.com/[^/]+/[^/]+/issues/\d+$ mandatory_links: # req-Id: tool_req__docs_saf_attrs_violates diff --git a/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst b/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst index b1a77cd3d..63e748f89 100644 --- a/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst +++ b/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst @@ -21,7 +21,7 @@ Tests optional attributes for safety analysis types: - mitigation_issue: GitHub issue URL pattern - safety_relevant: yes/no for all SAF types - - root_cause: non-empty content for FMEA + - failure_root_cause: non-empty content for FMEA .. feat_saf_dfa:: Valid mitigation issue @@ -86,7 +86,7 @@ :failure_effect: component failure :sufficient: no :status: valid - :root_cause: manufacturing defect in solder joints + :failure_root_cause: manufacturing defect in solder joints :expect_not: need_id @@ -97,5 +97,5 @@ :failure_effect: software crash :sufficient: yes :status: valid - :root_cause: null pointer dereference in interrupt handler + :failure_root_cause: null pointer dereference in interrupt handler :expect_not: need_id diff --git a/src/tests/docs_bzl/scenarios/basic_docs/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/basic_docs/_expected/needs_json/needs.json index 926e936ea..880f37c7f 100644 --- a/src/tests/docs_bzl/scenarios/basic_docs/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/basic_docs/_expected/needs_json/needs.json @@ -431,6 +431,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1054,15 +1063,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/data_bundle_needs.json b/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/data_bundle_needs.json index 66ce258b6..238dc7e13 100644 --- a/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/data_bundle_needs.json +++ b/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/data_bundle_needs.json @@ -431,6 +431,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1054,15 +1063,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/isolated_source_bundle_needs.json b/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/isolated_source_bundle_needs.json index 811155e31..789114731 100644 --- a/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/isolated_source_bundle_needs.json +++ b/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/isolated_source_bundle_needs.json @@ -431,6 +431,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1054,15 +1063,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/needs_json/needs.json index 221bc1601..28a87dcf7 100644 --- a/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/data_files_runfiles/_expected/needs_json/needs.json @@ -431,6 +431,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1054,15 +1063,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/nested_bundles/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/nested_bundles/_expected/needs_json/needs.json index f4bd3654c..c214fc61e 100644 --- a/src/tests/docs_bzl/scenarios/nested_bundles/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/nested_bundles/_expected/needs_json/needs.json @@ -469,6 +469,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1092,15 +1101,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/reference_integration/_expected/root_needs_local.json b/src/tests/docs_bzl/scenarios/reference_integration/_expected/root_needs_local.json index fed7477e4..dfbe12d91 100644 --- a/src/tests/docs_bzl/scenarios/reference_integration/_expected/root_needs_local.json +++ b/src/tests/docs_bzl/scenarios/reference_integration/_expected/root_needs_local.json @@ -431,6 +431,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1054,15 +1063,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/_expected/needs_json/needs.json index d2916d980..9938f2c95 100644 --- a/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/_expected/needs_json/needs.json @@ -471,6 +471,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1094,15 +1103,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/docs/components/component/_expected/needs_local.json b/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/docs/components/component/_expected/needs_local.json index 81adb513e..4e6a7505d 100644 --- a/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/docs/components/component/_expected/needs_local.json +++ b/src/tests/docs_bzl/scenarios/reference_integration/legacy_module/docs/components/component/_expected/needs_local.json @@ -471,6 +471,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1094,15 +1103,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/reference_integration/modern_module/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/reference_integration/modern_module/_expected/needs_json/needs.json index 49483c4f9..e803429fd 100644 --- a/src/tests/docs_bzl/scenarios/reference_integration/modern_module/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/reference_integration/modern_module/_expected/needs_json/needs.json @@ -560,6 +560,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1183,15 +1192,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/reference_integration/modern_module/docs/components/unlinked_component/_expected/needs_local.json b/src/tests/docs_bzl/scenarios/reference_integration/modern_module/docs/components/unlinked_component/_expected/needs_local.json index ab8180372..eeb015ad3 100644 --- a/src/tests/docs_bzl/scenarios/reference_integration/modern_module/docs/components/unlinked_component/_expected/needs_local.json +++ b/src/tests/docs_bzl/scenarios/reference_integration/modern_module/docs/components/unlinked_component/_expected/needs_local.json @@ -468,6 +468,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1091,15 +1100,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/reference_integration/score_platform/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/reference_integration/score_platform/_expected/needs_json/needs.json index 8570fa297..114834214 100644 --- a/src/tests/docs_bzl/scenarios/reference_integration/score_platform/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/reference_integration/score_platform/_expected/needs_json/needs.json @@ -475,6 +475,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1098,15 +1107,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/subdirectory_bundle/consumer/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/subdirectory_bundle/consumer/_expected/needs_json/needs.json index 7d36c26e2..8d6b0b094 100644 --- a/src/tests/docs_bzl/scenarios/subdirectory_bundle/consumer/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/subdirectory_bundle/consumer/_expected/needs_json/needs.json @@ -477,6 +477,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1100,15 +1109,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", diff --git a/src/tests/docs_bzl/scenarios/subdirectory_bundle/producer/_expected/needs_json/needs.json b/src/tests/docs_bzl/scenarios/subdirectory_bundle/producer/_expected/needs_json/needs.json index a49f398e8..4b0b14a66 100644 --- a/src/tests/docs_bzl/scenarios/subdirectory_bundle/producer/_expected/needs_json/needs.json +++ b/src/tests/docs_bzl/scenarios/subdirectory_bundle/producer/_expected/needs_json/needs.json @@ -462,6 +462,15 @@ "null" ] }, + "failure_root_cause": { + "default": "", + "description": "Added by needs_fields config", + "field_type": "extra", + "type": [ + "string", + "null" + ] + }, "fault_id": { "default": "", "description": "Added by needs_fields config", @@ -1085,15 +1094,6 @@ "null" ] }, - "root_cause": { - "default": "", - "description": "Added by needs_fields config", - "field_type": "extra", - "type": [ - "string", - "null" - ] - }, "safety": { "default": "", "description": "Added by needs_fields config", From 1e46ab169bc535c22c8d22077e218cf0fbd77ed7 Mon Sep 17 00:00:00 2001 From: janis-qorix Date: Tue, 6 Oct 2026 19:39:39 +0200 Subject: [PATCH 2/3] req version update --- docs/internals/requirements/requirements.rst | 2 +- .../tests/rst/safety/test_saf_optional_attrs.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index 5d0796475..f84c0b74d 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -1265,7 +1265,7 @@ Safety Analysis (DFA + FMEA) Process to Tool Requirement Mapping :id: tool_req__docs_saf_attrs_root_cause :implemented: YES :tags: Safety Analysis - :version: 1 + :version: 2 :satisfies: gd_req__saf_attr_failure_root_cause :parent_covered: YES diff --git a/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst b/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst index 63e748f89..40ea63f4d 100644 --- a/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst +++ b/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst @@ -14,7 +14,7 @@ .. test_metadata:: :id: test_metadata__saf_optional_attrs - :fully_verifies_list: tool_req__docs_saf_attrs_mitigation_issue[version==1], tool_req__docs_saf_attrs_safety_relevant[version==1], tool_req__docs_saf_attrs_root_cause[version==1] + :fully_verifies_list: tool_req__docs_saf_attrs_mitigation_issue[version==1], tool_req__docs_saf_attrs_safety_relevant[version==1], tool_req__docs_saf_attrs_root_cause[version==2] :test_type: requirements_based :derivation_technique: requirements_based From 97786c5eb9624d514bd1781b9aa6b202fe161efa Mon Sep 17 00:00:00 2001 From: janis-qorix Date: Thu, 8 Oct 2026 14:21:19 +0200 Subject: [PATCH 3/3] reset req version --- docs/internals/requirements/requirements.rst | 2 +- .../tests/rst/safety/test_saf_optional_attrs.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/internals/requirements/requirements.rst b/docs/internals/requirements/requirements.rst index f84c0b74d..5d0796475 100644 --- a/docs/internals/requirements/requirements.rst +++ b/docs/internals/requirements/requirements.rst @@ -1265,7 +1265,7 @@ Safety Analysis (DFA + FMEA) Process to Tool Requirement Mapping :id: tool_req__docs_saf_attrs_root_cause :implemented: YES :tags: Safety Analysis - :version: 2 + :version: 1 :satisfies: gd_req__saf_attr_failure_root_cause :parent_covered: YES diff --git a/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst b/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst index 40ea63f4d..63e748f89 100644 --- a/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst +++ b/src/extensions/score_metamodel/tests/rst/safety/test_saf_optional_attrs.rst @@ -14,7 +14,7 @@ .. test_metadata:: :id: test_metadata__saf_optional_attrs - :fully_verifies_list: tool_req__docs_saf_attrs_mitigation_issue[version==1], tool_req__docs_saf_attrs_safety_relevant[version==1], tool_req__docs_saf_attrs_root_cause[version==2] + :fully_verifies_list: tool_req__docs_saf_attrs_mitigation_issue[version==1], tool_req__docs_saf_attrs_safety_relevant[version==1], tool_req__docs_saf_attrs_root_cause[version==1] :test_type: requirements_based :derivation_technique: requirements_based