From 8ba68c18c9ff79e0b5cb26ef1a7b4c35ac1d5d79 Mon Sep 17 00:00:00 2001 From: aschemmel-git Date: Fri, 13 Dec 2024 16:02:46 +0100 Subject: [PATCH] docs: add process roles Issue-ref: resolves #87 --- docs/_extensions/metamodel.py | 147 +++++++++++++++++++++++++++++++++- docs/process/index.rst | 15 ++++ docs/process/roles/index.rst | 19 +++++ docs/process/roles/roles.rst | 138 +++++++++++++++++++++++++++++++ 4 files changed, 318 insertions(+), 1 deletion(-) create mode 100644 docs/process/roles/index.rst create mode 100644 docs/process/roles/roles.rst diff --git a/docs/_extensions/metamodel.py b/docs/_extensions/metamodel.py index c8d29887..b979936a 100644 --- a/docs/_extensions/metamodel.py +++ b/docs/_extensions/metamodel.py @@ -29,6 +29,91 @@ color="#BFD8D2", style="node", ), + # Process + dict( + directive="req", # = std_req + title="Requirement", + prefix="R_", + color="#BFD8D2", + style="node", + ), + dict( + directive="role", # = Einzelne Leute der Codeowner Gruppe + title="Role", + prefix="RL_", + color="#DCB239", + style="actor", + ), + dict( + directive="team", # = Codeowners + title="Team", + prefix="TE_", + color="#DCB239", + style="node", + ), + dict( + directive="workproduct", # = work_product + title="Workproduct", # = Work Product + prefix="WP__", + color="#DDDD00", + style="artifact", + ), + dict( + directive="workflow", + title="Workflow", + prefix="WF__", + color="#FFFF00", + style="process", + ), + dict( + directive="process", + title="Process", + prefix="PR__", + color="#DCB239", + style="frame", + ), + dict( + directive="guidance", + title="Guidance", + prefix="GD__", + color="#DCB239", + style="file", + ), + dict( + directive="gd_req", + title="Process Requirement", + prefix="GD_REQ__", + color="#DCB239", + style="file", + ), + dict( + directive="gd_temp", + title="Process Template", + prefix="GD_TEMP__", + color="#DCB239", + style="file", + ), + dict( + directive="gd_chklst", + title="Process Checklist", + prefix="GD_CHKLST__", + color="#DCB239", + style="file", + ), + dict( + directive="gd_guidl", + title="Process Guideline", + prefix="GD_GUIDL__", + color="#DCB239", + style="file", + ), + dict( + directive="document", + title="Document", + prefix="DOC__", + color="#DCB239", + style="file", + ), ] # Define extra options for needs object @@ -54,5 +139,65 @@ "style_start": "-up", "style_end": "->", }, - {"option": "implements", "incoming": "implements by", "outgoing": "implements"}, + { + "option": "implements", + "incoming": "implements by", + "outgoing": "implements", + }, + # process links + { # team -> role + "option": "contains", + "incoming": "is part of", + "outgoing": "consists of", + }, + { # workflow -> role + "option": "responsible", + "incoming": "is reponsible for", + "outgoing": "responsible", + }, + { # workflow -> role + "option": "approver", + "incoming": "is approver for", + "outgoing": "approving", + }, + { # workflow -> role + "option": "supporter", + "incoming": "is supporter for", + "outgoing": "supporting", + }, + { # process -> role + "option": "owner", + "incoming": "is process owner for", + "outgoing": "process owner", + }, + { # process -> workflow + "option": "includes", + "incoming": "is included in", + "outgoing": "includes workflow", + }, + { # workflow -> workproduct + "option": "output", + "incoming": "is output from", + "outgoing": "has output", + }, + { # workflow -> workproduct + "option": "input", + "incoming": "is input from", + "outgoing": "has input", + }, + { # workflow -> guidance + "option": "guidance", + "incoming": "is guiding", + "outgoing": "has guidance", + }, + { # workproduct -> req + "option": "compliance-wp", + "incoming": "complies to", + "outgoing": "is complying with", + }, + { # guidance -> req + "option": "compliance-gd", + "incoming": "complies to", + "outgoing": "is complying with", + }, ] diff --git a/docs/process/index.rst b/docs/process/index.rst index a92958c1..1ac97f29 100644 --- a/docs/process/index.rst +++ b/docs/process/index.rst @@ -19,6 +19,21 @@ Process Processes are the basis to describe the way of working within the SCORE project. +Roles +----- +Persons are assigned to roles and these describe the person's activities within a workflow. +Especially if the role is responsible for performing, approving or supporting a workflow. +This is realized by the respective links between role and workflow. + +Role definition +~~~~~~~~~~~~~~~ + +.. toctree:: + :maxdepth: 1 + :glob: + + roles/index.rst + Requirements engineering ------------------------ A key process is the Requirements engineering, which is for defining, documenting, and maintaining requirements within our SCORE project. diff --git a/docs/process/roles/index.rst b/docs/process/roles/index.rst new file mode 100644 index 00000000..3b3495c5 --- /dev/null +++ b/docs/process/roles/index.rst @@ -0,0 +1,19 @@ +.. + # ******************************************************************************* + # Copyright (c) 2024 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + + roles diff --git a/docs/process/roles/roles.rst b/docs/process/roles/roles.rst new file mode 100644 index 00000000..ffa26fab --- /dev/null +++ b/docs/process/roles/roles.rst @@ -0,0 +1,138 @@ +.. + # ******************************************************************************* + # Copyright (c) 2024 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Roles +===== + +SCORE Management Roles +---------------------- + +.. role:: Project Lead + :id: RL_project_lead + :status: valid + :tags: project_management + + The Project Leads decide about strategy, addition of modules and election of all other roles. + +.. role:: Technical Lead + :id: RL_technical_lead + :status: valid + :tags: project_management + :contains: RL_committer + + The Technical Leads approve feature requests and perform the project management on SCORE platform level. + +.. role:: Safety Manager + :id: RL_safety_manager + :status: valid + :tags: safety_management + :contains: RL_committer + + The safety managers support the planning, development and coordination of the safety activities, i.e. the safety management. + +.. role:: Quality Manager + :id: RL_quality_manager + :status: valid + :tags: quality_management + :contains: RL_committer + + The quality managers shall be responsible for the planning and coordination of the quality activities, i.e. the quality management. + +.. role:: Security Manager + :id: RL_security_manager + :status: draft + :tags: quality_management + :contains: RL_committer + + The security managers shall be responsible for the planning and coordination of the security activities. + +.. role:: Module Project Lead + :id: RL_module_lead + :status: valid + :tags: project_management + :contains: RL_committer + + The module Project Leads perform the project management on module level. If a module is developed in a sub-project of SCORE they have the eclipse project lead role for this. + +SCORE process roles +------------------- + +.. role:: Process Community Member + :id: RL_process_community + :status: valid + :tags: process_management + :contains: RL_committer + + The process community members are responsible for the definition of the process architecture of the project integrated management system and how they processes interact. + The approval and release of the process is done by the safety, quality and security managers and the technical leads (for the parts which affect them). + +SCORE development roles +----------------------- + +.. role:: Infrastructure Tooling Community Member + :id: RL_infrastructure_tooling_community + :status: valid + :tags: development + :contains: RL_committer + + The infrastructure and tooling community members are responsible for the infrastructure and tooling setup for development namely github, bazel, sphinx-needs, but also the rest of the tool chain. + +.. role:: Contributor + :id: RL_contributor + :status: valid + + (Eclipse) Open Source Role, person(s) who provide(s) possible contribution(s) as pull request(s) to the main line. + Any contributor which contributes code, tests or documentation to SCORE. + + .. note:: + Follows the processes defined by the :need:`RL_process_community` + +.. role:: Committer + :id: RL_committer + :status: valid + :tags: safety + + (Eclipse) Open Source Role, person(s) who accept(s) possible contribution(s) as pull request(s) to the main line and maintains the product. + + .. note:: + Defines and enforces processes. + +SCORE cross functional teams +---------------------------- + +.. team:: Platform Team + :id: TE_platform_team + :status: valid + :tags: cross_functional + :contains: RL_technical_lead, RL_safety_manager, RL_quality_manager, RL_security_manager, RL_contributor, RL_committer, RL_infrastructure_tooling_community, RL_process_community + + The platform team is responsible for all artefacts within the platform SEooC. Additionally it is also responsible for the overall process including its support by tooling. + +.. team:: Module Team + :id: TE_module_team + :status: valid + :tags: cross_functional + :contains: RL_module_lead, RL_safety_manager, RL_quality_manager, RL_security_manager, RL_contributor, RL_committer + + The module team is responsible for all artefacts within the module SEooCs. Each module has only one responsible team but a team may also be responsible for several (small) modules. + +SCORE external roles +-------------------- + +.. role:: External Assessor + :id: RL_external_assessor + :status: valid + :tags: safety_management + + The external assessor performs safety confirmation measures like safety audit, assessment and confirmation reviews.