Skip to content

v0.2.16

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Oct 11:06
456bc83

Module Name: baselibs
Release Tag: v0.2.16
Origin Release Tag: v0.2.15
Release Commit Hash: 456bc83
Release Date: 2026-10-27

Overview

The baselibs module provides a selection of basic C++ utility libraries for common use in the S-CORE project.

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 (https://eclipse-score.github.io/process_description/main/index.html). 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/baselibs/index.html

Notable Changes

Breaking changes & deprecations

  • Continuing the JSON backend consolidation from v0.2.14 and v0.2.15, vaJson is now the only JSON writer. The --//score/json:writer_library flag and json_serialize backend have been removed. Compared with json_serialize, booleans are emitted as true/false instead of 1/0, keys and control characters are escaped, and empty objects and arrays are emitted as {} and []. JsonWriter and IJsonWriter retain their signatures, and default output remains pretty-printed. #675
  • Removed the deprecated Blank and ResultBlank aliases and the STRUCT_VISITABLE, STRUCT_TRACEABLE, MEMCPY_SERIALIZABLE, and MEMCPY_SERIALIZABLE_IF macros. Use void, Result<void>, and the corresponding SCORE_-prefixed macros instead. #623
  • Removed the deprecated Linux score::os::pthread_setaffinity_np wrapper and the QNX Neutrino::ChannelCreate(std::uint32_t) and TimerTimeout overloads taking a raw sigevent*. Use score::os::set_thread_affinity, ChannelCreate(Neutrino::ChannelFlag), and the TimerTimeout overload taking std::unique_ptr<SigEvent> instead. #703

New features

  • Added the public score/serialization library with a strategy-based score::serialization::Serializer API for serialization and deserialization. #710
  • DISABLE_WARNING_SELF_MOVE now supports GCC 13 and later, in addition to Clang. #693

Bug fixes

  • LockedPtr now releases an owned lock when constructed with nullptr. UnlockGuard checks owns_lock() when available before unlocking and relocking, avoiding operations on unowned locks. #650
  • Fixed shadow/sign-conversion warnings in the vaJson parser, sign-conversion warnings in GetArguments, and missing-braces errors in visit_as_struct.h when building with --features=all_wall_warnings. GetArguments now explicitly requires argc >= 0. #690 #695 #707
  • QNX gcov coverage now builds baseline notes for untested files without optimization, preventing optimized-away lines from being omitted from coverage totals. Linux LLVM coverage is unchanged. #704

Compatibility

The following platforms are supported using the bazel_cpp_toolchains (https://github.com/eclipse-score/bazel_cpp_toolchains):

  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • x86_64-unknown-nto-qnx800
  • aarch64-unknown-nto-qnx800

Performed Verification

  • Build on all supported platforms
  • Unit test execution on all supported platforms (some test failures are expected on AArch64 and QNX targets).
  • Address and undefined behavior sanitized unit test execution
  • Leak sanitized unit test execution

Report: https://github.com/eclipse-score/baselibs/actions/runs/40474903676

Upgrade Instructions

Backward compatibility with the previous release is not guaranteed.

Contact Information

For any questions or support, please contact the Base Libs Feature Team (https://github.com/orgs/eclipse-score/discussions/1223) or raise an issue/discussion.

What's Changed

Full Changelog: v0.2.15...v0.2.16