Skip to content

Systems WG development process

Philipp Ahmann edited this page Aug 27, 2024 · 3 revisions

This page is a draft page and will be transferred from wiki to main repo for full review and proper documentation.

Further work is processed in the the wg-systems repo under Documentation. The work starts with PR #16 https://github.com/elisa-tech/wg-systems/pull/16

Motivation

The page describes the process, tools and artifacts needed, created and involved in the creation of an example system in a process regulated environment like Aerospace, Medical or Automotive. It should illustrate how deliveries from the different ELISA working groups can be integrated into an example system and what is needed to create an example system. This should serve as a blueprint for others.

The topic is triggered by different threads from within ELISA project discussions:

  • June workshop wrap up slide 3 ["Formalize the development/integration process of how the kernel community operates also for end user integration as a standard"](Formalize the development/integration process of how the kernel community operates also for end user integration as a standard)
  • Touched this point also in a process spread sheet already in 2020

Involved Tools/Infrastructure

In order to create and process work products there is a demand for an infrastructure and tools. Within the ELISA systems WG different tools are utilized (or considered) for different purposes. These tools should be used whenever a change happens. This can also mean to change from nothing to a start.

ELISA infrastructure

  • GitHub (sources, documentation, review)
  • GitLab (CI)
  • openQA (Testing)
  • Basil (traceability)
  • yocto (build & SBOM)
    • other tools e.g. for Xen and Zephyr...
  • qemu (example system emulator)
  • Docker

2nd level infrastructure (under the hood)

  • compiler
  • linting
  • testing tools

Artifacts/Work products

  • Requirements
  • Design documents
  • Source code
  • Testing results
  • Review records
  • Traceability matrix
  • Defects/Issues
  • Functional requests

Artifact classes

  • Plan
  • Process (-> a bit of it in this description)
  • Guideline
    • e.g. Coding
  • Checklist
  • Templates
  • Reports
  • Confirmation report

Related:

  • Role definition
    • Role enforcement

Tools and their role

Tool Responsibility Sub-Tool Other examples Linux Kernel equivalent
GitHub Source Code, Documentation, Requirements, Issues Git GitLab, Git git.kernel.org
Gitlab CI, Build Artifact Storage yocto, docker, qemu kernelci.org

How the Linux kernel process looks like.

Many elements which are common sense as part of the Linux Kernel development use a long established process. They may differ from the development of Open Source components put on top of the Linux Kernel and base system. The documentation of the ELISA systems WG process for the example system brings in the perspective of utilizing "a Linux kernel" with "a Linux core system" to develop applications on top. The next section describes equivalents to the

  • LKML
  • checkpatch
  • maintainers file
  • release cycles
  • KernelCI, test bots
  • manpages
  • Documentation
Clone this wiki locally