diff --git a/docs/_assets/css/score.css b/docs/_assets/css/score.css new file mode 100644 index 00000000000..e4cc591a0c0 --- /dev/null +++ b/docs/_assets/css/score.css @@ -0,0 +1,44 @@ +/* ******************************************************************************* + * Copyright (c) 2026 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 + * ******************************************************************************* + * + * Overrides the default purple S-CORE secondary color (#2D1942). + */ + +html[data-theme="light"], +html[data-theme="dark"] { + --pst-color-secondary: #2D1942; +} + +/* Card body — dark background with white text */ +.score-grid .sd-card-body { + background-color: var(--pst-color-secondary); + text-align: justify; + --pst-color-text-base: #ffffff; + --pst-color-link: #ffffff; + --pst-color-link-hover: #ffffff; + color: #ffffff !important; +} + +html body .score-grid .sd-card .sd-card-body, +html body .score-grid .sd-card .sd-card-body p, +html body .score-grid .sd-card .sd-card-body a, +html body .score-grid .sd-card .sd-card-body a:hover, +html body .score-grid .sd-card .sd-card-body a:visited, +html body .score-grid .sd-card .sd-card-body * { + color: #ffffff !important; +} + +/* Hide the right sidebar container when it has no items */ +.bd-sidebar-secondary:has(.sidebar-secondary__inner:empty) { + display: none; +} diff --git a/docs/conf.py b/docs/conf.py index 5690729f596..1e6e5073d36 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,5 +1,5 @@ # ******************************************************************************* -# Copyright (c) 2024 Contributors to the Eclipse Foundation +# Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -24,3 +24,22 @@ "sphinxcontrib.plantuml", "score_sphinx_bundle", ] + +# Hide both sidebars on the handbook landing page (left: html_sidebars, right: secondary_sidebar_items) +html_sidebars = { + "handbook/index": [], +} + +html_theme_options = { + "secondary_sidebar_items": { + "handbook/index": [], + "**": ["page-toc", "edit-this-page", "sourcelink"], + }, +} + +# Make _assets available as Sphinx static files root +html_static_path = ["_assets"] + + +def setup(app): + app.add_css_file("css/score.css", priority=600) diff --git a/docs/contribute/ci/index.rst b/docs/contribute/ci/index.rst index bd854b1789c..90ed63d7684 100644 --- a/docs/contribute/ci/index.rst +++ b/docs/contribute/ci/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/contribution_request/feature_request.rst b/docs/contribute/contribution_request/feature_request.rst index 13bc0f636a7..8eb41133152 100644 --- a/docs/contribute/contribution_request/feature_request.rst +++ b/docs/contribute/contribution_request/feature_request.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/contribution_request/index.rst b/docs/contribute/contribution_request/index.rst index 1a7e73145d5..e64247ca9f1 100644 --- a/docs/contribute/contribution_request/index.rst +++ b/docs/contribute/contribution_request/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/development/index.rst b/docs/contribute/development/index.rst index 2cb371a6ce9..4e0e68a6a94 100644 --- a/docs/contribute/development/index.rst +++ b/docs/contribute/development/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/development/rust/certification/index.rst b/docs/contribute/development/rust/certification/index.rst index c9b484270ab..db74a38ff50 100644 --- a/docs/contribute/development/rust/certification/index.rst +++ b/docs/contribute/development/rust/certification/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/development/rust/certification/toolchain/index.rst b/docs/contribute/development/rust/certification/toolchain/index.rst index 6fcd8239278..5b152c768de 100644 --- a/docs/contribute/development/rust/certification/toolchain/index.rst +++ b/docs/contribute/development/rust/certification/toolchain/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/development/rust/certification/tools/index.rst b/docs/contribute/development/rust/certification/tools/index.rst index 3cf46bfae4e..ee86185fab9 100644 --- a/docs/contribute/development/rust/certification/tools/index.rst +++ b/docs/contribute/development/rust/certification/tools/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/documentation/assets/docs-as-code/example.puml b/docs/contribute/documentation/assets/docs-as-code/example.puml index e065743ca80..f432202c1df 100644 --- a/docs/contribute/documentation/assets/docs-as-code/example.puml +++ b/docs/contribute/documentation/assets/docs-as-code/example.puml @@ -1,6 +1,6 @@ /' # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/documentation/docs-as-code.rst b/docs/contribute/documentation/docs-as-code.rst index ad1f9c8e5b1..d75748739df 100644 --- a/docs/contribute/documentation/docs-as-code.rst +++ b/docs/contribute/documentation/docs-as-code.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/documentation/index.rst b/docs/contribute/documentation/index.rst index 64fd22b4e5a..9d9583ce8ea 100644 --- a/docs/contribute/documentation/index.rst +++ b/docs/contribute/documentation/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/general/folder.rst b/docs/contribute/general/folder.rst index 0ff53f83982..44b92e509b0 100644 --- a/docs/contribute/general/folder.rst +++ b/docs/contribute/general/folder.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/general/git.rst b/docs/contribute/general/git.rst index d4b743df52d..26c66663651 100644 --- a/docs/contribute/general/git.rst +++ b/docs/contribute/general/git.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/general/index.rst b/docs/contribute/general/index.rst index ca99824c62e..c80d508c1f0 100644 --- a/docs/contribute/general/index.rst +++ b/docs/contribute/general/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/general/naming.rst b/docs/contribute/general/naming.rst index cf404254457..fb4a619b703 100644 --- a/docs/contribute/general/naming.rst +++ b/docs/contribute/general/naming.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/contribute/index.rst b/docs/contribute/index.rst index 12235863c7b..6390a471c50 100644 --- a/docs/contribute/index.rst +++ b/docs/contribute/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/analysis-infra/index.rst b/docs/features/analysis-infra/index.rst index aa5fede9d22..0ef241d5a32 100644 --- a/docs/features/analysis-infra/index.rst +++ b/docs/features/analysis-infra/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/analysis-infra/logging/index.rst b/docs/features/analysis-infra/logging/index.rst index c4d18369c2e..f8be4dd09ce 100644 --- a/docs/features/analysis-infra/logging/index.rst +++ b/docs/features/analysis-infra/logging/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/analysis-infra/logging/mw-fr_logging_DD_Input.rst_tmp b/docs/features/analysis-infra/logging/mw-fr_logging_DD_Input.rst_tmp index 2576579d70a..0407256a983 100644 --- a/docs/features/analysis-infra/logging/mw-fr_logging_DD_Input.rst_tmp +++ b/docs/features/analysis-infra/logging/mw-fr_logging_DD_Input.rst_tmp @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/analysis-infra/tracing/index.rst b/docs/features/analysis-infra/tracing/index.rst index cbc2d0e33ae..0c2f8e9346c 100644 --- a/docs/features/analysis-infra/tracing/index.rst +++ b/docs/features/analysis-infra/tracing/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/analysis-infra/tracing/mw-fr_tracing.rst_tmp b/docs/features/analysis-infra/tracing/mw-fr_tracing.rst_tmp index e7d1cf8c96e..3b4e218bdc6 100644 --- a/docs/features/analysis-infra/tracing/mw-fr_tracing.rst_tmp +++ b/docs/features/analysis-infra/tracing/mw-fr_tracing.rst_tmp @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/index.rst b/docs/features/communication/index.rst index 460c6fd7538..bcb9b7624d6 100644 --- a/docs/features/communication/index.rst +++ b/docs/features/communication/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/ipc/docs/architecture/_assets/dyn_arch.puml b/docs/features/communication/ipc/docs/architecture/_assets/dyn_arch.puml index a3b9848b381..25d4a459b7c 100644 --- a/docs/features/communication/ipc/docs/architecture/_assets/dyn_arch.puml +++ b/docs/features/communication/ipc/docs/architecture/_assets/dyn_arch.puml @@ -1,6 +1,6 @@ /' # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/ipc/docs/requirements/index.rst b/docs/features/communication/ipc/docs/requirements/index.rst index b3c522c2e3a..c640775e142 100644 --- a/docs/features/communication/ipc/docs/requirements/index.rst +++ b/docs/features/communication/ipc/docs/requirements/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/ipc/docs/roadmap.rst b/docs/features/communication/ipc/docs/roadmap.rst index 8fff481af88..9327ddeac38 100644 --- a/docs/features/communication/ipc/docs/roadmap.rst +++ b/docs/features/communication/ipc/docs/roadmap.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/ipc/index.rst b/docs/features/communication/ipc/index.rst index 9cadc167b6f..5cbff7e592c 100644 --- a/docs/features/communication/ipc/index.rst +++ b/docs/features/communication/ipc/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/some_ip_gateway/architecture/index.rst b/docs/features/communication/some_ip_gateway/architecture/index.rst index daffdcbb409..4ea5c3aaf68 100644 --- a/docs/features/communication/some_ip_gateway/architecture/index.rst +++ b/docs/features/communication/some_ip_gateway/architecture/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/some_ip_gateway/index.rst b/docs/features/communication/some_ip_gateway/index.rst index b3cdd2c51eb..7373a93a7c9 100644 --- a/docs/features/communication/some_ip_gateway/index.rst +++ b/docs/features/communication/some_ip_gateway/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/communication/some_ip_gateway/requirements/index.rst b/docs/features/communication/some_ip_gateway/requirements/index.rst index c47c740517e..80f90b86933 100644 --- a/docs/features/communication/some_ip_gateway/requirements/index.rst +++ b/docs/features/communication/some_ip_gateway/requirements/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/configuration/config_mgmt/requirements/index.rst b/docs/features/configuration/config_mgmt/requirements/index.rst index 9966421b9a2..fc4b15ed3e5 100644 --- a/docs/features/configuration/config_mgmt/requirements/index.rst +++ b/docs/features/configuration/config_mgmt/requirements/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/configuration/index.rst b/docs/features/configuration/index.rst index bc1c8865541..64b989e6cc2 100644 --- a/docs/features/configuration/index.rst +++ b/docs/features/configuration/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/frameworks/index.rst b/docs/features/frameworks/index.rst index 03a47af3677..6d194b5bd70 100644 --- a/docs/features/frameworks/index.rst +++ b/docs/features/frameworks/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/index.rst b/docs/features/index.rst index d8f647937c5..d2c48351686 100644 --- a/docs/features/index.rst +++ b/docs/features/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/lifecycle/architecture/external_monitoring.rst b/docs/features/lifecycle/architecture/external_monitoring.rst index d258c9b3446..8faadd5a5b3 100644 --- a/docs/features/lifecycle/architecture/external_monitoring.rst +++ b/docs/features/lifecycle/architecture/external_monitoring.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/lifecycle/architecture/health_monitor.rst b/docs/features/lifecycle/architecture/health_monitor.rst index deef630097d..dbb7b1f84ba 100644 --- a/docs/features/lifecycle/architecture/health_monitor.rst +++ b/docs/features/lifecycle/architecture/health_monitor.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/lifecycle/architecture/launch_manager_configuration.rst b/docs/features/lifecycle/architecture/launch_manager_configuration.rst index c93b6e2d1f7..c1c0fcc81b7 100644 --- a/docs/features/lifecycle/architecture/launch_manager_configuration.rst +++ b/docs/features/lifecycle/architecture/launch_manager_configuration.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/persistency/safety_analysis/dfa.rst b/docs/features/persistency/safety_analysis/dfa.rst index d12e39acf52..6857e181d12 100644 --- a/docs/features/persistency/safety_analysis/dfa.rst +++ b/docs/features/persistency/safety_analysis/dfa.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/persistency/safety_analysis/fmea.rst b/docs/features/persistency/safety_analysis/fmea.rst index 98fae6189ed..c068f5d6840 100644 --- a/docs/features/persistency/safety_analysis/fmea.rst +++ b/docs/features/persistency/safety_analysis/fmea.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/features/persistency/security_analysis/stride.rst b/docs/features/persistency/security_analysis/stride.rst index bbc48a7b18c..9f54b6c917c 100644 --- a/docs/features/persistency/security_analysis/stride.rst +++ b/docs/features/persistency/security_analysis/stride.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/handbook/_assets/release_integration_concept.drawio.svg b/docs/handbook/_assets/release_integration_concept.drawio.svg index 2e7bee4fac7..610507d0b7b 100644 --- a/docs/handbook/_assets/release_integration_concept.drawio.svg +++ b/docs/handbook/_assets/release_integration_concept.drawio.svg @@ -1,4 +1,90 @@ - - -

Module 1
Module 2
Iterative development
on main
main
main
release tag
v 1.2
release tag
v 1.5
- gcc compilation
- qcc compilation
- unit-test exection
- detailed design checks
- static analysis checks
- dynamic analysis checks
- component integration test
- ...
active development of components
automated integration gate (on software module level)
Reference integration repo
main
PR to update bazel registry
PR to update bazel registry
Bazel registry
main
S-Core release
v0.5
Creation of release documentation
S-Core release
v1.0
Bazel registry gets updated with new version,
that is now available to everyone else

Integration Gate
S-Core releases
Components are encouraged to follow the S-Core development process during the normal development cycle and run exactly same checks, that I-Gate is running but not forced to it.
Number of manual reviews should decrease with time ideally to 0 and number of automated checks should go higher
Manual reviews
Automated Checks
Iterative development
on main
Iterative development
on main
Iterative development
on main
Iterative development
on main
Iterative development
on main
Iterative development
on main
Iterative development
on main
Committer
Committer, responsible for the software module,  creates a software module release
Automated I-Gate allows creation of release tag only if all automated checks are green
Committer
Committer, responsible for the software module, creates a PR to update bazel registry repo (should by automated later)
- Architecture Review Checklist
- Requirements Review Checklist
- Detailed Design Review Checklist
- Safety Analysis
- ...
Manual Reviews
- PRs needs to be approved by Safety Manager, Security Manager, Quality Manager and finally by S-Core Project Lead (TL)
Committer
Committer, responsible for the software module,  creates a PR in reference integration repo
- PR needs to be approved by S-Core Project Lead (TL)
- feature integration tests with multiple reference images
PR to update to newer version of module. 
PR to update to newer version of module. 
update of bazel registry
automated integration gate (on feature level level)
Creation of release documentation
S-Core PL
S-Core PL together with Safety Manager, Security Manager and Quality Manager creates release documentation
- Module tests are executed with dependencies, that are set in  reference integration repo. Original module dependencies, e.g. git_overrides, will be overwritten.
\ No newline at end of file + + + + + + + + + +Integration Process +— Software Module Level — + + + + +① Software Module Development +• Iterative development on the module's main branch +• Each module is maintained in its own GitHub repository +• Modules are encouraged to follow the S-CORE development process from the start + + + + + +② Automated Integration Gate (module level) +• Compilation with gcc and qcc toolchains +• Unit test execution +• Detailed design and requirements checks +• Static and dynamic analysis +• Component integration tests +✔ Release tag is created automatically once all checks pass + + + + + +③ PR to Bazel Registry +• Committer creates a pull request to add the new module version to the Bazel registry +• This makes the module a candidate for S-CORE-wide integration + +— Manual Review — + + + + +④ Manual Reviews +• Architecture Review Checklist +• Requirements Review Checklist +• Detailed Design Review Checklist +• Safety Analysis +Approvers: Safety Manager · Security Manager · Quality Manager · Project Lead (TL) + +— Integration Level — + + + + +⑤ Bazel Registry Updated +• PR is approved and merged into the Bazel registry +• New module version is now available to all S-CORE projects + + + + + +⑥ PR to Reference Integration +• Committer creates a PR in the Reference Integration repository +• Module is tested together with all other S-CORE modules on reference images +Approver: S-CORE Project Lead (TL) + + + + + +⑦ Automated Integration Gate (feature level) +• Feature integration tests executed on reference images (QNX x86, ...) +• Module dependencies are taken from the reference integration repository +• Validates correct implementation of all feature requirements + +— Release — + + + + +⑧ S-CORE Release +• Release documentation created by the Project Lead +• Sign-off by Safety Manager, Security Manager, and Quality Manager +• New S-CORE platform version is published + \ No newline at end of file diff --git a/docs/handbook/_assets/score_tooling.drawio.svg b/docs/handbook/_assets/score_tooling.drawio.svg new file mode 100644 index 00000000000..98182c43782 --- /dev/null +++ b/docs/handbook/_assets/score_tooling.drawio.svg @@ -0,0 +1,107 @@ + + + + + + +S-CORE Tooling Overview +Requirements & Design +Verification + + +Stakeholder +Requirements + + +System Verification + + +Feature Req. +& Architecture + + +Feature +Verification + + +Component Req. +& Architecture + + +Component Verification + + +Detailed Design + + +Unit Verification + + + +Implementation +powered by Bazel + + + + + + + + + + + + + +sphinx-needs + + +PlantUML + + +sphinx-needs + + +PlantUML + + +sphinx-needs + + +draw.io + + +sphinx-needs + + +ITF + + +ITF + + +ITF + + +GoogleTest + +Rust Test + + +GitHub Actions +fully automated + + + + + + + + + + + + Rust + + diff --git a/docs/handbook/_assets/score_tooling.svg b/docs/handbook/_assets/score_tooling.svg deleted file mode 100644 index 8e72c95c57b..00000000000 --- a/docs/handbook/_assets/score_tooling.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Component
Detailed Design
Feature 
Requirements & 
Architecture
Stakeholder 
Requirements
Verification
Implementation
ITF
[Integration Testing
Framework]
DrawIO
powered by
Bazel
SW Unit
Verification
Component 
Requirements & 
Architecture
PlantUML
\ No newline at end of file diff --git a/docs/handbook/building_simple_application/building_source_code.rst b/docs/handbook/building_simple_application/building_source_code.rst index 30f65b7a910..ef3fa33188f 100644 --- a/docs/handbook/building_simple_application/building_source_code.rst +++ b/docs/handbook/building_simple_application/building_source_code.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -12,15 +12,11 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +.. _building_source_code: + Building source code ===================== -.. toctree:: - :maxdepth: 1 - :glob: - -.. _building_source_code: - Now that we have added the documentation for our component, we can continue by adding some source code (as shown in the following `commit `_). @@ -141,9 +137,9 @@ file as well, as shown below: .. code-block:: python :linenos: - bazel_dep(name = "score-baselibs", version = "0.1.1") + bazel_dep(name = "score_baselibs", version = "0.1.3") - bazel_dep(name = "communication", version = "0.1.1") + bazel_dep(name = "score_communication", version = "0.1.0") .. code-block:: python :linenos: @@ -152,19 +148,11 @@ file as well, as shown below: bazel_dep(name = "score_bazel_platforms", version = "0.0.2") - # TRLC dependency for requirements traceability - bazel_dep(name = "trlc", version = "0.0.0") - git_override( - module_name = "trlc", - commit = "ede35c4411d41abe42b8f19e78f8989ff79ad3d8", - remote = "https://github.com/bmw-software-engineering/trlc.git", - ) +In addition to the previously mentioned modules, we also need to add some transitive dependencies. -In addition to the previously mentioned modules, we also need to add some modules, as listed above. +The scrample application does not use these modules directly, but the modules it depends on do. For example: -The scrample application does not use these modules directly, but the modules it depends on do. For example: -- *platforms* and *score_bazel_platforms* are required by the qnx_toolchain module -- *tlrc* is required by the *communication* module +- *platforms* and *score_bazel_platforms* are required by the qnx toolchain module Bazel modules don’t inherit transitive dependencies automatically. This means that you must always list all required module dependencies explicitly in your *MODULE.bazel* file. diff --git a/docs/handbook/building_simple_application/cicd_workflows.rst b/docs/handbook/building_simple_application/cicd_workflows.rst index 5925b50003f..4df26266019 100644 --- a/docs/handbook/building_simple_application/cicd_workflows.rst +++ b/docs/handbook/building_simple_application/cicd_workflows.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -15,17 +15,12 @@ CI/CD Workflows ================ -.. toctree:: - :maxdepth: 1 - :glob: +After successfully building the scrample binary, we need to ensure that future changes do not break the build. -After successfully building the scrample binary, we need to ensure, that future changes do not breakt the build. - -To achieve this, we create a CI/CD workflow that triggers a `GitHub action `_ -to build the scrample application whenever a new PR is opened. - -To achieve this, first create a workflow file named `build.yml `_ -in the .github folder. +To achieve this, create a CI/CD workflow that triggers a `GitHub action `_ +to build the scrample application whenever a new PR is opened. Start by creating a workflow file named +`build.yml `_ +in the ``.github/workflows/`` folder. Then fill the workflow file with the following content: diff --git a/docs/handbook/building_simple_application/doc_generation.rst b/docs/handbook/building_simple_application/doc_generation.rst index fc0f3ad2aad..23c5f3bb377 100644 --- a/docs/handbook/building_simple_application/doc_generation.rst +++ b/docs/handbook/building_simple_application/doc_generation.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -15,10 +15,6 @@ Documentation generation ========================== -.. toctree:: - :maxdepth: 1 - :glob: - Introduction --------------- As described in the :ref:`Overview of technologies ` chapter, @@ -27,7 +23,7 @@ Elements of Eclipse S-CORE metamodel are represented as sphinx-needs objects. The integration of sphinx, sphinx-needs, and the Eclipse S-CORE-specific extensions is implemented in the repository: -- https://github.com/eclipse-score/docs-as-code/tree/main/docs +- `eclipse-score/docs-as-code `_ The following `documentation `_ provides a description of how the documentation can be created and built. Here, we will focus on a simple example. diff --git a/docs/handbook/building_simple_application/first_score_module.rst b/docs/handbook/building_simple_application/first_score_module.rst index a448d5397a7..bb1680301a0 100644 --- a/docs/handbook/building_simple_application/first_score_module.rst +++ b/docs/handbook/building_simple_application/first_score_module.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -15,13 +15,9 @@ First Eclipse S-CORE Module ================================= -.. toctree:: - :maxdepth: 1 - :glob: - Before starting, ensure you are an official contributor to the Eclipse S-CORE project. Otherwise, you will not have required permissions. Instructions can be found in -`Actions to ensure Proper Contribution Attribution in Eclipse Eclipse S-CORE `_. +`Actions to ensure Proper Contribution Attribution in Eclipse S-CORE `_. Once you have created an Eclipse account, accepted Eclipse Contributor Agreement (ECA), and linked your GitHub account with your Eclipse Account, @@ -38,7 +34,7 @@ After becoming part of Eclipse S-CORE GitHub organization, you can create a repo Repository creation follows Eclipse organizational rules. Most configuration is handled via `otterdog configuration `_ located in: -- https://github.com/eclipse-score/.eclipsefdn. +- `eclipse-score/.eclipsefdn `_ Create a private fork of this repository and modify the file: @@ -59,7 +55,7 @@ Add your repository definition, e.g.: description: "Incubation repository for ABI compatible data types feature", }, -Then, create a PR in the original https://github.com/eclipse-score/.eclipsefdn repository. The PR must be approved by: +Then, create a PR in the `eclipse-score/.eclipsefdn `_ repository. The PR must be approved by: - Eclipse S-CORE project lead - Eclipse Foundation Security Team @@ -85,9 +81,7 @@ Once merged, your new repository will appear in the Eclipse S-CORE GitHub organi :width: 500 :align: center -All repositories are created using the `Eclipse S-CORE repository template `: - -- . +All repositories are created using the `Eclipse S-CORE module template `_. The `README.md `_ file already explains the basic structure. Below is an overview of the most relevant files and folders. @@ -101,9 +95,17 @@ Contains CI/CD workflows (build, unit-tests, .vscode ------------------ -Provides Eclipse S-CORE recommended VS Code setup, including code completion patterns for requirements and architecture in +Provides Eclipse S-CORE recommended VS Code setup, including code completion patterns for requirements and architecture in `.vscode/restructuredtext.code-snippets `_. +.. tip:: + The Eclipse S-CORE project provides a ready-to-use + `Dev Container `_ + with all required tools pre-installed. + Open any module repository with the + `VS Code Dev Containers extension `_ + to skip manual toolchain setup entirely. + docs ----- @@ -114,13 +116,15 @@ Examples follow later in this guide. We try to describe most `common workflows `_ for developers. It is worth checking it. -src ------ -Self-explainatory: source code +score/ +------- +Source files and unit tests for the module. +Follows the naming convention ``score//``. -test ------ -Self-explainatory: tests +tests/ +------- +Component Integration Tests (CIT) and Feature Integration Tests (FIT). +See the :ref:`Technology Overview ` for details on test levels. .bazelrc @@ -169,13 +173,14 @@ Here, we´re making the first declaration of our module by defining a name and a Please be aware, that only after our module was published in the Eclipse S-CORE bazel registry, other modules can access it. Rename the module and replace *cpp_rust_template_repository* by *score_scrample*. +Use `semantic versioning `_ for the module version, starting at ``0.1.0``. .. code-block:: python :linenos: module( name = "score_scrample", - version = "1.0", + version = "0.1.0", ) Please be aware, according to Eclipse S-CORE´s naming convention all module names must start with *score\_* prefix. @@ -192,7 +197,7 @@ Please be aware, according to Eclipse S-CORE´s naming convention all module nam is_default = True, python_version = PYTHON_VERSION, ) - use_repo(python) + use_repo(python, "python_versions") # Add GoogleTest dependency bazel_dep(name = "googletest", version = "1.17.0") @@ -229,13 +234,20 @@ In upcoming chapters, we will talk about this in more detail. :linenos: # tooling - bazel_dep(name = "score_tooling", version = "1.0.1") + bazel_dep(name = "score_tooling", version = "1.0.5") + + # docs-as-code + bazel_dep(name = "score_docs_as_code", version = "2.3.3") - #docs-as-code - bazel_dep(name = "score_docs_as_code", version = "1.1.0") + # Rust linting and formatting policies + bazel_dep(name = "score_rust_policies", version = "0.0.3") -Finally, we add a dependency to Eclipse S-CORE native modules “*score_tooling*” and “*score_docs_as_code*”. -These enable documentation builds and tooling checks (e.g., license checker). +Finally, we add dependencies to Eclipse S-CORE native modules: + +- **score_tooling**: enables tooling checks such as copyright and license verification. +- **score_docs_as_code**: enables documentation builds with Sphinx and sphinx-needs. +- **score_rust_policies**: provides centralised Rust linting (clippy) and formatting (rustfmt) policies. + For C++ projects, use ``score_cpp_policies`` instead. .. tip:: Working across multiple modules and repositories can be challenging. Use the following approach during development: @@ -295,6 +307,30 @@ based on bazel rules implemented and imported from https://github.com/eclipse-sc source_dir = "docs", ) -Finally, the *docs* target builds all documentation in the .rst format, which is located in the +Finally, the *docs* target builds all documentation in the .rst format, which is located in the `docs `_ folder and all its subfolders. -This functionality is implemented in https://github.com/eclipse-score/docs-as-code module. +This functionality is implemented in `eclipse-score/docs-as-code `_. + + +project_config.bzl +------------------ +Every Eclipse S-CORE module must provide a ``project_config.bzl`` file in its root directory. +This file declares project-level metadata that is consumed by shared Bazel macros such as ``dash_license_checker``. + +A minimal example: + +.. code-block:: python + :linenos: + + PROJECT_CONFIG = { + "asil_level": "QM", # Safety level: "QM", "ASIL-A", "ASIL-B", "ASIL-C", "ASIL-D" + "source_code": ["cpp"], # Languages used: "cpp", "rust", or both + } + +The ``asil_level`` is used by tooling to apply the appropriate quality and compliance checks. +The ``source_code`` list determines which license file types are scanned by ``dash_license_checker`` +(e.g., ``Cargo.lock`` for Rust, ``requirements.txt`` for Python). + +.. tip:: + Start with ``"asil_level": "QM"`` during initial development. + The level can be raised once the module's safety concept is established. diff --git a/docs/handbook/building_simple_application/index.rst b/docs/handbook/building_simple_application/index.rst index 51bd59afb1e..41beb929a8f 100644 --- a/docs/handbook/building_simple_application/index.rst +++ b/docs/handbook/building_simple_application/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -16,16 +16,24 @@ Contribute own module ===================== -Let´s assume you want to contribute to the Eclipse S-CORE project by providing a new platform module. -In this example, you will create a small demo application called *“scrample”*. -The application demonstrates how to use existing Eclipse S-CORE platform modules to implement new functionality. + +This guide walks you through contributing a new platform module to Eclipse S-CORE end-to-end. +As a running example you will build a small demo application called *"scrample"*, which shows how +to compose existing S-CORE platform modules into new functionality. + +By the end of this section you will have: + +- Created a properly structured S-CORE module from scratch. +- Generated documentation from source and integrated it into the platform docs. +- Built the module with Bazel and verified it compiles cleanly. +- Wired up CI/CD workflows so every change is automatically validated. +- Plugged the module into the reference integration so it becomes part of the platform. .. toctree:: - :hidden: + :maxdepth: 1 first_score_module.rst doc_generation.rst building_source_code.rst cicd_workflows.rst reference_integration.rst - diff --git a/docs/handbook/building_simple_application/reference_integration.rst b/docs/handbook/building_simple_application/reference_integration.rst index bef64be7c8f..75573012a43 100644 --- a/docs/handbook/building_simple_application/reference_integration.rst +++ b/docs/handbook/building_simple_application/reference_integration.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -15,10 +15,6 @@ Reference integration ======================= -.. toctree:: - :maxdepth: 1 - :glob: - After building the scrample binary for the qnx x86 image, we can now run it inside the reference qnx image for the x86 platform. diff --git a/docs/handbook/index.rst b/docs/handbook/index.rst index f6c777ac5d8..819825f564f 100644 --- a/docs/handbook/index.rst +++ b/docs/handbook/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -12,96 +12,15 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* -.. toctree:: - :hidden: - - project_basics/index.rst - own_application/index.rst - building_simple_application/index.rst - -.. document:: Handbook - :id: doc__platform_handbook - :status: valid - :safety: ASIL_B - :security: YES - :realizes: wp__platform_handbook +.. _handbook: Handbook ======== -Introduction ------------- - - -.. image:: _assets/score_image.png - :alt: Eclipse Score - :width: 400 - :align: center - - -The Eclipse S-CORE project is evolving rapidly. With the launch of our first release, “Eclipse S-CORE 0.5”, -we are providing this tutorial to explain how the project works from a technical perspective. -Because S-CORE follows an iterative, code-centric development model, this description is updated continuously -and may not always reflect the latest state. Contributions from the community are therefore welcome. - - -Background of Eclipse S-CORE ------------------------------- - -Before we look at the technical details, it is helpful to understand the origins and goals of Eclipse S-CORE. -The project was founded in September 2024, inspired by the success of open-source developments in other industries in recent decades. -All founding members came from the automotive industry and shared the same vision: a code-first, open-source software platform -for onboard electronic control units (ECUs) would benefit the entire industry and significantly accelerate progress. -With every vehicle generation the volume and complexity of new functions grows. -As a result, the underlying software platform becomes larger, more complex, and more expensive to maintain. -Developing such platforms independently at each automotive company is inefficient and does not improve product quality. -It also consumes significant effort and budget without generating direct customer value. - -An open-source approach offers an alternative: - -- to improved quality through shared development, -- reduced effort across the industry, and -- faster delivery of new vehicle functions. - - -In addition, a common open-source software platform creates a shared technical foundation that supports collaboration in future series projects. - -Eclipse S-CORE is not the first project to address these challenges. -`AUTOSAR `_ also aimed to standardize software platforms, processes, methods, and tools. -However, Eclipse S-CORE goes beyond by pursuing additional goals: - -- **Providing a reference implementation of the software platform:** - Many issues appear for the very first time when the software stack is integrated. Some aspects - – such as performance – cannot be sufficiently defined through specifications alone. - By providing an open-source reference implementation, S-CORE identifies and resolves many of these problems early. - Using the same implementation across projects prevents known issues from reappearing later. - -- **Ensuring quality and a Functional-Safety-compliant development process:** - High code quality, clear requirements and architecture, and comprehensive test coverage are essential - for industrial use, especially in systems with Functional Safety relevance. - S-CORE therefore: - - 1. Defines a process aligned with Functional Safety (ISO 26262), and - 2. ensures, that all module implementations follow this process. - This makes Eclipse S-CORE unique among traditional open-source projects, - which often focus primarily on code, not on automotive-grade processes. - -What Eclipse S-CORE does not provide -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -**Eclipse S-CORE** is **not** an **out-of-the-box ready for direct integration into a** series vehicle program. -Key reasons include: - -- As an open-source project, **no commercial entity assumes liability** for the provided results. -- All Eclipse S-CORE **artefacts are generic**, - designed to serve **as a foundation for multiple commercial distributions** tailored to specific project needs. - -The strength of the Eclipse S-CORE project lies in its openness: +.. toctree:: + :hidden: -the software development process, the tooling, and the automated checks used in CI -are all transparent and open source. Any stakeholder can verify that the platform behaves as intended. -When used as a base in industrial projects, all work products can be reused. -The open-source community also maintains these artefacts over time. -However, the **responsibility for** assurance of **quality (ASPICE), cybersecurity (ISO21434) -and Functional Safety (ISO26262) of the target always system remains with the series project**. -The maintainers of the Eclipse S-CORE project are convinced that more automotive companies will -recognize these benefits, join the project, and apply Eclipse S-CORE in their future series projects. + project_basics/index.rst + building_simple_application/index.rst + whats_next/index.rst + useful_links.rst diff --git a/docs/handbook/own_application/index.rst b/docs/handbook/own_application/index.rst deleted file mode 100644 index 52589de88ee..00000000000 --- a/docs/handbook/own_application/index.rst +++ /dev/null @@ -1,310 +0,0 @@ -.. - # ******************************************************************************* - # 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 - # ******************************************************************************* -.. _use_own_application: - -.. toctree:: - :maxdepth: 1 - :glob: - -Use -==== - -=============== -Getting Started -=============== - -This guide explains how to set up and use the Communication module of Eclipse S-CORE. - -To integrate the communication module into your project, follow these steps: - - ------------ -1. Setup ------------ - -Start by creating a new project in your preferred IDE (e.g., Visual Studio Code). A ready-to-use devcontainer is available under: - -- https://github.com/eclipse-score/devcontainer - -Reference documentation for the communication module: - -- Overview: https://github.com/eclipse-score/communication -- User Facing API: https://github.com/eclipse-score/communication/blob/main/score/mw/com/doc/user_facing_API_examples.md - - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1.1 Add this to your MODULE.bazel: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. admonition:: MODULE.bazel - :class: dropdown - - .. code-block:: starlark - - module(name = "use_com_test") - - bazel_dep(name = "score_toolchains_gcc", version = "0.5", dev_dependency=True) - - gcc = use_extension("@score_toolchains_gcc//extensions:gcc.bzl", "gcc", dev_dependency=True) - gcc.toolchain( - url = "https://github.com/eclipse-score/toolchains_gcc_packages/releases/download/0.0.1/x86_64-unknown-linux-gnu_gcc12.tar.gz", - sha256 = "457f5f20f57528033cb840d708b507050d711ae93e009388847e113b11bf3600", - strip_prefix = "x86_64-unknown-linux-gnu", - ) - - use_repo(gcc, "gcc_toolchain", "gcc_toolchain_gcc") - - bazel_dep(name = "rules_rust", version = "0.61.0") - - crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") - - crate.spec(package = "futures", version = "0.3.31") - crate.spec(package = "libc", version = "0.2.155") - crate.spec(package = "clap", version = "4.5.4", features = ["derive"]) - - crate.from_specs(name = "crate_index") - use_repo(crate, "crate_index") - - bazel_dep(name = "rules_boost", repo_name = "com_github_nelhage_rules_boost") - archive_override( - module_name = "rules_boost", - urls = ["https://github.com/nelhage/rules_boost/archive/refs/heads/master.tar.gz"], - strip_prefix = "rules_boost-master", - ) - - bazel_dep(name = "boost.program_options", version = "1.87.0") - bazel_dep(name = "score_baselibs", version = "0.1.3") - bazel_dep(name = "score_communication", version = "0.1.1") - - # TRLC dependency for requirements traceability - bazel_dep(name = "trlc", version = "0.0.0") - git_override( - module_name = "trlc", - commit = "ede35c4411d41abe42b8f19e78f8989ff79ad3d8", - remote = "https://github.com/bmw-software-engineering/trlc.git", - ) - -Be aware that the version numbers change over time. Always check the latest versions in the respective bazel registry - -- https://github.com/eclipse-score/bazel_registry/tree/main/modules - - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1.2 Insert this into your .bazelrc: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. admonition:: .bazelrc - :class: dropdown - - The following code was originally contained in a collapsible section. - - .. code-block:: text - - common --@score-baselibs//score/mw/log/detail/flags:KUse_Stub_Implementation_Only=False - common --@score-baselibs//score/mw/log/flags:KRemote_Logging=False - common --@score-baselibs//score/json:base_library=nlohmann - common --@communication//score/mw/com/flags:tracing_library=stub - - common --registry=https://raw.githubusercontent.com/eclipse-score/bazel_registry/v0.5.0-beta/ - - common --registry=https://bcr.bazel.build - -^^^^^^^^^^^^^ -1.3 Run Bazel -^^^^^^^^^^^^^ - -If you start with an empty project, add an empty file named ``BUILD`` into your project root. -Now you can now run build the project with the command bazel ``bazel build //...`` - -(At this point nothing happens yet, because no targets are defined). -You can now either continue with this guide to create a minimal consumer-producer example or start coding your own application - - ------------- -2. Use it :) ------------- - -Once your project is set up, you can start sending and receiving messages. - -^^^^^^^^^^^^^^^^^^^^ -2.1 Basic Structure -^^^^^^^^^^^^^^^^^^^^ - -Create a folder named ``src`` in your root project directory. -Inside ``src``, create the following folders: - -- ``consumer`` -- ``producer`` - -additional folders if needed. - - -^^^^^^^^^^^ -2.2 Message -^^^^^^^^^^^ -Before sending messages, define the data type to be exchanged. -Create a file named ``message_data.h`` in your ``src`` directory. - -.. code-block:: cpp - - #ifndef SCORE_MESSAGE_DATA_H - #define SCORE_MESSAGE_DATA_H - - #include "score/mw/com/types.h" - - namespace com_example - { - - struct Message - { - std::string message; - }; - - template - class IPCInterface : public Trait::Base - { - public: - using Trait::Base::Base; - - typename Trait::template Event message_{*this, "message"}; - }; - - using IPCInterfaceProxy = score::mw::com::AsProxy; - using IPCInterfaceSkeleton = score::mw::com::AsSkeleton; - - } // namespace com_example - - #endif //SCORE_MESSAGE_DATA_H - -**What this code does:** - -- struct ``Message`` defines the payload - here is a simple ``message`` string. -- ``IPCInterface`` defines the communication interface used by producer and consumer. - -This interface is necessary so producer and consumer know what to send/receive. -The interface provides two roles: - -- ``IPCInterfaceProxy``: client-role -- ``IPCInterfaceSkeleton``: server-role - -More details are available in the `Eclipse S-Core Communication Doc `_. - - -^^^^^^^^^^^^ -2.3 Producer -^^^^^^^^^^^^ - -The producer sends data. -Navigate to the ``producer`` directory and create a new file called ``producer.h``. - -.. code-block:: cpp - - #ifndef SCORE_PRODUCER_H - #define SCORE_PRODUCER_H - - #include "score/mw/com/impl/instance_specifier.h" - #include "src/message_data.h" - - class Producer - { - public: - Producer(const score::mw::com::impl::InstanceSpecifier& instance_specifier); - ~Producer() = default; - - int RunProducer(const std::chrono::milliseconds cycle_time, - const std::size_t num_cycles); - - private: - score::Result create_result; - }; - - #endif //SCORE_PRODUCER_H - -As you can see, the header is lightweight; we will only need to use the Constructor and ``RunProducer`` from outside. - -``create_result`` is our ``IPCInterfaceSkeleton`` specified with the ``instance_specifier`` from our ``score_mw_com.json``. - -After that, create the file ``producer.cpp``. - - -.. code-block:: cpp - - #include "producer.h" - #include "src/message_data.h" - - Producer::Producer(const score::mw::com::impl::InstanceSpecifier& instance_specifier) - : create_result(com_example::IPCInterfaceSkeleton::Create(instance_specifier)) - { - } - - int Producer::RunProducer(const std::chrono::milliseconds cycle_time, - const std::size_t num_cycles) - { - if (!create_result.has_value()) - { - std::cerr << "Skeleton was not created. Cannot run producer!\n"; - return EXIT_FAILURE; - } - auto& skeleton = create_result.value(); - - const auto offer_result = skeleton.OfferService(); - - if (!offer_result.has_value()) - { - std::cerr << "Unable to offer service for skeleton!\n"; - return EXIT_FAILURE; - } - - std::cout << "Starting to send data\n"; - - for (std::size_t cycle = 0U; cycle < num_cycles || num_cycles == 0U; ++cycle) - { - auto cycle_message = "Message " + std::to_string(cycle); - auto message = com_example::Message{.message=cycle_message}; - std::cout << "Sending: " << cycle_message << std::endl; - skeleton.message_.Send(std::move(message)); - - std::this_thread::sleep_for(cycle_time); - } - - skeleton.StopOfferService(); - - return EXIT_SUCCESS; - } - -**What happens in the code:** - -The constructor initializes the communication skeleton ``create_result``. - -``RunProducer``: - -- checks if the initialization of ``create_result`` was successful -- offers service -- enters a loop and sends our messages -- stops offering the service at the end - - -^^^^^^^^^^^^ -2.4 Consumer -^^^^^^^^^^^^ -On the other side, the consumer will consume/receive the data. - -Navigate to the ``consumer`` directory and create a new file called ``consumer.h``. - -^^^^^^^^^^^^^^ -2.5 Next steps -^^^^^^^^^^^^^^ -For a complete example implementation, see the example folder - -https://github.com/eclipse-score/communication/tree/main/score/mw/com/example/ipc_bridge diff --git a/docs/handbook/project_basics/index.rst b/docs/handbook/project_basics/index.rst index 94963c62383..07db38a9742 100644 --- a/docs/handbook/project_basics/index.rst +++ b/docs/handbook/project_basics/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -16,6 +16,18 @@ Overview ======== +This section gives you the conceptual foundation for working with S-CORE. +Before diving into code or contribution workflows, read through these pages +to understand how the platform is structured and what drives its design: + +- **Technologies** — the toolchain and infrastructure that power S-CORE, from + build system to documentation and CI/CD. +- **Software Architecture** — the high-level decomposition of the platform into + features and modules, and the principles behind it. +- **Module Structure** — how an individual S-CORE module is laid out on disk, + what each folder contains, and the conventions every module follows. +- **Integration Process** — how modules are continuously built, tested, and + assembled into the reference integration. .. toctree:: :maxdepth: 1 diff --git a/docs/handbook/project_basics/integration_process.rst b/docs/handbook/project_basics/integration_process.rst index 23b5521461b..8e3b1a1cb25 100644 --- a/docs/handbook/project_basics/integration_process.rst +++ b/docs/handbook/project_basics/integration_process.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -16,10 +16,6 @@ Integration process ==================== -.. toctree:: - :maxdepth: 1 - :glob: - The integration process is a core activity within Eclipse S-CORE and is still evolving as the project gathers experience. Several discussions and concepts have shaped the current approach. A detailed description is available in the following `decision record `_. @@ -34,34 +30,34 @@ Compliance with the Eclipse S-CORE software development process ---------------------------------------------------------------- All software modules - whether inside or outside the Eclipse S-CORE GitHub organization – are encouraged to follow the Eclipse S-CORE development process strictly and to enforce it through CI/CD checks. -This ensures that compliance is validated with every pull request. +This ensures that compliance is validated with every pull request. -However, strict compliance cannot always be guaranteed. Reasons include: +However, strict compliance cannot always be guaranteed. Reasons include: -- Many modules are reused in other projects beyond S-CORE. +- Many modules are reused in other projects beyond S-CORE. - Some modules originate from companies with their own established software development process. An immediate migration to the Eclipse S-CORE development process is not feasible. Therefore, it is acceptable (but not recommended) for software modules to follow their own -software development process inside its repository. +software development process inside its repository. To make a module available for Eclipse S-CORE, a new version must first be added to the bazel registry first. -This is where the S-CORE integration process applies. +This is where the S-CORE integration process applies. Before adding a module to the Eclipse S-CORE bazel registry, two conditions must be met: - **Fulfillment of the “Integration Gate”** - + The integration gate is a mandatory set of checks that validates compliance with the Eclipse S-CORE software development process. Examples include: - - code compiles with gcc/qcc + - code compiles with gcc/qcc - unit tests pass - requirements and architecture are properly linked according to the metamodel - - Module owners may need to update code or artefacts to meet these criteria. + + Module owners may need to update code or artefacts to meet these criteria. - **Review and Approval** - - After meeting integration gate requirements, a pull request to Eclipse S-CORE bazel registry repo can be created. + + After meeting integration gate requirements, a pull request to Eclipse S-CORE bazel registry repo can be created. This pull request is reviewed by safety, security and quality managers. Once all findings were resolved, the pull request is merged to the Eclipse S-CORE bazel registry, and the software module becomes officially available to the Eclipse S-CORE community. @@ -70,11 +66,11 @@ Before adding a module to the Eclipse S-CORE bazel registry, two conditions must Reference Integration --------------------- -The first step, passing the integration gate, ensures Process compliance, but not compatibility with other modules. -This is the purpose of the reference integration. +The first step, passing the integration gate, ensures Process compliance, but not compatibility with other modules. +This is the purpose of the reference integration. -The reference integration repository assembles all modules into reference images -and executes feature integration tests. These tests ensure: +The reference integration repository assembles all modules into reference images +and executes feature integration tests. These tests ensure: - correct implementation of feature requirements - compatibility between dependent modules @@ -82,9 +78,9 @@ and executes feature integration tests. These tests ensure: Unified Dependency Handling ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Within Reference integration, all module dependencies are overwriten by the versions defined in the reference integration configuration. +Within Reference integration, all module dependencies are overwriten by the versions defined in the reference integration configuration. -For example: +For example: If the reference integration specifies software module “A” in version 1.0, all software modules in that integration are built against “A” version 1.0 – regardless of their local dependency settings. This ensures a consistent and unique state of all software module versions which are included @@ -101,7 +97,7 @@ Release of Reference Integration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Once: – -- all feature integration tests have passed, and +- all feature integration tests have passed, and - other Eclipse S-CORE project metrics for the release cycle are fulfilled a new release of the reference integration repository is created. An official S-CORE release typically consists of: @@ -110,4 +106,4 @@ a new release of the reference integration repository is created. An official S- - **Release Notes** - **Additional documents as required** -This markst he complete and validated version of the Eclipse S-CORE platform for that release milestone. +This markst he complete and validated version of the Eclipse S-CORE platform for that release milestone. diff --git a/docs/handbook/project_basics/module_structure_overview.rst b/docs/handbook/project_basics/module_structure_overview.rst index fafcd171e44..35b0771a217 100644 --- a/docs/handbook/project_basics/module_structure_overview.rst +++ b/docs/handbook/project_basics/module_structure_overview.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -15,10 +15,6 @@ Module Structure Overview ========================== -.. toctree:: - :maxdepth: 1 - :glob: - As described in the :ref:`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 @@ -31,7 +27,7 @@ the most important bazel modules and repositories in Eclipse S-CORE GitHub organ Eclipse S-CORE Platform ----------------------- -GitHub Link: https://github.com/eclipse-score/score +**Repository:** `eclipse-score/score `_ This is the central repository of the project. It contains: @@ -45,7 +41,7 @@ This is the central repository of the project. It contains: Process Description -------------------- -GitHub Link: https://github.com/eclipse-score/process_description +**Repository:** `eclipse-score/process_description `_ .. hint:: We automatically generate for every repository html documentation from rst files. @@ -71,7 +67,7 @@ The process repository describes the Eclipse S-CORE software development process Doc-as-Code ----------- -GitHub Link: https://github.com/eclipse-score/docs-as-code +**Repository:** `eclipse-score/docs-as-code `_ Doc-as-code repository provides the tooling around sphinx and sphinx-needs framework, including: @@ -85,28 +81,67 @@ The implementation status of tooling requirements is available in the Tooling ------- -GitHub Link: https://github.com/eclipse-score/tooling +**Repository:** `eclipse-score/tooling `_ + +Tooling repository collects all supporting tools for the Eclipse S-CORE project, e.g., format checkers. + + +Development Environment +----------------------- +**Repository:** `eclipse-score/devcontainer `_ + +Provides a common `Dev Container `_ for Eclipse S-CORE development. +Using the devcontainer is the recommended way to set up a fully configured development environment +with all required tools, compilers, and VS Code extensions pre-installed. + +Clone the devcontainer repository and open it in VS Code with the +`Dev Containers extension `_ +to get started in minutes. + + +Code Quality Policies +--------------------- +**Repositories:** + +- `eclipse-score/score_cpp_policies `_ +- `eclipse-score/score_rust_policies `_ + +These repositories provide centralised, version-controlled quality tool configurations: -Tooling repository collects all supporting tools for the Eclipse S-CORE project, e.g., format_checkers. +- **score_cpp_policies**: clang-tidy rules, sanitiser configurations, and safety-critical C++ guidelines. +- **score_rust_policies**: Clippy linting rules and Rustfmt formatting configuration for Rust modules. + +All modules are expected to depend on the appropriate policy package and cannot override +the shared rules without project-lead approval. Toolchains and bazel platform ---------------------------------- -GitHub Link: +**Repositories:** -- https://github.com/eclipse-score/toolchains_qnx -- https://github.com/eclipse-score/toolchains_gcc -- https://github.com/eclipse-score/toolchains_rust +- `eclipse-score/toolchains_qnx `_ +- `eclipse-score/toolchains_gcc `_ +- `eclipse-score/toolchains_rust `_ 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. +CI/CD Automation +---------------- +**Repositories:** + +- `eclipse-score/cicd-workflows `_ +- `eclipse-score/cicd-actions `_ + +These repositories provide reusable GitHub Actions workflows and composite actions used across all +Eclipse S-CORE module repositories. Module teams reference these shared workflows instead of +duplicating CI/CD logic, ensuring consistent quality gates and pipeline behaviour. Bazel Registry --------------- -GitHub Link: https://github.com/eclipse-score/bazel_registry +**Repository:** `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. @@ -114,7 +149,7 @@ It enables consistent and reliable module referencing across the entire project. Software Modules ---------------- -GitHub Link (e.g. for baselibs): https://github.com/eclipse-score/baselibs +**Repository** (example — baselibs): `eclipse-score/baselibs `_ Each software module is a bazel module stored in its own repository. Software modules typically include: @@ -126,15 +161,15 @@ Each software module is a bazel module stored in its own repository. Software mo Modules usually depend on other modules in the Eclipse S-CORE GitHub organization, especially on -- https://github.com/eclipse-score module to reference feature requirements and architecture +- `eclipse-score/score `_ to reference feature requirements and architecture in the component requirements and architecture -- https://github.com/eclipse-score/docs-as-code module for sphinx/sphinx-needs framework and tooling around it +- `eclipse-score/docs-as-code `_ for the sphinx/sphinx-needs framework and tooling around it - **toolchains** modules for the compiler toolchains. Reference Integration ---------------------- -GitHub Link: https://github.com/eclipse-score/reference_integration +**Repository:** `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. @@ -145,3 +180,23 @@ It integrates all software modules into reference images (e.g., a qnx x86 image) - feature requirements are fulfilled Feature integration tests are executed on these reference images to validate the complete platform. + + +Integration Testing Framework +------------------------------ +**Repository:** `eclipse-score/itf `_ + +The Integration Testing Framework (ITF) is the tool used to implement and execute +Feature Integration Tests (FIT) on reference images. +Module teams write FIT test cases using ITF to verify end-to-end feature behaviour across module boundaries. +Documentation is available in the +`ITF README `_. + + +Testing Tools +------------- +**Repository:** `eclipse-score/testing_tools `_ + +Provides shared utilities and frameworks for Component Integration Tests (CIT). +CIT tests verify the interaction between a module and its direct dependencies at the component level, +without requiring a full reference image. diff --git a/docs/handbook/project_basics/software_architecture_overview.rst b/docs/handbook/project_basics/software_architecture_overview.rst index 43fb1360e0f..93070e6bb1a 100644 --- a/docs/handbook/project_basics/software_architecture_overview.rst +++ b/docs/handbook/project_basics/software_architecture_overview.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -15,10 +15,6 @@ Software Architecture Overview ================================ -.. toctree:: - :maxdepth: 1 - :glob: - Please note that the Eclipse S-CORE´s software architecture is continuously refined and will evolve in future releases. .. image:: ../../modules/_assets/module_architecture.drawio.svg diff --git a/docs/handbook/project_basics/technology_overview.rst b/docs/handbook/project_basics/technology_overview.rst index a337daf6708..721a54041e7 100644 --- a/docs/handbook/project_basics/technology_overview.rst +++ b/docs/handbook/project_basics/technology_overview.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -12,15 +12,11 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +.. _technology_overview: + Overview of technologies =========================== -.. toctree:: - :maxdepth: 1 - :glob: - -.. _technology_overview: - S-CORE Tooling ---------------- Eclipse S-CORE uses a fully open-source toolchain. This ensures a smooth onboarding @@ -28,7 +24,7 @@ experience and enables efficient collaboration across contributors with differen The following sections give an overview of the key technologies, followed by detailed explanations of each tool and process step. -.. image:: ../_assets/score_tooling.svg +.. image:: ../_assets/score_tooling.drawio.svg :alt: Score tooling :align: center @@ -38,7 +34,7 @@ Bazel and repo structure The whole Eclipse S-CORE project is built on the `bazel `_ build system. Almost all automated steps – such as requirement validation, documentation generation, sourcecode compilation, unit execution, and integration tests – are executed through Bazel targets. -The CI/CD pipeline is the only major exception. +The CI/CD pipeline is the only major exception. Bazel provides **hermetic** and **reproducible** builds, which are important for software developed for Functional Safety. @@ -49,13 +45,13 @@ Bazel can be extended using S-CORE also makes strong use of `bazel modules `_. The project consists of multiple repositories, each implementing a specific piece of functionality. The modular approach improves reuse because -independent modules can be integrated into different projects more easily than a single monolithic repository. +independent modules can be integrated into different projects more easily than a single monolithic repository. -However, modularity introduces organizational and technical challenges: +However, modularity introduces organizational and technical challenges: - Each module is maintained by a dedicated team, which increases coordination needs. Please have a look on the `project management plan `_ - for more details regarding S-CORE´s organizational structure. + for more details regarding S-CORE´s organizational structure. Technical integration and dependency management require clear processes. Eclipse S-CORE´s approach for technical integration is described in the :ref:`integration process `. @@ -82,7 +78,7 @@ for automation and for executing all CI/CD checks. :align: center -Sphinx/Sphinx-needs and Documentation +Sphinx/Sphinx-needs and Documentation -------------------------------------- Eclipse S-CORE uses **Sphinx** and **sphinx-needs** for documentation, including: @@ -119,20 +115,20 @@ C/C++ remain the main languages due to their current maturity and industry accep Testing -------- S-CORE distinguishes between **three test levels: “unit-testing”, -“component testing”** and **“feature integration testing”**. +“component testing”** and **“feature integration testing”**. 1. **Unit testing** - - - Depends on used programming languages, e.g., in case of C++ we rely on **“gtest/gmock”**. + + - Depends on used programming languages, e.g., in case of C++ we rely on **“gtest/gmock”**. 2. **Component testing** - - - Framework and documentation are available in the `testing tools repo `_. -3. **Feature integration testing** + - Framework and documentation are available in the `testing tools repo `_. + +3. **Feature integration testing** - Conducted using the framework **“ITF”** (Integration Testing Framework), - which is part of the Eclipse S-CORE project. + which is part of the Eclipse S-CORE project. - Documentation is available in the `README.md file `_. For more details, refer to our `verification concept `_. diff --git a/docs/handbook/useful_links.rst b/docs/handbook/useful_links.rst new file mode 100644 index 00000000000..e7675066fc4 --- /dev/null +++ b/docs/handbook/useful_links.rst @@ -0,0 +1,68 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 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 + # ******************************************************************************* +.. _useful_links: + +Useful Links +============ + +Community & Governance +---------------------- + +- `Eclipse SDV Slack `_ — join the community chat to ask questions and connect with contributors +- `Eclipse S-CORE Project Leads `_ — official list of project leads and committers +- `Architecture Community Discussions `_ — GitHub discussion board for architecture topics +- `Feature Requests & Modifications Board `_ — overview of open feature requests and planned changes +- `Eclipse Community Calendar `_ — public calendar with Feature Team and Community meetings + +Key Repositories +---------------- + +- `Eclipse S-CORE GitHub Organization `_ — umbrella organization for all S-CORE modules +- `score `_ — main repository (requirements, architecture, documentation) +- `module_template `_ — template to start a new S-CORE module +- `reference_integration `_ — reference QNX integration image and integration tests +- `process_description `_ — S-CORE process description (safety, quality, verification) +- `docs-as-code `_ — Sphinx/sphinx-needs toolchain used across all modules +- `tooling `_ — Bazel rules and macros shared across modules +- `bazel_registry `_ — S-CORE Bazel module registry + +Project Documentation +--------------------- + +- `S-CORE Documentation `_ — rendered project documentation (requirements, architecture, safety) +- `Decision Records `_ — architectural and process decision records for the S-CORE project +- `Platform Management Plan `_ — project governance and management plan +- `Contribution Guidelines `_ — step-by-step guide for common contribution workflows +- `Contribution Attribution `_ — how to properly attribute contributions +- `Process Description Documentation `_ — general concepts of the S-CORE process +- `Verification Concept `_ — verification approach and testing strategy +- `Docs-as-Code How-To `_ — guide for writing and generating documentation + +Build System (Bazel) +-------------------- + +- `Bazel Build System `_ — official Bazel documentation +- `Bazel Modules (Bzlmod) `_ — dependency management with Bazel modules +- `Bazel Central Registry `_ — official public Bazel module registry +- `Bazel Toolchains `_ — configuring compiler toolchains in Bazel +- `Bazel Platforms `_ — defining target CPU architectures +- `Bazel Rules `_ — writing custom Bazel rules +- `Bazel Macros `_ — writing reusable Bazel macros + +CI/CD & Configuration +--------------------- + +- `GitHub Actions Documentation `_ — reference for GitHub Actions workflows used in S-CORE CI/CD +- `Otterdog Documentation `_ — tool used to manage Eclipse GitHub organization configuration +- `Eclipse S-CORE OtterDog Config `_ — configuration for the eclipse-score GitHub organization diff --git a/docs/handbook/whats_next/index.rst b/docs/handbook/whats_next/index.rst new file mode 100644 index 00000000000..07615c56e56 --- /dev/null +++ b/docs/handbook/whats_next/index.rst @@ -0,0 +1,66 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 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 + # ******************************************************************************* +.. _whats_next: + +What's Next? +============ + +Congratulations — you have worked through the S-CORE handbook and have a solid understanding of the +platform! The next step is to turn that knowledge into a real contribution. + +There is no single path: you can fix a small bug, implement a requested feature, or simply start a +conversation with the community. The sections below describe the most common entry points. + + +Good first issue +---------------- + +S-CORE consists of many `repositories `_, each +maintained by a dedicated *Feature Team* or *Community*. Every team has a +`Discussion section `_ on GitHub and most have +a pinned post with contact information, such as the Feature Team lead and the corresponding Slack +channel — see this `example discussion `_. + +A great first step is to browse issues labelled **"good first issue"** in any module repository, +like `this example issue `_. Before picking +one up, it is always worth dropping a message in the team's Slack channel so the community knows +you are working on it and can point you in the right direction. + +You can also join any Feature Team or Community online meeting — all meetings are publicly listed in +the `Eclipse community calendar `_. + + +Explore Feature Requests +------------------------- + +S-CORE maintains a public backlog of accepted feature requests in the GitHub Project +`Feature Requests/Modifications `_. + +If you want to **propose a new feature** or **take ownership of an already approved one**, reach +out to the project leads via the +`Slack channel `_. +They will guide you through the process of scoping the work and getting started. + + +Reach out to Project Leads +--------------------------- + +Not sure where to begin? Feel free to contact the S-CORE Project Leads directly. They will either +add your topic to the agenda of the *Project Lead Circle* (held every Monday) or suggest an +alternative time slot. + +Reach them through: + +- `Slack channel `_ — for quick questions and informal discussions +- `Developer Mailing List `_ (score-dev@eclipse.org) — for more formal inquiries and reaching a broader audience diff --git a/docs/index.rst b/docs/index.rst index 79b86082444..e9243081ff5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -12,6 +12,14 @@ # SPDX-License-Identifier: Apache-2.0 # ******************************************************************************* +.. document:: Handbook + :id: doc__platform_handbook + :status: valid + :safety: ASIL_B + :security: YES + :realizes: wp__platform_handbook + :hide: + .. raw:: html
@@ -36,20 +44,75 @@ S-CORE Platform Documentation
-Welcome & Overview ------------------- +Introduction +------------ + +Eclipse S-CORE was founded in September 2024 by automotive industry members with a shared goal: +a code-first, open-source software platform for onboard ECUs that the whole industry can build on. + +Rather than each company independently developing and maintaining a software platform — at high cost +and without direct customer value — S-CORE provides a common foundation with: + +- **A reference implementation** that catches integration issues early and prevents known bugs from reappearing across projects. +- **A Functional-Safety-compliant process** (ISO 26262) applied to all modules, making S-CORE unique among open-source automotive projects. +- **Full transparency**: process, tooling, and CI checks are open source — any stakeholder can verify the results. + +**Note:** S-CORE is not a ready-to-integrate series product. It is a generic foundation for commercial distributions. +Responsibility for ASPICE, ISO 21434 (cybersecurity), and ISO 26262 (functional safety) compliance of the final system always remains with the series project. + -**Welcome to the Software documentation of the S-CORE project.** +Get started with S-CORE +----------------------- +.. grid:: 3 + :gutter: 3 + :class-container: score-grid + + .. grid-item-card:: + :link: handbook/project_basics/index + :link-type: doc + :text-align: center + + :octicon:`book;3em` + + Overview + ^^^ + Explore the S-CORE platform structure, technology stack and software + architecture. Understand the core concepts before you start building. + + .. grid-item-card:: + :link: handbook/building_simple_application/index + :link-type: doc + :text-align: center + + :octicon:`code-square;3em` + + Contribute own module + ^^^ + Follow a step-by-step guide to build and integrate your first S-CORE + module — from source code to CI/CD and doc + + .. grid-item-card:: + :link: handbook/whats_next/index + :link-type: doc + :text-align: center + + :octicon:`rocket;3em` + + What's next? + ^^^ + Check how you can start being productive immediately Software artifacts -~~~~~~~~~~~~~~~~~~ +------------------ .. grid:: 1 1 3 3 :class-container: score-grid .. grid-item-card:: + :octicon:`checklist;3em` + Requirements ^^^ Analyze :ref:`Stakeholder ` requirements for @@ -60,26 +123,32 @@ Software artifacts .. grid-item-card:: + :octicon:`package;3em` + Features & Modules ^^^ :ref:`Features ` and :ref:`Modules ` are the heart of the S-CORE software. .. grid-item-card:: + :octicon:`tag;3em` + Releases ^^^ - Our release roadmap can be found under :ref:`releases`. - Including an overview about integrated software modules and their repository location. + Check out our `latest release `_ + or explore our `release roadmap `_. Project structure and processes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------------- -.. grid:: 1 1 2 2 +.. grid:: 1 1 3 3 :class-container: score-grid .. grid-item-card:: + :octicon:`workflow;3em` + Process ^^^ Understand how we work, by reading our `Process description `_. @@ -88,33 +157,84 @@ Project structure and processes .. grid-item-card:: + :octicon:`organization;3em` + Platform Management Plan (PMP) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Read about our project and organization structure in the :ref:`Project Handbook `. And learn how we deal with :ref:`Platform Safety Plan ` or care about :ref:`Software Verification Plan `. + .. grid-item-card:: + :link: https://github.com/eclipse-score/reference_integration + :link-type: url + :text-align: center + + :octicon:`repo;3em` + + Reference Integration + ^^^^^^^^^^^^^^^^^^^^^ + Explore the S-CORE reference integration — a continuously built and tested + assembly of all platform modules, serving as the authoritative integration baseline. + +.. raw:: html + +
+ +.. grid:: 1 1 3 3 + :class-container: score-sitemap + + .. grid-item:: + + **Documentation** + + | :doc:`features/index` + | :doc:`requirements/index` + | :doc:`modules/index` + | :doc:`score_releases/index` + + .. grid-item:: + + **Project** -.. dropdown:: Click to see the complete sitemap + | :doc:`score_tools/index` + | :doc:`safety/index` + | :doc:`design_decisions/index` + | :doc:`platform_management_plan/index` + | `Feature Requests `_ - .. toctree:: - :maxdepth: 1 + .. grid-item:: - handbook/index - features/index - requirements/index - modules/index - contribute/index + **Community** - Releases - Tools - PMP - Safety - Eclipse - design_decisions/index + | :doc:`contribute/index` + | `Eclipse Project `_ + | `GitHub `_ + | `Mailing List `_ - .. toctree:: - :maxdepth: 1 - :hidden: +.. toctree:: + :maxdepth: 1 + :hidden: + + features/index + requirements/index + modules/index + contribute/index + + Releases + Tools + PMP + Safety + Eclipse + design_decisions/index + +.. toctree:: + :maxdepth: 1 + :hidden: + + introduction/index + handbook/index + +.. raw:: html - introduction/index + diff --git a/docs/introduction/index.rst b/docs/introduction/index.rst index 8e5d5bba106..d65b9a4fae8 100644 --- a/docs/introduction/index.rst +++ b/docs/introduction/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/modules/baselibs/docs/manual/index.rst b/docs/modules/baselibs/docs/manual/index.rst index 08ba1a6e1a0..a7763a9e86b 100644 --- a/docs/modules/baselibs/docs/manual/index.rst +++ b/docs/modules/baselibs/docs/manual/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/modules/baselibs/docs/safety_mgt/index.rst b/docs/modules/baselibs/docs/safety_mgt/index.rst index faf93567548..8288e9930ac 100644 --- a/docs/modules/baselibs/docs/safety_mgt/index.rst +++ b/docs/modules/baselibs/docs/safety_mgt/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/modules/communication/docs/safety_mgt/index.rst b/docs/modules/communication/docs/safety_mgt/index.rst index ba72f6019ab..e5eafd3e963 100644 --- a/docs/modules/communication/docs/safety_mgt/index.rst +++ b/docs/modules/communication/docs/safety_mgt/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/modules/index.rst b/docs/modules/index.rst index f7ef453165c..0cd17f1a17a 100644 --- a/docs/modules/index.rst +++ b/docs/modules/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/modules/orchestrator/docs/manual/index.rst b/docs/modules/orchestrator/docs/manual/index.rst index 08ba1a6e1a0..a7763a9e86b 100644 --- a/docs/modules/orchestrator/docs/manual/index.rst +++ b/docs/modules/orchestrator/docs/manual/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/modules/orchestrator/docs/safety_mgt/index.rst b/docs/modules/orchestrator/docs/safety_mgt/index.rst index f67104c9b63..90cb04d4bed 100644 --- a/docs/modules/orchestrator/docs/safety_mgt/index.rst +++ b/docs/modules/orchestrator/docs/safety_mgt/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/platform_management_plan/config_management.rst b/docs/platform_management_plan/config_management.rst index 7bce0d230f7..a3d1d70a4f5 100644 --- a/docs/platform_management_plan/config_management.rst +++ b/docs/platform_management_plan/config_management.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/platform_management_plan/project_management.rst b/docs/platform_management_plan/project_management.rst index a7cb0c2a894..9d9c7134d77 100644 --- a/docs/platform_management_plan/project_management.rst +++ b/docs/platform_management_plan/project_management.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/platform_management_plan/quality_management.rst b/docs/platform_management_plan/quality_management.rst index 4b6166c8ca9..215622c3616 100644 --- a/docs/platform_management_plan/quality_management.rst +++ b/docs/platform_management_plan/quality_management.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/platform_management_plan/software_verification.rst b/docs/platform_management_plan/software_verification.rst index d3fb39c3dfc..af6c427e06e 100644 --- a/docs/platform_management_plan/software_verification.rst +++ b/docs/platform_management_plan/software_verification.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/platform_management_plan/tool_management.rst b/docs/platform_management_plan/tool_management.rst index f8c8ff529fd..bb3e336cd07 100644 --- a/docs/platform_management_plan/tool_management.rst +++ b/docs/platform_management_plan/tool_management.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/requirements/index.rst b/docs/requirements/index.rst index 0bf6aee5b54..1d23a7eb68f 100644 --- a/docs/requirements/index.rst +++ b/docs/requirements/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/requirements/stakeholder/index.rst b/docs/requirements/stakeholder/index.rst index d1433240287..951f5805411 100644 --- a/docs/requirements/stakeholder/index.rst +++ b/docs/requirements/stakeholder/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/safety/index.rst b/docs/safety/index.rst index 4f4afbc0eef..621f320a1f6 100644 --- a/docs/safety/index.rst +++ b/docs/safety/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/score_releases/index.rst b/docs/score_releases/index.rst index 95cb35d0be2..239754d4f82 100644 --- a/docs/score_releases/index.rst +++ b/docs/score_releases/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. diff --git a/docs/score_tools/index.rst b/docs/score_tools/index.rst index 98a7af4fce7..bddd75cb3fb 100644 --- a/docs/score_tools/index.rst +++ b/docs/score_tools/index.rst @@ -1,6 +1,6 @@ .. # ******************************************************************************* - # Copyright (c) 2024 Contributors to the Eclipse Foundation + # Copyright (c) 2026 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership.