Repository navigation
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):JsonParsernow rejects duplicate member names within an object withError::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::WriteAtfor back-patching already-written data, andDeSerializeIterator::SetErrorfor reporting strategy-detected errors. AddedSerializationError::kDeserializedCountExceedsCapacity. #775
Bug fixes
- Serialization (
score/serialization): Writing into a fullstatic_vectoroutput buffer now returnskOutOfBoundsWriteinstead of triggering an assertion. Corrected iterator byte counts, madeDeSerializeIteratorpostfix increment return the previous position, and madeEnd()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): FixedAnynumeric conversions for values constructed in code:floattodoublenow widens instead of aborting, and NaN-to-integer conversion returnskWrongTypeinstead 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-gnuaarch64-unknown-linux-gnux86_64-unknown-nto-qnx800aarch64-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