Skip to content

v0.8 aligment#272

Merged
PiotrKorkus merged 21 commits into
mainfrom
4og-baselibs-update
Jul 9, 2026
Merged

v0.8 aligment#272
PiotrKorkus merged 21 commits into
mainfrom
4og-baselibs-update

Conversation

@4og

@4og 4og commented Jun 29, 2026

Copy link
Copy Markdown
Member

Workaround TODOs

Temporary workarounds introduced in this integration branch. Each must be reverted once the upstream fix lands.

  • Re-enable mpmc_concurrent_queue_tsan_test — TSAN data race in lifecycle (known_good.json)
  • Drop ASLR entropy lowering vm.mmap_rnd_bits=28 for sanitizer tests (scripts/quality_runners.py)
  • Re-enable health_monitor Rust miri_tests (known_good.json, lifecycle)
  • Remove lifecycle aarch64 fd-values patch sync_fd 3 → 111 (patches/lifecycle/001-aarch64-fd-values.patch)
  • Remove global @score_baselibs//src/log:safety_level=qm in _common (needed by persistency) (.bazelrc)
  • Re-enable bm_kvs_cpp — pulls google_benchmark dev-dependency (known_good.json, persistency)
  • Unpin score_rules_imagefs from 0.0.1 — blocked by qnx_unit_tests@0.2.0 → imagefs@0.0.3 (bazel_common/score_images.MODULE.bazel)
  • Remove ANDROID_HOME= stub for rules_android on CI (.bazelrc)
  • Remove -Clink-arg=-lgcc for eb-aarch64 outline-atomics helpers (bazel_common/score_rust_toolchains.MODULE.bazel)
  • Upstream & drop baselibs patch 001-restore-trace-library-mock-visibility
  • Upstream & drop logging patch 001-restore-remote-backend-in-datarouter
  • Upstream & drop communication patches 001-expose-comm-examples, 003-module-deps-visibility

@github-actions

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

@4og 4og force-pushed the 4og-baselibs-update branch from dd9e137 to cd03d77 Compare June 29, 2026 13:36
@4og 4og force-pushed the 4og-baselibs-update branch from cd03d77 to efe466d Compare July 1, 2026 10:53
@antonkri antonkri force-pushed the 4og-baselibs-update branch from 6f66025 to 6709773 Compare July 7, 2026 12:39
@antonkri antonkri force-pushed the 4og-baselibs-update branch from 6709773 to c7210a2 Compare July 7, 2026 13:38
@antonkri antonkri changed the title Update baselibs to e08fa5 score_v08_release Jul 7, 2026
antonkri added 2 commits July 8, 2026 07:56
Update score_communication to 0e0640998096049a8dd65a4173b03a988d5a85a7
and pull in the cascading dependency and toolchain changes required by it.

Modules:
- score_communication -> 0e064099
- score_tooling -> 7099e272 (needs component(target_compatible_with))
- add lobster git_override, bump trlc -> 8d25f639 (required by new tooling)

Toolchain:
- add LLVM/libclang toolchain (toolchains_llvm 1.8.0, llvm 19.1.7) used by
  the score_tooling C++ parser for communication code generation
  (bazel_common/score_llvm_libclang.MODULE.bazel, bazel/toolchains/BUILD,
  registered via .bazelrc --extra_toolchains)

Flags:
- tracing library flag moved from communication into baselibs:
  .bazelrc now sets
  @score_baselibs//score/analysis/tracing/generic_trace_library:implementation

Patches:
- 001-expose-comm-examples: rewritten to export the new rust example config
- 003-module-deps-visibility: regenerated for the new MODULE.bazel
- 002-tests-visibility and 004-tracing-library-target: removed (obsolete)

Showcase:
- migrate standalone comm showcase from the removed C++ ipc_bridge example
  to the rust com-api-example (BUILD, com.score.json, itf test_showcases.py)
…on eb-aarch64

The communication bump pulls score_qnx_unit_tests@0.2.0 which requests
score_rules_imagefs@0.0.3, forcing the reference integration off its pinned
0.0.1, and the new mw/com Rust com-api FFI now links C++ objects into the EB
aarch64 image. That broke four previously-green checks:

- Bzlmod Lockfile Check: imagefs extension digest changed in the lock.
- QNX8 Build: imagefs 0.0.3 removed the `ext_repo_maping` attribute used by
  images/qnx_{x86_64,aarch64}/build/BUILD.
- Code Quality & Documentation: rules_android (0.6.6, via grpc-java ->
  rules_jvm_external) android_sdk_repository fails on CI because ANDROID_HOME
  points at an incomplete SDK.
- EB corbos aarch64: undefined references to the GCC outline-atomics helpers
  (__aarch64_*_acq_rel) when statically linking the C++ com/baselibs objects
  into the Rust //images/ebclfsa_aarch64:run binary.

Fixes:
- single_version_override score_rules_imagefs to 0.0.1 so the existing QNX
  image definitions keep working (fixes the lockfile and QNX checks).
- .bazelrc: common --repo_env=ANDROID_HOME= so android_sdk_repository emits an
  empty stub instead of failing; no code here uses Android.
- ferrocene_aarch64_ebclfsa: add -Clink-arg=-lgcc so the aarch64 outline-atomics
  helpers resolve in the static Rust link.
- Regenerate MODULE.bazel.lock accordingly.
@antonkri antonkri force-pushed the 4og-baselibs-update branch from de11797 to 19f9b83 Compare July 8, 2026 09:45
antonkri and others added 12 commits July 8, 2026 10:39
Cherry-picked from PR #279 (eclipse-score/reference_integration) commit
019d846 onto the communication-bump branch.

Conflicts resolved by keeping this branch's score_communication (0e064099) and
score_tooling (7099e272) bumps while taking PR #279's target_sw changes:
- score_logging -> 6c855d97 (+ patches/logging:001-restore-remote-backend-in-datarouter)
- score_baselibs -> version 0.2.9 (+ patches/baselibs:001-restore-trace-library-mock-visibility)
- score_persistency -> 3f674b12 (drops the string-view patch)
- .bazelrc: add dlt_output_enable=True datarouter flag
Regenerated the derived MODULE.bazel module files, rust_coverage/BUILD and
MODULE.bazel.lock. Removed now-unreferenced baselibs/persistency patches.

Local verification: bazel builds @score_logging//score/mw/log/... (18 targets),
@score_communication//score/mw/com/impl/... (187) and //showcases/standalone:comm
against baselibs 0.2.9; logging + communication unit tests pass.
- Update known_good hash to caf5a187 with new code_root_path //score/...
- Add aarch64 fd-values bazel patch (sync_fd 3 -> 111)
- Exclude health_monitor rust miri_tests (bazelrc -miri, rust_coverage query)
- Bump flatbuffers to 25.12.19
- Adapt simple_lifecycle showcase to new launch_manager path + logging.json
score_baselibs and lifecycle use library APIs stabilized after the
rules_rust default host toolchain (Rust 1.86.0): is_multiple_of (1.87)
and NonNull::from_ref / str::from_utf8* inherent constructors /
array-length inference (1.89). The new lifecycle rust_supervised_app
example pulls the baselibs Rust logging stack into the x86_64 host build,
which failed to compile with 1.86.0. Ferrocene (only used for
safety-target configs) is not involved in this build.

Register Rust 1.89.0 as the default host toolchain.
Update persistency to latest main. The new revision switched its log
dependency from baselibs_rust to baselibs, so the persistency
safety_level workaround now targets @score_baselibs//src/log instead of
@score_baselibs_rust//src/log (in known_good.json extra_test_config and
the ferrocene-coverage-per config). The bm_kvs_cpp exclusion is still
required (depends on the google_benchmark dev-dependency).
The updated persistency logs Path values via score_log macros, which
require ScoreDebug only available at safety_level=qm. Since persistency
switched its log dependency from baselibs_rust to baselibs, the global
_common config must also set @score_baselibs//src/log:safety_level=qm,
otherwise platform/image builds (AutoSD, QNX, Linux, EB) fail to compile
persistency's rust_kvs json_backend.rs.
The mpmc_concurrent_queue_tsan_test in score_lifecycle_health aborts with
'FATAL: ThreadSanitizer: unexpected memory mapping' on Ubuntu 24.04 runners,
where vm.mmap_rnd_bits defaults to 32. That high ASLR entropy is incompatible
with the sanitizer shadow-memory layout. Lower it to 28 before running the
unit tests (google/sanitizers#1614). Best-effort so local runs are unaffected.
The mpmc_concurrent_queue_tsan_test in score_lifecycle_health reports a
ThreadSanitizer data race and fails the unit test run. Exclude it in
known_good.json until the upstream race is fixed.
…cy docs

docs-as-code v4.6.0 (46cfe046) provides the needs metamodel with the `derived_from` attribute that persistency 35a937f3 uses, resolving the metamodel mismatch that had disabled persistency in the docs build. Aligned score_process to v1.6.0 (04e9cd30), the version docs-as-code v4.6.0 declares (its own needs reference process gd_req__impl_diagram_* IDs that only exist in 1.6.0).

score_logging and score_persistency declare score_process/score_platform as dev_dependency; transitive dev-deps are invisible in bzlmod, so their //:needs_json targets could not resolve @score_process. Added patches dropping dev_dependency = True for both modules.

Validated: //:docs_combo_experimental (CI docs target) builds successfully, incl. under --lockfile_mode=error.
The Known Good check regenerates the MODULE.bazel files from known_good.json. Record the two new patches under bazel_patches so generation reproduces them and the check passes.
@@ -0,0 +1,14 @@
diff --git a/score/datarouter/BUILD b/score/datarouter/BUILD

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, With https://github.com/eclipse-score/logging/releases/tag/v0.2.2 this patch is NO longer needed

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right but you still need to fix doc as code as dev deps otherwise new release cannot be integrated

antonkri and others added 3 commits July 9, 2026 13:43
@rules_pkg is only loaded from score_communication test/quality/integration_testing paths, which the reference integration does not build. The com-api-example showcase resolves and compiles without it, so the 003-module-deps-visibility patch no longer needs to un-dev rules_pkg.
@pawelrutkaq pawelrutkaq changed the title score_v08_release v0.8 aligment Jul 9, 2026
@PiotrKorkus PiotrKorkus merged commit 401b83c into main Jul 9, 2026
19 of 22 checks passed
@PiotrKorkus PiotrKorkus deleted the 4og-baselibs-update branch July 9, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants