Skip to content

Commit 772e515

Browse files
authored
align main branch with v0.6 release (#154)
1 parent 166053c commit 772e515

11 files changed

Lines changed: 78 additions & 289 deletions

.github/codeql/codeql-config.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
name: "Custom CodeQL Configuration for MISRA"
22

3+
paths:
4+
- repos
35
paths-ignore:
46
- "**/*test*"
57
- "**/*mock*"
68
- "**/test/**"
7-
- "**/mock/**"
9+
- "**/mock/**"
10+
- "**/codeql-coding-standards-repo/**"

.github/workflows/codeql-multiple-repo-scan.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ jobs:
140140
(cd "$path" && git checkout "$ref")
141141
else
142142
echo " Detected branch/tag. Cloning with --branch."
143-
git clone --depth 1 --branch "$ref" "$url" "$path"
143+
git clone --depth 1 --branch v"$ref" "$url" "$path"
144144
fi
145145
146146
# Append the path to the list, separated by commas
@@ -209,4 +209,4 @@ jobs:
209209
uses: actions/upload-artifact@v4
210210
with:
211211
name: codeql-html-report
212-
path: codeql-report.html
212+
path: codeql-report.html

.github/workflows/release_verification.yml

Lines changed: 0 additions & 72 deletions
This file was deleted.

BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ docs(
2525
# "@score_lifecycle_health//:needs_json", # unreadable images - relative paths issue
2626
# "@score_logging//:needs_json", # duplicated labels
2727
"@score_logging//:needs_json",
28-
# "@score_feo//:needs_json",
2928
# Tools
3029
"@score_platform//:needs_json",
3130
"@score_process//:needs_json",

README.md

Lines changed: 36 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# Score Reference Integration
22

3-
This workspace integrates multiple Eclipse Score modules (baselibs, communication, persistency, orchestrator, feo, etc.) to validate cross-repository builds and detect integration issues early in the development cycle.
3+
This workspace integrates multiple Eclipse Score modules (baselibs, communication, persistency, orchestrator, etc.) to validate cross-repository builds and detect integration issues early in the development cycle.
44

55
## Overview
66

77
The reference integration workspace serves as a single Bazel build environment to:
8+
89
- Validate cross-module dependency graphs
910
- Detect label and repository boundary issues
1011
- Test toolchain and platform support (Linux, QNX, LLVM/GCC)
1112
- Prepare for release validation workflows
1213

13-
1414
## Get started
1515

1616
Simply run `./score_starter` and select which integration You want to run. Once running, You will be guided by our welcome cli to run selected examples.
@@ -20,48 +20,56 @@ Simply run `./score_starter` and select which integration You want to run. Once
2020
Intention for each folder is described below
2121

2222
### bazel_common
23+
2324
Used to keep a common bazel functionalities for `images` like:
25+
2426
- toolchain setups
2527
- common tooling deps
2628
- common S-CORE modules deps
2729
- common `.bzl` extensions needed to streamline images
2830

29-
3031
### showcases
32+
3133
Used to keep `S-CORE` wide **showcases** implementation to showcase S-CORE in certain deployments (images). Contains:
34+
3235
- proxy target bundling all `standalone` examples from all `S-CORE` repos to deploy then as single bazel target into image
3336
- implementation of certain **showcases** that shall be deployed into images
3437

3538
#### cli
3639

37-
Contains a CLI tool to be used on runner that is showcasing the S-CORE functionality. It will provide superior user experience and will guide user to run examples.
38-
How to use it in Your image, look [here](./showcases/cli/README.md)
40+
Contains a CLI tool to be used on runner that is showcasing the S-CORE functionality. It will provide superior user experience and will guide user to run examples.
41+
How to use it in Your image, look [here] (./showcases/cli/README.md)
3942

4043
### images
44+
4145
Used to keep concrete `images` for given target platform as bazel modules. Each platform shall have it's own folder with name `{platform}_{arch}` ie. `qnx_aarch64`.
4246

4347
This `images` shall:
44-
- deploy all `showcases` into image so they can be run inside
45-
- other specific code for given `image`
48+
49+
- deploy all `showcases` into image so they can be run inside
50+
- other specific code for given `image`
4651

4752
### runners
53+
4854
Used to keep thin logic ro reuse `runners` between images, like docker runner etc.
4955

5056
## Docs
5157

5258
To generate a full documentation of all integrated modules, run:
59+
5360
```bash
5461
bazel run //:docs_combo_experimental
5562
```
63+
5664
## Operating system integrations
5765

5866
> [!NOTE]
5967
> Please refer to the README documents in the respective sub-directories for details about the specific integration.
6068
61-
* [QNX](./images/qnx_x86_64//README.md)
62-
* [Red Hat AutoSD](./images/autosd_x86_64/build/README.md)
63-
* [Elektrobit corbos Linux for Safety Applications](./images/ebclfsa_aarch64/README.md)
64-
* [Linux x86_64]()
69+
- [QNX](./images/qnx_x86_64//README.md)
70+
- [Red Hat AutoSD](./images/autosd_x86_64/build/README.md)
71+
- [Elektrobit corbos Linux for Safety Applications](./images/ebclfsa_aarch64/README.md)
72+
- Linux x86_64
6573

6674
## Workspace support
6775

@@ -73,48 +81,33 @@ This helps with cross-module development, debugging, and generally "trying out t
7381
> You can do this manually as well, of course (e.g. if you do not use the devcontainer).
7482
> Take a look at `.devcontainer/prepare_workspace.sh`, which contains the setup script.
7583
76-
> [!NOTE]
77-
> Not all Bazel targets are supported yet.
78-
> Running `./scripts/integration_test.sh` will work, though.
79-
> Take a look at the [Known Issues](#known-issues-️) below to see which Bazel targets are available and working.
80-
81-
The supported workspace managers are:
82-
83-
| Name | Description |
84-
|------|-------------|
85-
| [Gita](https://github.com/nosarthur/gita) | "a command-line tool to manage multiple git repos" |
86-
87-
A description of how to use these workspace managers, together with their advantages and drawbacks, is beyond the scope of this document.
88-
In case of doubt, choose the first.
89-
9084
### Initialization of the workspace
9185

92-
> [!WARNING]
93-
> This will change the file `score_modules.MODULE.bazel`.
94-
> Do **not** commit these changes!
95-
9686
1. Switch to local path overrides, using the VSCode Task (`Terminal`->`Run Task...`) "Switch Bazel modules to `local_path_overrides`".
9787
Note that you can switch back to `git_overrides` (the default) using the task "Switch Bazel modules to `git_overrides`"
98-
88+
9989
**Command line:**
90+
10091
```bash
10192
python3 scripts/known_good/update_module_from_known_good.py --override-type local_path
10293
```
103-
94+
10495
2. Update workspace metadata from known good, using the VSCode Task "Update workspace metadata from known good".
10596
This will generate the `.gita-workspace.csv` file based on `known_good.json`.
106-
97+
10798
**Command line:**
99+
108100
```bash
109101
python3 scripts/known_good/known_good_to_workspace_metadata.py
110102
```
111-
103+
112104
3. Run VSCode Task "<Name>: Generate workspace", e.g. "Gita: Generate workspace".
113105
This will clone all modules using the chosen workspace manager.
114106
The modules will be in sub-directories starting with `score_`.
115107
Note that the usage of different workspace managers is mutually exclusive.
116-
108+
117109
**Command line:**
110+
118111
```bash
119112
gita clone --preserve-path --from-file .gita-workspace.csv
120113
```
@@ -124,67 +117,34 @@ You can make local changes to each module, which will be directly reflected in t
124117

125118
## Known Issues ⚠️
126119

127-
### Orchestrator
128-
**Issue:** Direct toolchain loading at `BUILD:14`
129-
```
130-
load("@score_toolchains_qnx//rules/fs:ifs.bzl", "qnx_ifs")
131-
```
132-
**Resolution needed:** Refactor to use proper toolchain resolution instead of direct load statements.
133-
134-
**Issue:** clang needs to be installed
135-
```
136-
sudo apt install clang
137-
```
138-
**Resolution needed:** why is this happening with -extra_toolchains=@gcc_toolchain//:host_gcc_12 ?
139-
140120
### Communication
121+
141122
**Module:** `score/mw/com/requirements`
142123

143124
**Issues when building from external repository:**
125+
144126
1. **Label inconsistency:** Some `BUILD` files use `@//third_party` instead of `//third_party` (repository-qualified vs. local label). Should standardize on local labels within the module.
145127
2. **Outdated path reference:** `runtime_test.cpp:get_path` checks for `safe_posix_platform` (likely obsolete module name) instead of `external/score_communication+/`.
146128

147-
### Persistency
148-
**Test failures in `src/cpp/tests`:**
149-
1. **Dependency misconfiguration:** `google_benchmark` should not be a dev-only dependency if required by tests. Consider separating benchmark targets.
150-
2. **Compiler-specific issue in `test_kvs.cpp`:** Contains GCC-specific self-move handling that is incorrect and fails with GCC (only builds with LLVM). Needs portable fix or removal of undefined behavior.
151-
152-
## Build Blockers 🚧
153-
154-
The following builds are currently failing:
129+
### Coverage
155130

156-
### FEO (Full Build)
157-
```bash
158-
bazel build @feo//... --verbose_failures
159-
```
160-
161-
### Persistency (Full Build)
162-
```bash
163-
bazel build --config x86_64-linux @score_persistency//src/... --verbose_failures
164-
```
131+
Running coverage has to be executed on Ubuntu 22.04, newer versions are not supported and might have issues.
165132

166133
## System Dependencies
167134

168-
### Required Packages for FEO
169-
Install the following system packages before building FEO:
135+
Install the following system packages:
136+
170137
```bash
171138
sudo apt-get update
172-
sudo apt-get install -y protobuf-compiler libclang-dev
139+
sudo apt-get install -y protobuf-compiler libclang-dev lcov
173140
```
174141

175-
## Pending Tasks 🧪
176-
177-
- [ ] Add test targets once cross-repository visibility constraints are clarified
178-
- [ ] Normalize third-party label usage across all `BUILD` files
179-
- [ ] Resolve FEO build failures
180-
- [ ] Fix Persistency full build
181-
- [ ] Address compiler-specific issues in test suites
182-
183142
## Proxy & External Dependencies 🌐
184143

185144
### Current Issue
186145

187146
The `starpls.bzl` file ([source](https://github.com/eclipse-score/tooling/blob/main/starpls/starpls.bzl)) uses `curl` directly for downloading dependencies, which:
147+
188148
- Bypasses Bazel's managed fetch lifecycle and dependency tracking
189149
- Breaks reproducibility and remote caching expectations
190150
- May fail in corporate proxy-restricted environments
@@ -201,19 +161,13 @@ export HTTPS_PROXY=http://127.0.0.1:3128
201161
```
202162

203163
Add this to your `MODULE.bazel`:
164+
204165
```python
205166
local_path_override(module_name = "score_tooling", path = "../tooling")
206167
```
207168

208-
### Suggested Improvements
209-
- Replace raw `curl` calls with Bazel `http_archive` or `repository_ctx.download` for reproducibility.
210-
- Parameterize proxy usage via environment or Bazel config flags.
211-
212169
## IDE support
213170

214171
### Rust
215172

216173
Use `scripts/generate_rust_analyzer_support.sh` to generate rust_analyzer settings that will let VS Code work.
217-
218-
## 🗂 Notes
219-
Keep this file updated as integration issues are resolved. Prefer converting ad-hoc shell steps into Bazel rules or documented scripts under `scripts/` for repeatability.

bazel_common/score_modules_target_sw.MODULE.bazel

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ bazel_dep(name = "score_baselibs_rust")
2929
git_override(
3030
module_name = "score_baselibs_rust",
3131
remote = "https://github.com/eclipse-score/baselibs_rust.git",
32-
commit = "9f781acfb6d1a8fa06012ce772b0befb304acf31",
32+
commit = "0eba2934fa8b0e1a343ec6bf6f7ff00cec27d81c",
3333
)
3434

3535
bazel_dep(name = "score_communication")
@@ -47,11 +47,7 @@ bazel_dep(name = "score_persistency")
4747
git_override(
4848
module_name = "score_persistency",
4949
remote = "https://github.com/eclipse-score/persistency.git",
50-
commit = "9692dadab51c677183262e8870c5425ab1797c4f",
51-
patches = [
52-
"//patches/persistency:fix-duplicated-needs-name.patch",
53-
],
54-
patch_strip = 1,
50+
commit = "438bf9b5c447fd41ad43b321679dd3d1b3a6c737",
5551
)
5652

5753
bazel_dep(name = "score_orchestrator")
@@ -78,6 +74,6 @@ git_override(
7874
bazel_dep(name = "score_logging")
7975
git_override(
8076
module_name = "score_logging",
81-
remote = "https://github.com/qorix-group/logging.git",
82-
commit = "3718923aafc273531b1d0b3a240d821db24afbbc",
77+
remote = "https://github.com/eclipse-score/logging.git",
78+
commit = "80feaae8ffaa2448c3872011b724e1668ad2930e",
8379
)

0 commit comments

Comments
 (0)