From 9e422f8425dba910c4b3fb94cb0d1d0132269dba Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Thu, 23 Apr 2026 07:56:35 +0000 Subject: [PATCH 01/19] Add Process Status Overview page with tooling columns --- process/conf.py | 15 + process/standards/process_reqs_list/index.rst | 12 + .../process_area_status_summary.rst | 1060 +++++++++++++++++ .../process_status_overview.rst | 589 +++++++++ .../process_reqs_list/tooling_definitions.rst | 92 ++ 5 files changed, 1768 insertions(+) create mode 100644 process/standards/process_reqs_list/process_area_status_summary.rst create mode 100644 process/standards/process_reqs_list/process_status_overview.rst create mode 100644 process/standards/process_reqs_list/tooling_definitions.rst diff --git a/process/conf.py b/process/conf.py index a5425b1780..a6babc9e07 100644 --- a/process/conf.py +++ b/process/conf.py @@ -35,5 +35,20 @@ html_static_path = ["_assets"] html_css_files = ["custom.css"] +# Hide the "On this page" secondary sidebar for wide-content pages +html_theme_options = { + "secondary_sidebar_items": { + "**": ["page-toc"], + "standards/process_reqs_list/process_area_status_summary": [], + "standards/process_reqs_list/process_status_overview": [], + } +} + # :need:`{title}` is used in the needs templates to display the title of the need needs_role_need_template = "{title}" + +# Make the process/ directory importable so that filter functions +# referenced via :filter-func: in sphinx-needs directives can be found. +import sys as _sys +import os as _os +_sys.path.insert(0, _os.path.dirname(_os.path.abspath(__file__))) diff --git a/process/standards/process_reqs_list/index.rst b/process/standards/process_reqs_list/index.rst index 652fa580c4..b2693cd769 100644 --- a/process/standards/process_reqs_list/index.rst +++ b/process/standards/process_reqs_list/index.rst @@ -26,6 +26,18 @@ All process requirements should be labelled with the priorization of automation - A label "done_automation" means nothing to do, because it already works. Note that in docs-as-code repository there are tool requirements linking to the process requirements with an "Implemented" attribute. - A label "prio_*_automation" means the prio 1, 2, ... labelled requirement shall be implemented in this order. Prio 1 is everything we need for the re-audit, prio 2 could be done manually as a fallback, prio 3 is nice to have ... +Status Summary by Process Area +****************************** + +For a dynamic overview of process requirement counts per process area and status, +see: + +.. toctree:: + :maxdepth: 1 + + process_area_status_summary + process_status_overview + .. needtable:: :style: table :types: gd_req diff --git a/process/standards/process_reqs_list/process_area_status_summary.rst b/process/standards/process_reqs_list/process_area_status_summary.rst new file mode 100644 index 0000000000..3c3af43f3f --- /dev/null +++ b/process/standards/process_reqs_list/process_area_status_summary.rst @@ -0,0 +1,1060 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +.. _process_req_area_status_summary: + +Process Requirement Status by Process Area +########################################## + +The table below summarizes all internal ``gd_req`` needs found in each process area. +The charts are calculated dynamically during the Sphinx build via sphinx-needs +filters. + +Color mapping: + +- Green: valid +- Gold: draft +- Red: invalid +- Gray: other + +.. list-table:: Process requirement status overview + :header-rows: 1 + :widths: 20 40 40 + + * - Process area + - Process req. status + - Referenced std_req status + * - Requirements Engineering + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + + * - Architecture Design + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + + * - Implementation + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + + * - Verification + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) + +Referenced std_req Needs in "Other" Category +********************************************* + +The following ``std_req`` needs are referenced via ``complies`` from process +requirements but carry none of the recognized tags (``ok``, ``recommendation``, +``open``, ``action``, ``deviation``, ``n/a``). +The actual tags of each need are shown in brackets. + +.. needlist:: + + RECOGNIZED = {"ok", "recommendation", "open", "action", "deviation", "n/a"} + needs_by_id = {n["id"]: n for n in needs} + + std_req_ids = set() + for need in needs: + if ( + need.get("type") == "gd_req" + and not need.get("is_external", False) + ): + for ref_id in need.get("complies", []): + if ref_id.startswith("std_req__iso26262__"): + std_req_ids.add(ref_id) + + results = [] + for sid in sorted(std_req_ids): + n = needs_by_id.get(sid) + if n and not (RECOGNIZED & set(n.get("tags", []))): + results.append(n) + +Work Products by Process Area +***************************** + +The table below lists the official work products defined per process area. + +.. list-table:: Work product overview by process area + :header-rows: 1 + :widths: 28 72 + + * - Process area + - Work products + * - Requirements Engineering + - + + - :need:`wp__requirements_stkh` + - :need:`wp__requirements_sw_platform_aou` + - :need:`wp__requirements_feat` + - :need:`wp__requirements_feat_aou` + - :need:`wp__requirements_comp` + - :need:`wp__requirements_comp_aou` + - :need:`wp__requirements_proc_tool` + - :need:`wp__requirements_inspect` + * - Architecture Design + - + + - :need:`wp__platform_arch` + - :need:`wp__feature_arch` + - :need:`wp__component_arch` + - :need:`wp__sw_arch_verification` + * - Implementation + - + + - :need:`wp__sw_development_plan` + - :need:`wp__sw_implementation` + - :need:`wp__sw_implementation_inspection` + * - Verification + - + + - :need:`wp__verification_plan` + - :need:`wp__verification_platform_int_test` + - :need:`wp__verification_platform_ver_report` + - :need:`wp__verification_feat_int_test` + - :need:`wp__verification_module_ver_report` + - :need:`wp__verification_comp_int_test` + - :need:`wp__verification_sw_unit_test` + +Relevant Requirements by Work Product +************************************* + +The table below derives relevant process requirements for each work product. +The derivation is based on the relation process requirement ``satisfies`` +workflow and workflow ``output`` work product. + +.. list-table:: Relevant process requirements by work product + :header-rows: 1 + :widths: 15 22 32 31 + + * - Process area + - Work product + - Relevant requirements + - Status distribution + * - Requirements Engineering + - :need:`wp__requirements_stkh` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_stkh" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_stkh_req' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_stkh_req' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_stkh_req' in satisfies + * - + - :need:`wp__requirements_sw_platform_aou` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_sw_platform_aou" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_stkh_req' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_stkh_req' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_stkh_req' in satisfies + * - + - :need:`wp__requirements_feat` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_feat" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_feat_req' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_feat_req' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_feat_req' in satisfies + * - + - :need:`wp__requirements_feat_aou` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_feat_aou" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_feat_aou' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_feat_aou' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_feat_aou' in satisfies + * - + - :need:`wp__requirements_comp` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_comp" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_comp_req' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_comp_req' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_comp_req' in satisfies + * - + - :need:`wp__requirements_comp_aou` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_comp_aou" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_comp_aou' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_comp_aou' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_comp_aou' in satisfies + * - + - :need:`wp__requirements_proc_tool` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_proc_tool" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_proc_tool' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_proc_tool' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_proc_tool' in satisfies + * - + - :need:`wp__requirements_inspect` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_inspect" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__monitor_verify_requirements' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__monitor_verify_requirements' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__monitor_verify_requirements' in satisfies + * - Architecture Design + - :need:`wp__platform_arch` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__platform_arch" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__cr_mt_platarch' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__cr_mt_platarch' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__cr_mt_platarch' in satisfies + * - + - :need:`wp__feature_arch` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__feature_arch" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__cr_mt_featarch' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__cr_mt_featarch' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__cr_mt_featarch' in satisfies + * - + - :need:`wp__component_arch` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__component_arch" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__cr_mt_comparch' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__cr_mt_comparch' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__cr_mt_comparch' in satisfies + * - + - :need:`wp__sw_arch_verification` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__sw_arch_verification" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__mr_vy_arch' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__mr_vy_arch' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__mr_vy_arch' in satisfies + * - Implementation + - :need:`wp__sw_development_plan` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "implementation" in workflow["tags"] and "wp__sw_development_plan" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__sw_development_plan' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__sw_development_plan' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__sw_development_plan' in satisfies + * - + - :need:`wp__sw_implementation` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "implementation" in workflow["tags"] and "wp__sw_implementation" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__sw_detailed_design' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__sw_detailed_design' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__sw_detailed_design' in satisfies + * - + - :need:`wp__sw_implementation_inspection` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "implementation" in workflow["tags"] and "wp__sw_implementation_inspection" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__sw_verify_implementation' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__sw_verify_implementation' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__sw_verify_implementation' in satisfies + * - Verification + - :need:`wp__verification_comp_int_test` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_comp_int_test" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_comp_int_test' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_comp_int_test' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_comp_int_test' in satisfies + * - + - :need:`wp__verification_feat_int_test` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_feat_int_test" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_feat_int_test' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_feat_int_test' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_feat_int_test' in satisfies + * - + - :need:`wp__verification_platform_int_test` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_platform_int_test" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_platform_int_test' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_platform_int_test' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_platform_int_test' in satisfies + * - + - :need:`wp__verification_plan` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_plan" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) + type == 'gd_req' and is_external == False and status == 'draft' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) + type == 'gd_req' and is_external == False and status == 'invalid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) + * - + - :need:`wp__verification_module_ver_report` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_module_ver_report" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_mod_ver_report' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_mod_ver_report' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_mod_ver_report' in satisfies + * - + - :need:`wp__verification_platform_ver_report` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_platform_ver_report" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_platform_ver_report' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_platform_ver_report' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_platform_ver_report' in satisfies + * - + - :need:`wp__verification_sw_unit_test` + - + + .. needlist:: + + results = [] + requirement_ids = set() + + for requirement in needs.filter_types(["gd_req"]): + if requirement["is_external"] is False: + for workflow_id in requirement["satisfies"]: + workflow = needs.get_need(workflow_id) + if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_sw_unit_test" in workflow["output"]: + if requirement["id"] not in requirement_ids: + requirement_ids.add(requirement["id"]) + results.append(requirement) + break + + results = sorted(results, key=lambda requirement: requirement["title"]) + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies + type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_unit_test' in satisfies + type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_unit_test' in satisfies + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_unit_test' in satisfies + +Work Product Requirement Completion Status +****************************************** + +The table below shows for each work product the completion status of its +relevant process requirements. **Valid** (green) means all requirements are +valid; **Draft** (yellow) means at least one requirement is not yet valid. +The number shows valid / total requirements. + +.. list-table:: Work product requirement completion status + :header-rows: 1 + :widths: 15 35 50 + + * - Process area + - Work product + - Status + * - Requirements Engineering + - :need:`wp__requirements_stkh` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + * - + - :need:`wp__requirements_sw_platform_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + * - + - :need:`wp__requirements_feat` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` + * - + - :need:`wp__requirements_feat_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` + * - + - :need:`wp__requirements_comp` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` + * - + - :need:`wp__requirements_comp_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` + * - + - :need:`wp__requirements_proc_tool` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` + * - + - :need:`wp__requirements_inspect` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` + * - Architecture Design + - :need:`wp__platform_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` + * - + - :need:`wp__feature_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` + * - + - :need:`wp__component_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` + * - + - :need:`wp__sw_arch_verification` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` + * - Implementation + - :need:`wp__sw_development_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` + * - + - :need:`wp__sw_implementation` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` + * - + - :need:`wp__sw_implementation_inspection` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` + * - Verification + - :need:`wp__verification_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` + * - + - :need:`wp__verification_platform_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` + * - + - :need:`wp__verification_platform_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` + * - + - :need:`wp__verification_feat_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` + * - + - :need:`wp__verification_module_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` + * - + - :need:`wp__verification_comp_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` + * - + - :need:`wp__verification_sw_unit_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` + +.. raw:: html + + + diff --git a/process/standards/process_reqs_list/process_status_overview.rst b/process/standards/process_reqs_list/process_status_overview.rst new file mode 100644 index 0000000000..d84d009918 --- /dev/null +++ b/process/standards/process_reqs_list/process_status_overview.rst @@ -0,0 +1,589 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +.. include:: tooling_definitions.rst + +.. _process_status_overview: + +Process Status Overview +####################### + +Combined Process Area and Work Product Status Overview +****************************************************** + +The table below combines process requirement status, ISO 26262 std_req +compliance status, and work product completion status in a single overview. +For each process area the pie charts appear on the first work product row; +subsequent rows carry only the work product and its completion badge. + +.. list-table:: Combined process area and work product status overview + :header-rows: 1 + :widths: 10 13 13 20 7 15 11 11 + :class: combined-status-table + + * - Process area + - Process req. status + - ISO 26262 std_req status + - Work product + - WP status + - Req. verification status + - Tooling + - Tooling Status + * - Requirements Engineering + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + + - :need:`wp__requirements_stkh` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) + - |tooling_name_wp__requirements_stkh| + - |tooling_status_wp__requirements_stkh| + * - + - + - + - :need:`wp__requirements_sw_platform_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) + - |tooling_name_wp__requirements_sw_platform_aou| + - |tooling_status_wp__requirements_sw_platform_aou| + * - + - + - + - :need:`wp__requirements_feat` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_feat_req) + - |tooling_name_wp__requirements_feat| + - |tooling_status_wp__requirements_feat| + * - + - + - + - :need:`wp__requirements_feat_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_feat_aou) + - |tooling_name_wp__requirements_feat_aou| + - |tooling_status_wp__requirements_feat_aou| + * - + - + - + - :need:`wp__requirements_comp` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_comp_req) + - |tooling_name_wp__requirements_comp| + - |tooling_status_wp__requirements_comp| + * - + - + - + - :need:`wp__requirements_comp_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_comp_aou) + - |tooling_name_wp__requirements_comp_aou| + - |tooling_status_wp__requirements_comp_aou| + * - + - + - + - :need:`wp__requirements_proc_tool` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_proc_tool) + - |tooling_name_wp__requirements_proc_tool| + - |tooling_status_wp__requirements_proc_tool| + * - + - + - + - :need:`wp__requirements_inspect` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__monitor_verify_requirements) + - |tooling_name_wp__requirements_inspect| + - |tooling_status_wp__requirements_inspect| + * - Architecture Design + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + + - :need:`wp__platform_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_platarch) + - |tooling_name_wp__platform_arch| + - |tooling_status_wp__platform_arch| + * - + - + - + - :need:`wp__feature_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_featarch) + - |tooling_name_wp__feature_arch| + - |tooling_status_wp__feature_arch| + * - + - + - + - :need:`wp__component_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_comparch) + - |tooling_name_wp__component_arch| + - |tooling_status_wp__component_arch| + * - + - + - + - :need:`wp__sw_arch_verification` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__mr_vy_arch) + - |tooling_name_wp__sw_arch_verification| + - |tooling_status_wp__sw_arch_verification| + * - Implementation + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + + - :need:`wp__sw_development_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_development_plan) + - |tooling_name_wp__sw_development_plan| + - |tooling_status_wp__sw_development_plan| + * - + - + - + - :need:`wp__sw_implementation` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_detailed_design) + - |tooling_name_wp__sw_implementation| + - |tooling_status_wp__sw_implementation| + * - + - + - + - :need:`wp__sw_implementation_inspection` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_verify_implementation) + - |tooling_name_wp__sw_implementation_inspection| + - |tooling_status_wp__sw_implementation_inspection| + * - Verification + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) + + - :need:`wp__verification_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_plan|wf__verification_plan_maintain) + - |tooling_name_wp__verification_plan| + - |tooling_status_wp__verification_plan| + * - + - + - + - :need:`wp__verification_platform_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_platform_int_test) + - |tooling_name_wp__verification_platform_int_test| + - |tooling_status_wp__verification_platform_int_test| + * - + - + - + - :need:`wp__verification_platform_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_platform_ver_report) + - |tooling_name_wp__verification_platform_ver_report| + - |tooling_status_wp__verification_platform_ver_report| + * - + - + - + - :need:`wp__verification_feat_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_feat_int_test) + - |tooling_name_wp__verification_feat_int_test| + - |tooling_status_wp__verification_feat_int_test| + * - + - + - + - :need:`wp__verification_module_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_mod_ver_report) + - |tooling_name_wp__verification_module_ver_report| + - |tooling_status_wp__verification_module_ver_report| + * - + - + - + - :need:`wp__verification_comp_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_comp_int_test) + - |tooling_name_wp__verification_comp_int_test| + - |tooling_status_wp__verification_comp_int_test| + * - + - + - + - :need:`wp__verification_sw_unit_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_unit_test) + - |tooling_name_wp__verification_sw_unit_test| + - |tooling_status_wp__verification_sw_unit_test| + +.. raw:: html + + diff --git a/process/standards/process_reqs_list/tooling_definitions.rst b/process/standards/process_reqs_list/tooling_definitions.rst new file mode 100644 index 0000000000..7f411ab1f2 --- /dev/null +++ b/process/standards/process_reqs_list/tooling_definitions.rst @@ -0,0 +1,92 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +.. Tooling definitions per work product. +.. Edit this file to fill in the tooling columns in the Process Status Overview table. +.. +.. Two substitutions per work product: +.. |tooling_name_wp__| — tool name (text, inline code ``tool``, link `Name `_) +.. |tooling_status_wp__| — status of the tooling (e.g. available, planned, n/a) +.. +.. Inline markup only (no block-level directives, no bullet lists). + +.. Requirements Engineering +.. |tooling_name_wp__requirements_stkh| replace:: sphinx-needs +.. |tooling_status_wp__requirements_stkh| replace:: available + +.. |tooling_name_wp__requirements_sw_platform_aou| replace:: sphinx-needs +.. |tooling_status_wp__requirements_sw_platform_aou| replace:: available + +.. |tooling_name_wp__requirements_feat| replace:: TBDsklgjlksgj +.. |tooling_status_wp__requirements_feat| replace:: ttttt + +.. |tooling_name_wp__requirements_feat_aou| replace:: TBD +.. |tooling_status_wp__requirements_feat_aou| replace:: TBD + +.. |tooling_name_wp__requirements_comp| replace:: TBD +.. |tooling_status_wp__requirements_comp| replace:: TBD + +.. |tooling_name_wp__requirements_comp_aou| replace:: TBD +.. |tooling_status_wp__requirements_comp_aou| replace:: TBD + +.. |tooling_name_wp__requirements_proc_tool| replace:: TBD +.. |tooling_status_wp__requirements_proc_tool| replace:: TBD + +.. |tooling_name_wp__requirements_inspect| replace:: TBD +.. |tooling_status_wp__requirements_inspect| replace:: TBD + +.. Architecture Design +.. |tooling_name_wp__platform_arch| replace:: TBD +.. |tooling_status_wp__platform_arch| replace:: TBD + +.. |tooling_name_wp__feature_arch| replace:: TBD +.. |tooling_status_wp__feature_arch| replace:: TBD + +.. |tooling_name_wp__component_arch| replace:: TBD +.. |tooling_status_wp__component_arch| replace:: TBD + +.. |tooling_name_wp__sw_arch_verification| replace:: TBD +.. |tooling_status_wp__sw_arch_verification| replace:: TBD + +.. Implementation +.. |tooling_name_wp__sw_development_plan| replace:: TBD +.. |tooling_status_wp__sw_development_plan| replace:: TBD + +.. |tooling_name_wp__sw_implementation| replace:: TBD +.. |tooling_status_wp__sw_implementation| replace:: TBD + +.. |tooling_name_wp__sw_implementation_inspection| replace:: TBD +.. |tooling_status_wp__sw_implementation_inspection| replace:: TBD + +.. Verification +.. |tooling_name_wp__verification_plan| replace:: TBD +.. |tooling_status_wp__verification_plan| replace:: TBD + +.. |tooling_name_wp__verification_platform_int_test| replace:: TBD +.. |tooling_status_wp__verification_platform_int_test| replace:: TBD + +.. |tooling_name_wp__verification_platform_ver_report| replace:: TBD +.. |tooling_status_wp__verification_platform_ver_report| replace:: TBD + +.. |tooling_name_wp__verification_feat_int_test| replace:: TBD +.. |tooling_status_wp__verification_feat_int_test| replace:: TBD + +.. |tooling_name_wp__verification_module_ver_report| replace:: TBD +.. |tooling_status_wp__verification_module_ver_report| replace:: TBD + +.. |tooling_name_wp__verification_comp_int_test| replace:: TBD +.. |tooling_status_wp__verification_comp_int_test| replace:: TBD + +.. |tooling_name_wp__verification_sw_unit_test| replace:: TBD +.. |tooling_status_wp__verification_sw_unit_test| replace:: TBD From 8805adaae5c9a55a200df73e88707bde039ecec0 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:04:30 +0000 Subject: [PATCH 02/19] Split process status overview into three separate table files --- .../process_area_overview_table.rst | 97 +++ .../process_status_overview.rst | 571 +----------------- .../process_reqs_list/tooling_table.rst | 115 ++++ .../process_reqs_list/wp_status_table.rst | 313 ++++++++++ 4 files changed, 528 insertions(+), 568 deletions(-) create mode 100644 process/standards/process_reqs_list/process_area_overview_table.rst create mode 100644 process/standards/process_reqs_list/tooling_table.rst create mode 100644 process/standards/process_reqs_list/wp_status_table.rst diff --git a/process/standards/process_reqs_list/process_area_overview_table.rst b/process/standards/process_reqs_list/process_area_overview_table.rst new file mode 100644 index 0000000000..1e966a8e26 --- /dev/null +++ b/process/standards/process_reqs_list/process_area_overview_table.rst @@ -0,0 +1,97 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +Process Area Overview +********************* + +The table below shows process requirement status and ISO 26262 compliance per process area. + +.. list-table:: Process area overview + :header-rows: 1 + :widths: 20 40 40 + + * - Process area + - Process req. status + - ISO 26262 std_req status + * - Requirements Engineering + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + + * - Architecture Design + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + + * - Implementation + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + + * - Verification + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) diff --git a/process/standards/process_reqs_list/process_status_overview.rst b/process/standards/process_reqs_list/process_status_overview.rst index d84d009918..34935588b0 100644 --- a/process/standards/process_reqs_list/process_status_overview.rst +++ b/process/standards/process_reqs_list/process_status_overview.rst @@ -12,578 +12,13 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -.. include:: tooling_definitions.rst - .. _process_status_overview: Process Status Overview ####################### -Combined Process Area and Work Product Status Overview -****************************************************** - -The table below combines process requirement status, ISO 26262 std_req -compliance status, and work product completion status in a single overview. -For each process area the pie charts appear on the first work product row; -subsequent rows carry only the work product and its completion badge. - -.. list-table:: Combined process area and work product status overview - :header-rows: 1 - :widths: 10 13 13 20 7 15 11 11 - :class: combined-status-table - - * - Process area - - Process req. status - - ISO 26262 std_req status - - Work product - - WP status - - Req. verification status - - Tooling - - Tooling Status - * - Requirements Engineering - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) - - - :need:`wp__requirements_stkh` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) - - |tooling_name_wp__requirements_stkh| - - |tooling_status_wp__requirements_stkh| - * - - - - - - - :need:`wp__requirements_sw_platform_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) - - |tooling_name_wp__requirements_sw_platform_aou| - - |tooling_status_wp__requirements_sw_platform_aou| - * - - - - - - - :need:`wp__requirements_feat` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_feat_req) - - |tooling_name_wp__requirements_feat| - - |tooling_status_wp__requirements_feat| - * - - - - - - - :need:`wp__requirements_feat_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_feat_aou) - - |tooling_name_wp__requirements_feat_aou| - - |tooling_status_wp__requirements_feat_aou| - * - - - - - - - :need:`wp__requirements_comp` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_comp_req) - - |tooling_name_wp__requirements_comp| - - |tooling_status_wp__requirements_comp| - * - - - - - - - :need:`wp__requirements_comp_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_comp_aou) - - |tooling_name_wp__requirements_comp_aou| - - |tooling_status_wp__requirements_comp_aou| - * - - - - - - - :need:`wp__requirements_proc_tool` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_proc_tool) - - |tooling_name_wp__requirements_proc_tool| - - |tooling_status_wp__requirements_proc_tool| - * - - - - - - - :need:`wp__requirements_inspect` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__monitor_verify_requirements) - - |tooling_name_wp__requirements_inspect| - - |tooling_status_wp__requirements_inspect| - * - Architecture Design - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(architecture_design) - - - :need:`wp__platform_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_platarch) - - |tooling_name_wp__platform_arch| - - |tooling_status_wp__platform_arch| - * - - - - - - - :need:`wp__feature_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_featarch) - - |tooling_name_wp__feature_arch| - - |tooling_status_wp__feature_arch| - * - - - - - - - :need:`wp__component_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_comparch) - - |tooling_name_wp__component_arch| - - |tooling_status_wp__component_arch| - * - - - - - - - :need:`wp__sw_arch_verification` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__mr_vy_arch) - - |tooling_name_wp__sw_arch_verification| - - |tooling_status_wp__sw_arch_verification| - * - Implementation - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(implementation) - - - :need:`wp__sw_development_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_development_plan) - - |tooling_name_wp__sw_development_plan| - - |tooling_status_wp__sw_development_plan| - * - - - - - - - :need:`wp__sw_implementation` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_detailed_design) - - |tooling_name_wp__sw_implementation| - - |tooling_status_wp__sw_implementation| - * - - - - - - - :need:`wp__sw_implementation_inspection` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_verify_implementation) - - |tooling_name_wp__sw_implementation_inspection| - - |tooling_status_wp__sw_implementation_inspection| - * - Verification - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(verification) - - - :need:`wp__verification_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_plan|wf__verification_plan_maintain) - - |tooling_name_wp__verification_plan| - - |tooling_status_wp__verification_plan| - * - - - - - - - :need:`wp__verification_platform_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_platform_int_test) - - |tooling_name_wp__verification_platform_int_test| - - |tooling_status_wp__verification_platform_int_test| - * - - - - - - - :need:`wp__verification_platform_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_platform_ver_report) - - |tooling_name_wp__verification_platform_ver_report| - - |tooling_status_wp__verification_platform_ver_report| - * - - - - - - - :need:`wp__verification_feat_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_feat_int_test) - - |tooling_name_wp__verification_feat_int_test| - - |tooling_status_wp__verification_feat_int_test| - * - - - - - - - :need:`wp__verification_module_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_mod_ver_report) - - |tooling_name_wp__verification_module_ver_report| - - |tooling_status_wp__verification_module_ver_report| - * - - - - - - - :need:`wp__verification_comp_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_comp_int_test) - - |tooling_name_wp__verification_comp_int_test| - - |tooling_status_wp__verification_comp_int_test| - * - - - - - - - :need:`wp__verification_sw_unit_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_unit_test) - - |tooling_name_wp__verification_sw_unit_test| - - |tooling_status_wp__verification_sw_unit_test| +.. include:: process_area_overview_table.rst -.. raw:: html +.. include:: wp_status_table.rst - +.. include:: tooling_table.rst diff --git a/process/standards/process_reqs_list/tooling_table.rst b/process/standards/process_reqs_list/tooling_table.rst new file mode 100644 index 0000000000..8ca97c423d --- /dev/null +++ b/process/standards/process_reqs_list/tooling_table.rst @@ -0,0 +1,115 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +Tooling Overview +**************** + +Edit this table to define the tooling used per work product and its current status. + +.. list-table:: Tooling overview per work product + :header-rows: 1 + :widths: 20 25 30 25 + + * - Process area + - Work product + - Tooling + - Tooling Status + * - Requirements Engineering + - :need:`wp__requirements_stkh` + - sphinx-needs + - available + * - + - :need:`wp__requirements_sw_platform_aou` + - sphinx-needs + - available + * - + - :need:`wp__requirements_feat` + - TBDsklgjlksgj + - ttttt + * - + - :need:`wp__requirements_feat_aou` + - TBD + - TBD + * - + - :need:`wp__requirements_comp` + - TBD + - TBD + * - + - :need:`wp__requirements_comp_aou` + - TBD + - TBD + * - + - :need:`wp__requirements_proc_tool` + - TBD + - TBD + * - + - :need:`wp__requirements_inspect` + - TBD + - TBD + * - Architecture Design + - :need:`wp__platform_arch` + - TBD + - TBD + * - + - :need:`wp__feature_arch` + - TBD + - TBD + * - + - :need:`wp__component_arch` + - TBD + - TBD + * - + - :need:`wp__sw_arch_verification` + - TBD + - TBD + * - Implementation + - :need:`wp__sw_development_plan` + - TBD + - TBD + * - + - :need:`wp__sw_implementation` + - TBD + - TBD + * - + - :need:`wp__sw_implementation_inspection` + - TBD + - TBD + * - Verification + - :need:`wp__verification_plan` + - TBD + - TBD + * - + - :need:`wp__verification_platform_int_test` + - TBD + - TBD + * - + - :need:`wp__verification_platform_ver_report` + - TBD + - TBD + * - + - :need:`wp__verification_feat_int_test` + - TBD + - TBD + * - + - :need:`wp__verification_module_ver_report` + - TBD + - TBD + * - + - :need:`wp__verification_comp_int_test` + - TBD + - TBD + * - + - :need:`wp__verification_sw_unit_test` + - TBD + - TBD diff --git a/process/standards/process_reqs_list/wp_status_table.rst b/process/standards/process_reqs_list/wp_status_table.rst new file mode 100644 index 0000000000..d6b0643f32 --- /dev/null +++ b/process/standards/process_reqs_list/wp_status_table.rst @@ -0,0 +1,313 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +Work Product Process Overview +***************************** + +The table below shows work product completion status and requirement verification status. + +.. list-table:: Work product process overview + :header-rows: 1 + :widths: 20 25 15 40 + + * - Process area + - Work product + - WP status + - Req. verification status + * - Requirements Engineering + - :need:`wp__requirements_stkh` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) + * - + - :need:`wp__requirements_sw_platform_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) + * - + - :need:`wp__requirements_feat` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_feat_req) + * - + - :need:`wp__requirements_feat_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_feat_aou) + * - + - :need:`wp__requirements_comp` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_comp_req) + * - + - :need:`wp__requirements_comp_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_comp_aou) + * - + - :need:`wp__requirements_proc_tool` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_proc_tool) + * - + - :need:`wp__requirements_inspect` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__monitor_verify_requirements) + * - Architecture Design + - :need:`wp__platform_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_platarch) + * - + - :need:`wp__feature_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_featarch) + * - + - :need:`wp__component_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_comparch) + * - + - :need:`wp__sw_arch_verification` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__mr_vy_arch) + * - Implementation + - :need:`wp__sw_development_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_development_plan) + * - + - :need:`wp__sw_implementation` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_detailed_design) + * - + - :need:`wp__sw_implementation_inspection` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_verify_implementation) + * - Verification + - :need:`wp__verification_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_plan|wf__verification_plan_maintain) + * - + - :need:`wp__verification_platform_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_platform_int_test) + * - + - :need:`wp__verification_platform_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_platform_ver_report) + * - + - :need:`wp__verification_feat_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_feat_int_test) + * - + - :need:`wp__verification_module_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_mod_ver_report) + * - + - :need:`wp__verification_comp_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_comp_int_test) + * - + - :need:`wp__verification_sw_unit_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_unit_test) From 13687dc0acbd0e988b3aebfe0d43b1a1810cffe2 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:08:27 +0000 Subject: [PATCH 03/19] Restore single combined table; tooling columns via tooling_definitions.rst substitutions --- .../process_status_overview.rst | 564 +++++++++++++++++- 1 file changed, 561 insertions(+), 3 deletions(-) diff --git a/process/standards/process_reqs_list/process_status_overview.rst b/process/standards/process_reqs_list/process_status_overview.rst index 34935588b0..27b360d596 100644 --- a/process/standards/process_reqs_list/process_status_overview.rst +++ b/process/standards/process_reqs_list/process_status_overview.rst @@ -12,13 +12,571 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +.. include:: tooling_definitions.rst + .. _process_status_overview: Process Status Overview ####################### -.. include:: process_area_overview_table.rst +Combined Process Area and Work Product Status Overview +****************************************************** + +The table below combines process requirement status, ISO 26262 std_req +compliance status, work product completion status, and tooling in a single overview. +For each process area the pie charts appear on the first work product row; +subsequent rows carry only the work product and its completion badge. + +.. list-table:: Combined process area and work product status overview + :header-rows: 1 + :widths: 10 13 13 20 7 15 11 11 + :class: combined-status-table + + * - Process area + - Process req. status + - ISO 26262 std_req status + - Work product + - WP status + - Req. verification status + - Tooling + - Tooling Status + * - Requirements Engineering + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + + - :need:`wp__requirements_stkh` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) + - |tooling_name_wp__requirements_stkh| + - |tooling_status_wp__requirements_stkh| + * - + - + - + - :need:`wp__requirements_sw_platform_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) + - |tooling_name_wp__requirements_sw_platform_aou| + - |tooling_status_wp__requirements_sw_platform_aou| + * - + - + - + - :need:`wp__requirements_feat` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_feat_req) + - |tooling_name_wp__requirements_feat| + - |tooling_status_wp__requirements_feat| + * - + - + - + - :need:`wp__requirements_feat_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_feat_aou) + - |tooling_name_wp__requirements_feat_aou| + - |tooling_status_wp__requirements_feat_aou| + * - + - + - + - :need:`wp__requirements_comp` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_comp_req) + - |tooling_name_wp__requirements_comp| + - |tooling_status_wp__requirements_comp| + * - + - + - + - :need:`wp__requirements_comp_aou` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_comp_aou) + - |tooling_name_wp__requirements_comp_aou| + - |tooling_status_wp__requirements_comp_aou| + * - + - + - + - :need:`wp__requirements_proc_tool` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__req_proc_tool) + - |tooling_name_wp__requirements_proc_tool| + - |tooling_status_wp__requirements_proc_tool| + * - + - + - + - :need:`wp__requirements_inspect` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__monitor_verify_requirements) + - |tooling_name_wp__requirements_inspect| + - |tooling_status_wp__requirements_inspect| + * - Architecture Design + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + + - :need:`wp__platform_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_platarch) + - |tooling_name_wp__platform_arch| + - |tooling_status_wp__platform_arch| + * - + - + - + - :need:`wp__feature_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_featarch) + - |tooling_name_wp__feature_arch| + - |tooling_status_wp__feature_arch| + * - + - + - + - :need:`wp__component_arch` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__cr_mt_comparch) + - |tooling_name_wp__component_arch| + - |tooling_status_wp__component_arch| + * - + - + - + - :need:`wp__sw_arch_verification` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__mr_vy_arch) + - |tooling_name_wp__sw_arch_verification| + - |tooling_status_wp__sw_arch_verification| + * - Implementation + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + + - :need:`wp__sw_development_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_development_plan) + - |tooling_name_wp__sw_development_plan| + - |tooling_status_wp__sw_development_plan| + * - + - + - + - :need:`wp__sw_implementation` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_detailed_design) + - |tooling_name_wp__sw_implementation| + - |tooling_status_wp__sw_implementation| + * - + - + - + - :need:`wp__sw_implementation_inspection` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__sw_verify_implementation) + - |tooling_name_wp__sw_implementation_inspection| + - |tooling_status_wp__sw_implementation_inspection| + * - Verification + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) + + - :need:`wp__verification_plan` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_plan|wf__verification_plan_maintain) + - |tooling_name_wp__verification_plan| + - |tooling_status_wp__verification_plan| + * - + - + - + - :need:`wp__verification_platform_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_platform_int_test) + - |tooling_name_wp__verification_platform_int_test| + - |tooling_status_wp__verification_platform_int_test| + * - + - + - + - :need:`wp__verification_platform_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_platform_ver_report) + - |tooling_name_wp__verification_platform_ver_report| + - |tooling_status_wp__verification_platform_ver_report| + * - + - + - + - :need:`wp__verification_feat_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_feat_int_test) + - |tooling_name_wp__verification_feat_int_test| + - |tooling_status_wp__verification_feat_int_test| + * - + - + - + - :need:`wp__verification_module_ver_report` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_mod_ver_report) + - |tooling_name_wp__verification_module_ver_report| + - |tooling_status_wp__verification_module_ver_report| + * - + - + - + - :need:`wp__verification_comp_int_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_comp_int_test) + - |tooling_name_wp__verification_comp_int_test| + - |tooling_status_wp__verification_comp_int_test| + * - + - + - + - :need:`wp__verification_sw_unit_test` + - + + .. rst-class:: wp-status-cell + + :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.wp_tag_status(wf__verification_unit_test) + - |tooling_name_wp__verification_sw_unit_test| + - |tooling_status_wp__verification_sw_unit_test| -.. include:: wp_status_table.rst +.. raw:: html -.. include:: tooling_table.rst + From b236a9c857be21598dc3aefaeed00938bcfd2d15 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Mon, 4 May 2026 12:13:11 +0000 Subject: [PATCH 04/19] WIP --- process/_assets/custom.css | 83 ++ process/conf.py | 44 + process/needs_filters.py | 153 ++++ process/standards/process_reqs_list/index.rst | 1 + .../process_area_compact_overview.rst | 155 ++++ .../process_status_overview.rst | 777 ++++++++++++++++++ .../process_reqs_list/tooling_definitions.rst | 82 +- .../process_reqs_list/tooling_table.rst | 116 +-- 8 files changed, 1311 insertions(+), 100 deletions(-) create mode 100644 process/needs_filters.py create mode 100644 process/standards/process_reqs_list/process_area_compact_overview.rst diff --git a/process/_assets/custom.css b/process/_assets/custom.css index 02f31d9b5b..fa57c5a109 100644 --- a/process/_assets/custom.css +++ b/process/_assets/custom.css @@ -179,3 +179,86 @@ .score-grid .sd-card.card-ml4 .sd-card-footer a { color: var(--card-body-text-color) !important; } + +/* Process requirement summary charts */ +img[id^="needpie-standards/process_reqs_list/process_area_status_summary-"] { + width: 300px; + max-width: none; + height: auto; + display: block; + margin: 0 auto; +} + +td:has(img[id^="needpie-standards/process_reqs_list/process_area_status_summary-"]) { + vertical-align: middle; +} + +.small-pie-cell img[id^="needpie-standards/process_reqs_list/process_area_status_summary-"] { + width: 150px !important; +} + +.combined-status-table td, +.combined-status-table th { + border: 1px solid #ccc !important; +} + +.combined-status-table tr.group-start td { + border-top: 2px solid #888 !important; +} + +/* Static chart legend block above the process status overview table */ +.chart-legend-block { + display: flex; + flex-wrap: wrap; + gap: 1.5rem; + margin-bottom: 1rem; + padding: 0.75rem 1rem; + border: 1px solid #ccc; + border-radius: 4px; + background: #fafafa; +} + +.chart-legend-group { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.5rem; +} + +.chart-legend-group strong { + margin-right: 0.25rem; +} + +.chart-legend-item { + display: inline-flex; + align-items: center; + gap: 0.25rem; + font-size: 0.85em; + white-space: nowrap; +} + +.chart-legend-dot { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 50%; + flex-shrink: 0; +} + +.module-status-table td, +.module-status-table th { + border: 1px solid #ccc !important; + vertical-align: middle; +} + +.module-status-table .small-pie-cell { + text-align: center; +} + +.module-status-table .small-pie-cell img { + width: 140px; + max-width: none; + height: auto; + display: block; + margin: 0 auto; +} diff --git a/process/conf.py b/process/conf.py index a6babc9e07..6f06612706 100644 --- a/process/conf.py +++ b/process/conf.py @@ -52,3 +52,47 @@ import sys as _sys import os as _os _sys.path.insert(0, _os.path.dirname(_os.path.abspath(__file__))) + + +def _patch_needpie_suppress_legend() -> None: + """Suppress all in-chart legends in sphinx-needs needpie charts. + + needpie auto-adds a legend whenever a slice is <5% or zero, even without + the :legend: option. Since a static legend is displayed above the table, + we replace axes.legend() with a no-op so no legend appears inside the charts. + + We also patch save_matplotlib_figure to always overwrite existing SVG files, + bypassing the sphinx-needs env.images cache which would otherwise skip + regenerating images when the Sphinx environment pickle exists from a prior build. + """ + try: + import matplotlib.axes + matplotlib.axes.Axes.legend = lambda self, *args, **kwargs: None + except Exception: + pass + + try: + import sphinx_needs.utils as _sn_utils + import sphinx_needs.directives.needpie as _needpie_mod + import os + + _orig_save = _sn_utils.save_matplotlib_figure + + def _save_always(app, figure, basename, fromdocname): # type: ignore[no-untyped-def] + # Remove cached entry so figure.savefig() is always called + builder = app.builder + for ext in ("svg", "png", "pdf"): + path = os.path.join(builder.outdir, builder.imagedir, f"{basename}.{ext}") + try: + del app.env.images[path] # type: ignore[attr-defined] + except (KeyError, TypeError, AttributeError): + pass + return _orig_save(app, figure, basename, fromdocname) + + _sn_utils.save_matplotlib_figure = _save_always + _needpie_mod.save_matplotlib_figure = _save_always + except Exception: + pass + + +_patch_needpie_suppress_legend() diff --git a/process/needs_filters.py b/process/needs_filters.py new file mode 100644 index 0000000000..1baa202f6c --- /dev/null +++ b/process/needs_filters.py @@ -0,0 +1,153 @@ +# ******************************************************************************* +# Copyright (c) 2025 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 +# ******************************************************************************* + +""" +Custom filter functions for use with sphinx-needs :filter-func: option. +""" + + +def std_req_status_for_area(needs, results, arg1=""): + """ + filter_func for needpie: counts the tag-based compliance status distribution + of std_req needs referenced via `complies` from gd_req needs tagged with the + given process area tag. + + Recognized tags (in priority order): ok, recommendation, open, action, + deviation, n/a. Needs with none of these tags are counted as "other". + + arg1 = process area tag (e.g. requirements_engineering) + """ + area_tag = arg1.strip() + std_req_ids = set() + needs_by_id = {n["id"]: n for n in needs} + for need in needs: + if ( + need.get("type") == "gd_req" + and not need.get("is_external", False) + and area_tag in need.get("tags", []) + ): + for ref_id in need.get("complies", []): + if ref_id.startswith("std_req__iso26262__"): + std_req_ids.add(ref_id) + ok = recommendation = open_ = action = deviation = na = other = 0 + for sid in std_req_ids: + n = needs_by_id.get(sid) + if n: + t = set(n.get("tags", [])) + if "deviation" in t: + deviation += 1 + elif "action" in t: + action += 1 + elif "open" in t: + open_ += 1 + elif "ok" in t: + ok += 1 + elif "recommendation" in t: + recommendation += 1 + elif "n/a" in t: + na += 1 + else: + other += 1 + results += [ok, recommendation, open_, action, deviation, na, other] + + +def wp_tag_status(needs, results, arg1=""): + """ + filter_func for needpie: counts the tag-based verification status distribution + of gd_req needs associated with one or more workflows (pipe-separated in arg1). + + Tags (in priority order): + - done_automation → Automated + - prio__automation → Waiting for automation + - manual_prio_ → Inspection list + - (none of the above) → Other + + arg1 = workflow id(s), pipe-separated (e.g. wf__foo or wf__foo|wf__bar) + """ + workflow_ids = [w.strip() for w in arg1.split("|") if w.strip()] + automated = waiting = inspection = other = 0 + for need in needs: + if need.get("type") == "gd_req" and not need.get("is_external", False): + satisfies = need.get("satisfies", []) + if any(wf in satisfies for wf in workflow_ids): + tags = set(need.get("tags", [])) + if "done_automation" in tags: + automated += 1 + elif any( + t.startswith("prio_") and t.endswith("_automation") + for t in tags + ): + waiting += 1 + elif any(t.startswith("manual_prio_") for t in tags): + inspection += 1 + else: + other += 1 + results += [automated, waiting, inspection, other] + + +def area_verification_status(needs, results, arg1=""): + """ + filter_func for needpie: counts the tag-based verification status distribution + of gd_req needs tagged with the given process area tag, aggregated across all + workflows for that area. + + Tags (in priority order): + - done_automation → Automated + - prio__automation → Waiting for automation + - manual_prio_ → Inspection list + - (none of the above) → Other + + arg1 = process area tag (e.g. requirements_engineering) + """ + area_tag = arg1.strip() + automated = waiting = inspection = other = 0 + for need in needs: + if ( + need.get("type") == "gd_req" + and not need.get("is_external", False) + and area_tag in need.get("tags", []) + ): + tags = set(need.get("tags", [])) + if "done_automation" in tags: + automated += 1 + elif any( + t.startswith("prio_") and t.endswith("_automation") + for t in tags + ): + waiting += 1 + elif any(t.startswith("manual_prio_") for t in tags): + inspection += 1 + else: + other += 1 + results += [automated, waiting, inspection, other] + + +def wp_done_automation_status(needs, results, arg1=""): + """ + filter_func for needpie: counts gd_req needs associated with one or more + workflows and splits them into done_automation vs. remaining requirements. + + arg1 = workflow id(s), pipe-separated (e.g. wf__foo or wf__foo|wf__bar) + """ + workflow_ids = [w.strip() for w in arg1.split("|") if w.strip()] + done = rest = 0 + for need in needs: + if need.get("type") == "gd_req" and not need.get("is_external", False): + satisfies = need.get("satisfies", []) + if any(wf in satisfies for wf in workflow_ids): + tags = set(need.get("tags", [])) + if "done_automation" in tags: + done += 1 + else: + rest += 1 + results += [done, rest] diff --git a/process/standards/process_reqs_list/index.rst b/process/standards/process_reqs_list/index.rst index b2693cd769..164918beca 100644 --- a/process/standards/process_reqs_list/index.rst +++ b/process/standards/process_reqs_list/index.rst @@ -36,6 +36,7 @@ see: :maxdepth: 1 process_area_status_summary + process_area_compact_overview process_status_overview .. needtable:: diff --git a/process/standards/process_reqs_list/process_area_compact_overview.rst b/process/standards/process_reqs_list/process_area_compact_overview.rst new file mode 100644 index 0000000000..bcff21dc3d --- /dev/null +++ b/process/standards/process_reqs_list/process_area_compact_overview.rst @@ -0,0 +1,155 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +.. _process_area_compact_overview: + +Process Area Status Overview (Compact) +####################################### + +The table below shows process requirement status, ISO 26262 std_req compliance +status, and requirement verification status per process area — one row per area, +without further splitting by work product. + +.. raw:: html + +
+
+ Process req. status + Valid + Draft + Invalid + Other +
+
+ ISO 26262 std_req status + Ok + Recommendation + Open + Action + Deviation + N/A + Other +
+
+ Req. verification status + Automated + Waiting for automation + Inspection list + Other +
+
+ +.. list-table:: Process area status overview (compact) + :header-rows: 1 + :widths: 20 27 27 26 + + * - Process area + - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - Requirements Engineering + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(requirements_engineering) + + * - Architecture Design + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(architecture_design) + + * - Implementation + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(implementation) + + * - Verification + - + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) + - + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(verification) diff --git a/process/standards/process_reqs_list/process_status_overview.rst b/process/standards/process_reqs_list/process_status_overview.rst index 27b360d596..8456fe1ea2 100644 --- a/process/standards/process_reqs_list/process_status_overview.rst +++ b/process/standards/process_reqs_list/process_status_overview.rst @@ -27,6 +27,35 @@ compliance status, work product completion status, and tooling in a single overv For each process area the pie charts appear on the first work product row; subsequent rows carry only the work product and its completion badge. +.. raw:: html + +
+
+ Process req. status + Valid + Draft + Invalid + Other +
+
+ ISO 26262 std_req status + Ok + Recommendation + Open + Action + Deviation + N/A + Other +
+
+ Req. verification status + Automated + Waiting for automation + Inspection list + Other +
+
+ .. list-table:: Combined process area and work product status overview :header-rows: 1 :widths: 10 13 13 20 7 15 11 11 @@ -580,3 +609,751 @@ subsequent rows carry only the work product and its completion badge. }); }); + +Module Status by Work Product +***************************** + +The following tables provide module-specific placeholders for manual status tracking. +Rows are grouped by process area and list the related work products. + +.. raw:: html + +
+
+ Done automation status + done_automation + rest +
+
+ +Baselibs +======== + +.. list-table:: Baselibs module status + :header-rows: 1 + :widths: 50 25 25 + :class: module-status-table + + * - `Baselibs `_ + - Functional complete + - Done automation / rest + * - **Requirements Engineering** + - + - + * - :need:`wp__requirements_stkh` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) + * - :need:`wp__requirements_sw_platform_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) + * - :need:`wp__requirements_feat` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_req) + * - :need:`wp__requirements_feat_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_aou) + * - :need:`wp__requirements_comp` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_req) + * - :need:`wp__requirements_comp_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_aou) + * - :need:`wp__requirements_proc_tool` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_proc_tool) + * - :need:`wp__requirements_inspect` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__monitor_verify_requirements) + * - **Architecture Design** + - + - + * - :need:`wp__platform_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_platarch) + * - :need:`wp__feature_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_featarch) + * - :need:`wp__component_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_comparch) + * - :need:`wp__sw_arch_verification` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__mr_vy_arch) + * - **Implementation** + - + - + * - :need:`wp__sw_development_plan` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_development_plan) + * - :need:`wp__sw_implementation` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_detailed_design) + * - :need:`wp__sw_implementation_inspection` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_verify_implementation) + * - **Verification** + - + - + * - :need:`wp__verification_plan` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_plan|wf__verification_plan_maintain) + * - :need:`wp__verification_platform_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_int_test) + * - :need:`wp__verification_platform_ver_report` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_ver_report) + * - :need:`wp__verification_feat_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_feat_int_test) + * - :need:`wp__verification_module_ver_report` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_mod_ver_report) + * - :need:`wp__verification_comp_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_comp_int_test) + * - :need:`wp__verification_sw_unit_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_unit_test) + +Communication +============= + +.. list-table:: Communication module status + :header-rows: 1 + :widths: 50 25 25 + :class: module-status-table + + * - `Communication `_ + - Functional complete + - Done automation / rest + * - **Requirements Engineering** + - + - + * - :need:`wp__requirements_stkh` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) + * - :need:`wp__requirements_sw_platform_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) + * - :need:`wp__requirements_feat` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_req) + * - :need:`wp__requirements_feat_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_aou) + * - :need:`wp__requirements_comp` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_req) + * - :need:`wp__requirements_comp_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_aou) + * - :need:`wp__requirements_proc_tool` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_proc_tool) + * - :need:`wp__requirements_inspect` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__monitor_verify_requirements) + * - **Architecture Design** + - + - + * - :need:`wp__platform_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_platarch) + * - :need:`wp__feature_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_featarch) + * - :need:`wp__component_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_comparch) + * - :need:`wp__sw_arch_verification` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__mr_vy_arch) + * - **Implementation** + - + - + * - :need:`wp__sw_development_plan` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_development_plan) + * - :need:`wp__sw_implementation` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_detailed_design) + * - :need:`wp__sw_implementation_inspection` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_verify_implementation) + * - **Verification** + - + - + * - :need:`wp__verification_plan` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_plan|wf__verification_plan_maintain) + * - :need:`wp__verification_platform_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_int_test) + * - :need:`wp__verification_platform_ver_report` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_ver_report) + * - :need:`wp__verification_feat_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_feat_int_test) + * - :need:`wp__verification_module_ver_report` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_mod_ver_report) + * - :need:`wp__verification_comp_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_comp_int_test) + * - :need:`wp__verification_sw_unit_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_unit_test) + +Logging +======= + +.. list-table:: Logging module status + :header-rows: 1 + :widths: 50 25 25 + :class: module-status-table + + * - `Logging `_ + - Functional complete + - Done automation / rest + * - **Requirements Engineering** + - + - + * - :need:`wp__requirements_stkh` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) + * - :need:`wp__requirements_sw_platform_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) + * - :need:`wp__requirements_feat` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_req) + * - :need:`wp__requirements_feat_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_aou) + * - :need:`wp__requirements_comp` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_req) + * - :need:`wp__requirements_comp_aou` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_aou) + * - :need:`wp__requirements_proc_tool` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__req_proc_tool) + * - :need:`wp__requirements_inspect` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__monitor_verify_requirements) + * - **Architecture Design** + - + - + * - :need:`wp__platform_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_platarch) + * - :need:`wp__feature_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_featarch) + * - :need:`wp__component_arch` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_comparch) + * - :need:`wp__sw_arch_verification` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__mr_vy_arch) + * - **Implementation** + - + - + * - :need:`wp__sw_development_plan` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_development_plan) + * - :need:`wp__sw_implementation` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_detailed_design) + * - :need:`wp__sw_implementation_inspection` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__sw_verify_implementation) + * - **Verification** + - + - + * - :need:`wp__verification_plan` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_plan|wf__verification_plan_maintain) + * - :need:`wp__verification_platform_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_int_test) + * - :need:`wp__verification_platform_ver_report` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_ver_report) + * - :need:`wp__verification_feat_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_feat_int_test) + * - :need:`wp__verification_module_ver_report` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_mod_ver_report) + * - :need:`wp__verification_comp_int_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_comp_int_test) + * - :need:`wp__verification_sw_unit_test` + - + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Done, Rest + :colors: LimeGreen, LightGray + :filter-func: needs_filters.wp_done_automation_status(wf__verification_unit_test) diff --git a/process/standards/process_reqs_list/tooling_definitions.rst b/process/standards/process_reqs_list/tooling_definitions.rst index 7f411ab1f2..644779c69c 100644 --- a/process/standards/process_reqs_list/tooling_definitions.rst +++ b/process/standards/process_reqs_list/tooling_definitions.rst @@ -16,8 +16,6 @@ .. Edit this file to fill in the tooling columns in the Process Status Overview table. .. .. Two substitutions per work product: -.. |tooling_name_wp__| — tool name (text, inline code ``tool``, link `Name `_) -.. |tooling_status_wp__| — status of the tooling (e.g. available, planned, n/a) .. .. Inline markup only (no block-level directives, no bullet lists). @@ -28,65 +26,65 @@ .. |tooling_name_wp__requirements_sw_platform_aou| replace:: sphinx-needs .. |tooling_status_wp__requirements_sw_platform_aou| replace:: available -.. |tooling_name_wp__requirements_feat| replace:: TBDsklgjlksgj -.. |tooling_status_wp__requirements_feat| replace:: ttttt +.. |tooling_name_wp__requirements_feat| replace:: sphinx-needs +.. |tooling_status_wp__requirements_feat| replace:: available -.. |tooling_name_wp__requirements_feat_aou| replace:: TBD -.. |tooling_status_wp__requirements_feat_aou| replace:: TBD +.. |tooling_name_wp__requirements_feat_aou| replace:: sphinx-needs +.. |tooling_status_wp__requirements_feat_aou| replace:: available -.. |tooling_name_wp__requirements_comp| replace:: TBD -.. |tooling_status_wp__requirements_comp| replace:: TBD +.. |tooling_name_wp__requirements_comp| replace:: sphinx-needs +.. |tooling_status_wp__requirements_comp| replace:: available -.. |tooling_name_wp__requirements_comp_aou| replace:: TBD -.. |tooling_status_wp__requirements_comp_aou| replace:: TBD +.. |tooling_name_wp__requirements_comp_aou| replace:: sphinx-needs +.. |tooling_status_wp__requirements_comp_aou| replace:: available -.. |tooling_name_wp__requirements_proc_tool| replace:: TBD -.. |tooling_status_wp__requirements_proc_tool| replace:: TBD +.. |tooling_name_wp__requirements_proc_tool| replace:: sphinx-needs +.. |tooling_status_wp__requirements_proc_tool| replace:: available -.. |tooling_name_wp__requirements_inspect| replace:: TBD -.. |tooling_status_wp__requirements_inspect| replace:: TBD +.. |tooling_name_wp__requirements_inspect| replace:: sphinx-needs +.. |tooling_status_wp__requirements_inspect| replace:: available .. Architecture Design -.. |tooling_name_wp__platform_arch| replace:: TBD -.. |tooling_status_wp__platform_arch| replace:: TBD +.. |tooling_name_wp__platform_arch| replace:: sphinx-needs, PlantUML +.. |tooling_status_wp__platform_arch| replace:: available -.. |tooling_name_wp__feature_arch| replace:: TBD -.. |tooling_status_wp__feature_arch| replace:: TBD +.. |tooling_name_wp__feature_arch| replace:: sphinx-needs, PlantUML +.. |tooling_status_wp__feature_arch| replace:: available -.. |tooling_name_wp__component_arch| replace:: TBD -.. |tooling_status_wp__component_arch| replace:: TBD +.. |tooling_name_wp__component_arch| replace:: sphinx-needs, PlantUML +.. |tooling_status_wp__component_arch| replace:: available -.. |tooling_name_wp__sw_arch_verification| replace:: TBD -.. |tooling_status_wp__sw_arch_verification| replace:: TBD +.. |tooling_name_wp__sw_arch_verification| replace:: sphinx-needs +.. |tooling_status_wp__sw_arch_verification| replace:: not available .. Implementation -.. |tooling_name_wp__sw_development_plan| replace:: TBD -.. |tooling_status_wp__sw_development_plan| replace:: TBD +.. |tooling_name_wp__sw_development_plan| replace:: sphinx-needs +.. |tooling_status_wp__sw_development_plan| replace:: not available -.. |tooling_name_wp__sw_implementation| replace:: TBD -.. |tooling_status_wp__sw_implementation| replace:: TBD +.. |tooling_name_wp__sw_implementation| replace:: C++/RUST toolchain +.. |tooling_status_wp__sw_implementation| replace:: available -.. |tooling_name_wp__sw_implementation_inspection| replace:: TBD -.. |tooling_status_wp__sw_implementation_inspection| replace:: TBD +.. |tooling_name_wp__sw_implementation_inspection| replace:: sphinx-needs +.. |tooling_status_wp__sw_implementation_inspection| replace:: available .. Verification -.. |tooling_name_wp__verification_plan| replace:: TBD -.. |tooling_status_wp__verification_plan| replace:: TBD +.. |tooling_name_wp__verification_plan| replace:: sphinx-needs +.. |tooling_status_wp__verification_plan| replace:: not available -.. |tooling_name_wp__verification_platform_int_test| replace:: TBD -.. |tooling_status_wp__verification_platform_int_test| replace:: TBD +.. |tooling_name_wp__verification_platform_int_test| replace:: ITF +.. |tooling_status_wp__verification_platform_int_test| replace:: available -.. |tooling_name_wp__verification_platform_ver_report| replace:: TBD -.. |tooling_status_wp__verification_platform_ver_report| replace:: TBD +.. |tooling_name_wp__verification_platform_ver_report| replace:: sphinx-needs +.. |tooling_status_wp__verification_platform_ver_report| replace:: not available -.. |tooling_name_wp__verification_feat_int_test| replace:: TBD -.. |tooling_status_wp__verification_feat_int_test| replace:: TBD +.. |tooling_name_wp__verification_feat_int_test| replace:: ITF +.. |tooling_status_wp__verification_feat_int_test| replace:: available -.. |tooling_name_wp__verification_module_ver_report| replace:: TBD -.. |tooling_status_wp__verification_module_ver_report| replace:: TBD +.. |tooling_name_wp__verification_module_ver_report| replace:: sphinx-needs +.. |tooling_status_wp__verification_module_ver_report| replace:: not available -.. |tooling_name_wp__verification_comp_int_test| replace:: TBD -.. |tooling_status_wp__verification_comp_int_test| replace:: TBD +.. |tooling_name_wp__verification_comp_int_test| replace:: ITF +.. |tooling_status_wp__verification_comp_int_test| replace:: available -.. |tooling_name_wp__verification_sw_unit_test| replace:: TBD -.. |tooling_status_wp__verification_sw_unit_test| replace:: TBD +.. |tooling_name_wp__verification_sw_unit_test| replace:: gtest +.. |tooling_status_wp__verification_sw_unit_test| replace:: available diff --git a/process/standards/process_reqs_list/tooling_table.rst b/process/standards/process_reqs_list/tooling_table.rst index 8ca97c423d..c7b9e4309d 100644 --- a/process/standards/process_reqs_list/tooling_table.rst +++ b/process/standards/process_reqs_list/tooling_table.rst @@ -29,87 +29,87 @@ Edit this table to define the tooling used per work product and its current stat - :need:`wp__requirements_stkh` - sphinx-needs - available - * - + * - - :need:`wp__requirements_sw_platform_aou` - sphinx-needs - available - * - + * - - :need:`wp__requirements_feat` - - TBDsklgjlksgj - - ttttt - * - + - sphinx-needs + - available + * - - :need:`wp__requirements_feat_aou` - - TBD - - TBD - * - + - sphinx-needs + - available + * - - :need:`wp__requirements_comp` - - TBD - - TBD - * - + - sphinx-needs + - available + * - - :need:`wp__requirements_comp_aou` - - TBD - - TBD - * - + - sphinx-needs + - available + * - - :need:`wp__requirements_proc_tool` - - TBD - - TBD - * - + - sphinx-needs + - available + * - - :need:`wp__requirements_inspect` - - TBD - - TBD + - sphinx-needs + - available * - Architecture Design - :need:`wp__platform_arch` - - TBD - - TBD - * - + - sphinx-needs, PlantUML + - available + * - - :need:`wp__feature_arch` - - TBD - - TBD - * - + - sphinx-needs, PlantUML + - available + * - - :need:`wp__component_arch` - - TBD - - TBD - * - + - sphinx-needs, PlantUML + - available + * - - :need:`wp__sw_arch_verification` - - TBD - - TBD + - sphinx-needs, PlantUML + - available * - Implementation - :need:`wp__sw_development_plan` - - TBD - - TBD - * - + - n/a + - n/a + * - - :need:`wp__sw_implementation` - - TBD - - TBD - * - + - C++, RUST toolchains + - available + * - - :need:`wp__sw_implementation_inspection` - - TBD - - TBD + - sphinx-needs + - available * - Verification - :need:`wp__verification_plan` - - TBD - - TBD - * - + - n/a + - n/a + * - - :need:`wp__verification_platform_int_test` - - TBD - - TBD - * - + - ITF + - available + * - - :need:`wp__verification_platform_ver_report` - - TBD - - TBD - * - + - sphinx-needs + - not available + * - - :need:`wp__verification_feat_int_test` - - TBD - - TBD - * - + - ITF + - available + * - - :need:`wp__verification_module_ver_report` - - TBD - - TBD - * - + - sphinx-needs + - not available + * - - :need:`wp__verification_comp_int_test` - - TBD - - TBD - * - + - ITF + - available + * - - :need:`wp__verification_sw_unit_test` - - TBD - - TBD + - gtest + - available From d2fb75224f3f43ba576d8bf44afa5196f927f6a4 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Mon, 4 May 2026 13:18:26 +0000 Subject: [PATCH 05/19] tables for process are in a good shape --- .github/skills/module-phase-tracker/SKILL.md | 843 ++++++++++ process/_assets/custom.css | 83 +- .../standards/feature_and_process_status.rst | 548 +++++++ process/standards/index.rst | 1 + process/standards/process_reqs_list/index.rst | 23 +- .../process_area_compact_overview.rst | 155 -- .../process_area_overview_table.rst | 97 -- .../process_area_status_summary.rst | 1060 ------------- .../process_status_overview.rst | 1359 ----------------- .../process_reqs_list/tooling_definitions.rst | 90 -- .../process_reqs_list/tooling_table.rst | 115 -- .../process_reqs_list/wp_status_table.rst | 313 ---- 12 files changed, 1411 insertions(+), 3276 deletions(-) create mode 100644 .github/skills/module-phase-tracker/SKILL.md create mode 100644 process/standards/feature_and_process_status.rst delete mode 100644 process/standards/process_reqs_list/process_area_compact_overview.rst delete mode 100644 process/standards/process_reqs_list/process_area_overview_table.rst delete mode 100644 process/standards/process_reqs_list/process_area_status_summary.rst delete mode 100644 process/standards/process_reqs_list/process_status_overview.rst delete mode 100644 process/standards/process_reqs_list/tooling_definitions.rst delete mode 100644 process/standards/process_reqs_list/tooling_table.rst delete mode 100644 process/standards/process_reqs_list/wp_status_table.rst diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md new file mode 100644 index 0000000000..0d2391b15b --- /dev/null +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -0,0 +1,843 @@ +--- +name: module-phase-tracker +description: "Update the Feature and Process Status table in feature_and_process_status.rst. Use when: checking module status, updating feature status tracker, refreshing work product status, deriving completion status from eclipse-score GitHub repos for Baselibs, Communication, Logging, Orchestrator, Persistency, Time, Config Management." +argument-hint: "optional: module name or 'all'" +--- + +# Feature and Process Status + +Derives and updates the completion status table in +`process/standards/feature_and_process_status.rst` by querying the live eclipse-score GitHub repositories. + +## When to Use + +- Refresh the tracker table with current data +- After a sprint/release to check progress +- When a module team reports a deliverable is done + +## RST File Structure + +`feature_and_process_status.rst` consists of a file header followed by 5 Process Area sections. Each section has this exact pattern: + +```rst +Process Area N — +*********************** + + + +See :ref:``. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and '' in tags + type == 'gd_req' and is_external == False and status == 'draft' and '' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and '' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and '' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area() + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status() + +.. rubric:: Implementation status: 🔄 NN% (X/Y deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - + - + ... +``` + +**Important rules:** +- `.. needpie::` does **NOT** support a `:title:` option — omit it entirely (causes build errors) +- The pie chart table uses CSS class `compact-overview-table`; each cell needs `.. rst-class:: small-pie-cell` before its `.. needpie::` +- The module tracker table uses CSS class `module-phase-tracker-table` +- Both `.. rubric::` directives are plain inline text — NOT RST section headings +- The `.. rubric:: Implementation status:` line is computed (see Step 4 in Procedure) and placed directly before the module tracker table + +| Process Area | sphinx-needs tag | +|---|---| +| PA 1 — Change Management | `change_management` | +| PA 2 — Requirements Engineering | `requirements_engineering` | +| PA 3 — Architecture Design | `architecture_design` | +| PA 4 — Implementation | `implementation` | +| PA 5 — Verification | `verification` | + +The pie chart diagrams are computed live by sphinx-needs at build time — they **never need manual updates**. Only update the filter `` when adding a new Process Area. + +## Modules and Repos + +> **IMPORTANT**: Each module has its own dedicated repo in the `eclipse-score` GitHub org AND content in `eclipse-score/score`. **Always check BOTH** the module's own repo and `eclipse-score/score` when counting needs elements. Never rely on `eclipse-score/score` alone. + +| Module | Own Repo (always check!) | Docs in `eclipse-score/score` | +|---|---|---| +| Baselibs | `eclipse-score/baselibs` (no sphinx-needs RST so far) | `docs/modules/baselibs/**`, `docs/features/baselibs/docs` | +| Communication | `eclipse-score/communication` (no sphinx-needs RST so far) | `docs/modules/communication/**`, `docs/features/communication/docs` | +| Logging | `eclipse-score/logging` (no sphinx-needs RST so far) | `docs/modules/logging/**`, `docs/features/analysis-infra/logging/docs` | +| Orchestrator | `eclipse-score/lifecycle` — has `docs/module/health_monitor/` with comp_req/comp_arc | `docs/modules/orchestrator/**`, `docs/features/orchestration` | +| Persistency | `eclipse-score/persistency` — has `docs/persistency/kvs/` with comp_req/comp_arc ✅ | `docs/features/persistency` | +| Time | `eclipse-score/inc_time` (no sphinx-needs RST so far) | `docs/features/time/docs` | +| Config Management | `eclipse-score/config_management` (no sphinx-needs RST so far) | `docs/features/configuration` | + +**How to search all repos for a module:** +```python +for repo in ["eclipse-score/score", "eclipse-score/"]: + files = [p for p in get_tree(repo) if p.endswith(".rst") and "" in p] + for f in files: + v, t = count_needs_in_file(repo, f) +``` + +## Status Format + +- **``✅ Available (valid/total)``** — Artifact complete and approved: **100% of needs elements are `valid`** (valid == total). Always add the count in parentheses for requirements and architecture rows. +- **``🔄 NN% (valid/total)``** — In Progress: at least one element is `valid` but not all. Always show count. +- **``❌ Open``** — Not started, not found, or 0% valid +- For binary rows (Code, SW Development Plan, Unit Tests, CR approved): no count needed, just ``✅ Available`` or ``❌ Open`` + +**Percentage calculation per deliverable:** +- **Feature Req / Feature Arch**: count individual needs elements (e.g. `.. feat_req::`, `.. feat_arc::`) inside the doc with `:status: valid`; `valid / total`; 100% (valid == total) → ✅ Available +- **Comp. Req / Comp. Arch**: count individual needs elements across all component docs; `valid / total`; 100% (valid == total) → ✅ Available +- **Req. Inspection / Arch. Inspection**: `valid / total` across all checklists (feature + component combined); 100% (valid == total) → ✅ Available +- **Detailed Design + Code / Impl. Inspection**: `valid / total` across all `chklst_impl_inspection.rst` / `chklst_dd_inspection.rst` files +- **Binary deliverables** (CR approved, SW Dev Plan, Unit Tests, Integration Tests, Verification Report): no percentage +- **Detailed Design + Code / Impl. Inspection**: `valid / total` across all `chklst_impl_inspection.rst` / `chklst_dd_inspection.rst` files +- **Binary deliverables** (CR approved, SW Dev Plan, Unit Tests, Integration Tests, Verification Report): no percentage + +## Status Criteria (per Deliverable) + +### Process Area 1 — CR approved +- **✅ Available**: A closed GitHub Issue with "Feature Request" or "Contribution Request" for the module exists in `eclipse-score/score` +- **❌ Open**: No such issue found + +Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestrator (#273), Persistency (#95), Time (#910), Config Management (#754, #1764) + +### Process Area 2 — Feature Requirements +- **✅ Available**: 100% of individual needs elements (e.g. `.. feat_req::`) inside the requirements doc have `:status: valid` +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage +- **❌ Open**: no requirements file or zero needs elements found + +### Process Area 2 — Component Requirements +- **✅ Available**: 100% of all individual needs elements across all component requirements `.rst` files (not just `index.rst` — search all `.rst` files under `docs/modules//**/requirements/`) have `:status: valid` +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage +- **❌ Open**: no component requirement files found + +### Process Area 2 — Req. Inspection +- **✅ Available**: 100% of all `chklst_req_inspection.rst` files (feature + component level) have `:status: valid` +- **🔄 In Progress**: checklists exist but not all are `valid` +- **❌ Open**: no checklists found + +### Process Area 3 — Feature Architecture +- **✅ Available**: 100% of individual needs elements (e.g. `.. feat_arc::`) inside the architecture doc have `:status: valid` +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage +- **❌ Open**: no architecture file or zero needs elements found + +### Process Area 3 — Component Architecture +- **✅ Available**: 100% of all individual needs elements across all component architecture files have `:status: valid` +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage +- **❌ Open**: no architecture docs found + +### Process Area 3 — Arch. Inspection +- **✅ Available**: 100% of all architecture checklists (`chklst_arc_inspection.rst` / `chklst_arch_inspection.rst`) have `:status: valid` +- **🔄 In Progress**: checklists exist but not all are `valid` +- **❌ Open**: no architecture checklists found + +### Process Area 4 — SW Development Plan +- **✅ Available**: `eclipse-score/score` contains `docs/platform_management_plan/software_development.rst` (project-wide) +- **❌ Open**: file absent + +### Process Area 4 — Code +- **✅ Available**: source files (`.cpp`, `.h`, `.py`, `.rs` etc.) exist in the module's own repo outside of `docs/` +- **❌ Open**: no source files found +- **Check**: `gh api repos/eclipse-score//git/trees/main?recursive=1 --jq '.tree[].path'` then filter for source extensions, exclude `docs/` +- **NOTE**: All currently active modules (Baselibs, Communication, Logging, Orchestrator, Persistency, Time, Config Mgmt) have source code → all ✅ Available + +### Process Area 4 — Detailed Design +- **✅ Available**: 100% of formal design doc needs elements (`.. dd_sta::`, `.. dd_dyn::`, `.. comp_dd::` or similar) in `detailed_design/` folders have `:status: valid` +- **🔄 NN%**: design docs exist and at least one element is `valid` but not all are `valid`; show `valid / total` % +- **❌ Open**: no RST files with actual design directives found, OR all existing design elements have `:status: draft` (0% valid = same as not started) +- **DO NOT count `chklst_impl_inspection.rst`** — those are inspection checklists, not design documents +- **DO NOT count bare `.. document::` wrapper files** — these are placeholders, not actual design content +- **Search both `eclipse-score/score` and the module's own repo** for `detailed_design/` folders + +### Process Area 4 — Impl. Inspection +- **✅ Available**: 100% of `chklst_impl_inspection.rst` / `chklst_dd_inspection.rst` files have `:status: valid` +- **🔄 In Progress**: checklists exist but not all are `valid` +- **❌ Open**: no impl inspection checklists found + +### Process Area 5 — Unit Tests +- **✅ Available**: Source repo contains `_test.cpp`, `_test.py`, or `/test(s)/` directories (excluding docs/) +- **❌ Open**: no test files found + +### Process Area 5 — Comp. Integration Tests +- **✅ Available**: Source repo contains integration test source files (`.cpp`/`.py` with "integration" in path) +- **🔄 In Progress**: integration test CI workflow exists but no test source files +- **❌ Open**: no integration test artifacts + +### Process Area 5 — Feature Integration Tests +- **🔄 In Progress**: `integration_test_scenarios` or `feature*test*` paths found in source repo +- **❌ Open**: none found + +### Process Area 5 — Module Verification Report +- **✅ Available**: `verification/module_verification_report.rst` exists AND `:status: valid` **AND** the file contains actual verification data (test coverage lists, DFA results, static analysis results etc.) — not just section headings +- **🔄 In Progress**: file exists with `:status: draft` +- **❌ Open**: file does not exist, OR file is a template placeholder only (section headings with no content) +- **⚠ Consistency check**: A Module Verification Report can only be ✅ Available if all prerequisite Phase 5 deliverables (Unit Tests, Comp. Integration Tests, Feature Integration Tests) are also ✅ Available. If any prerequisite is ❌ Open, mark the report ❌ Open regardless of `:status:` in the file. +- **Known pitfall — Persistency**: `eclipse-score/persistency` has a `module_verification_report.rst` with `:status: valid` but it is an empty template. Feature Integration Tests are ❌ Open → report must be ❌ Open. + +## Procedure + +### Prerequisites +- `gh` CLI must be authenticated (`gh auth status`) +- Python 3.8+ + +### Steps + +1. **Fetch the repo tree** for `eclipse-score/score` and module source repos: + ```bash + gh api repos/eclipse-score/score/git/trees/main?recursive=1 --jq '.tree[].path' > /tmp/tree_score.txt + ``` + +2. **Count needs elements** in each requirements/architecture file using this pattern: + ```python + import re, base64, subprocess + def count_needs_status(repo, path): + content = base64.b64decode( + subprocess.run(["gh", "api", f"repos/{repo}/contents/{path}", + "--jq", ".content"], capture_output=True, text=True).stdout.strip() + ).decode() + statuses = re.findall(r'^\s+:status:\s+(\w+)', content, re.MULTILINE) + valid = sum(1 for s in statuses if s == 'valid') + return valid, len(statuses) + ``` + Aggregate `valid` and `total` across all files per deliverable. + Percentage = `valid * 100 // total`. 100% (valid == total) → ✅ Available, else 🔄 NN%. + +3. **Update the RST file** `process/standards/feature_and_process_status.rst` + with the computed values. + +4. **Compute the Implementation status per Process Area** and update the bold status line that appears directly before each table: + - Count how many deliverable cells (across all modules × all deliverables in that Process Area) are `✅ Available` + - `complete = number of ✅ Available cells`, `total = number of module × deliverable cells` + - 100% → `✅ Available (total/total deliverables complete)` + - >0% → `🔄 NN% (complete/total deliverables complete)` + - 0% → `❌ Open (0/total deliverables complete)` + - Format: `**Implementation status: 🔄 NN% (complete/total deliverables complete)**` + - Binary rows (Code, SW Dev Plan, Unit Tests, CR): count each module cell as 1 deliverable + - Do NOT include an Overall row inside the table — the status line is placed as plain text before the `.. list-table::` directive + +5. **Adding a new module** — add a row to the Modules and Repos table above, define its `feature_path` and `docs_path`, then add a column to the tracker table. + +## Interpretation Notes + +### Artifacts vs. Checklists — Key Rule +- **Artifacts** (Feature Requirements, Component Requirements, Feature Architecture, Component Architecture, Detailed Design, Code): derive status by **directly inspecting the repos** — look for sphinx-needs elements or source files. Do NOT rely on checklist presence/status. +- **Inspection rows** (Req. Inspection, Arch. Inspection, Impl. Inspection): these rows describe the checklists themselves — report what is found in `chklst_*.rst` files (how many exist, valid vs. draft). Computed as `valid / total` checklist files. + +### Additional Notes +- **Requirements/Architecture rows**: count individual needs elements (`:status:` fields inside `.. feat_req::`, `.. feat_arc::`, `.. comp_req::`, `.. comp_arc_sta::`, `.. comp_arc_dyn::`, `.. real_arc_int::`, etc.) — NOT the document-level `:status:` field. +- **Code row**: source files outside of `docs/` in the module's own repo. All active modules currently ✅ Available. +- **Detailed Design row**: actual design directives (`.. dd_sta::`, `.. dd_dyn::`) in `detailed_design/` folders — not `chklst_impl_inspection.rst`, not bare `.. document::` wrappers. +- The SW Development Plan check is project-wide (not per-module) because S-CORE uses a single platform management plan. +- Verification report `status: valid` requires Committer approval in the PR merge. +- **Template vs. real report**: A file with `:status: valid` can still be an empty template. When checking `module_verification_report.rst`, look for actual content (tables, coverage numbers, test results) beyond section headings. If only headings are present, treat as ❌ Open even if `:status: valid`. +- **Phase 5 consistency**: The Module Verification Report cannot be complete if any prerequisite (Unit Tests, Integration Tests) is missing. + +## Limitations + +- Cannot detect whether requirements have 100% test coverage (needs needs.json analysis) +- Cannot check if static analysis findings are cleared +- Feature integration tests heuristic is weak — manual verification recommended + +## Complete RST Snapshot + +Full content of `process/standards/feature_and_process_status.rst` as of last update. +Use this to recreate the file from scratch if needed. + +```rst +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +Feature and Process Status +########################## + +This page tracks the completion status of all 5 process areas per module. +Update the status column for each module after completing the respective deliverable. + +**Process Status chart legend:** + +.. list-table:: + :header-rows: 1 + :widths: 30 30 40 + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - 🟢 Valid + + 🟡 Draft + + 🔴 Invalid + + ⬜ Other + - 🟢 Ok + + 🔵 Recommendation + + 🟡 Open + + 🟠 Action + + 🔴 Deviation + + ⬜ N/A · ◻ Other + - 🟢 Automated + + 🟡 Waiting for automation + + 🔵 Inspection list + + ⬜ Other + +**Implementation Status Values:** + +- ``✅ Available`` — Work product created, reviewed and approved +- ``🔄 NN%`` — In Progress: artifact exists with at least one valid element, percentage shows valid/total +- ``❌ Open`` — Not yet started, not found, or 0% valid +- ``—`` — Not applicable for this module + +Process Area 1 — Change Management +*********************************** + +A Change Request must be created and approved by the Architecture Community before module development begins. +See :ref:`chm_change_workflows`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'change_management' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'change_management' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'change_management' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'change_management' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(change_management) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(change_management) + +.. rubric:: Implementation status: ✅ Available (7/7 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - CR approved + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + +Process Area 2 — Requirements Engineering +***************************************** + +Feature and component requirements must be written and inspected. +Work products: ``wp__requirements_feat``, ``wp__requirements_comp``, ``wp__requirements_inspect``. +See :ref:`requirements_workflows`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(requirements_engineering) + +.. rubric:: Implementation status: 🔄 29% (6/21 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - Feature Requirements + - 🔄 93% (14/15) + - ✅ Available (50/50) + - ✅ Available (46/46) + - 🔄 84% (26/31) + - ✅ Available (40/40) + - ✅ Available (15/15) + - ✅ Available (13/13) + + * - Component Requirements + - 🔄 93% (124/134) + - 🔄 97% (34/35) + - ❌ Open + - ❌ Open + - 🔄 95% (36/38) + - ❌ Open + - ❌ Open + + * - Req. Inspection + - 🔄 20% (2/10) + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__, + `feature-level `__ + - ❌ Open + - ❌ Open + - ❌ Open + `executor `__, + `orchestrator `__ + - ✅ Available (2/2) + `feature-level `__, + `kvs `__ + - ❌ Open + - ❌ Open + +Process Area 3 — Architecture Design +************************************ + +Feature and component architecture must be designed and inspected. +Work products: ``wp__feature_arch``, ``wp__component_arch``, ``wp__sw_arch_verification``. +See :ref:`arch_workflow`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(architecture_design) + +.. rubric:: Implementation status: 🔄 24% (5/21 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - Feature Architecture + - ✅ Available (4/4) + - ✅ Available (3/3) + - ✅ Available (4/4) + - 🔄 66% (4/6) + - ✅ Available (12/12) + - ❌ Open + - ❌ Open + + * - Component Architecture + - 🔄 98% (172/175) + - 🔄 94% (17/18) + - ✅ Available (3/3) + - 🔄 98% (42/43) + - 🔄 25% (1/4) + - ❌ Open + - ❌ Open + + * - Arch. Inspection + - 🔄 80% (8/10) + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__, + `feature-level `__ + - ❌ Open + - ❌ Open + - ❌ Open + `executor `__, + `orchestrator `__ + - ❌ Open + `feature-level `__, + `kvs `__ + - ❌ Open + - ❌ Open + +Process Area 4 — Implementation +******************************** + +Source code and detailed design must be implemented and inspected. +Work products: ``wp__sw_development_plan``, ``wp__sw_implementation``, ``wp__sw_implementation_inspection``. +See :ref:`workflow_implementation`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(implementation) + +.. rubric:: Implementation status: 🔄 50% (14/28 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - SW Development Plan + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + + * - Code + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + + * - Detailed Design + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + + * - Impl. Inspection + - ❌ Open + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__ + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + `kvs `__ + - ❌ Open + - ❌ Open + +Process Area 5 — Verification +***************************** + +All tests must be implemented and a module verification report must be approved. +Work products: ``wp__verification_sw_unit_test``, ``wp__verification_comp_int_test``, ``wp__verification_feat_int_test``, ``wp__verification_module_ver_report``. +See :ref:`verification_workflows`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(verification) + +.. rubric:: Implementation status: 🔄 36% (10/28 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - Unit Tests + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + + * - Comp. Integration Tests + - ✅ Available + - ✅ Available + - ❌ Open + - ✅ Available + - ❌ Open + - ❌ Open + - ❌ Open + + * - Feature Integration Tests + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + + * - Module Verification Report + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + +Done Criteria +************* + +A module is considered **complete** when all of the following are true: + +#. All ``valid`` component requirements have **100% test coverage** (linked via ``FullyVerifies`` or ``PartiallyVerifies``). +#. All CI metadata checks pass (``TestType``, ``DerivationTechnique``, ``Description`` set on every test). +#. Static analysis has no open ``Critical`` or ``High`` findings. +#. The **Module Verification Report** (``wp__verification_module_ver_report``) is generated and approved by a Committer. +``` diff --git a/process/_assets/custom.css b/process/_assets/custom.css index fa57c5a109..392da1f0e1 100644 --- a/process/_assets/custom.css +++ b/process/_assets/custom.css @@ -180,85 +180,32 @@ color: var(--card-body-text-color) !important; } -/* Process requirement summary charts */ -img[id^="needpie-standards/process_reqs_list/process_area_status_summary-"] { - width: 300px; - max-width: none; - height: auto; - display: block; - margin: 0 auto; +/* Compact process area overview charts */ +.compact-overview-wrapper { + overflow-x: auto; } -td:has(img[id^="needpie-standards/process_reqs_list/process_area_status_summary-"]) { +.compact-overview-table td:nth-child(1), +.compact-overview-table th:nth-child(1), +.compact-overview-table td:nth-child(5), +.compact-overview-table th:nth-child(5), +.compact-overview-table td:nth-child(6), +.compact-overview-table th:nth-child(6) { + text-align: center; vertical-align: middle; } -.small-pie-cell img[id^="needpie-standards/process_reqs_list/process_area_status_summary-"] { - width: 150px !important; -} - -.combined-status-table td, -.combined-status-table th { - border: 1px solid #ccc !important; -} - -.combined-status-table tr.group-start td { - border-top: 2px solid #888 !important; -} - -/* Static chart legend block above the process status overview table */ -.chart-legend-block { - display: flex; - flex-wrap: wrap; - gap: 1.5rem; - margin-bottom: 1rem; - padding: 0.75rem 1rem; - border: 1px solid #ccc; - border-radius: 4px; - background: #fafafa; -} - -.chart-legend-group { - display: flex; - flex-wrap: wrap; - align-items: center; - gap: 0.5rem; -} - -.chart-legend-group strong { - margin-right: 0.25rem; -} - -.chart-legend-item { - display: inline-flex; - align-items: center; - gap: 0.25rem; - font-size: 0.85em; - white-space: nowrap; -} - -.chart-legend-dot { - display: inline-block; - width: 12px; - height: 12px; - border-radius: 50%; - flex-shrink: 0; -} - -.module-status-table td, -.module-status-table th { - border: 1px solid #ccc !important; +.compact-overview-table td:has(img[id^="needpie-"]) { + min-width: 240px; vertical-align: middle; -} - -.module-status-table .small-pie-cell { text-align: center; } -.module-status-table .small-pie-cell img { - width: 140px; +.compact-overview-table td:has(img[id^="needpie-"]) img { + width: 240px; max-width: none; height: auto; display: block; margin: 0 auto; } + diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst new file mode 100644 index 0000000000..047a3ec44f --- /dev/null +++ b/process/standards/feature_and_process_status.rst @@ -0,0 +1,548 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 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 + # ******************************************************************************* + +Feature and Process Status +########################## + +This page tracks the completion status of all 5 process areas per module. +Update the status column for each module after completing the respective deliverable. + +**Process Status chart legend:** + +.. list-table:: + :header-rows: 1 + :widths: 30 30 40 + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - 🟢 Valid + + 🟡 Draft + + 🔴 Invalid + + ⬜ Other + - 🟢 Ok + + 🔵 Recommendation + + 🟡 Open + + 🟠 Action + + 🔴 Deviation + + ⬜ N/A · ◻ Other + - 🟢 Automated + + 🟡 Waiting for automation + + 🔵 Inspection list + + ⬜ Other + +**Implementation Status Values:** + +- ``✅ Available`` — Work product created, reviewed and approved +- ``🔄 NN%`` — In Progress: artifact exists with at least one valid element, percentage shows valid/total +- ``❌ Open`` — Not yet started, not found, or 0% valid +- ``—`` — Not applicable for this module + +Process Area 1 — Change Management +*********************************** + +A Change Request must be created and approved by the Architecture Community before module development begins. +See :ref:`chm_change_workflows`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'change_management' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'change_management' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'change_management' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'change_management' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(change_management) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(change_management) + +.. rubric:: Implementation status: ✅ Available (7/7 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - CR approved + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + +Process Area 2 — Requirements Engineering +***************************************** + +Feature and component requirements must be written and inspected. +Work products: ``wp__requirements_feat``, ``wp__requirements_comp``, ``wp__requirements_inspect``. +See :ref:`requirements_workflows`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(requirements_engineering) + +.. rubric:: Implementation status: 🔄 29% (6/21 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - Feature Requirements + - 🔄 93% (14/15) + - ✅ Available (50/50) + - ✅ Available (46/46) + - 🔄 84% (26/31) + - ✅ Available (40/40) + - ✅ Available (15/15) + - ✅ Available (13/13) + + * - Component Requirements + - 🔄 93% (124/134) + - 🔄 97% (34/35) + - ❌ Open + - ❌ Open + - 🔄 95% (36/38) + - ❌ Open + - ❌ Open + + * - Req. Inspection + - 🔄 20% (2/10) + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__, + `feature-level `__ + - ❌ Open + - ❌ Open + - ❌ Open + `executor `__, + `orchestrator `__ + - ✅ Available (2/2) + `feature-level `__, + `kvs `__ + - ❌ Open + - ❌ Open + +Process Area 3 — Architecture Design +************************************ + +Feature and component architecture must be designed and inspected. +Work products: ``wp__feature_arch``, ``wp__component_arch``, ``wp__sw_arch_verification``. +See :ref:`arch_workflow`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(architecture_design) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(architecture_design) + +.. rubric:: Implementation status: 🔄 24% (5/21 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - Feature Architecture + - ✅ Available (4/4) + - ✅ Available (3/3) + - ✅ Available (4/4) + - 🔄 66% (4/6) + - ✅ Available (12/12) + - ❌ Open + - ❌ Open + + * - Component Architecture + - 🔄 98% (172/175) + - 🔄 94% (17/18) + - ✅ Available (3/3) + - 🔄 98% (42/43) + - 🔄 25% (1/4) + - ❌ Open + - ❌ Open + + * - Arch. Inspection + - 🔄 80% (8/10) + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__, + `feature-level `__ + - ❌ Open + - ❌ Open + - ❌ Open + `executor `__, + `orchestrator `__ + - ❌ Open + `feature-level `__, + `kvs `__ + - ❌ Open + - ❌ Open + +Process Area 4 — Implementation +******************************** + +Source code and detailed design must be implemented and inspected. +Work products: ``wp__sw_development_plan``, ``wp__sw_implementation``, ``wp__sw_implementation_inspection``. +See :ref:`workflow_implementation`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(implementation) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(implementation) + +.. rubric:: Implementation status: 🔄 50% (14/28 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - SW Development Plan + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + + * - Code + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + + * - Detailed Design + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + + * - Impl. Inspection + - ❌ Open + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__ + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + `kvs `__ + - ❌ Open + - ❌ Open + +Process Area 5 — Verification +***************************** + +All tests must be implemented and a module verification report must be approved. +Work products: ``wp__verification_sw_unit_test``, ``wp__verification_comp_int_test``, ``wp__verification_feat_int_test``, ``wp__verification_module_ver_report``. +See :ref:`verification_workflows`. + +.. rubric:: Process Status + +.. list-table:: + :header-rows: 1 + :class: compact-overview-table + + * - Process req. status + - ISO 26262 std_req status + - Req. verification status + * - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Valid, Draft, Invalid, Other + :colors: LimeGreen, Gold, LightCoral, LightGray + + type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags + type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags + type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other + :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver + :filter-func: needs_filters.std_req_status_for_area(verification) + - + + .. rst-class:: small-pie-cell + + .. needpie:: + :labels: Automated, Waiting for automation, Inspection list, Other + :colors: LimeGreen, Gold, LightBlue, LightGray + :filter-func: needs_filters.area_verification_status(verification) + +.. rubric:: Implementation status: 🔄 36% (10/28 deliverables complete) + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + :class: module-phase-tracker-table + + * - **Deliverable** + - **Baselibs** + - **Communication** + - **Logging** + - **Orchestrator** + - **Persistency** + - **Time** + - **Config Mgmt** + + * - Unit Tests + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + - ✅ Available + + * - Comp. Integration Tests + - ✅ Available + - ✅ Available + - ❌ Open + - ✅ Available + - ❌ Open + - ❌ Open + - ❌ Open + + * - Feature Integration Tests + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + + * - Module Verification Report + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + - ❌ Open + +Done Criteria +************* + +A module is considered **complete** when all of the following are true: + +#. All ``valid`` component requirements have **100% test coverage** (linked via ``FullyVerifies`` or ``PartiallyVerifies``). +#. All CI metadata checks pass (``TestType``, ``DerivationTechnique``, ``Description`` set on every test). +#. Static analysis has no open ``Critical`` or ``High`` findings. +#. The **Module Verification Report** (``wp__verification_module_ver_report``) is generated and approved by a Committer. diff --git a/process/standards/index.rst b/process/standards/index.rst index b4576a7a18..80831b4356 100644 --- a/process/standards/index.rst +++ b/process/standards/index.rst @@ -24,6 +24,7 @@ Standards & Requirements isopas8926/isopas8926 aspice_40/index isosae21434/isosae21434 + feature_and_process_status process_reqs_list/index Standards Coverage statistics diff --git a/process/standards/process_reqs_list/index.rst b/process/standards/process_reqs_list/index.rst index 164918beca..23a8742e55 100644 --- a/process/standards/process_reqs_list/index.rst +++ b/process/standards/process_reqs_list/index.rst @@ -17,27 +17,12 @@ Process Requirements List ######################### -Automation Status via Process Requirement Table -*********************************************** +Feature Status Tracker +********************** -All process requirements should be labelled with the priorization of automation implementation: +For a detailed overview of deliverable status per module and process area, see +:doc:`../feature_and_process_status`. -- A label "manual" means nothing to do, because it must be fulfilled manually (e.g. by filling attributes). It can be added a prio (to denote that this req is a must for v0.5 add "prio_1") -- A label "done_automation" means nothing to do, because it already works. Note that in docs-as-code repository there are tool requirements linking to the process requirements with an "Implemented" attribute. -- A label "prio_*_automation" means the prio 1, 2, ... labelled requirement shall be implemented in this order. Prio 1 is everything we need for the re-audit, prio 2 could be done manually as a fallback, prio 3 is nice to have ... - -Status Summary by Process Area -****************************** - -For a dynamic overview of process requirement counts per process area and status, -see: - -.. toctree:: - :maxdepth: 1 - - process_area_status_summary - process_area_compact_overview - process_status_overview .. needtable:: :style: table diff --git a/process/standards/process_reqs_list/process_area_compact_overview.rst b/process/standards/process_reqs_list/process_area_compact_overview.rst deleted file mode 100644 index bcff21dc3d..0000000000 --- a/process/standards/process_reqs_list/process_area_compact_overview.rst +++ /dev/null @@ -1,155 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -.. _process_area_compact_overview: - -Process Area Status Overview (Compact) -####################################### - -The table below shows process requirement status, ISO 26262 std_req compliance -status, and requirement verification status per process area — one row per area, -without further splitting by work product. - -.. raw:: html - -
-
- Process req. status - Valid - Draft - Invalid - Other -
-
- ISO 26262 std_req status - Ok - Recommendation - Open - Action - Deviation - N/A - Other -
-
- Req. verification status - Automated - Waiting for automation - Inspection list - Other -
-
- -.. list-table:: Process area status overview (compact) - :header-rows: 1 - :widths: 20 27 27 26 - - * - Process area - - Process req. status - - ISO 26262 std_req status - - Req. verification status - * - Requirements Engineering - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.area_verification_status(requirements_engineering) - - * - Architecture Design - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(architecture_design) - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.area_verification_status(architecture_design) - - * - Implementation - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(implementation) - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.area_verification_status(implementation) - - * - Verification - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(verification) - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.area_verification_status(verification) diff --git a/process/standards/process_reqs_list/process_area_overview_table.rst b/process/standards/process_reqs_list/process_area_overview_table.rst deleted file mode 100644 index 1e966a8e26..0000000000 --- a/process/standards/process_reqs_list/process_area_overview_table.rst +++ /dev/null @@ -1,97 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -Process Area Overview -********************* - -The table below shows process requirement status and ISO 26262 compliance per process area. - -.. list-table:: Process area overview - :header-rows: 1 - :widths: 20 40 40 - - * - Process area - - Process req. status - - ISO 26262 std_req status - * - Requirements Engineering - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) - - * - Architecture Design - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(architecture_design) - - * - Implementation - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(implementation) - - * - Verification - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(verification) diff --git a/process/standards/process_reqs_list/process_area_status_summary.rst b/process/standards/process_reqs_list/process_area_status_summary.rst deleted file mode 100644 index 3c3af43f3f..0000000000 --- a/process/standards/process_reqs_list/process_area_status_summary.rst +++ /dev/null @@ -1,1060 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -.. _process_req_area_status_summary: - -Process Requirement Status by Process Area -########################################## - -The table below summarizes all internal ``gd_req`` needs found in each process area. -The charts are calculated dynamically during the Sphinx build via sphinx-needs -filters. - -Color mapping: - -- Green: valid -- Gold: draft -- Red: invalid -- Gray: other - -.. list-table:: Process requirement status overview - :header-rows: 1 - :widths: 20 40 40 - - * - Process area - - Process req. status - - Referenced std_req status - * - Requirements Engineering - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) - - * - Architecture Design - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(architecture_design) - - * - Implementation - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(implementation) - - * - Verification - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags - - - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(verification) - -Referenced std_req Needs in "Other" Category -********************************************* - -The following ``std_req`` needs are referenced via ``complies`` from process -requirements but carry none of the recognized tags (``ok``, ``recommendation``, -``open``, ``action``, ``deviation``, ``n/a``). -The actual tags of each need are shown in brackets. - -.. needlist:: - - RECOGNIZED = {"ok", "recommendation", "open", "action", "deviation", "n/a"} - needs_by_id = {n["id"]: n for n in needs} - - std_req_ids = set() - for need in needs: - if ( - need.get("type") == "gd_req" - and not need.get("is_external", False) - ): - for ref_id in need.get("complies", []): - if ref_id.startswith("std_req__iso26262__"): - std_req_ids.add(ref_id) - - results = [] - for sid in sorted(std_req_ids): - n = needs_by_id.get(sid) - if n and not (RECOGNIZED & set(n.get("tags", []))): - results.append(n) - -Work Products by Process Area -***************************** - -The table below lists the official work products defined per process area. - -.. list-table:: Work product overview by process area - :header-rows: 1 - :widths: 28 72 - - * - Process area - - Work products - * - Requirements Engineering - - - - - :need:`wp__requirements_stkh` - - :need:`wp__requirements_sw_platform_aou` - - :need:`wp__requirements_feat` - - :need:`wp__requirements_feat_aou` - - :need:`wp__requirements_comp` - - :need:`wp__requirements_comp_aou` - - :need:`wp__requirements_proc_tool` - - :need:`wp__requirements_inspect` - * - Architecture Design - - - - - :need:`wp__platform_arch` - - :need:`wp__feature_arch` - - :need:`wp__component_arch` - - :need:`wp__sw_arch_verification` - * - Implementation - - - - - :need:`wp__sw_development_plan` - - :need:`wp__sw_implementation` - - :need:`wp__sw_implementation_inspection` - * - Verification - - - - - :need:`wp__verification_plan` - - :need:`wp__verification_platform_int_test` - - :need:`wp__verification_platform_ver_report` - - :need:`wp__verification_feat_int_test` - - :need:`wp__verification_module_ver_report` - - :need:`wp__verification_comp_int_test` - - :need:`wp__verification_sw_unit_test` - -Relevant Requirements by Work Product -************************************* - -The table below derives relevant process requirements for each work product. -The derivation is based on the relation process requirement ``satisfies`` -workflow and workflow ``output`` work product. - -.. list-table:: Relevant process requirements by work product - :header-rows: 1 - :widths: 15 22 32 31 - - * - Process area - - Work product - - Relevant requirements - - Status distribution - * - Requirements Engineering - - :need:`wp__requirements_stkh` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_stkh" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_stkh_req' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_stkh_req' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_stkh_req' in satisfies - * - - - :need:`wp__requirements_sw_platform_aou` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_sw_platform_aou" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_stkh_req' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_stkh_req' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_stkh_req' in satisfies - * - - - :need:`wp__requirements_feat` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_feat" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_feat_req' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_feat_req' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_feat_req' in satisfies - * - - - :need:`wp__requirements_feat_aou` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_feat_aou" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_feat_aou' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_feat_aou' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_feat_aou' in satisfies - * - - - :need:`wp__requirements_comp` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_comp" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_comp_req' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_comp_req' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_comp_req' in satisfies - * - - - :need:`wp__requirements_comp_aou` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_comp_aou" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_comp_aou' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_comp_aou' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_comp_aou' in satisfies - * - - - :need:`wp__requirements_proc_tool` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_proc_tool" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__req_proc_tool' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__req_proc_tool' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__req_proc_tool' in satisfies - * - - - :need:`wp__requirements_inspect` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "requirements_engineering" in workflow["tags"] and "wp__requirements_inspect" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__monitor_verify_requirements' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__monitor_verify_requirements' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__monitor_verify_requirements' in satisfies - * - Architecture Design - - :need:`wp__platform_arch` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__platform_arch" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__cr_mt_platarch' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__cr_mt_platarch' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__cr_mt_platarch' in satisfies - * - - - :need:`wp__feature_arch` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__feature_arch" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__cr_mt_featarch' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__cr_mt_featarch' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__cr_mt_featarch' in satisfies - * - - - :need:`wp__component_arch` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__component_arch" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__cr_mt_comparch' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__cr_mt_comparch' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__cr_mt_comparch' in satisfies - * - - - :need:`wp__sw_arch_verification` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "architecture_design" in workflow["tags"] and "wp__sw_arch_verification" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__mr_vy_arch' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__mr_vy_arch' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__mr_vy_arch' in satisfies - * - Implementation - - :need:`wp__sw_development_plan` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "implementation" in workflow["tags"] and "wp__sw_development_plan" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__sw_development_plan' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__sw_development_plan' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__sw_development_plan' in satisfies - * - - - :need:`wp__sw_implementation` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "implementation" in workflow["tags"] and "wp__sw_implementation" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__sw_detailed_design' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__sw_detailed_design' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__sw_detailed_design' in satisfies - * - - - :need:`wp__sw_implementation_inspection` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "implementation" in workflow["tags"] and "wp__sw_implementation_inspection" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__sw_verify_implementation' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__sw_verify_implementation' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__sw_verify_implementation' in satisfies - * - Verification - - :need:`wp__verification_comp_int_test` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_comp_int_test" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_comp_int_test' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_comp_int_test' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_comp_int_test' in satisfies - * - - - :need:`wp__verification_feat_int_test` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_feat_int_test" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_feat_int_test' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_feat_int_test' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_feat_int_test' in satisfies - * - - - :need:`wp__verification_platform_int_test` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_platform_int_test" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_platform_int_test' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_platform_int_test' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_platform_int_test' in satisfies - * - - - :need:`wp__verification_plan` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_plan" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) - type == 'gd_req' and is_external == False and status == 'draft' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) - type == 'gd_req' and is_external == False and status == 'invalid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies) - * - - - :need:`wp__verification_module_ver_report` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_module_ver_report" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_mod_ver_report' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_mod_ver_report' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_mod_ver_report' in satisfies - * - - - :need:`wp__verification_platform_ver_report` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_platform_ver_report" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_platform_ver_report' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_platform_ver_report' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_platform_ver_report' in satisfies - * - - - :need:`wp__verification_sw_unit_test` - - - - .. needlist:: - - results = [] - requirement_ids = set() - - for requirement in needs.filter_types(["gd_req"]): - if requirement["is_external"] is False: - for workflow_id in requirement["satisfies"]: - workflow = needs.get_need(workflow_id) - if workflow and workflow["is_external"] is False and "verification" in workflow["tags"] and "wp__verification_sw_unit_test" in workflow["output"]: - if requirement["id"] not in requirement_ids: - requirement_ids.add(requirement["id"]) - results.append(requirement) - break - - results = sorted(results, key=lambda requirement: requirement["title"]) - - - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies - type == 'gd_req' and is_external == False and status == 'draft' and 'wf__verification_unit_test' in satisfies - type == 'gd_req' and is_external == False and status == 'invalid' and 'wf__verification_unit_test' in satisfies - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'wf__verification_unit_test' in satisfies - -Work Product Requirement Completion Status -****************************************** - -The table below shows for each work product the completion status of its -relevant process requirements. **Valid** (green) means all requirements are -valid; **Draft** (yellow) means at least one requirement is not yet valid. -The number shows valid / total requirements. - -.. list-table:: Work product requirement completion status - :header-rows: 1 - :widths: 15 35 50 - - * - Process area - - Work product - - Status - * - Requirements Engineering - - :need:`wp__requirements_stkh` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - * - - - :need:`wp__requirements_sw_platform_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - * - - - :need:`wp__requirements_feat` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` - * - - - :need:`wp__requirements_feat_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` - * - - - :need:`wp__requirements_comp` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` - * - - - :need:`wp__requirements_comp_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` - * - - - :need:`wp__requirements_proc_tool` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` - * - - - :need:`wp__requirements_inspect` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` - * - Architecture Design - - :need:`wp__platform_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` - * - - - :need:`wp__feature_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` - * - - - :need:`wp__component_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` - * - - - :need:`wp__sw_arch_verification` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` - * - Implementation - - :need:`wp__sw_development_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` - * - - - :need:`wp__sw_implementation` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` - * - - - :need:`wp__sw_implementation_inspection` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` - * - Verification - - :need:`wp__verification_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` - * - - - :need:`wp__verification_platform_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` - * - - - :need:`wp__verification_platform_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` - * - - - :need:`wp__verification_feat_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` - * - - - :need:`wp__verification_module_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` - * - - - :need:`wp__verification_comp_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` - * - - - :need:`wp__verification_sw_unit_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` - -.. raw:: html - - - diff --git a/process/standards/process_reqs_list/process_status_overview.rst b/process/standards/process_reqs_list/process_status_overview.rst deleted file mode 100644 index 8456fe1ea2..0000000000 --- a/process/standards/process_reqs_list/process_status_overview.rst +++ /dev/null @@ -1,1359 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -.. include:: tooling_definitions.rst - -.. _process_status_overview: - -Process Status Overview -####################### - -Combined Process Area and Work Product Status Overview -****************************************************** - -The table below combines process requirement status, ISO 26262 std_req -compliance status, work product completion status, and tooling in a single overview. -For each process area the pie charts appear on the first work product row; -subsequent rows carry only the work product and its completion badge. - -.. raw:: html - -
-
- Process req. status - Valid - Draft - Invalid - Other -
-
- ISO 26262 std_req status - Ok - Recommendation - Open - Action - Deviation - N/A - Other -
-
- Req. verification status - Automated - Waiting for automation - Inspection list - Other -
-
- -.. list-table:: Combined process area and work product status overview - :header-rows: 1 - :widths: 10 13 13 20 7 15 11 11 - :class: combined-status-table - - * - Process area - - Process req. status - - ISO 26262 std_req status - - Work product - - WP status - - Req. verification status - - Tooling - - Tooling Status - * - Requirements Engineering - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'requirements_engineering' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'requirements_engineering' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(requirements_engineering) - - - :need:`wp__requirements_stkh` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) - - |tooling_name_wp__requirements_stkh| - - |tooling_status_wp__requirements_stkh| - * - - - - - - - :need:`wp__requirements_sw_platform_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) - - |tooling_name_wp__requirements_sw_platform_aou| - - |tooling_status_wp__requirements_sw_platform_aou| - * - - - - - - - :need:`wp__requirements_feat` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_feat_req) - - |tooling_name_wp__requirements_feat| - - |tooling_status_wp__requirements_feat| - * - - - - - - - :need:`wp__requirements_feat_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_feat_aou) - - |tooling_name_wp__requirements_feat_aou| - - |tooling_status_wp__requirements_feat_aou| - * - - - - - - - :need:`wp__requirements_comp` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_comp_req) - - |tooling_name_wp__requirements_comp| - - |tooling_status_wp__requirements_comp| - * - - - - - - - :need:`wp__requirements_comp_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_comp_aou) - - |tooling_name_wp__requirements_comp_aou| - - |tooling_status_wp__requirements_comp_aou| - * - - - - - - - :need:`wp__requirements_proc_tool` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_proc_tool) - - |tooling_name_wp__requirements_proc_tool| - - |tooling_status_wp__requirements_proc_tool| - * - - - - - - - :need:`wp__requirements_inspect` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__monitor_verify_requirements) - - |tooling_name_wp__requirements_inspect| - - |tooling_status_wp__requirements_inspect| - * - Architecture Design - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'architecture_design' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'architecture_design' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(architecture_design) - - - :need:`wp__platform_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_platarch) - - |tooling_name_wp__platform_arch| - - |tooling_status_wp__platform_arch| - * - - - - - - - :need:`wp__feature_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_featarch) - - |tooling_name_wp__feature_arch| - - |tooling_status_wp__feature_arch| - * - - - - - - - :need:`wp__component_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_comparch) - - |tooling_name_wp__component_arch| - - |tooling_status_wp__component_arch| - * - - - - - - - :need:`wp__sw_arch_verification` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__mr_vy_arch) - - |tooling_name_wp__sw_arch_verification| - - |tooling_status_wp__sw_arch_verification| - * - Implementation - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'implementation' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'implementation' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'implementation' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(implementation) - - - :need:`wp__sw_development_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_development_plan) - - |tooling_name_wp__sw_development_plan| - - |tooling_status_wp__sw_development_plan| - * - - - - - - - :need:`wp__sw_implementation` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_detailed_design) - - |tooling_name_wp__sw_implementation| - - |tooling_status_wp__sw_implementation| - * - - - - - - - :need:`wp__sw_implementation_inspection` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_verify_implementation) - - |tooling_name_wp__sw_implementation_inspection| - - |tooling_status_wp__sw_implementation_inspection| - * - Verification - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Valid, Draft, Invalid, Other - :colors: LimeGreen, Gold, LightCoral, LightGray - - type == 'gd_req' and is_external == False and status == 'valid' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'draft' and 'verification' in tags - type == 'gd_req' and is_external == False and status == 'invalid' and 'verification' in tags - type == 'gd_req' and is_external == False and status not in ['valid', 'draft', 'invalid'] and 'verification' in tags - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Ok, Recommendation, Open, Action, Deviation, N/A, Other - :colors: LimeGreen, LightBlue, Gold, Orange, LightCoral, LightGray, Silver - :filter-func: needs_filters.std_req_status_for_area(verification) - - - :need:`wp__verification_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_plan|wf__verification_plan_maintain) - - |tooling_name_wp__verification_plan| - - |tooling_status_wp__verification_plan| - * - - - - - - - :need:`wp__verification_platform_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_platform_int_test) - - |tooling_name_wp__verification_platform_int_test| - - |tooling_status_wp__verification_platform_int_test| - * - - - - - - - :need:`wp__verification_platform_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_platform_ver_report) - - |tooling_name_wp__verification_platform_ver_report| - - |tooling_status_wp__verification_platform_ver_report| - * - - - - - - - :need:`wp__verification_feat_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_feat_int_test) - - |tooling_name_wp__verification_feat_int_test| - - |tooling_status_wp__verification_feat_int_test| - * - - - - - - - :need:`wp__verification_module_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_mod_ver_report) - - |tooling_name_wp__verification_module_ver_report| - - |tooling_status_wp__verification_module_ver_report| - * - - - - - - - :need:`wp__verification_comp_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_comp_int_test) - - |tooling_name_wp__verification_comp_int_test| - - |tooling_status_wp__verification_comp_int_test| - * - - - - - - - :need:`wp__verification_sw_unit_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_unit_test) - - |tooling_name_wp__verification_sw_unit_test| - - |tooling_status_wp__verification_sw_unit_test| - -.. raw:: html - - - -Module Status by Work Product -***************************** - -The following tables provide module-specific placeholders for manual status tracking. -Rows are grouped by process area and list the related work products. - -.. raw:: html - -
-
- Done automation status - done_automation - rest -
-
- -Baselibs -======== - -.. list-table:: Baselibs module status - :header-rows: 1 - :widths: 50 25 25 - :class: module-status-table - - * - `Baselibs `_ - - Functional complete - - Done automation / rest - * - **Requirements Engineering** - - - - - * - :need:`wp__requirements_stkh` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) - * - :need:`wp__requirements_sw_platform_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) - * - :need:`wp__requirements_feat` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_req) - * - :need:`wp__requirements_feat_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_aou) - * - :need:`wp__requirements_comp` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_req) - * - :need:`wp__requirements_comp_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_aou) - * - :need:`wp__requirements_proc_tool` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_proc_tool) - * - :need:`wp__requirements_inspect` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__monitor_verify_requirements) - * - **Architecture Design** - - - - - * - :need:`wp__platform_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_platarch) - * - :need:`wp__feature_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_featarch) - * - :need:`wp__component_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_comparch) - * - :need:`wp__sw_arch_verification` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__mr_vy_arch) - * - **Implementation** - - - - - * - :need:`wp__sw_development_plan` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_development_plan) - * - :need:`wp__sw_implementation` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_detailed_design) - * - :need:`wp__sw_implementation_inspection` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_verify_implementation) - * - **Verification** - - - - - * - :need:`wp__verification_plan` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_plan|wf__verification_plan_maintain) - * - :need:`wp__verification_platform_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_int_test) - * - :need:`wp__verification_platform_ver_report` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_ver_report) - * - :need:`wp__verification_feat_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_feat_int_test) - * - :need:`wp__verification_module_ver_report` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_mod_ver_report) - * - :need:`wp__verification_comp_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_comp_int_test) - * - :need:`wp__verification_sw_unit_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_unit_test) - -Communication -============= - -.. list-table:: Communication module status - :header-rows: 1 - :widths: 50 25 25 - :class: module-status-table - - * - `Communication `_ - - Functional complete - - Done automation / rest - * - **Requirements Engineering** - - - - - * - :need:`wp__requirements_stkh` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) - * - :need:`wp__requirements_sw_platform_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) - * - :need:`wp__requirements_feat` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_req) - * - :need:`wp__requirements_feat_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_aou) - * - :need:`wp__requirements_comp` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_req) - * - :need:`wp__requirements_comp_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_aou) - * - :need:`wp__requirements_proc_tool` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_proc_tool) - * - :need:`wp__requirements_inspect` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__monitor_verify_requirements) - * - **Architecture Design** - - - - - * - :need:`wp__platform_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_platarch) - * - :need:`wp__feature_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_featarch) - * - :need:`wp__component_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_comparch) - * - :need:`wp__sw_arch_verification` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__mr_vy_arch) - * - **Implementation** - - - - - * - :need:`wp__sw_development_plan` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_development_plan) - * - :need:`wp__sw_implementation` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_detailed_design) - * - :need:`wp__sw_implementation_inspection` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_verify_implementation) - * - **Verification** - - - - - * - :need:`wp__verification_plan` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_plan|wf__verification_plan_maintain) - * - :need:`wp__verification_platform_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_int_test) - * - :need:`wp__verification_platform_ver_report` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_ver_report) - * - :need:`wp__verification_feat_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_feat_int_test) - * - :need:`wp__verification_module_ver_report` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_mod_ver_report) - * - :need:`wp__verification_comp_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_comp_int_test) - * - :need:`wp__verification_sw_unit_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_unit_test) - -Logging -======= - -.. list-table:: Logging module status - :header-rows: 1 - :widths: 50 25 25 - :class: module-status-table - - * - `Logging `_ - - Functional complete - - Done automation / rest - * - **Requirements Engineering** - - - - - * - :need:`wp__requirements_stkh` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) - * - :need:`wp__requirements_sw_platform_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_stkh_req) - * - :need:`wp__requirements_feat` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_req) - * - :need:`wp__requirements_feat_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_feat_aou) - * - :need:`wp__requirements_comp` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_req) - * - :need:`wp__requirements_comp_aou` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_comp_aou) - * - :need:`wp__requirements_proc_tool` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__req_proc_tool) - * - :need:`wp__requirements_inspect` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__monitor_verify_requirements) - * - **Architecture Design** - - - - - * - :need:`wp__platform_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_platarch) - * - :need:`wp__feature_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_featarch) - * - :need:`wp__component_arch` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__cr_mt_comparch) - * - :need:`wp__sw_arch_verification` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__mr_vy_arch) - * - **Implementation** - - - - - * - :need:`wp__sw_development_plan` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_development_plan) - * - :need:`wp__sw_implementation` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_detailed_design) - * - :need:`wp__sw_implementation_inspection` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__sw_verify_implementation) - * - **Verification** - - - - - * - :need:`wp__verification_plan` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_plan|wf__verification_plan_maintain) - * - :need:`wp__verification_platform_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_int_test) - * - :need:`wp__verification_platform_ver_report` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_platform_ver_report) - * - :need:`wp__verification_feat_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_feat_int_test) - * - :need:`wp__verification_module_ver_report` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_mod_ver_report) - * - :need:`wp__verification_comp_int_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_comp_int_test) - * - :need:`wp__verification_sw_unit_test` - - - - - - .. rst-class:: small-pie-cell - - .. needpie:: - :labels: Done, Rest - :colors: LimeGreen, LightGray - :filter-func: needs_filters.wp_done_automation_status(wf__verification_unit_test) diff --git a/process/standards/process_reqs_list/tooling_definitions.rst b/process/standards/process_reqs_list/tooling_definitions.rst deleted file mode 100644 index 644779c69c..0000000000 --- a/process/standards/process_reqs_list/tooling_definitions.rst +++ /dev/null @@ -1,90 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -.. Tooling definitions per work product. -.. Edit this file to fill in the tooling columns in the Process Status Overview table. -.. -.. Two substitutions per work product: -.. -.. Inline markup only (no block-level directives, no bullet lists). - -.. Requirements Engineering -.. |tooling_name_wp__requirements_stkh| replace:: sphinx-needs -.. |tooling_status_wp__requirements_stkh| replace:: available - -.. |tooling_name_wp__requirements_sw_platform_aou| replace:: sphinx-needs -.. |tooling_status_wp__requirements_sw_platform_aou| replace:: available - -.. |tooling_name_wp__requirements_feat| replace:: sphinx-needs -.. |tooling_status_wp__requirements_feat| replace:: available - -.. |tooling_name_wp__requirements_feat_aou| replace:: sphinx-needs -.. |tooling_status_wp__requirements_feat_aou| replace:: available - -.. |tooling_name_wp__requirements_comp| replace:: sphinx-needs -.. |tooling_status_wp__requirements_comp| replace:: available - -.. |tooling_name_wp__requirements_comp_aou| replace:: sphinx-needs -.. |tooling_status_wp__requirements_comp_aou| replace:: available - -.. |tooling_name_wp__requirements_proc_tool| replace:: sphinx-needs -.. |tooling_status_wp__requirements_proc_tool| replace:: available - -.. |tooling_name_wp__requirements_inspect| replace:: sphinx-needs -.. |tooling_status_wp__requirements_inspect| replace:: available - -.. Architecture Design -.. |tooling_name_wp__platform_arch| replace:: sphinx-needs, PlantUML -.. |tooling_status_wp__platform_arch| replace:: available - -.. |tooling_name_wp__feature_arch| replace:: sphinx-needs, PlantUML -.. |tooling_status_wp__feature_arch| replace:: available - -.. |tooling_name_wp__component_arch| replace:: sphinx-needs, PlantUML -.. |tooling_status_wp__component_arch| replace:: available - -.. |tooling_name_wp__sw_arch_verification| replace:: sphinx-needs -.. |tooling_status_wp__sw_arch_verification| replace:: not available - -.. Implementation -.. |tooling_name_wp__sw_development_plan| replace:: sphinx-needs -.. |tooling_status_wp__sw_development_plan| replace:: not available - -.. |tooling_name_wp__sw_implementation| replace:: C++/RUST toolchain -.. |tooling_status_wp__sw_implementation| replace:: available - -.. |tooling_name_wp__sw_implementation_inspection| replace:: sphinx-needs -.. |tooling_status_wp__sw_implementation_inspection| replace:: available - -.. Verification -.. |tooling_name_wp__verification_plan| replace:: sphinx-needs -.. |tooling_status_wp__verification_plan| replace:: not available - -.. |tooling_name_wp__verification_platform_int_test| replace:: ITF -.. |tooling_status_wp__verification_platform_int_test| replace:: available - -.. |tooling_name_wp__verification_platform_ver_report| replace:: sphinx-needs -.. |tooling_status_wp__verification_platform_ver_report| replace:: not available - -.. |tooling_name_wp__verification_feat_int_test| replace:: ITF -.. |tooling_status_wp__verification_feat_int_test| replace:: available - -.. |tooling_name_wp__verification_module_ver_report| replace:: sphinx-needs -.. |tooling_status_wp__verification_module_ver_report| replace:: not available - -.. |tooling_name_wp__verification_comp_int_test| replace:: ITF -.. |tooling_status_wp__verification_comp_int_test| replace:: available - -.. |tooling_name_wp__verification_sw_unit_test| replace:: gtest -.. |tooling_status_wp__verification_sw_unit_test| replace:: available diff --git a/process/standards/process_reqs_list/tooling_table.rst b/process/standards/process_reqs_list/tooling_table.rst deleted file mode 100644 index c7b9e4309d..0000000000 --- a/process/standards/process_reqs_list/tooling_table.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -Tooling Overview -**************** - -Edit this table to define the tooling used per work product and its current status. - -.. list-table:: Tooling overview per work product - :header-rows: 1 - :widths: 20 25 30 25 - - * - Process area - - Work product - - Tooling - - Tooling Status - * - Requirements Engineering - - :need:`wp__requirements_stkh` - - sphinx-needs - - available - * - - - :need:`wp__requirements_sw_platform_aou` - - sphinx-needs - - available - * - - - :need:`wp__requirements_feat` - - sphinx-needs - - available - * - - - :need:`wp__requirements_feat_aou` - - sphinx-needs - - available - * - - - :need:`wp__requirements_comp` - - sphinx-needs - - available - * - - - :need:`wp__requirements_comp_aou` - - sphinx-needs - - available - * - - - :need:`wp__requirements_proc_tool` - - sphinx-needs - - available - * - - - :need:`wp__requirements_inspect` - - sphinx-needs - - available - * - Architecture Design - - :need:`wp__platform_arch` - - sphinx-needs, PlantUML - - available - * - - - :need:`wp__feature_arch` - - sphinx-needs, PlantUML - - available - * - - - :need:`wp__component_arch` - - sphinx-needs, PlantUML - - available - * - - - :need:`wp__sw_arch_verification` - - sphinx-needs, PlantUML - - available - * - Implementation - - :need:`wp__sw_development_plan` - - n/a - - n/a - * - - - :need:`wp__sw_implementation` - - C++, RUST toolchains - - available - * - - - :need:`wp__sw_implementation_inspection` - - sphinx-needs - - available - * - Verification - - :need:`wp__verification_plan` - - n/a - - n/a - * - - - :need:`wp__verification_platform_int_test` - - ITF - - available - * - - - :need:`wp__verification_platform_ver_report` - - sphinx-needs - - not available - * - - - :need:`wp__verification_feat_int_test` - - ITF - - available - * - - - :need:`wp__verification_module_ver_report` - - sphinx-needs - - not available - * - - - :need:`wp__verification_comp_int_test` - - ITF - - available - * - - - :need:`wp__verification_sw_unit_test` - - gtest - - available diff --git a/process/standards/process_reqs_list/wp_status_table.rst b/process/standards/process_reqs_list/wp_status_table.rst deleted file mode 100644 index d6b0643f32..0000000000 --- a/process/standards/process_reqs_list/wp_status_table.rst +++ /dev/null @@ -1,313 +0,0 @@ -.. - # ******************************************************************************* - # Copyright (c) 2025 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 - # ******************************************************************************* - -Work Product Process Overview -***************************** - -The table below shows work product completion status and requirement verification status. - -.. list-table:: Work product process overview - :header-rows: 1 - :widths: 20 25 15 40 - - * - Process area - - Work product - - WP status - - Req. verification status - * - Requirements Engineering - - :need:`wp__requirements_stkh` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) - * - - - :need:`wp__requirements_sw_platform_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_stkh_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_stkh_req' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_stkh_req) - * - - - :need:`wp__requirements_feat` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_req' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_feat_req) - * - - - :need:`wp__requirements_feat_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_feat_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_feat_aou' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_feat_aou) - * - - - :need:`wp__requirements_comp` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_req' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_req' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_comp_req) - * - - - :need:`wp__requirements_comp_aou` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_comp_aou' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_comp_aou' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_comp_aou) - * - - - :need:`wp__requirements_proc_tool` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__req_proc_tool' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__req_proc_tool' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__req_proc_tool) - * - - - :need:`wp__requirements_inspect` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__monitor_verify_requirements' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__monitor_verify_requirements' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__monitor_verify_requirements) - * - Architecture Design - - :need:`wp__platform_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_platarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_platarch' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_platarch) - * - - - :need:`wp__feature_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_featarch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_featarch' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_featarch) - * - - - :need:`wp__component_arch` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__cr_mt_comparch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__cr_mt_comparch' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__cr_mt_comparch) - * - - - :need:`wp__sw_arch_verification` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__mr_vy_arch' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__mr_vy_arch' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__mr_vy_arch) - * - Implementation - - :need:`wp__sw_development_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_development_plan' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_development_plan' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_development_plan) - * - - - :need:`wp__sw_implementation` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_detailed_design' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_detailed_design' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_detailed_design) - * - - - :need:`wp__sw_implementation_inspection` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__sw_verify_implementation' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__sw_verify_implementation' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__sw_verify_implementation) - * - Verification - - :need:`wp__verification_plan` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` / :need_count:`type == 'gd_req' and is_external == False and ('wf__verification_plan' in satisfies or 'wf__verification_plan_maintain' in satisfies)` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_plan|wf__verification_plan_maintain) - * - - - :need:`wp__verification_platform_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_int_test' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_platform_int_test) - * - - - :need:`wp__verification_platform_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_platform_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_platform_ver_report' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_platform_ver_report) - * - - - :need:`wp__verification_feat_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_feat_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_feat_int_test' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_feat_int_test) - * - - - :need:`wp__verification_module_ver_report` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_mod_ver_report' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_mod_ver_report' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_mod_ver_report) - * - - - :need:`wp__verification_comp_int_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_comp_int_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_comp_int_test' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_comp_int_test) - * - - - :need:`wp__verification_sw_unit_test` - - - - .. rst-class:: wp-status-cell - - :need_count:`type == 'gd_req' and is_external == False and status == 'valid' and 'wf__verification_unit_test' in satisfies` / :need_count:`type == 'gd_req' and is_external == False and 'wf__verification_unit_test' in satisfies` - - - - .. needpie:: - :labels: Automated, Waiting for automation, Inspection list, Other - :colors: LimeGreen, Gold, LightBlue, LightGray - :filter-func: needs_filters.wp_tag_status(wf__verification_unit_test) From 70357830c42ad538ea46bacb2979c4653864e04f Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 10:18:22 +0000 Subject: [PATCH 06/19] feat: add Lifecycle and Security/Crypto columns to feature_and_process_status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add two new module columns to all 5 Process Area tracker tables: - Lifecycle (eclipse-score/lifecycle, #909): PA3 feat_arc 🔄94%, comp_arc 🔄94%, code ✅, unit+comp_int tests ✅, detailed design 🔄50% - Security/Crypto (eclipse-score/inc_security_crypto, #905): feat_req ✅(42/42), all other deliverables ❌ Open Updated implementation status lines: - PA1: 7/7 → 9/9 ✅ - PA2: 29%→26% (7/27) - PA3: 24%→19% (5/27) - PA4: 50%→47% (17/36) - PA5: 36%→33% (12/36) Updated SKILL.md: module table, known CRs, description, RST snapshot --- .github/skills/module-phase-tracker/SKILL.md | 56 ++++++++++++++++--- .../standards/feature_and_process_status.rst | 50 +++++++++++++++-- 2 files changed, 94 insertions(+), 12 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 0d2391b15b..236c260d37 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -1,6 +1,6 @@ --- name: module-phase-tracker -description: "Update the Feature and Process Status table in feature_and_process_status.rst. Use when: checking module status, updating feature status tracker, refreshing work product status, deriving completion status from eclipse-score GitHub repos for Baselibs, Communication, Logging, Orchestrator, Persistency, Time, Config Management." +description: "Update the Feature and Process Status table in feature_and_process_status.rst. Use when: checking module status, updating feature status tracker, refreshing work product status, deriving completion status from eclipse-score GitHub repos for Baselibs, Communication, Logging, Orchestrator, Persistency, Time, Config Management, Lifecycle, Security/Crypto." argument-hint: "optional: module name or 'all'" --- @@ -116,6 +116,8 @@ The pie chart diagrams are computed live by sphinx-needs at build time — they | Persistency | `eclipse-score/persistency` — has `docs/persistency/kvs/` with comp_req/comp_arc ✅ | `docs/features/persistency` | | Time | `eclipse-score/inc_time` (no sphinx-needs RST so far) | `docs/features/time/docs` | | Config Management | `eclipse-score/config_management` (no sphinx-needs RST so far) | `docs/features/configuration` | +| Lifecycle | `eclipse-score/lifecycle` — has `docs/module/health_monitor/` (comp_arc_sta/dyn valid=15/16), `detailed_design/` (dd_sta/dyn valid=1/2), `tests/integration/` | `docs/modules/lifecycle/index.rst`, `docs/features/lifecycle/**` | +| Security/Crypto | `eclipse-score/inc_security_crypto` — `src/` has no implementation yet; `docs/index.rst` with stkh_req | `docs/features/security_crypto/**` | **How to search all repos for a module:** ```python @@ -147,7 +149,7 @@ for repo in ["eclipse-score/score", "eclipse-score/"]: - **✅ Available**: A closed GitHub Issue with "Feature Request" or "Contribution Request" for the module exists in `eclipse-score/score` - **❌ Open**: No such issue found -Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestrator (#273), Persistency (#95), Time (#910), Config Management (#754, #1764) +Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestrator (#273), Persistency (#95), Time (#910), Config Management (#754, #1764), Lifecycle (#909), Security/Crypto (#905) ### Process Area 2 — Feature Requirements - **✅ Available**: 100% of individual needs elements (e.g. `.. feat_req::`) inside the requirements doc have `:status: valid` @@ -398,7 +400,7 @@ See :ref:`chm_change_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(change_management) -.. rubric:: Implementation status: ✅ Available (7/7 deliverables complete) +.. rubric:: Implementation status: ✅ Available (9/9 deliverables complete) .. list-table:: :header-rows: 1 @@ -413,6 +415,8 @@ See :ref:`chm_change_workflows`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - CR approved - ✅ Available @@ -422,6 +426,8 @@ See :ref:`chm_change_workflows`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ✅ Available Process Area 2 — Requirements Engineering ***************************************** @@ -468,7 +474,7 @@ See :ref:`requirements_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(requirements_engineering) -.. rubric:: Implementation status: 🔄 29% (6/21 deliverables complete) +.. rubric:: Implementation status: 🔄 26% (7/27 deliverables complete) .. list-table:: :header-rows: 1 @@ -483,6 +489,8 @@ See :ref:`requirements_workflows`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - Feature Requirements - 🔄 93% (14/15) @@ -492,6 +500,8 @@ See :ref:`requirements_workflows`. - ✅ Available (40/40) - ✅ Available (15/15) - ✅ Available (13/13) + - ❌ Open + - ✅ Available (42/42) * - Component Requirements - 🔄 93% (124/134) @@ -501,6 +511,8 @@ See :ref:`requirements_workflows`. - 🔄 95% (36/38) - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open * - Req. Inspection - 🔄 20% (2/10) @@ -524,6 +536,8 @@ See :ref:`requirements_workflows`. `kvs `__ - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Process Area 3 — Architecture Design ************************************ @@ -570,7 +584,7 @@ See :ref:`arch_workflow`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(architecture_design) -.. rubric:: Implementation status: 🔄 24% (5/21 deliverables complete) +.. rubric:: Implementation status: 🔄 19% (5/27 deliverables complete) .. list-table:: :header-rows: 1 @@ -585,6 +599,8 @@ See :ref:`arch_workflow`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - Feature Architecture - ✅ Available (4/4) @@ -594,6 +610,8 @@ See :ref:`arch_workflow`. - ✅ Available (12/12) - ❌ Open - ❌ Open + - 🔄 94% (30/32) + - ❌ Open * - Component Architecture - 🔄 98% (172/175) @@ -603,6 +621,8 @@ See :ref:`arch_workflow`. - 🔄 25% (1/4) - ❌ Open - ❌ Open + - 🔄 94% (15/16) + - ❌ Open * - Arch. Inspection - 🔄 80% (8/10) @@ -626,6 +646,8 @@ See :ref:`arch_workflow`. `kvs `__ - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Process Area 4 — Implementation ******************************** @@ -672,7 +694,7 @@ See :ref:`workflow_implementation`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(implementation) -.. rubric:: Implementation status: 🔄 50% (14/28 deliverables complete) +.. rubric:: Implementation status: 🔄 47% (17/36 deliverables complete) .. list-table:: :header-rows: 1 @@ -687,6 +709,8 @@ See :ref:`workflow_implementation`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - SW Development Plan - ✅ Available @@ -696,6 +720,8 @@ See :ref:`workflow_implementation`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ✅ Available * - Code - ✅ Available @@ -705,6 +731,8 @@ See :ref:`workflow_implementation`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ❌ Open * - Detailed Design - ❌ Open @@ -714,6 +742,8 @@ See :ref:`workflow_implementation`. - ❌ Open - ❌ Open - ❌ Open + - 🔄 50% (1/2) + - ❌ Open * - Impl. Inspection - ❌ Open @@ -733,6 +763,8 @@ See :ref:`workflow_implementation`. `kvs `__ - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Process Area 5 — Verification ***************************** @@ -779,7 +811,7 @@ See :ref:`verification_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(verification) -.. rubric:: Implementation status: 🔄 36% (10/28 deliverables complete) +.. rubric:: Implementation status: 🔄 33% (12/36 deliverables complete) .. list-table:: :header-rows: 1 @@ -794,6 +826,8 @@ See :ref:`verification_workflows`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - Unit Tests - ✅ Available @@ -803,6 +837,8 @@ See :ref:`verification_workflows`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ❌ Open * - Comp. Integration Tests - ✅ Available @@ -812,6 +848,8 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ✅ Available + - ❌ Open * - Feature Integration Tests - ❌ Open @@ -821,6 +859,8 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open * - Module Verification Report - ❌ Open @@ -830,6 +870,8 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Done Criteria ************* diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 047a3ec44f..02f0751b19 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -104,7 +104,7 @@ See :ref:`chm_change_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(change_management) -.. rubric:: Implementation status: ✅ Available (7/7 deliverables complete) +.. rubric:: Implementation status: ✅ Available (9/9 deliverables complete) .. list-table:: :header-rows: 1 @@ -119,6 +119,8 @@ See :ref:`chm_change_workflows`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - CR approved - ✅ Available @@ -128,6 +130,8 @@ See :ref:`chm_change_workflows`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ✅ Available Process Area 2 — Requirements Engineering ***************************************** @@ -174,7 +178,7 @@ See :ref:`requirements_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(requirements_engineering) -.. rubric:: Implementation status: 🔄 29% (6/21 deliverables complete) +.. rubric:: Implementation status: 🔄 26% (7/27 deliverables complete) .. list-table:: :header-rows: 1 @@ -189,6 +193,8 @@ See :ref:`requirements_workflows`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - Feature Requirements - 🔄 93% (14/15) @@ -198,6 +204,8 @@ See :ref:`requirements_workflows`. - ✅ Available (40/40) - ✅ Available (15/15) - ✅ Available (13/13) + - ❌ Open + - ✅ Available (42/42) * - Component Requirements - 🔄 93% (124/134) @@ -207,6 +215,8 @@ See :ref:`requirements_workflows`. - 🔄 95% (36/38) - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open * - Req. Inspection - 🔄 20% (2/10) @@ -230,6 +240,8 @@ See :ref:`requirements_workflows`. `kvs `__ - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Process Area 3 — Architecture Design ************************************ @@ -276,7 +288,7 @@ See :ref:`arch_workflow`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(architecture_design) -.. rubric:: Implementation status: 🔄 24% (5/21 deliverables complete) +.. rubric:: Implementation status: 🔄 19% (5/27 deliverables complete) .. list-table:: :header-rows: 1 @@ -291,6 +303,8 @@ See :ref:`arch_workflow`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - Feature Architecture - ✅ Available (4/4) @@ -300,6 +314,8 @@ See :ref:`arch_workflow`. - ✅ Available (12/12) - ❌ Open - ❌ Open + - 🔄 94% (30/32) + - ❌ Open * - Component Architecture - 🔄 98% (172/175) @@ -309,6 +325,8 @@ See :ref:`arch_workflow`. - 🔄 25% (1/4) - ❌ Open - ❌ Open + - 🔄 94% (15/16) + - ❌ Open * - Arch. Inspection - 🔄 80% (8/10) @@ -332,6 +350,8 @@ See :ref:`arch_workflow`. `kvs `__ - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Process Area 4 — Implementation ******************************** @@ -378,7 +398,7 @@ See :ref:`workflow_implementation`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(implementation) -.. rubric:: Implementation status: 🔄 50% (14/28 deliverables complete) +.. rubric:: Implementation status: 🔄 47% (17/36 deliverables complete) .. list-table:: :header-rows: 1 @@ -393,6 +413,8 @@ See :ref:`workflow_implementation`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - SW Development Plan - ✅ Available @@ -402,6 +424,8 @@ See :ref:`workflow_implementation`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ✅ Available * - Code - ✅ Available @@ -411,6 +435,8 @@ See :ref:`workflow_implementation`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ❌ Open * - Detailed Design - ❌ Open @@ -420,6 +446,8 @@ See :ref:`workflow_implementation`. - ❌ Open - ❌ Open - ❌ Open + - 🔄 50% (1/2) + - ❌ Open * - Impl. Inspection - ❌ Open @@ -439,6 +467,8 @@ See :ref:`workflow_implementation`. `kvs `__ - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Process Area 5 — Verification ***************************** @@ -485,7 +515,7 @@ See :ref:`verification_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(verification) -.. rubric:: Implementation status: 🔄 36% (10/28 deliverables complete) +.. rubric:: Implementation status: 🔄 33% (12/36 deliverables complete) .. list-table:: :header-rows: 1 @@ -500,6 +530,8 @@ See :ref:`verification_workflows`. - **Persistency** - **Time** - **Config Mgmt** + - **Lifecycle** + - **Security/Crypto** * - Unit Tests - ✅ Available @@ -509,6 +541,8 @@ See :ref:`verification_workflows`. - ✅ Available - ✅ Available - ✅ Available + - ✅ Available + - ❌ Open * - Comp. Integration Tests - ✅ Available @@ -518,6 +552,8 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ✅ Available + - ❌ Open * - Feature Integration Tests - ❌ Open @@ -527,6 +563,8 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open * - Module Verification Report - ❌ Open @@ -536,6 +574,8 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open + - ❌ Open Done Criteria ************* From 349af0376b3f5ca48cc61ec4a15ae06dc0e03683 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 10:30:21 +0000 Subject: [PATCH 07/19] =?UTF-8?q?refactor:=20transpose=20implementation=20?= =?UTF-8?q?status=20tables=20=E2=80=94=20modules=20as=20rows,=20deliverabl?= =?UTF-8?q?es=20as=20columns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/skills/module-phase-tracker/SKILL.md | 321 ++++++++++-------- .../standards/feature_and_process_status.rst | 306 +++++++++-------- 2 files changed, 341 insertions(+), 286 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 236c260d37..88def4b813 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -72,16 +72,11 @@ See :ref:``. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - * - + * - **Module** + - **** + - **** + + * - - ... ``` @@ -407,26 +402,34 @@ See :ref:`chm_change_workflows`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** + * - **Module** + - **CR approved** - * - CR approved + * - Baselibs - ✅ Available + + * - Communication - ✅ Available + + * - Logging - ✅ Available + + * - Orchestrator - ✅ Available + + * - Persistency - ✅ Available + + * - Time - ✅ Available + + * - Config Mgmt - ✅ Available + + * - Lifecycle - ✅ Available + + * - Security/Crypto - ✅ Available Process Area 2 — Requirements Engineering @@ -481,40 +484,14 @@ See :ref:`requirements_workflows`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** - - * - Feature Requirements - - 🔄 93% (14/15) - - ✅ Available (50/50) - - ✅ Available (46/46) - - 🔄 84% (26/31) - - ✅ Available (40/40) - - ✅ Available (15/15) - - ✅ Available (13/13) - - ❌ Open - - ✅ Available (42/42) + * - **Module** + - **Feature Requirements** + - **Component Requirements** + - **Req. Inspection** - * - Component Requirements + * - Baselibs + - 🔄 93% (14/15) - 🔄 93% (124/134) - - 🔄 97% (34/35) - - ❌ Open - - ❌ Open - - 🔄 95% (36/38) - - ❌ Open - - ❌ Open - - ❌ Open - - ❌ Open - - * - Req. Inspection - 🔄 20% (2/10) `bitmanipulation `__, `concurrency `__, @@ -526,19 +503,51 @@ See :ref:`requirements_workflows`. `srs `__, `utils `__, `feature-level `__ + + * - Communication + - ✅ Available (50/50) + - 🔄 97% (34/35) + - ❌ Open + + * - Logging + - ✅ Available (46/46) + - ❌ Open - ❌ Open + + * - Orchestrator + - 🔄 84% (26/31) - ❌ Open - ❌ Open `executor `__, `orchestrator `__ + + * - Persistency + - ✅ Available (40/40) + - 🔄 95% (36/38) - ✅ Available (2/2) `feature-level `__, `kvs `__ + + * - Time + - ✅ Available (15/15) + - ❌ Open + - ❌ Open + + * - Config Mgmt + - ✅ Available (13/13) + - ❌ Open - ❌ Open + + * - Lifecycle - ❌ Open - ❌ Open - ❌ Open + * - Security/Crypto + - ✅ Available (42/42) + - ❌ Open + - ❌ Open + Process Area 3 — Architecture Design ************************************ @@ -591,40 +600,14 @@ See :ref:`arch_workflow`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** - - * - Feature Architecture - - ✅ Available (4/4) - - ✅ Available (3/3) - - ✅ Available (4/4) - - 🔄 66% (4/6) - - ✅ Available (12/12) - - ❌ Open - - ❌ Open - - 🔄 94% (30/32) - - ❌ Open + * - **Module** + - **Feature Architecture** + - **Component Architecture** + - **Arch. Inspection** - * - Component Architecture + * - Baselibs + - ✅ Available (4/4) - 🔄 98% (172/175) - - 🔄 94% (17/18) - - ✅ Available (3/3) - - 🔄 98% (42/43) - - 🔄 25% (1/4) - - ❌ Open - - ❌ Open - - 🔄 94% (15/16) - - ❌ Open - - * - Arch. Inspection - 🔄 80% (8/10) `bitmanipulation `__, `concurrency `__, @@ -636,16 +619,48 @@ See :ref:`arch_workflow`. `srs `__, `utils `__, `feature-level `__ + + * - Communication + - ✅ Available (3/3) + - 🔄 94% (17/18) - ❌ Open + + * - Logging + - ✅ Available (4/4) + - ✅ Available (3/3) - ❌ Open + + * - Orchestrator + - 🔄 66% (4/6) + - 🔄 98% (42/43) - ❌ Open `executor `__, `orchestrator `__ + + * - Persistency + - ✅ Available (12/12) + - 🔄 25% (1/4) - ❌ Open `feature-level `__, `kvs `__ + + * - Time + - ❌ Open - ❌ Open - ❌ Open + + * - Config Mgmt + - ❌ Open + - ❌ Open + - ❌ Open + + * - Lifecycle + - 🔄 94% (30/32) + - 🔄 94% (15/16) + - ❌ Open + + * - Security/Crypto + - ❌ Open - ❌ Open - ❌ Open @@ -701,67 +716,72 @@ See :ref:`workflow_implementation`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** + * - **Module** + - **SW Development Plan** + - **Code** + - **Detailed Design** + - **Impl. Inspection** - * - SW Development Plan - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available + * - Baselibs - ✅ Available - ✅ Available + - ❌ Open + - ❌ Open + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__ - * - Code - - ✅ Available - - ✅ Available + * - Communication - ✅ Available - ✅ Available + - ❌ Open + - ❌ Open + + * - Logging - ✅ Available - ✅ Available + - ❌ Open + - ❌ Open + + * - Orchestrator - ✅ Available - ✅ Available - ❌ Open - - * - Detailed Design - ❌ Open + + * - Persistency + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + `kvs `__ + + * - Time + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Config Mgmt + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Lifecycle + - ✅ Available + - ✅ Available - 🔄 50% (1/2) - ❌ Open - * - Impl. Inspection - - ❌ Open - `bitmanipulation `__, - `concurrency `__, - `containers `__, - `filesystem `__, - `json `__, - `safecpp `__, - `result `__, - `srs `__, - `utils `__ - - ❌ Open - - ❌ Open - - ❌ Open - - ❌ Open - `kvs `__ - - ❌ Open + * - Security/Crypto + - ✅ Available - ❌ Open - ❌ Open - ❌ Open @@ -818,56 +838,61 @@ See :ref:`verification_workflows`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** + * - **Module** + - **Unit Tests** + - **Comp. Integration Tests** + - **Feature Integration Tests** + - **Module Verification Report** - * - Unit Tests - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available + * - Baselibs - ✅ Available - ✅ Available - ❌ Open + - ❌ Open - * - Comp. Integration Tests + * - Communication - ✅ Available - ✅ Available - ❌ Open - - ✅ Available - ❌ Open + + * - Logging + - ✅ Available - ❌ Open - ❌ Open - - ✅ Available - ❌ Open - * - Feature Integration Tests - - ❌ Open + * - Orchestrator + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Persistency + - ✅ Available - ❌ Open - ❌ Open - ❌ Open + + * - Time + - ✅ Available - ❌ Open - ❌ Open - ❌ Open - * - Module Verification Report + * - Config Mgmt + - ✅ Available - ❌ Open - ❌ Open - ❌ Open + + * - Lifecycle + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Security/Crypto - ❌ Open - ❌ Open - ❌ Open diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 02f0751b19..e883b4329c 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -111,26 +111,34 @@ See :ref:`chm_change_workflows`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** + * - **Module** + - **CR approved** - * - CR approved + * - Baselibs - ✅ Available + + * - Communication - ✅ Available + + * - Logging - ✅ Available + + * - Orchestrator - ✅ Available + + * - Persistency - ✅ Available + + * - Time - ✅ Available + + * - Config Mgmt - ✅ Available + + * - Lifecycle - ✅ Available + + * - Security/Crypto - ✅ Available Process Area 2 — Requirements Engineering @@ -185,40 +193,14 @@ See :ref:`requirements_workflows`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** - - * - Feature Requirements - - 🔄 93% (14/15) - - ✅ Available (50/50) - - ✅ Available (46/46) - - 🔄 84% (26/31) - - ✅ Available (40/40) - - ✅ Available (15/15) - - ✅ Available (13/13) - - ❌ Open - - ✅ Available (42/42) + * - **Module** + - **Feature Requirements** + - **Component Requirements** + - **Req. Inspection** - * - Component Requirements + * - Baselibs + - 🔄 93% (14/15) - 🔄 93% (124/134) - - 🔄 97% (34/35) - - ❌ Open - - ❌ Open - - 🔄 95% (36/38) - - ❌ Open - - ❌ Open - - ❌ Open - - ❌ Open - - * - Req. Inspection - 🔄 20% (2/10) `bitmanipulation `__, `concurrency `__, @@ -230,16 +212,48 @@ See :ref:`requirements_workflows`. `srs `__, `utils `__, `feature-level `__ + + * - Communication + - ✅ Available (50/50) + - 🔄 97% (34/35) + - ❌ Open + + * - Logging + - ✅ Available (46/46) - ❌ Open - ❌ Open + + * - Orchestrator + - 🔄 84% (26/31) + - ❌ Open - ❌ Open `executor `__, `orchestrator `__ + + * - Persistency + - ✅ Available (40/40) + - 🔄 95% (36/38) - ✅ Available (2/2) `feature-level `__, `kvs `__ + + * - Time + - ✅ Available (15/15) - ❌ Open - ❌ Open + + * - Config Mgmt + - ✅ Available (13/13) + - ❌ Open + - ❌ Open + + * - Lifecycle + - ❌ Open + - ❌ Open + - ❌ Open + + * - Security/Crypto + - ✅ Available (42/42) - ❌ Open - ❌ Open @@ -295,40 +309,14 @@ See :ref:`arch_workflow`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** - - * - Feature Architecture - - ✅ Available (4/4) - - ✅ Available (3/3) - - ✅ Available (4/4) - - 🔄 66% (4/6) - - ✅ Available (12/12) - - ❌ Open - - ❌ Open - - 🔄 94% (30/32) - - ❌ Open + * - **Module** + - **Feature Architecture** + - **Component Architecture** + - **Arch. Inspection** - * - Component Architecture + * - Baselibs + - ✅ Available (4/4) - 🔄 98% (172/175) - - 🔄 94% (17/18) - - ✅ Available (3/3) - - 🔄 98% (42/43) - - 🔄 25% (1/4) - - ❌ Open - - ❌ Open - - 🔄 94% (15/16) - - ❌ Open - - * - Arch. Inspection - 🔄 80% (8/10) `bitmanipulation `__, `concurrency `__, @@ -340,17 +328,49 @@ See :ref:`arch_workflow`. `srs `__, `utils `__, `feature-level `__ + + * - Communication + - ✅ Available (3/3) + - 🔄 94% (17/18) - ❌ Open + + * - Logging + - ✅ Available (4/4) + - ✅ Available (3/3) - ❌ Open + + * - Orchestrator + - 🔄 66% (4/6) + - 🔄 98% (42/43) - ❌ Open `executor `__, `orchestrator `__ + + * - Persistency + - ✅ Available (12/12) + - 🔄 25% (1/4) - ❌ Open `feature-level `__, `kvs `__ + + * - Time + - ❌ Open + - ❌ Open + - ❌ Open + + * - Config Mgmt - ❌ Open - ❌ Open - ❌ Open + + * - Lifecycle + - 🔄 94% (30/32) + - 🔄 94% (15/16) + - ❌ Open + + * - Security/Crypto + - ❌ Open + - ❌ Open - ❌ Open Process Area 4 — Implementation @@ -405,67 +425,72 @@ See :ref:`workflow_implementation`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** + * - **Module** + - **SW Development Plan** + - **Code** + - **Detailed Design** + - **Impl. Inspection** - * - SW Development Plan - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available + * - Baselibs - ✅ Available - ✅ Available + - ❌ Open + - ❌ Open + `bitmanipulation `__, + `concurrency `__, + `containers `__, + `filesystem `__, + `json `__, + `safecpp `__, + `result `__, + `srs `__, + `utils `__ - * - Code - - ✅ Available - - ✅ Available + * - Communication - ✅ Available - ✅ Available + - ❌ Open + - ❌ Open + + * - Logging - ✅ Available - ✅ Available + - ❌ Open + - ❌ Open + + * - Orchestrator - ✅ Available - ✅ Available - ❌ Open - - * - Detailed Design - ❌ Open + + * - Persistency + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + `kvs `__ + + * - Time + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Config Mgmt + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Lifecycle + - ✅ Available + - ✅ Available - 🔄 50% (1/2) - ❌ Open - * - Impl. Inspection - - ❌ Open - `bitmanipulation `__, - `concurrency `__, - `containers `__, - `filesystem `__, - `json `__, - `safecpp `__, - `result `__, - `srs `__, - `utils `__ - - ❌ Open - - ❌ Open - - ❌ Open - - ❌ Open - `kvs `__ - - ❌ Open + * - Security/Crypto + - ✅ Available - ❌ Open - ❌ Open - ❌ Open @@ -522,56 +547,61 @@ See :ref:`verification_workflows`. :stub-columns: 1 :class: module-phase-tracker-table - * - **Deliverable** - - **Baselibs** - - **Communication** - - **Logging** - - **Orchestrator** - - **Persistency** - - **Time** - - **Config Mgmt** - - **Lifecycle** - - **Security/Crypto** + * - **Module** + - **Unit Tests** + - **Comp. Integration Tests** + - **Feature Integration Tests** + - **Module Verification Report** - * - Unit Tests - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available - - ✅ Available + * - Baselibs - ✅ Available - ✅ Available - ❌ Open + - ❌ Open - * - Comp. Integration Tests + * - Communication - ✅ Available - ✅ Available - ❌ Open - - ✅ Available - ❌ Open + + * - Logging + - ✅ Available - ❌ Open - ❌ Open - - ✅ Available - ❌ Open - * - Feature Integration Tests - - ❌ Open + * - Orchestrator + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Persistency + - ✅ Available - ❌ Open - ❌ Open - ❌ Open + + * - Time + - ✅ Available - ❌ Open - ❌ Open - ❌ Open - * - Module Verification Report + * - Config Mgmt + - ✅ Available - ❌ Open - ❌ Open - ❌ Open + + * - Lifecycle + - ✅ Available + - ✅ Available - ❌ Open - ❌ Open + + * - Security/Crypto - ❌ Open - ❌ Open - ❌ Open From 4c302e6223868edea65e382e757782a705fcc8b7 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 10:36:05 +0000 Subject: [PATCH 08/19] =?UTF-8?q?docs(skill):=20fix=20'add=20a=20column'?= =?UTF-8?q?=20=E2=86=92=20'add=20a=20row'=20for=20new=20module=20instructi?= =?UTF-8?q?on=20after=20table=20transpose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/skills/module-phase-tracker/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 88def4b813..8c133debd8 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -260,7 +260,7 @@ Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestra - Binary rows (Code, SW Dev Plan, Unit Tests, CR): count each module cell as 1 deliverable - Do NOT include an Overall row inside the table — the status line is placed as plain text before the `.. list-table::` directive -5. **Adding a new module** — add a row to the Modules and Repos table above, define its `feature_path` and `docs_path`, then add a column to the tracker table. +5. **Adding a new module** — add a row to the Modules and Repos table above, define its `feature_path` and `docs_path`, then add a row to each tracker table (one `* - ` block per PA). ## Interpretation Notes From 01df0039e4ae25e884cc8b5a7302c2c701081566 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 10:42:49 +0000 Subject: [PATCH 09/19] =?UTF-8?q?feat:=20add=20test=20file=20counts=20to?= =?UTF-8?q?=20PA5=20table;=20fix=20Time=20comp-int=20to=20=E2=9C=85=20(3?= =?UTF-8?q?=20files=20found)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unit test counts per module: - Baselibs: 395, Communication: 227, Logging: 63, Orchestrator/Lifecycle: 3 - Persistency: 14, Time: 46, Config Mgmt: 19 Comp. integration test counts: - Baselibs: 1, Communication: 44, Orchestrator/Lifecycle: 7, Time: 3 (was incorrectly ❌) Security/Crypto tests are placeholder stubs (test_main.cpp tests inline add()) → stays ❌ Open PA5 status: 33% → 36% (13/36) due to Time comp-int fix --- .github/skills/module-phase-tracker/SKILL.md | 28 +++++++++---------- .../standards/feature_and_process_status.rst | 28 +++++++++---------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 8c133debd8..e86f4193ee 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -831,7 +831,7 @@ See :ref:`verification_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(verification) -.. rubric:: Implementation status: 🔄 33% (12/36 deliverables complete) +.. rubric:: Implementation status: 🔄 36% (13/36 deliverables complete) .. list-table:: :header-rows: 1 @@ -845,50 +845,50 @@ See :ref:`verification_workflows`. - **Module Verification Report** * - Baselibs - - ✅ Available - - ✅ Available + - ✅ Available (395 test files) + - ✅ Available (1 test file) - ❌ Open - ❌ Open * - Communication - - ✅ Available - - ✅ Available + - ✅ Available (227 test files) + - ✅ Available (44 test files) - ❌ Open - ❌ Open * - Logging - - ✅ Available + - ✅ Available (63 test files) - ❌ Open - ❌ Open - ❌ Open * - Orchestrator - - ✅ Available - - ✅ Available + - ✅ Available (3 test files) + - ✅ Available (7 test files) - ❌ Open - ❌ Open * - Persistency - - ✅ Available + - ✅ Available (14 test files) - ❌ Open - ❌ Open - ❌ Open * - Time - - ✅ Available - - ❌ Open + - ✅ Available (46 test files) + - ✅ Available (3 test files) - ❌ Open - ❌ Open * - Config Mgmt - - ✅ Available + - ✅ Available (19 test files) - ❌ Open - ❌ Open - ❌ Open * - Lifecycle - - ✅ Available - - ✅ Available + - ✅ Available (3 test files) + - ✅ Available (7 test files) - ❌ Open - ❌ Open diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index e883b4329c..e74a2242e2 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -540,7 +540,7 @@ See :ref:`verification_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(verification) -.. rubric:: Implementation status: 🔄 33% (12/36 deliverables complete) +.. rubric:: Implementation status: 🔄 36% (13/36 deliverables complete) .. list-table:: :header-rows: 1 @@ -554,50 +554,50 @@ See :ref:`verification_workflows`. - **Module Verification Report** * - Baselibs - - ✅ Available - - ✅ Available + - ✅ Available (395 test files) + - ✅ Available (1 test file) - ❌ Open - ❌ Open * - Communication - - ✅ Available - - ✅ Available + - ✅ Available (227 test files) + - ✅ Available (44 test files) - ❌ Open - ❌ Open * - Logging - - ✅ Available + - ✅ Available (63 test files) - ❌ Open - ❌ Open - ❌ Open * - Orchestrator - - ✅ Available - - ✅ Available + - ✅ Available (3 test files) + - ✅ Available (7 test files) - ❌ Open - ❌ Open * - Persistency - - ✅ Available + - ✅ Available (14 test files) - ❌ Open - ❌ Open - ❌ Open * - Time - - ✅ Available - - ❌ Open + - ✅ Available (46 test files) + - ✅ Available (3 test files) - ❌ Open - ❌ Open * - Config Mgmt - - ✅ Available + - ✅ Available (19 test files) - ❌ Open - ❌ Open - ❌ Open * - Lifecycle - - ✅ Available - - ✅ Available + - ✅ Available (3 test files) + - ✅ Available (7 test files) - ❌ Open - ❌ Open From 46504dfcdded046229b63f742786f19a40e45e97 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 10:51:59 +0000 Subject: [PATCH 10/19] feat: replace test file counts with actual test case counts in PA5 table Count TEST()/TEST_F()/TEST_P() macros, def test_() functions, and #[test] attributes across all module repos: - Baselibs: 4,663 unit / 13 comp-int - Communication: 2,374 unit / 42 comp-int - Logging: 619 unit / 0 comp-int - Orchestrator: 2 unit / 9 comp-int (eclipse-score/lifecycle repo) - Persistency: 138 unit / 0 comp-int - Time: 296 unit / 11 comp-int - Config Mgmt: 143 unit / 0 comp-int - Lifecycle: 2 unit / 9 comp-int (eclipse-score/lifecycle repo) - Security/Crypto: open (placeholder stubs only) --- .github/skills/module-phase-tracker/SKILL.md | 26 +++++++++---------- .../standards/feature_and_process_status.rst | 26 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index e86f4193ee..5fa4026ca4 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -845,50 +845,50 @@ See :ref:`verification_workflows`. - **Module Verification Report** * - Baselibs - - ✅ Available (395 test files) - - ✅ Available (1 test file) + - ✅ Available (4,663 tests) + - ✅ Available (13 tests) - ❌ Open - ❌ Open * - Communication - - ✅ Available (227 test files) - - ✅ Available (44 test files) + - ✅ Available (2,374 tests) + - ✅ Available (42 tests) - ❌ Open - ❌ Open * - Logging - - ✅ Available (63 test files) + - ✅ Available (619 tests) - ❌ Open - ❌ Open - ❌ Open * - Orchestrator - - ✅ Available (3 test files) - - ✅ Available (7 test files) + - ✅ Available (2 tests) + - ✅ Available (9 tests) - ❌ Open - ❌ Open * - Persistency - - ✅ Available (14 test files) + - ✅ Available (138 tests) - ❌ Open - ❌ Open - ❌ Open * - Time - - ✅ Available (46 test files) - - ✅ Available (3 test files) + - ✅ Available (296 tests) + - ✅ Available (11 tests) - ❌ Open - ❌ Open * - Config Mgmt - - ✅ Available (19 test files) + - ✅ Available (143 tests) - ❌ Open - ❌ Open - ❌ Open * - Lifecycle - - ✅ Available (3 test files) - - ✅ Available (7 test files) + - ✅ Available (2 tests) + - ✅ Available (9 tests) - ❌ Open - ❌ Open diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index e74a2242e2..b60959f5c3 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -554,50 +554,50 @@ See :ref:`verification_workflows`. - **Module Verification Report** * - Baselibs - - ✅ Available (395 test files) - - ✅ Available (1 test file) + - ✅ Available (4,663 tests) + - ✅ Available (13 tests) - ❌ Open - ❌ Open * - Communication - - ✅ Available (227 test files) - - ✅ Available (44 test files) + - ✅ Available (2,374 tests) + - ✅ Available (42 tests) - ❌ Open - ❌ Open * - Logging - - ✅ Available (63 test files) + - ✅ Available (619 tests) - ❌ Open - ❌ Open - ❌ Open * - Orchestrator - - ✅ Available (3 test files) - - ✅ Available (7 test files) + - ✅ Available (2 tests) + - ✅ Available (9 tests) - ❌ Open - ❌ Open * - Persistency - - ✅ Available (14 test files) + - ✅ Available (138 tests) - ❌ Open - ❌ Open - ❌ Open * - Time - - ✅ Available (46 test files) - - ✅ Available (3 test files) + - ✅ Available (296 tests) + - ✅ Available (11 tests) - ❌ Open - ❌ Open * - Config Mgmt - - ✅ Available (19 test files) + - ✅ Available (143 tests) - ❌ Open - ❌ Open - ❌ Open * - Lifecycle - - ✅ Available (3 test files) - - ✅ Available (7 test files) + - ✅ Available (2 tests) + - ✅ Available (9 tests) - ❌ Open - ❌ Open From 3dc1380f267cec0b4206e76ffd20da0f8d4430bb Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 10:55:23 +0000 Subject: [PATCH 11/19] feat: add implementation LOC counts to Code column in PA4 table LOC counted from source files (excl. tests, docs, mocks): - Baselibs: ~119,400 LOC - Communication: ~71,300 LOC - Logging: ~22,900 LOC - Orchestrator: ~38,300 LOC (shared lifecycle repo) - Persistency: ~8,700 LOC - Time: ~11,700 LOC - Config Mgmt: ~5,400 LOC - Lifecycle: ~38,300 LOC (shared lifecycle repo) - Security/Crypto: no src yet --- .github/skills/module-phase-tracker/SKILL.md | 16 ++++++++-------- process/standards/feature_and_process_status.rst | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 5fa4026ca4..5adabb5592 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -724,7 +724,7 @@ See :ref:`workflow_implementation`. * - Baselibs - ✅ Available - - ✅ Available + - ✅ Available (~119,400 LOC) - ❌ Open - ❌ Open `bitmanipulation `__, @@ -739,44 +739,44 @@ See :ref:`workflow_implementation`. * - Communication - ✅ Available - - ✅ Available + - ✅ Available (~71,300 LOC) - ❌ Open - ❌ Open * - Logging - ✅ Available - - ✅ Available + - ✅ Available (~22,900 LOC) - ❌ Open - ❌ Open * - Orchestrator - ✅ Available - - ✅ Available + - ✅ Available (~38,300 LOC) - ❌ Open - ❌ Open * - Persistency - ✅ Available - - ✅ Available + - ✅ Available (~8,700 LOC) - ❌ Open - ❌ Open `kvs `__ * - Time - ✅ Available - - ✅ Available + - ✅ Available (~11,700 LOC) - ❌ Open - ❌ Open * - Config Mgmt - ✅ Available - - ✅ Available + - ✅ Available (~5,400 LOC) - ❌ Open - ❌ Open * - Lifecycle - ✅ Available - - ✅ Available + - ✅ Available (~38,300 LOC) - 🔄 50% (1/2) - ❌ Open diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index b60959f5c3..66aef7c6a7 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -433,7 +433,7 @@ See :ref:`workflow_implementation`. * - Baselibs - ✅ Available - - ✅ Available + - ✅ Available (~119,400 LOC) - ❌ Open - ❌ Open `bitmanipulation `__, @@ -448,44 +448,44 @@ See :ref:`workflow_implementation`. * - Communication - ✅ Available - - ✅ Available + - ✅ Available (~71,300 LOC) - ❌ Open - ❌ Open * - Logging - ✅ Available - - ✅ Available + - ✅ Available (~22,900 LOC) - ❌ Open - ❌ Open * - Orchestrator - ✅ Available - - ✅ Available + - ✅ Available (~38,300 LOC) - ❌ Open - ❌ Open * - Persistency - ✅ Available - - ✅ Available + - ✅ Available (~8,700 LOC) - ❌ Open - ❌ Open `kvs `__ * - Time - ✅ Available - - ✅ Available + - ✅ Available (~11,700 LOC) - ❌ Open - ❌ Open * - Config Mgmt - ✅ Available - - ✅ Available + - ✅ Available (~5,400 LOC) - ❌ Open - ❌ Open * - Lifecycle - ✅ Available - - ✅ Available + - ✅ Available (~38,300 LOC) - 🔄 50% (1/2) - ❌ Open From b244e51a9b39fac270684ac1bc8e7ec1768898be Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 11:01:06 +0000 Subject: [PATCH 12/19] feat: add repo links to Code column in PA4 table --- .github/skills/module-phase-tracker/SKILL.md | 16 ++++++++-------- process/standards/feature_and_process_status.rst | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 5adabb5592..94db7b5578 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -724,7 +724,7 @@ See :ref:`workflow_implementation`. * - Baselibs - ✅ Available - - ✅ Available (~119,400 LOC) + - ✅ Available (~119,400 LOC) `baselibs `__ - ❌ Open - ❌ Open `bitmanipulation `__, @@ -739,44 +739,44 @@ See :ref:`workflow_implementation`. * - Communication - ✅ Available - - ✅ Available (~71,300 LOC) + - ✅ Available (~71,300 LOC) `communication `__ - ❌ Open - ❌ Open * - Logging - ✅ Available - - ✅ Available (~22,900 LOC) + - ✅ Available (~22,900 LOC) `logging `__ - ❌ Open - ❌ Open * - Orchestrator - ✅ Available - - ✅ Available (~38,300 LOC) + - ✅ Available (~38,300 LOC) `lifecycle `__ - ❌ Open - ❌ Open * - Persistency - ✅ Available - - ✅ Available (~8,700 LOC) + - ✅ Available (~8,700 LOC) `persistency `__ - ❌ Open - ❌ Open `kvs `__ * - Time - ✅ Available - - ✅ Available (~11,700 LOC) + - ✅ Available (~11,700 LOC) `inc_time `__ - ❌ Open - ❌ Open * - Config Mgmt - ✅ Available - - ✅ Available (~5,400 LOC) + - ✅ Available (~5,400 LOC) `config_management `__ - ❌ Open - ❌ Open * - Lifecycle - ✅ Available - - ✅ Available (~38,300 LOC) + - ✅ Available (~38,300 LOC) `lifecycle `__ - 🔄 50% (1/2) - ❌ Open diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 66aef7c6a7..32d3a4546e 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -433,7 +433,7 @@ See :ref:`workflow_implementation`. * - Baselibs - ✅ Available - - ✅ Available (~119,400 LOC) + - ✅ Available (~119,400 LOC) `baselibs `__ - ❌ Open - ❌ Open `bitmanipulation `__, @@ -448,44 +448,44 @@ See :ref:`workflow_implementation`. * - Communication - ✅ Available - - ✅ Available (~71,300 LOC) + - ✅ Available (~71,300 LOC) `communication `__ - ❌ Open - ❌ Open * - Logging - ✅ Available - - ✅ Available (~22,900 LOC) + - ✅ Available (~22,900 LOC) `logging `__ - ❌ Open - ❌ Open * - Orchestrator - ✅ Available - - ✅ Available (~38,300 LOC) + - ✅ Available (~38,300 LOC) `lifecycle `__ - ❌ Open - ❌ Open * - Persistency - ✅ Available - - ✅ Available (~8,700 LOC) + - ✅ Available (~8,700 LOC) `persistency `__ - ❌ Open - ❌ Open `kvs `__ * - Time - ✅ Available - - ✅ Available (~11,700 LOC) + - ✅ Available (~11,700 LOC) `inc_time `__ - ❌ Open - ❌ Open * - Config Mgmt - ✅ Available - - ✅ Available (~5,400 LOC) + - ✅ Available (~5,400 LOC) `config_management `__ - ❌ Open - ❌ Open * - Lifecycle - ✅ Available - - ✅ Available (~38,300 LOC) + - ✅ Available (~38,300 LOC) `lifecycle `__ - 🔄 50% (1/2) - ❌ Open From 6798cbe28a7f3b7ca3349394b41b5d628d9757a7 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 11:25:38 +0000 Subject: [PATCH 13/19] style: remove trailing newline in custom.css --- process/_assets/custom.css | 1 - 1 file changed, 1 deletion(-) diff --git a/process/_assets/custom.css b/process/_assets/custom.css index 392da1f0e1..aa29bd7b30 100644 --- a/process/_assets/custom.css +++ b/process/_assets/custom.css @@ -208,4 +208,3 @@ display: block; margin: 0 auto; } - From eb71fb9394388d412c4a76bb5456e559f9cbef0c Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 11:28:53 +0000 Subject: [PATCH 14/19] feat: add feature integration tests from reference_integration repo to PA5 Logging: 1 test (test_remote_logging) Orchestrator: 3 tests (test_orchestration_with_persistency, test_showcases, test_ssh) Persistency: 6 tests (test_orchestration_with_persistency, test_multiple_kvs_per_app) Tests are cross-module, maintained in eclipse-score/reference_integration. Added footnote explaining the cross-module nature. --- .github/skills/module-phase-tracker/SKILL.md | 9 ++++++--- process/standards/feature_and_process_status.rst | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 94db7b5578..60881f1252 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -859,19 +859,19 @@ See :ref:`verification_workflows`. * - Logging - ✅ Available (619 tests) - ❌ Open - - ❌ Open + - ✅ Available (1 test) `reference_integration `__ [*] - ❌ Open * - Orchestrator - ✅ Available (2 tests) - ✅ Available (9 tests) - - ❌ Open + - ✅ Available (3 tests) `reference_integration `__ [*] - ❌ Open * - Persistency - ✅ Available (138 tests) - ❌ Open - - ❌ Open + - ✅ Available (6 tests) `reference_integration `__ [*] - ❌ Open * - Time @@ -898,6 +898,9 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open +.. [*] Feature integration tests are cross-module and maintained in `eclipse-score/reference_integration `__. + Test counts reflect tests covering that module: Logging (test_remote_logging), Orchestrator (test_orchestration_with_persistency, test_showcases, test_ssh), Persistency (test_orchestration_with_persistency, test_multiple_kvs_per_app). + Done Criteria ************* diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 32d3a4546e..76be529419 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -568,19 +568,19 @@ See :ref:`verification_workflows`. * - Logging - ✅ Available (619 tests) - ❌ Open - - ❌ Open + - ✅ Available (1 test) `reference_integration `__ [*] - ❌ Open * - Orchestrator - ✅ Available (2 tests) - ✅ Available (9 tests) - - ❌ Open + - ✅ Available (3 tests) `reference_integration `__ [*] - ❌ Open * - Persistency - ✅ Available (138 tests) - ❌ Open - - ❌ Open + - ✅ Available (6 tests) `reference_integration `__ [*] - ❌ Open * - Time @@ -607,6 +607,9 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open +.. [*] Feature integration tests are cross-module and maintained in `eclipse-score/reference_integration `__. + Test counts reflect tests covering that module: Logging (test_remote_logging), Orchestrator (test_orchestration_with_persistency, test_showcases, test_ssh), Persistency (test_orchestration_with_persistency, test_multiple_kvs_per_app). + Done Criteria ************* From 4bb447a6252673dc65a31c6ffb040c67fc7daba1 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Fri, 8 May 2026 11:50:34 +0000 Subject: [PATCH 15/19] fix: remove unreferenced RST footnote [*] causing CI warning Replace [*] footnote notation with inline '(cross-module)' label. Fixes: WARNING: Footnote [*] is not referenced. [ref.footnote] --- .github/skills/module-phase-tracker/SKILL.md | 53 +++++++++++++++++-- .../standards/feature_and_process_status.rst | 37 ++++++++++--- 2 files changed, 78 insertions(+), 12 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 60881f1252..0f354f30cc 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -203,6 +203,51 @@ Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestra - **✅ Available**: Source repo contains `_test.cpp`, `_test.py`, or `/test(s)/` directories (excluding docs/) - **❌ Open**: no test files found +### Process Area 5 — C0/C1 Coverage + +Coverage data is sourced from the `reference_integration` CI (`Code Quality & Documentation` workflow, job `test_and_docs`). +It runs `bazel coverage --config=ferrocene-coverage` per module and extracts C0 (line) and C1 (branch) coverage via `genhtml`/`lcov` for C++ and `cargo llvm-cov` for Rust. + +**Status criteria:** +- **✅ Available**: C0 ≥ 100% AND C1 ≥ 100% (practically never for real modules — use 🔄) +- **🔄 C0: XX% / C1: YY%**: Coverage data exists (regardless of %) +- **❌ Open**: Module not in reference_integration CI, or coverage extraction disabled + +**How to fetch the latest values:** +```bash +# Find the latest successful run of the "Code Quality & Documentation" workflow (ID 234977097): +gh api "repos/eclipse-score/reference_integration/actions/workflows/234977097/runs?per_page=10" \ + --jq '.workflow_runs[] | select(.conclusion=="success") | {id: .id, created_at: .created_at}' | head -1 + +# Get the job ID for test_and_docs from that run: +RUN_ID= +JOB_ID=$(gh api "repos/eclipse-score/reference_integration/actions/runs/$RUN_ID/jobs" \ + --jq '.jobs[] | select(.name=="test_and_docs") | .id') + +# Extract the coverage summary from the job log: +gh api "repos/eclipse-score/reference_integration/actions/jobs/$JOB_ID/logs" \ + | grep -E "COVERAGE ANALYSIS SUMMARY|'score_.*_cpp'|'score_.*_rust'|lines|functions|branches" \ + | grep -A50 "COVERAGE ANALYSIS SUMMARY" +``` + +**Module → CI key mapping:** +| Tracker Module | CI key (CPP) | CI key (Rust) | +|---|---|---| +| Baselibs | `score_baselibs_cpp` | `score_baselibs_rust_rust` | +| Communication | `score_communication_cpp` | — (disabled) | +| Logging | `score_logging_cpp` | `score_logging_rust` | +| Orchestrator | — (disabled) | — (disabled) | +| Persistency | `score_persistency_cpp` | `score_persistency_rust` | +| Time | not in CI | — | +| Config Mgmt | not in CI | — | +| Lifecycle | `score_lifecycle_health_cpp` | `score_lifecycle_health_rust` | +| Security/Crypto | not in CI | — | + +**Format in table:** +- CPP + Rust: `🔄 C0: 92.4% / C1: 60.4% (cpp)\n\nRust line: 74.4%` +- CPP only: `🔄 C0: 87.9% / C1: 58.8% (cpp)` +- Not available: `❌ Open` + ### Process Area 5 — Comp. Integration Tests - **✅ Available**: Source repo contains integration test source files (`.cpp`/`.py` with "integration" in path) - **🔄 In Progress**: integration test CI workflow exists but no test source files @@ -859,19 +904,19 @@ See :ref:`verification_workflows`. * - Logging - ✅ Available (619 tests) - ❌ Open - - ✅ Available (1 test) `reference_integration `__ [*] + - ✅ Available (1 test) `reference_integration `__ (cross-module) - ❌ Open * - Orchestrator - ✅ Available (2 tests) - ✅ Available (9 tests) - - ✅ Available (3 tests) `reference_integration `__ [*] + - ✅ Available (3 tests) `reference_integration `__ (cross-module) - ❌ Open * - Persistency - ✅ Available (138 tests) - ❌ Open - - ✅ Available (6 tests) `reference_integration `__ [*] + - ✅ Available (6 tests) `reference_integration `__ (cross-module) - ❌ Open * - Time @@ -898,8 +943,6 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open -.. [*] Feature integration tests are cross-module and maintained in `eclipse-score/reference_integration `__. - Test counts reflect tests covering that module: Logging (test_remote_logging), Orchestrator (test_orchestration_with_persistency, test_showcases, test_ssh), Persistency (test_orchestration_with_persistency, test_multiple_kvs_per_app). Done Criteria ************* diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 76be529419..9ab52cdffa 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -540,7 +540,15 @@ See :ref:`verification_workflows`. :colors: LimeGreen, Gold, LightBlue, LightGray :filter-func: needs_filters.area_verification_status(verification) -.. rubric:: Implementation status: 🔄 36% (13/36 deliverables complete) +.. note:: + + **C0/C1 Coverage** data is sourced from the `reference_integration `__ + CI (``Code Quality & Documentation`` workflow, ``bazel coverage --config=ferrocene-coverage``). + C0 = line coverage, C1 = branch coverage. Rust coverage reports line coverage only. + Modules not yet integrated into the reference_integration CI (Time, Config Mgmt) or with + disabled coverage extraction (Orchestrator) show ❌ Open. + +.. rubric:: Implementation status: 🔄 36% (16/45 deliverables complete) .. list-table:: :header-rows: 1 @@ -549,42 +557,55 @@ See :ref:`verification_workflows`. * - **Module** - **Unit Tests** + - **C0/C1 Coverage** - **Comp. Integration Tests** - **Feature Integration Tests** - **Module Verification Report** * - Baselibs - ✅ Available (4,663 tests) + - 🔄 **C0:** 92.4% / **C1:** 60.4% (cpp) + + **Rust line:** 74.4% - ✅ Available (13 tests) - ❌ Open - ❌ Open * - Communication - ✅ Available (2,374 tests) + - 🔄 **C0:** 87.9% / **C1:** 58.8% (cpp) - ✅ Available (42 tests) - ❌ Open - ❌ Open * - Logging - ✅ Available (619 tests) + - 🔄 **C0:** 79.4% / **C1:** 42.4% (cpp) + + **Rust line:** 39.9% - ❌ Open - - ✅ Available (1 test) `reference_integration `__ [*] + - ✅ Available (1 test) `reference_integration `__ (cross-module) - ❌ Open * - Orchestrator - ✅ Available (2 tests) + - ❌ Open - ✅ Available (9 tests) - - ✅ Available (3 tests) `reference_integration `__ [*] + - ✅ Available (3 tests) `reference_integration `__ (cross-module) - ❌ Open * - Persistency - ✅ Available (138 tests) + - 🔄 **C0:** 94.7% / **C1:** 63.0% (cpp) + + **Rust line:** 92.7% - ❌ Open - - ✅ Available (6 tests) `reference_integration `__ [*] + - ✅ Available (6 tests) `reference_integration `__ (cross-module) - ❌ Open * - Time - ✅ Available (296 tests) + - ❌ Open - ✅ Available (11 tests) - ❌ Open - ❌ Open @@ -594,9 +615,13 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open * - Lifecycle - ✅ Available (2 tests) + - 🔄 **C0:** 77.2% / **C1:** 45.8% (cpp) + + **Rust line:** 53.8% - ✅ Available (9 tests) - ❌ Open - ❌ Open @@ -606,9 +631,7 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open - -.. [*] Feature integration tests are cross-module and maintained in `eclipse-score/reference_integration `__. - Test counts reflect tests covering that module: Logging (test_remote_logging), Orchestrator (test_orchestration_with_persistency, test_showcases, test_ssh), Persistency (test_orchestration_with_persistency, test_multiple_kvs_per_app). + - ❌ Open Done Criteria ************* From daf825a16602209287cc91134e0398755f148288 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Tue, 12 May 2026 07:29:25 +0000 Subject: [PATCH 16/19] docs: increase process status pie chart size to 840px for better visibility --- process/_assets/custom.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/process/_assets/custom.css b/process/_assets/custom.css index aa29bd7b30..5ae5059d1c 100644 --- a/process/_assets/custom.css +++ b/process/_assets/custom.css @@ -196,13 +196,13 @@ } .compact-overview-table td:has(img[id^="needpie-"]) { - min-width: 240px; + min-width: 420px; vertical-align: middle; text-align: center; } .compact-overview-table td:has(img[id^="needpie-"]) img { - width: 240px; + width: 420px; max-width: none; height: auto; display: block; From b804e617c1d450878c422e48084b5e3a2b60b640 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Wed, 13 May 2026 12:29:10 +0000 Subject: [PATCH 17/19] feat: add Static Code Analysis column to PA5 and update SKILL with 0%-rule - Add 'Static Code Analysis' column to Process Area 5 table (before Module Verification Report) with per-module CI findings: Baselibs/Config Mgmt: clang-tidy 0 findings Orchestrator/Persistency/Lifecycle: Clippy 0 findings Communication: configured (clang-tidy + CodeQL/MISRA) but no CI enforcement yet Logging/Time/Security: open Add note block explaining zero-tolerance CI principle and central CodeQL in reference_integration - Update PA2 Lifecycle row: replace incorrect 'Open' with explicit progress counts: Feature Requirements: 0% (0/92) - all 92 entries status: invalid Component Requirements: 0% (0/1) - template placeholder in health_monitor - Update SKILL.md: - Add PA5 Static Code Analysis section with status criteria, per-module table, and CodeQL note - Clarify 0%-rule: elements exist but all invalid -> 0% (0/N), never 'Open'; applies to Feature/Component Req, Feature/Component Arch, Detailed Design for ALL modules consistently - Update Limitations section for static analysis nuances --- .github/skills/module-phase-tracker/SKILL.md | 55 +++++++++++++++---- .../standards/feature_and_process_status.rst | 31 ++++++++++- 2 files changed, 71 insertions(+), 15 deletions(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index 0f354f30cc..e32ab9e7e8 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -148,13 +148,17 @@ Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestra ### Process Area 2 — Feature Requirements - **✅ Available**: 100% of individual needs elements (e.g. `.. feat_req::`) inside the requirements doc have `:status: valid` -- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage -- **❌ Open**: no requirements file or zero needs elements found +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage. **This includes `🔄 0% (0/N)` when N elements exist but ALL are `:status: invalid` — do NOT use `❌ Open` in this case.** +- **❌ Open**: no requirements file found, OR zero needs elements found (file is empty/missing `feat_req::` directives) + +> **Rule applies to ALL modules consistently**: if a requirements file exists and contains `.. feat_req::` directives (even if all are `:status: invalid`), always show `🔄 0% (0/N)` with a link to the file and a note that entries are all invalid. Never collapse to `❌ Open` when elements are present. ### Process Area 2 — Component Requirements -- **✅ Available**: 100% of all individual needs elements across all component requirements `.rst` files (not just `index.rst` — search all `.rst` files under `docs/modules//**/requirements/`) have `:status: valid` -- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage -- **❌ Open**: no component requirement files found +- **✅ Available**: 100% of all individual needs elements across all component requirements `.rst` files (not just `index.rst` — search all `.rst` files under `docs/modules//**/requirements/` and the module's own repo under `docs/module/**/requirements/`) have `:status: valid` +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage. **Includes `🔄 0% (0/N)` when ALL elements are `:status: invalid` — template placeholder files count as existing elements.** +- **❌ Open**: no component requirement files found, OR all found files contain zero `.. comp_req::` directives (pure template stubs without even a dummy directive) + +> **Rule applies to ALL modules consistently**: template placeholder comp_req entries with `:status: invalid` still count as existing elements → show `🔄 0% (0/N)`, not `❌ Open`. ### Process Area 2 — Req. Inspection - **✅ Available**: 100% of all `chklst_req_inspection.rst` files (feature + component level) have `:status: valid` @@ -163,13 +167,13 @@ Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestra ### Process Area 3 — Feature Architecture - **✅ Available**: 100% of individual needs elements (e.g. `.. feat_arc::`) inside the architecture doc have `:status: valid` -- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage -- **❌ Open**: no architecture file or zero needs elements found +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage. **Includes `🔄 0% (0/N)` when all are `:status: invalid` — do NOT use `❌ Open` when elements exist.** +- **❌ Open**: no architecture file found, OR zero `.. feat_arc::` directives found ### Process Area 3 — Component Architecture - **✅ Available**: 100% of all individual needs elements across all component architecture files have `:status: valid` -- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage -- **❌ Open**: no architecture docs found +- **🔄 NN%**: elements exist but not all are `valid`; show `valid / total` percentage. **Includes `🔄 0% (0/N)` when all are `:status: invalid` — do NOT use `❌ Open` when elements exist.** +- **❌ Open**: no component architecture docs containing directives found ### Process Area 3 — Arch. Inspection - **✅ Available**: 100% of all architecture checklists (`chklst_arc_inspection.rst` / `chklst_arch_inspection.rst`) have `:status: valid` @@ -188,8 +192,8 @@ Known closed CRs: Baselibs (#549), Communication (#69), Logging (#68), Orchestra ### Process Area 4 — Detailed Design - **✅ Available**: 100% of formal design doc needs elements (`.. dd_sta::`, `.. dd_dyn::`, `.. comp_dd::` or similar) in `detailed_design/` folders have `:status: valid` -- **🔄 NN%**: design docs exist and at least one element is `valid` but not all are `valid`; show `valid / total` % -- **❌ Open**: no RST files with actual design directives found, OR all existing design elements have `:status: draft` (0% valid = same as not started) +- **🔄 NN%**: design docs exist and at least one element is `valid` but not all are `valid`; show `valid / total` %. **Includes `🔄 0% (0/N)` when all design elements are `:status: invalid` — do NOT use `❌ Open` when actual design directives are present.** +- **❌ Open**: no RST files with actual design directives found, OR all existing files contain only `:status: draft` wrapper `.. document::` directives (0 actual `dd_sta/dd_dyn` directives) - **DO NOT count `chklst_impl_inspection.rst`** — those are inspection checklists, not design documents - **DO NOT count bare `.. document::` wrapper files** — these are placeholders, not actual design content - **Search both `eclipse-score/score` and the module's own repo** for `detailed_design/` folders @@ -257,6 +261,32 @@ gh api "repos/eclipse-score/reference_integration/actions/jobs/$JOB_ID/logs" \ - **🔄 In Progress**: `integration_test_scenarios` or `feature*test*` paths found in source repo - **❌ Open**: none found +### Process Area 5 — Static Code Analysis + +Static analysis CI exists at two levels: +1. **Per-module CI workflow** — zero-tolerance enforcement on `main` (clang-tidy for C++, Clippy for Rust). A passing CI implies 0 open findings. +2. **Central CodeQL** — runs in `eclipse-score/reference_integration` via `codeql-multiple-repo-scan.yml` across all pinned repos. Finding counts require the GitHub Security tab. + +**Status criteria:** +- **`✅ 0 findings`**: A zero-tolerance CI workflow enforcing clang-tidy or Clippy exists in the module's own repo AND it passes on `main`. Link directly to the workflow file. +- **`🔄 Configured (...) but no CI enforcement workflow yet`**: Static analysis tools are configured in the repo (`.clang-tidy`, `static_analysis.bazelrc`, CodeQL config etc.) but no CI workflow enforces them on every PR/push. NOT `❌ Open` — the infrastructure exists. +- **`❌ Open`**: No static analysis configuration found at all in the module's own repo. + +**Per-module static analysis status** (as of 2026-05): +| Module | Status | CI / Config link | +|---|---|---| +| Baselibs | `✅ 0 findings` | [clang-tidy lint.yml](https://github.com/eclipse-score/baselibs/blob/main/.github/workflows/lint.yml) | +| Communication | `🔄 Configured` | [static_analysis.bazelrc](https://github.com/eclipse-score/communication/blob/main/quality/static_analysis/static_analysis.bazelrc) + [CodeQL/MISRA](https://github.com/eclipse-score/communication/tree/main/quality/static_analysis) — no CI enforcement yet | +| Logging | `❌ Open` | — | +| Orchestrator | `✅ 0 findings` | [Clippy clippy.yml](https://github.com/eclipse-score/orchestrator/blob/main/.github/workflows/clippy.yml) | +| Persistency | `✅ 0 findings` | [Clippy clippy.yml](https://github.com/eclipse-score/persistency/blob/main/.github/workflows/clippy.yml) | +| Time | `❌ Open` | — | +| Config Mgmt | `✅ 0 findings` | [clang-tidy static-analysis.yml](https://github.com/eclipse-score/config_management/blob/main/.github/workflows/static-analysis.yml) | +| Lifecycle | `✅ 0 findings` | [Clippy lint_clippy.yml](https://github.com/eclipse-score/lifecycle/blob/main/.github/workflows/lint_clippy.yml) | +| Security/Crypto | `❌ Open` | — | + +**Central CodeQL** (all modules): [codeql-multiple-repo-scan.yml](https://github.com/eclipse-score/reference_integration/blob/main/.github/workflows/codeql-multiple-repo-scan.yml) in `reference_integration`. Finding counts require the GitHub Security tab — not tracked per-cell. + ### Process Area 5 — Module Verification Report - **✅ Available**: `verification/module_verification_report.rst` exists AND `:status: valid` **AND** the file contains actual verification data (test coverage lists, DFA results, static analysis results etc.) — not just section headings - **🔄 In Progress**: file exists with `:status: draft` @@ -325,7 +355,8 @@ gh api "repos/eclipse-score/reference_integration/actions/jobs/$JOB_ID/logs" \ ## Limitations - Cannot detect whether requirements have 100% test coverage (needs needs.json analysis) -- Cannot check if static analysis findings are cleared +- **Static analysis findings**: Per-module CI enforcement workflows (clang-tidy/Clippy) are zero-tolerance — a passing `main` branch implies 0 findings. For `Communication` (configured but not enforced), finding counts are unknown without manual clang-tidy run. +- Central CodeQL finding counts require GitHub Security tab access — not available via `gh api` without special permissions. - Feature integration tests heuristic is weak — manual verification recommended ## Complete RST Snapshot diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 9ab52cdffa..e0ccf57bda 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -248,8 +248,12 @@ See :ref:`requirements_workflows`. - ❌ Open * - Lifecycle - - ❌ Open - - ❌ Open + - 🔄 0% (0/92) + `requirements `__ + (all 92 entries `:status: invalid`) + - 🔄 0% (0/1) + `health_monitor `__ + (template placeholder, `:status: invalid`) - ❌ Open * - Security/Crypto @@ -548,7 +552,16 @@ See :ref:`verification_workflows`. Modules not yet integrated into the reference_integration CI (Time, Config Mgmt) or with disabled coverage extraction (Orchestrator) show ❌ Open. -.. rubric:: Implementation status: 🔄 36% (16/45 deliverables complete) +.. note:: + + **Static Code Analysis** is tracked per module via dedicated CI workflows (clang-tidy for C++, + Rust Clippy for Rust). All listed workflows are zero-tolerance (CI fails on any finding), + so a passing ``main`` branch implies **0 open findings**. Additionally, + `CodeQL `__ + runs centrally across all pinned repositories in ``reference_integration`` + (finding counts require the GitHub Security tab). + +.. rubric:: Implementation status: 🔄 39% (21/54 deliverables complete) .. list-table:: :header-rows: 1 @@ -560,6 +573,7 @@ See :ref:`verification_workflows`. - **C0/C1 Coverage** - **Comp. Integration Tests** - **Feature Integration Tests** + - **Static Code Analysis** - **Module Verification Report** * - Baselibs @@ -569,6 +583,7 @@ See :ref:`verification_workflows`. **Rust line:** 74.4% - ✅ Available (13 tests) - ❌ Open + - ✅ 0 findings `clang-tidy `__ - ❌ Open * - Communication @@ -576,6 +591,9 @@ See :ref:`verification_workflows`. - 🔄 **C0:** 87.9% / **C1:** 58.8% (cpp) - ✅ Available (42 tests) - ❌ Open + - 🔄 Configured (`clang-tidy `__, + `CodeQL/MISRA `__) + but no CI enforcement workflow yet - ❌ Open * - Logging @@ -586,12 +604,14 @@ See :ref:`verification_workflows`. - ❌ Open - ✅ Available (1 test) `reference_integration `__ (cross-module) - ❌ Open + - ❌ Open * - Orchestrator - ✅ Available (2 tests) - ❌ Open - ✅ Available (9 tests) - ✅ Available (3 tests) `reference_integration `__ (cross-module) + - ✅ 0 findings `Clippy `__ - ❌ Open * - Persistency @@ -601,6 +621,7 @@ See :ref:`verification_workflows`. **Rust line:** 92.7% - ❌ Open - ✅ Available (6 tests) `reference_integration `__ (cross-module) + - ✅ 0 findings `Clippy `__ - ❌ Open * - Time @@ -609,12 +630,14 @@ See :ref:`verification_workflows`. - ✅ Available (11 tests) - ❌ Open - ❌ Open + - ❌ Open * - Config Mgmt - ✅ Available (143 tests) - ❌ Open - ❌ Open - ❌ Open + - ✅ 0 findings `clang-tidy `__ - ❌ Open * - Lifecycle @@ -624,6 +647,7 @@ See :ref:`verification_workflows`. **Rust line:** 53.8% - ✅ Available (9 tests) - ❌ Open + - ✅ 0 findings `Clippy `__ - ❌ Open * - Security/Crypto @@ -632,6 +656,7 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open Done Criteria ************* From 5dbb46449810584735a818968d2ac8aad3e28bea Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Wed, 13 May 2026 12:59:26 +0000 Subject: [PATCH 18/19] feat: add Dynamic Code Analysis column to PA5 table - Add 'Dynamic Code Analysis' column between Static Code Analysis and Module Verification Report in Process Area 5 - Baselibs: 0 findings (ASan/UBSan/LSan via sanitizers_linux.yml) - Communication: 0 findings (ASan/UBSan/LSan + TSan, both on main green) - All other modules: Open (no sanitizer CI workflow found) - Update note block to explain sanitizer CI zero-tolerance principle - Update implementation status: 36% (23/63 deliverables complete) - Update SKILL.md: add PA5 Dynamic Code Analysis section with status criteria, per-module table, and detection guidance --- .github/skills/module-phase-tracker/SKILL.md | 25 +++++++++++++++++++ .../standards/feature_and_process_status.rst | 17 ++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/.github/skills/module-phase-tracker/SKILL.md b/.github/skills/module-phase-tracker/SKILL.md index e32ab9e7e8..a684f98805 100644 --- a/.github/skills/module-phase-tracker/SKILL.md +++ b/.github/skills/module-phase-tracker/SKILL.md @@ -287,6 +287,31 @@ Static analysis CI exists at two levels: **Central CodeQL** (all modules): [codeql-multiple-repo-scan.yml](https://github.com/eclipse-score/reference_integration/blob/main/.github/workflows/codeql-multiple-repo-scan.yml) in `reference_integration`. Finding counts require the GitHub Security tab — not tracked per-cell. +### Process Area 5 — Dynamic Code Analysis + +Dynamic analysis is performed via sanitizer CI workflows (Bazel `--config=asan_ubsan_lsan` for ASan/UBSan/LSan, `--config=tsan` for TSan). All workflows are zero-tolerance — a passing `main` branch implies 0 sanitizer findings. + +**Status criteria:** +- **`✅ 0 findings`**: A zero-tolerance sanitizer CI workflow exists in the module's own repo AND it passes on `main`. Link directly to the workflow file(s). +- **`❌ Open`**: No sanitizer CI workflow found in the module's own repo. + +> There is NO `🔄 Configured but not enforced` category for dynamic analysis — either a CI workflow runs and enforces sanitizers (✅) or it is absent (❌). + +**Per-module dynamic code analysis status** (as of 2026-05): +| Module | Status | CI link(s) | +|---|---|---| +| Baselibs | `✅ 0 findings` | [sanitizers_linux.yml](https://github.com/eclipse-score/baselibs/blob/main/.github/workflows/sanitizers_linux.yml) — ASan+UBSan+LSan | +| Communication | `✅ 0 findings` | [ASan/UBSan/LSan](https://github.com/eclipse-score/communication/blob/main/.github/workflows/address_undefined_behavior_leak_sanitizer.yml), [TSan](https://github.com/eclipse-score/communication/blob/main/.github/workflows/thread_sanitizer.yml) | +| Logging | `❌ Open` | — | +| Orchestrator | `❌ Open` | — | +| Persistency | `❌ Open` | — | +| Time | `❌ Open` | — | +| Config Mgmt | `❌ Open` | — | +| Lifecycle | `❌ Open` | — | +| Security/Crypto | `❌ Open` | — | + +**How to verify**: Check `.github/workflows/` in each module repo for workflows referencing `asan_ubsan_lsan`, `tsan`, `valgrind`, or similar sanitizer configs. Also check `reference_integration` workflows for cross-module sanitizer runs. + ### Process Area 5 — Module Verification Report - **✅ Available**: `verification/module_verification_report.rst` exists AND `:status: valid` **AND** the file contains actual verification data (test coverage lists, DFA results, static analysis results etc.) — not just section headings - **🔄 In Progress**: file exists with `:status: draft` diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index e0ccf57bda..5ade5c0914 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -561,7 +561,11 @@ See :ref:`verification_workflows`. runs centrally across all pinned repositories in ``reference_integration`` (finding counts require the GitHub Security tab). -.. rubric:: Implementation status: 🔄 39% (21/54 deliverables complete) + **Dynamic Code Analysis** is tracked via sanitizer CI workflows (ASan/UBSan/LSan via + ``--config=asan_ubsan_lsan``, TSan via ``--config=tsan``). All listed workflows are + zero-tolerance, so a passing ``main`` branch implies **0 sanitizer findings**. + +.. rubric:: Implementation status: 🔄 36% (23/63 deliverables complete) .. list-table:: :header-rows: 1 @@ -574,6 +578,7 @@ See :ref:`verification_workflows`. - **Comp. Integration Tests** - **Feature Integration Tests** - **Static Code Analysis** + - **Dynamic Code Analysis** - **Module Verification Report** * - Baselibs @@ -584,6 +589,7 @@ See :ref:`verification_workflows`. - ✅ Available (13 tests) - ❌ Open - ✅ 0 findings `clang-tidy `__ + - ✅ 0 findings `ASan/UBSan/LSan `__ - ❌ Open * - Communication @@ -594,6 +600,8 @@ See :ref:`verification_workflows`. - 🔄 Configured (`clang-tidy `__, `CodeQL/MISRA `__) but no CI enforcement workflow yet + - ✅ 0 findings `ASan/UBSan/LSan `__, + `TSan `__ - ❌ Open * - Logging @@ -605,6 +613,7 @@ See :ref:`verification_workflows`. - ✅ Available (1 test) `reference_integration `__ (cross-module) - ❌ Open - ❌ Open + - ❌ Open * - Orchestrator - ✅ Available (2 tests) @@ -613,6 +622,7 @@ See :ref:`verification_workflows`. - ✅ Available (3 tests) `reference_integration `__ (cross-module) - ✅ 0 findings `Clippy `__ - ❌ Open + - ❌ Open * - Persistency - ✅ Available (138 tests) @@ -623,6 +633,7 @@ See :ref:`verification_workflows`. - ✅ Available (6 tests) `reference_integration `__ (cross-module) - ✅ 0 findings `Clippy `__ - ❌ Open + - ❌ Open * - Time - ✅ Available (296 tests) @@ -631,6 +642,7 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open * - Config Mgmt - ✅ Available (143 tests) @@ -639,6 +651,7 @@ See :ref:`verification_workflows`. - ❌ Open - ✅ 0 findings `clang-tidy `__ - ❌ Open + - ❌ Open * - Lifecycle - ✅ Available (2 tests) @@ -649,6 +662,7 @@ See :ref:`verification_workflows`. - ❌ Open - ✅ 0 findings `Clippy `__ - ❌ Open + - ❌ Open * - Security/Crypto - ❌ Open @@ -657,6 +671,7 @@ See :ref:`verification_workflows`. - ❌ Open - ❌ Open - ❌ Open + - ❌ Open Done Criteria ************* From 616f647cc7d341ba960a36cbdfb15e514078f1b7 Mon Sep 17 00:00:00 2001 From: Anton Krivoborodov <63401640+antonkri@users.noreply.github.com> Date: Wed, 13 May 2026 14:13:31 +0000 Subject: [PATCH 19/19] style: expand content width on feature_and_process_status page for wide screens Add wide-content-page body class via raw HTML injection and corresponding CSS rule to remove the 60em max-width cap on the bd-article-container for that page only. This prevents the large empty margins on wide/external monitors while leaving all other pages unaffected. --- process/_assets/custom.css | 5 +++++ process/standards/feature_and_process_status.rst | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/process/_assets/custom.css b/process/_assets/custom.css index 5ae5059d1c..63c9c7dd0a 100644 --- a/process/_assets/custom.css +++ b/process/_assets/custom.css @@ -208,3 +208,8 @@ display: block; margin: 0 auto; } + +/* Wider content area for pages that opt in via the "wide-content-page" body class */ +body.wide-content-page .bd-content .bd-article-container { + max-width: 100%; +} \ No newline at end of file diff --git a/process/standards/feature_and_process_status.rst b/process/standards/feature_and_process_status.rst index 5ade5c0914..b35ad0cf88 100644 --- a/process/standards/feature_and_process_status.rst +++ b/process/standards/feature_and_process_status.rst @@ -12,6 +12,10 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +.. raw:: html + + + Feature and Process Status ##########################