Skip to content

v0.2.18

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Nov 15:22
0a80b55

Module Name: baselibs
Release Tag: v0.2.18
Origin Release Tag: v0.2.17
Release Commit Hash: 0a80b55
Release Date: 2026-11-12

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

  • Hash (score/hash): Removed SHA-1 support, including its public API, hash identification, calculator factories, and OpenSSL wrapper. The former SHA-1 identifier is no longer accepted. Use a supported alternative such as SHA-256. #765
  • JSON (score/json): JsonParser now rejects duplicate member names within an object with Error::kParsingError, instead of silently dropping values or merging duplicate containers. Inputs with duplicate names that previously parsed now fail. #785
  • Serialization (score/serialization): Added a 16-level limit to nested struct field traversal; exceeding it triggers an assertion. #775

New features

  • Serialization (score/serialization): Extended strategy support with nested field paths and per-level last-element metadata, SerializeIterator::WriteAt for back-patching already-written data, and DeSerializeIterator::SetError for reporting strategy-detected errors. Added SerializationError::kDeserializedCountExceedsCapacity. #775

Bug fixes

  • Serialization (score/serialization): Writing into a full static_vector output buffer now returns kOutOfBoundsWrite instead of triggering an assertion. Corrected iterator byte counts, made DeSerializeIterator postfix increment return the previous position, and made End() constant-time. #741
  • Serialization (score/serialization): UDS deserialization now clears reused string/vector destinations instead of appending to their contents. It stops on truncated length-prefixed data or vector elements that consume no input, and struct-field traversal stops after a latched failure. #741
  • JSON (score/json): Fixed Any numeric conversions for values constructed in code: float to double now widens instead of aborting, and NaN-to-integer conversion returns kWrongType instead of reaching an undefined conversion. Parsed JSON is unaffected by these fixes. #790

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/43199620732

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

  • Remove references to memory/shared by @4og in #767
  • json parser: consolidate the parser test targets by @mihajlo-k in #754
  • Adds fixes raised through code review by @muhseth in #741
  • Add QNX SDP 8.0.5 configs and use them for QNX coverage by @4og in #737
  • json parser: align the vaJson parser layout with the style guide by @mihajlo-k in #772
  • json parser: align the parser and vaJson code with the C++ style guide by @mihajlo-k in #778
  • json writer: align the writer and vaJson writer code with the C++ style guide by @mihajlo-k in #780
  • Sync log frontend implementation by @4og in #659
  • json parser: reject duplicate object member names by @mihajlo-k in #785
  • Retire SHA-1 support from score/hash by @Rutik7 in #765
  • Changes needed for someip strategy by @muhseth in #775
  • ci: cache QEMU apt packages in workflows by @4og in #794
  • memory: remove stale shared-memory documentation by @4og in #792
  • ci: replace QEMU package caching with fast APT mirrors by @4og in #798
  • json parser: merge the vaJson parser layers into StructureParser by @mihajlo-k in #787
  • json: replace TryLosslessCast with an if-constexpr template by @mihajlo-k in #790
  • chore(bazel): align toolchain configuration across SCORE modules by @AlexanderLanin in #796
  • skills: require atomic requirements, add review checklist by @mihajlo-k in #800
  • json writer: write JSON with plain functions by @mihajlo-k in #802
  • mw/log: Fix safety level of requirements and cleanup by @rmaddikery in #803
  • Added GTL Public API component requirements by @indramaniarorascore in #730
  • Use SDP 8.0.5 in QNX build workflow by @4og in #769

Full Changelog: v0.2.17...v0.2.18