Repository navigation
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_libraryflag andjson_serializebackend have been removed. Compared withjson_serialize, booleans are emitted astrue/falseinstead of1/0, keys and control characters are escaped, and empty objects and arrays are emitted as{}and[].JsonWriterandIJsonWriterretain their signatures, and default output remains pretty-printed. #675 - Removed the deprecated
BlankandResultBlankaliases and theSTRUCT_VISITABLE,STRUCT_TRACEABLE,MEMCPY_SERIALIZABLE, andMEMCPY_SERIALIZABLE_IFmacros. Usevoid,Result<void>, and the correspondingSCORE_-prefixed macros instead. #623 - Removed the deprecated Linux
score::os::pthread_setaffinity_npwrapper and the QNXNeutrino::ChannelCreate(std::uint32_t)andTimerTimeoutoverloads taking a rawsigevent*. Usescore::os::set_thread_affinity,ChannelCreate(Neutrino::ChannelFlag), and theTimerTimeoutoverload takingstd::unique_ptr<SigEvent>instead. #703
New features
- Added the public
score/serializationlibrary with a strategy-basedscore::serialization::SerializerAPI for serialization and deserialization. #710 DISABLE_WARNING_SELF_MOVEnow supports GCC 13 and later, in addition to Clang. #693
Bug fixes
LockedPtrnow releases an owned lock when constructed withnullptr.UnlockGuardchecksowns_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 invisit_as_struct.hwhen building with--features=all_wall_warnings.GetArgumentsnow explicitly requiresargc >= 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-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/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
- Update Bitmanipulation and Result Req Inspections by @aschemmel-tech in #678
- Replace inspected tag by status valid_inspected by @aschemmel-tech in #688
- Update QNX workflow version by @4og in #676
- json: fix vajson shadow/sign-conversion warnings by @mihajlo-k in #690
- json: remove writer selection and the json_serialize writer by @Nikhil2206 in #675
- Add support to disable self-move in gcc by @limdor in #693
- Fix sign conversion warning by casting to size_t by @limdor in #695
- Allow unsafe PR checkout in QNX coverage workflow by @4og in #692
- Fix
rustfmt.shand fix task name by @arkjedrz in #691 - Correct safety plan status report by @aschemmel-tech in #701
- coverage(qnx): build the baseline notes of untested files unoptimised by @dcalavrezo-qorix in #704
- Remove deprecated C++ aliases and macros (static_reflection_with_serialization, result) by @Priyanka-Patil18 in #623
- Migrate workflows check, format and Bazel lockfile by @nradakovic in #708
- Update dependency score_coverage to v0.4.2 by @eclipse-score-bot in #652
- Fix missing braces in
visit_as_struct.hby @cameron-craig-etas in #707 - Fix QNX coverage cache key and update cicd-actions pins by @4og with @Copilot in #709
- Migrate docs workflows to cicd-workflows docs.yml by @nradakovic in #713
- docs: use mod_ver_report need type and pin docs-as-code main by @antonkri in #672
- fix(ci): use supported QNX coverage cache key by @4og in #715
- Bump cicd-workflows and set require bzlmod lock by @nradakovic in #719
- Add documents lists to startpage by @aschemmel-tech in #722
- Remove nlohman_json from safety planning by @aschemmel-tech in #721
- Remove deprecated OS API overloads and wrappers. by @Rutik7 in #703
- Update dependency score_cpp_policies to v0.1.2 by @eclipse-score-bot in #723
- concurrency: take the clock test's deadline before its waiter starts by @kutsibalci in #720
- port serialization library to score/serialization by @muhseth in #710
- A nullptr LockedPtr does not hold the Lock by @sankurm in #650
- Update dependency score_bazel_cpp_toolchains to v1.0.5 by @eclipse-score-bot in #724
- json writer: collapse the JSON writer backend into a single serializer by @Nikhil2206 in #685
Full Changelog: v0.2.15...v0.2.16