Skip to content

Commit 02a3ce9

Browse files
authored
Release - v0.6 (#118)
* Release v0.6 - bump modules' versions * remove feo, update README * codeql: fix cloning tags * fix logging repo url * new patch with unique name * fix: cache issues with unit tests * exlude coding standards from codeql * bump score platform with hash of the release until in registry * final version tags - comm and platform * patch communication link in release notes
1 parent c4fef8e commit 02a3ce9

13 files changed

Lines changed: 123 additions & 135 deletions

.bazelrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cco
6666
build:ferrocene-coverage --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cdebuginfo=2
6767
test:ferrocene-coverage --run_under=@score_tooling//coverage:llvm_profile_wrapper
6868

69+
# Coverage needs to have all intermediate .rlibs to be able to proceed
70+
build:ferrocene-coverage --remote_download_all
71+
6972
test:unit-tests --config=linux-x86_64
7073
test:unit-tests --build_tests_only
7174
test:unit-tests --test_tag_filters=-manual
@@ -76,3 +79,6 @@ coverage --combined_report=lcov
7679

7780
# user specific overrides (like proxy settings)
7881
try-import %workspace%/user.bazelrc
82+
83+
# Try import setting from home (CI setup-bazel action for caching uses this to provide proper args like --disk-cache)
84+
try-import ~/.bazelrc

.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: 1 addition & 1 deletion
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

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: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,69 +15,62 @@
1515
# Do not edit manually - use scripts/known_good/update_module_from_known_good.py
1616

1717
bazel_dep(name = "score_baselibs")
18-
git_override(
18+
single_version_override(
1919
module_name = "score_baselibs",
20-
remote = "https://github.com/eclipse-score/baselibs.git",
21-
commit = "158fe6a7b791c58f6eac5f7e4662b8db0cf9ac6e",
20+
version = "0.2.4",
2221
patches = [
2322
"//patches/baselibs:003-acl-fixes-for-aarch64.patch",
2423
],
2524
patch_strip = 1,
2625
)
2726

2827
bazel_dep(name = "score_baselibs_rust")
29-
git_override(
28+
single_version_override(
3029
module_name = "score_baselibs_rust",
31-
remote = "https://github.com/eclipse-score/baselibs_rust.git",
32-
commit = "9f781acfb6d1a8fa06012ce772b0befb304acf31",
30+
version = "0.1.0",
3331
)
3432

3533
bazel_dep(name = "score_communication")
36-
git_override(
34+
single_version_override(
3735
module_name = "score_communication",
38-
remote = "https://github.com/eclipse-score/communication.git",
39-
commit = "56448a5589a5f7d3921b873e8127b824a8c1ca95",
36+
version = "0.1.3",
4037
patches = [
4138
"//patches/communication:001-expose-comm-examples.patch",
4239
],
4340
patch_strip = 1,
4441
)
4542

4643
bazel_dep(name = "score_persistency")
47-
git_override(
44+
single_version_override(
4845
module_name = "score_persistency",
49-
remote = "https://github.com/eclipse-score/persistency.git",
50-
commit = "9692dadab51c677183262e8870c5425ab1797c4f",
46+
version = "0.3.0",
5147
patches = [
5248
"//patches/persistency:fix-duplicated-needs-name.patch",
49+
"//patches/persistency:fix-bazel-dev-dep.patch",
5350
],
5451
patch_strip = 1,
5552
)
5653

5754
bazel_dep(name = "score_orchestrator")
58-
git_override(
55+
single_version_override(
5956
module_name = "score_orchestrator",
60-
remote = "https://github.com/eclipse-score/orchestrator.git",
61-
commit = "675007a2baa226fad1e2979ed732360dc111d056",
57+
version = "0.1.0",
6258
)
6359

6460
bazel_dep(name = "score_kyron")
65-
git_override(
61+
single_version_override(
6662
module_name = "score_kyron",
67-
remote = "https://github.com/eclipse-score/kyron.git",
68-
commit = "d4d0afc1dd733a0c8a4aba9cc2b2b3a58d38ebf6",
63+
version = "0.1.1",
6964
)
7065

7166
bazel_dep(name = "score_lifecycle_health")
72-
git_override(
67+
single_version_override(
7368
module_name = "score_lifecycle_health",
74-
remote = "https://github.com/eclipse-score/lifecycle.git",
75-
commit = "14ee704eeac03e03ca10bece5de8b694d3c5e2dd",
69+
version = "0.1.0",
7670
)
7771

7872
bazel_dep(name = "score_logging")
79-
git_override(
73+
single_version_override(
8074
module_name = "score_logging",
81-
remote = "https://github.com/qorix-group/logging.git",
82-
commit = "3718923aafc273531b1d0b3a240d821db24afbbc",
75+
version = "0.1.0",
8376
)

0 commit comments

Comments
 (0)