Module Structure Overview#
As described in the Technology Overview chapter, Eclipse S-CORE consists of multiple bazel modules, typically stored in separate repositories. Most modules reside in the Eclipse S-CORE GitHub organization, while some originate from other Eclipse projects and are reused here. This chapter introduces the most important bazel modules and repositories in Eclipse S-CORE GitHub organization.
Eclipse S-CORE Platform#
GitHub Link: eclipse-score/score
This is the central repository of the project. It contains:
stakeholder requirements
Assumptions of Use (AoUs) for potential users
the list of platform features
the high-level architecture
the decomposition of the architecture into modules
the definition of logical interfaces and module functionality
Process Description#
GitHub Link: eclipse-score/process_description
Hint
We automatically generate for every repository html documentation from rst files. You can easily open it as shown at the picture below.
The process repository describes the Eclipse S-CORE software development process. It describes:
the general concepts and principles of the Eclipse S-CORE software development process
all process areas in detail
how work products such as requirements and architecture must be specified
PMP describes, how the processes are deployed within S-CORE Project Management Plan
Doc-as-Code#
GitHub Link: eclipse-score/docs-as-code
Doc-as-code repository provides the tooling around sphinx and sphinx-needs framework, including:
traceability between requirements, architecture, and tests
linking process artefacts
checks that validate the Eclipse S-CORE metamodel, as defined in the process description
The implementation status of tooling requirements is available in the Tool Requirements Overview.
Tooling#
GitHub Link: eclipse-score/tooling
Tooling repository collects all supporting tools for the Eclipse S-CORE project, e.g., format_checkers.
Toolchains and bazel platform#
GitHub Link:
These repositories define toolchains (gcc/qnx/rust) including compiler and linker flags used to build the Eclipse S-CORE software. The repository called “bazel platforms” defines the platforms supported by Eclipse S-CORE (e.g., x86_64-qnx), as shown in the following BUILD file.
Bazel Registry#
GitHub Link: eclipse-score/bazel_registry
Bazel registry is essential for publishing official releases of all Eclipse S-CORE bazel modules. It enables consistent and reliable module referencing across the entire project.
Software Modules#
GitHub Link (e.g. for baselibs): eclipse-score/baselibs
Each software module is a bazel module stored in its own repository. Software modules typically include:
component requirements and architecture
detailed design
implementation
unit- and component tests
documentation
Modules usually depend on other modules in the Eclipse S-CORE GitHub organization, especially on
eclipse-score module to reference feature requirements and architecture in the component requirements and architecture
eclipse-score/docs-as-code module for sphinx/sphinx-needs framework and tooling around it
toolchains modules for the compiler toolchains.
Reference Integration#
GitHub Link: eclipse-score/reference_integration
This repository is a key part of the Eclipse S-CORE project. All Eclipse S-CORE modules are integrated together to ensure, that they match to each other. It integrates all software modules into reference images (e.g., a qnx x86 image) to verify that:
all module dependencies are consistent
modules work correctly together
feature requirements are fulfilled
Feature integration tests are executed on these reference images to validate the complete platform.