Skip to content

Update dependency score_communication to v0.4.0 - #188

Open
eclipse-score-bot wants to merge 1 commit into
mainfrom
renovate/score_communication-0.x
Open

Update dependency score_communication to v0.4.0#188
eclipse-score-bot wants to merge 1 commit into
mainfrom
renovate/score_communication-0.x

Conversation

@eclipse-score-bot

@eclipse-score-bot eclipse-score-bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
score_communication bazel_dep minor 0.2.10.4.0

Release Notes

eclipse-score/communication (score_communication)

v0.4.0

Module Name: communication
Release Tag: v0.4.0
Origin Release Tag: v0.3.0
Release Commit Hash: b22ed6d
Release Date: 2026-08-20

Overview

The communication module provides a generic communication frontend with an IPC binding for use in the S-CORE project.

The module is available as a Bazel module in the S-CORE Bazel registry: https://github.com/eclipse-score/bazel_registry/tree/main/modules/score_communication

Disclaimer

This release is not intended for production use, as it does not include a safety argumentation or a completed safety assessment.
The work products compiled in the safety package are created with care according to the S-CORE process. However, as a non-profit, open-source organization, the project cannot assume any liability for its content.

For details on the features, see https://eclipse-score.github.io/score/main/features/communication/index.html

Improvements

Configuration parsing & validation

  • Introduced an IConfigurationParsingStrategy interface and a dedicated ConfigurationJsonParsingStrategy implementation, extracting JSON-specific parsing out of the monolithic parser while keeping config_parser as a backward-compatible wrapper — lays groundwork for supporting additional configuration formats (e.g. Flatbuffers) (#​634).
  • Extracted common configuration-validation checks (duplicate-detection, EmplaceOrFatal) into a shared config_validate library reused by parsing strategies, and changed ParseLolaxxx functions to return void instead of silently ignoring a return value (#​615).
  • Restructured Configuration's member access: direct access to internal unordered_map members for service types/instances is now restricted, with a richer public API added so consumers query/validate through methods instead of reaching into internal data — enables re-validating a Configuration after it has been loaded (#​868).

mw::com Field & Method APIs

  • Added getter-enabled Field support: single source of truth for getter/setter signatures across binding factories, getter helper extraction, event-slot sizing based on field tags, and dedicated getter integration test suites (#​810, #​758, #​891, #​746, #​821, #​837, #​816, #​727, #​793).
  • Additional field-behavior/test hardening in the same cluster: various field fixes, additional field tests, test_types.h extensions for field/method testing, and moving the field_initial_value and ProcessSynchronizer test packages into shared/common test resources (#​735, #​756, #​731, #​729, #​728).
  • Added GetLatestSlot/GetLatestSample functionality and method-call integration tests (#​208, #​485, #​463).
  • Added a heap-free mw::com skeleton/proxy example and a microbenchmark (#​692, #​726).
  • Internal hardening: switched to memory::DataTypeSizeInfo internally (enforces size/alignment invariants) while preserving the weaker public DataTypeMetaInfo for backward compatibility (#​813); event-data-control now passed by pointer instead of copy (#​454); LoLa DATA/CONTROL shared-memory sizing based on analytic calculation (#​760); binding wrappers now use traits directly instead of duplicated boilerplate (#​714).
  • Added static design documentation for a new high-level mw::com architecture (#​951); clarified SubscriptionState documentation (#​718); added a corresponding AoU, DoNotTrustGetSubscriptionStateReturnValue (#​640).

Shared memory / gateway

  • Migrated memory/shared from score_baselibs into score_communication (large-scale, 159-file migration) and moved the DynamicArray shared-memory SCT alongside it (#​809, #​754, #​759, #​910).
  • Added a new InterVM custom typemem provider: a separate shared-memory provider selected when the shm path uses the inter-VM prefix (/intervm-shared-shmem/), enabling cross-VM shared-memory scenarios (#​832).
  • Reworked the message-passing threading model for QNX and moved to ScopeExit-based RAII for teardown, plus an explicit stop method for thread runners (#​676, #​687, #​965).
  • Initial implementation of an HV LoLa gateway sample transport layer and a dual-QEMU ivshmem integration-test environment, plus an inotify stress test for the gateway/shared-memory path (#​508, #​617, #​631).

Rust::com

  • Optimized the Rust example app, moved the Rust public API to com/rust, and enabled logging support in the Rust library (#​556, #​736, #​730).

Public API surface / build contract (breaking-risk change for downstream consumers)

  • Substantially reduced the exposed Bazel target surface to only intentional public API targets, with follow-up work to guarantee no unintended breakage and correct .bzl visibility (#​733, #​715, #​776). Consumers depending on previously-visible but non-public targets may need to adjust.
  • Satellite clean-up driven by the same API-surface reduction: tests now include public headers instead of internal ones (#​895), production/test code switched to use the public API instead of internal APIs (#​934), unused public functions removed from the LoLa binding (#​874), and mw/com/impl:unit_test was split into individual per-topic Bazel targets to align with the narrower surface (#​768).
  • All deprecated-Runtime::Initialize(argc, argv) test call sites (42 files) migrated to the safecpp::zstring_view-based overload, ahead of removing the deprecated overload (#​856).
  • Replaced deprecated score::StringLiteral usage internally with safecpp::zstring_view, introducing new overloads while marking the old ones deprecated (#​745); replaced deprecated ResultBlank with Result<void> (#​824).
  • Renamed the top-level examples directory to module_integration_test to better reflect its role, updating all doc/CI references (#​706).

Build system, compiler hardening & remote execution

  • Established compatibility with remote binary execution for all //score/... targets — a large-scale change (~13.9k lines) unblocking remote build/caching for this module (#​806).
  • Reworked the compiler-warning cc_features toolchain configuration to fix broken cc analysis, make flags toolchain-aware and duplication-free, and add new security-hardening compile/link defaults (_FORTIFY_SOURCE, full RELRO+BIND_NOW, stack-clash protection, CET/-fcf-protection) (#​765); split _FORTIFY_SOURCE=2 into its own cc_feature so it can be selectively disabled for coverage builds without disabling other hardening flags (#​808); warnings are now treated as errors on QNX as well, with the accompanying warning fixes (#​966).
  • Bumped Bazel to 8.7.0 and dropped support for Bazel 8.5.1 (#​764, #​948); upgraded buildifier and validated compatibility with the latest rules_cc (#​885, #​886, #​766); dropped several transitive version overrides by bumping to released module versions (#​922, #​960).

Testing & quality infrastructure

  • Introduced a Flaky-Test Detection mechanism and configured Bazel to run flaky tests multiple times (#​798, #​893); added a CI design document, later extended to run integration tests on ARM64 QNX (#​750, #​864, #​918); uploaded Bazel test logs on failed runs to aid triage (#​721); preserved remote build caches when an upload fails instead of deleting them unconditionally (#​909).
  • Added Rust coverage support in the LLVM pipeline and a Linux/QNX coverage baseline (#​772, #​698).
  • Migrated CI linting to the aspect CLI, introduced ruff (99 files) for Python linting, adopted clippy+ruff in CI, and removed the deprecated clang-tidy migration shim (#​717, #​954, #​961, #​924); added clang-tidy complexity checks and later fixed newly-surfaced clang-tidy warnings (#​796, #​902); removed the misc-include-cleaner check as counter-productive for this codebase's header-duplication conventions (#​860).
  • Extended the CPP API/ABI-compatibility checker with further cases and added a dependency-compatibility checker, later improved (#​763, #​773, #​795).
  • CodeQL/MISRA program upgrades: added a nightly quality dashboard display for CodeQL MISRA findings, uploaded all quality metrics at release time, enabled guideline recategorization prior to compliance reporting, dropped the CSV export path in favor of feeding merged SARIF directly to the dashboard, added QNX CodeQL analysis with platform-specific delta reporting, deduplicated cross-platform findings, and published a MISRA guidelines enforcement plan plus a follow-up (#​720, #​778, #​894, #​913, #​834, #​920, #​850, #​883).
  • Applied clang-tidy modernize-concat-nested-namespaces across the repository (58 files) as part of ongoing C++17 modernization (#​892); modernized deprecated GoogleTest macros and suppressed a benign self-assign warning in memory/shared tests (#​906).

Documentation

  • Added a full score::mw::com tutorial (145 files) with dedicated Sphinx integration, tutorial-chapter follow-ups, index fixes, and cleanup of unneeded markdown files (#​644, #​705, #​710, #​724, #​734, #​770).
  • Reworked the docs pipeline: bumped score_docs_as_code through several major versions, removed legacy configuration, added the clickable_plantuml Sphinx extension, treat documentation warnings as errors, and simplified the Sphinx setup by reusing the tooling repo's helpers (#​815, #​862, #​866, #​867, #​912, #​950, #​943, #​811); documentation is now built and uploaded on every merged PR (#​748).
  • Attempted a QNX documentation restructuring that was later reverted after it broke docs (#​939, reverted by #​959 — see Bug Fixes).

Requirements & safety artifacts

  • Restructured requirements traceability: moved the assumed-system-requirements package, split message-passing component requirements into per-interface files, and moved additional requirements into separate files (#​901, #​737, #​911, #​915); cleaned up Assumptions of Use (#​917); linked FMEA + GWT pattern for message passing (#​684).
  • Removed a dead/unused private member declaration to resolve a valid MISRA RULE-0-2-4 finding in EventDataControlComposite (#​823).

Repository process

  • Added skills for release-notes and CodeQL best-practice handling (#​702, #​775); added a review-checklists workflow and fixed the bug/issue templates (#​899, #​742, #​785); updated CONTRIBUTING.md (#​743).

Bug Fixes

mw::com / gateway behavior

  • Send() no longer unnecessarily slow on the first call (#​956, fixes #​955).
  • StopOffer is now correctly invoked on already-offered elements when a subsequent Offer fails, avoiding leaked service-instance state (#​812).
  • Field method-enable flags are now correctly checked/handled in the proxy method binding factory and in C++ before setting up field methods (#​727, #​793); proxy_data stub added and ProvidedServices count tracking corrected (#​749).
  • Made the cerr logger allocation-free and shutdown-safe in message passing, avoiding potential allocation-related issues during shutdown (#​799).
  • Fixed a flaky race in the shared-memory ConcurrentAccess test and multiple flaky gateway/message-passing tests (BidirectionalTransport, StopFindService), plus a visibility-guard test regression in proxy setups (#​835, #​784, #​819, #​753). BidirectionalTransport tsan checks were temporarily disabled and the test marked flaky while the underlying race was investigated (#​713, #​719).

MISRA/CodeQL compliance fixes

  • Resolved noexcept-related correctness issues by removing noexcept from functions that can propagate exceptions (both a general pass and targeted MISRA RULE-18-5-1 fixes) and marking exception-unfriendly functions noexcept where safe (#​807, #​836, #​900, #​838).
  • Fixed out-of-range enum casts, invalid cstring pointer arguments, signed-integer-overflow findings (including in ProcessTimerQueue distance calculation), enum underlying-type findings, and precedence-clarifying parentheses (#​847, #​846, #​844, #​845, #​843, #​831); resolved MISRA RULE-9-4-1 in OffsetPtr (#​898); fixed further clang-tidy-surfaced warnings and namespace concatenation (see Improvements, #​892).

CI reliability

  • Fixed CodeQL pack resolution/build issues: included .codeql/** in the compiled pack filegroup, resolved compiled-pack root via realpath to avoid symlink farms, and used the vendored pack consistently (#​830, #​833, #​757).
  • Corrected job permissions to fix security-events: write for linter/build jobs and prevented runner permission collisions in the log uploader (#​828, #​829, #​825, #​958); corrected cancellation of in-progress QNX runs on PR updates and avoided blocking workflows on cancellation (#​865, #​962); ensured QNX jobs are fetched first (#​957); fixed the release workflow itself (#​967); resolved Dependabot npm security alerts and fixed linter report collection (74 files) (#​889, #​859); fixed newly-surfaced aspect-lint findings (#​949).

Documentation/requirements correctness

  • Fixed the documentation build, several broken links/paths (including Sphinx include/toctree path prefix mismatches), and restored Message Passing / mw::com architecture docs after a regression (#​923, #​927, #​853, #​933, #​944); reverted the QNX doc-transition (#​939) after it introduced regressions (#​959).
  • Fixed component-requirement and AoU traceability linkage (#​952, #​925); fixed a deprecation-target warning (#​932).

Compatibility

  • x86_64-unknown-linux-gnu using score_toolchains_gcc
  • x86_64-unknown-linux-gnu using toolchains_llvm
  • x86_64-unknown-nto-qnx800 using score_toolchains_qnx
  • aarch64-unknown-nto-qnx800 using score_toolchains_qnx
  • Bazel 8.7.0; support for Bazel 8.5.1 was explicitly dropped this release (#​764, #​948).
  • Compatible with remote binary execution as of this release (#​806); a companion fix in score_tooling is required and is delivered separately via a score_tooling bump.
  • Several transitive Bazel-module version overrides were dropped this cycle by bumping to released versions (#​922, #​960); a single_version_override patch for score_baselibs (QNX8 poll() workaround) and dev_dependency git_overrides for score_itf, score_cpp_policies, and hedron_compile_commands remain in place — see Known Issues.

Performed Verification

  • Unit test execution on host with all supported toolchains
  • Build and test on QNX8 x86_64
  • Thread sanitized unit test execution
  • Address, undefined-behavior, and leak sanitized unit test execution
  • Static analysis / linting (clang-tidy, clippy, ruff) via the Aspect CLI, with findings uploaded to GitHub Code Scanning
  • CodeQL MISRA C++ compliance analysis on both Linux and QNX (--config=qnx), merged into a single compliance report
  • Code coverage report generation (llvm-cov) across the C++ test suite
  • Documentation build and packaging (Sphinx) for the release version

Known Issues

Build/toolchain compatibility

  • Compilation with Bazel 9+ fails — #​694 (open).
  • Compilation with rules_python version 2+ is broken — #​695 (open).
  • Bazel build can fail with a toolchain-resolution error / dependency version mismatch against latest main#​336 (open).
  • score_baselibs is patched via single_version_override with a QNX8 poll() workaround pending an upstream SDK fix (tracked in bazel_cpp_toolchains#68); this affects all consumers building for QNX8 until the SDK-side fix ships. score_cpp_policies remains pinned via git_override pending its first BCR release (tracked in-repo with a FIXME).

Runtime correctness

  • SIGABRT possible when two independent polling proxies use the same LoLa event — #​797 (open).
  • Corrupt or contended event subscription state could lead to termination of an intact subscriber on Unsubscribe()#​722 (open).
  • Method calls from within a method callback handler are not currently possible — #​767 (open).
  • GenericSkeleton interaction with typed Proxies does not work correctly — #​311 (open).
  • Rationale for hardcoding resmgr_attr.msg_max_size in message passing is not yet documented/resolved — #​848 (open).

Quality tooling

  • CodeQL analysis ignores some production source files — #​751 (open).
  • Communication documentation is not included in the Reference Integration — #​805 (open).

Test stability

Upgrade Instructions

Backward compatibility with the previous release is not guaranteed. In particular, review your Bazel target dependencies against the reduced public API surface (#​733/#​715/#​776) before upgrading.

Contact Information

For any questions or support, please raise an issue/discussion.

v0.3.0

Module Name: communication
Release Tag: v0.3.0
Origin Release Tag: v0.2.1
Release Commit Hash: 6b1a78b
Release Date: 2026-07-13

Overview

The communication module provides a generic communication frontend with an IPC binding for use in the S-CORE project.

The module is available as a Bazel module in the S-CORE Bazel registry: https://github.com/eclipse-score/bazel_registry/tree/main/modules/score_communication

Disclaimer

This release is not intended for production use, as it does not include a safety argumentation or a completed safety assessment.
The work products compiled in the safety package are created with care according to the S-CORE process. However, as a non-profit, open-source organization, the project cannot assume any liability for its content.

For details on the features, see https://eclipse-score.github.io/score/main/features/communication/index.html

Improvements

Core Communication Features

  • Added the LoLa inter-domain gateway with application orchestration, configuration parsing, and sample hypervisor transport layer for forwarding services across domains (#​450, #​510, #​536, #​576, #​578).
  • Introduced field tags architecture replacing boolean enablers to enable independent Get/Set/Notify functionality on fields (#​357).
  • Extended methods with semi-dynamic support, non-movable references, and improved resource management (#​632, #​572, #​593, #​390).
  • Added skeleton event move semantics and event subscription change notifications (#​610, #​358, #​409).

Message Passing & Architecture

  • Expanded message-passing dependability with architecture diagrams, safety analysis (FTA, FMEA), and component/feature requirements documentation (#​372, #​530, #​601, #​555).
  • Improved cross-domain service support and service discovery enhancements (#​618, #​639, #​633).

C++ Modernization & Codebase Quality

  • Replaced all score::cpp::optional with standard std::optional across 125 files, aligning with modern C++17 standards (#​598).
  • Cleaned up deprecated Rust FFI and old API patterns, reducing integration complexity (#​602).
  • Refactored method enablement semantics and removed legacy SomeIP configuration structs (#​673, #​406).

Testing & Quality Infrastructure

  • Massive expansion of test coverage: skeleton/proxy event move semantics tests, generic proxy/skeleton integration tests, method/subscription state-machine tests (#​559, #​653, #​408, #​571, #​605, #​466).
  • Added compiler warning feature bundles (15+ warning categories) integrated into all targets for systematic code hygiene (#​527).
  • Introduced visibility guards and static analysis for public API surface (#​641, #​550).
  • Expanded QNX8 and address/UB/leak/thread sanitizer test coverage across all toolchains (#​436, #​401, #​657, #​415, #​585).

CI/CD & Release Automation

  • Completely refactored GitHub Actions infrastructure with reusable workflow composables, Bazel caching layer, and dynamic environment setup (#​621).
  • Added nightly quality dashboards with automated code coverage, clang-tidy, and CodeQL reporting (#​448, #​215).
  • Implemented automatic release artifact uploads for documentation and coverage reports (#​691, #​693).

Documentation & Process

  • Restructured Sphinx build pipeline with versioned publishing, CSS theme modernization, and PlantUML diagram support (#​672, #​458, #​464, #​378).
  • Extended safety analysis documentation with failure modes, FTA chains, and architectural diagrams (#​601, #​372, #​410, #​599).
  • Added requirements files (CONTRIBUTING, quality README) and architecture documentation (#​303)

Bug Fixes

Configuration & Service Binding

  • Fixed runtime configuration parsing, service instance ID range handling, and method/field enablement defaults (#​696, #​683, #​668, #​673).
  • Fixed service element binding validation with comprehensive coverage of proxy/skeleton configurations (#​618, #​639).
  • Removed deprecated SomeIP deployment-specific code that was causing configuration mismatches (#​406).

Shared Memory & Lifecycle Management

  • Fixed skeleton shared-memory reopen/recreate flows with proper resource lifecycle and state preservation (#​665, #​642).
  • Fixed subscription state-machine race conditions and stability issues under concurrent access (#​605, #​466, #​466).
  • Fixed event registration and notification handling, including signal propagation reliability (#​414, #​576).
  • Fixed skeleton event move semantics to prevent data corruption during transfers (#​610, #​408).
  • Fixed proxy/skeleton resource cleanup on destruction and partial offer scenarios (#​642, #​596).

Message Passing & IPC

  • Fixed unix-domain socket NOSIGNAL handling and poll-based event notification (#​585).

Quality & Build Infrastructure

  • Fixed coverage generation and LLVM cov integration across all toolchains (#​675, #​549).
  • Fixed lockfile enforcement in CI to prevent dependency drift (#​690).
  • Fixed clang-tidy infrastructure and report publishing pipeline (#​621, #​488).
  • Fixed snapshot mirror reliability for reproducible builds (#​635).
  • Fixed CodeQL database extraction and MISRA report generation (#​550).
  • Fixed unused parameters, variable shadowing, and sign conversion warnings systematically (#​627, #​608, #​562).
  • Fixed template member function documentation in Doxygen (#​477).

Compatibility

Performed Verification

  • Unit test execution on host with all supported toolchains
  • Build on supported target platforms (QNX8 x86_64 and QNX8 aarch64)
  • Thread sanitized unit test execution
  • Address and UB sanitized unit test execution
  • Leak sanitized unit test execution

Known Issues

Upgrade Instructions

Backward compatibility with the previous release is not guaranteed.

Contact Information

For any questions or support, please raise an issue/discussion.


  • If you want to rebase/retry this PR, check this box

This PR was generated by #infrastructure automation. Contact us if you have any questions or feedback.

@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: e7af2558-c134-4f65-ad13-a9cb6ee90516
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'score_rules_imagefs', the root module requires module version score_rules_imagefs@0.0.1, but got score_rules_imagefs@0.0.3 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_crates', the root module requires module version score_crates@0.0.10, but got score_crates@0.0.11 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_baselibs', the root module requires module version score_baselibs@0.2.10, but got score_baselibs@0.2.11 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
WARNING: Target pattern parsing failed.
ERROR: Skipping '@score_baselibs//score/memory/shared/flags:use_typedshmd': no such package '@@score_baselibs+//score/memory/shared/flags': BUILD file not found in directory 'score/memory/shared/flags' of external repository @@score_baselibs+. Add a BUILD file to a directory to mark it as a package.
ERROR: @score_baselibs//score/memory/shared/flags:use_typedshmd :: Error loading option @score_baselibs//score/memory/shared/flags:use_typedshmd: no such package '@@score_baselibs+//score/memory/shared/flags': BUILD file not found in directory 'score/memory/shared/flags' of external repository @@score_baselibs+. Add a BUILD file to a directory to mark it as a package.

@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from da0478f to 083ec54 Compare July 22, 2026 10:45
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 083ec54 to 4c07b35 Compare July 24, 2026 13:33
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 4c07b35 to 7036dd1 Compare July 28, 2026 17:33
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 7036dd1 to 7e508e2 Compare August 4, 2026 08:57
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 7e508e2 to 2b46c38 Compare August 4, 2026 14:51
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 2b46c38 to 0fd8de0 Compare August 6, 2026 09:55
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 0fd8de0 to cb07b98 Compare August 13, 2026 11:21
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from cb07b98 to c8598e7 Compare August 14, 2026 07:35
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from c8598e7 to c2834de Compare August 17, 2026 10:14
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from c2834de to 30c57d7 Compare August 18, 2026 15:14
@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_communication-0.x branch from 2dd0e7e to bb7590e Compare August 20, 2026 12:11
@eclipse-score-bot eclipse-score-bot changed the title Update dependency score_communication to v0.3.0 Update dependency score_communication to v0.4.0 Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants