Releases: SoundMatt/cpp-LIN
Releases · SoundMatt/cpp-LIN
v0.3.0 — RELAY spec v1.11 conformance
RELAY v1.11 §17.7 — CLI waiver removed
RELAY v1.11 removes the waiver that previously allowed CLI-less C++ library implementations to mark CLI conformance requirements as "not applicable". Every conformant C++ implementation must now ship the version / capabilities / status CLI, buildable via -DRELAY_BUILD_CLI=ON.
cpp-LIN has shipped the full CLI since v0.1.0 — no new code was required. This release aligns the declared spec version and CMake interface with the new spec text.
Changes
| File | Change |
|---|---|
include/lin/relay.hpp |
kSpecVersion "1.10" → "1.11" |
include/lin/lin.hpp |
kSpecVersion "1.10" → "1.11" |
cli/json.hpp |
spec_version in version + capabilities JSON → "1.11" |
CMakeLists.txt |
Added RELAY_BUILD_CLI alias option (§17.7) |
testdata/relay-vectors/ |
3 test vectors updated to spec_version: "1.11" |
.fusa-reqs.json |
REQ-RELAY-020 updated to require "1.11" |
| All docs | Swept v1.10 → v1.11 across README, ROADMAP, SAFETY_PLAN, SAFETY_MANUAL, INCIDENT-RESPONSE, SECURITY, HARA, sas.md |
CI
All 15 checks green, including:
- RELAY conformance (
relay conform --strict) — confirms v1.11 acceptance - ThreadSanitizer, ASan+UBSan, cpp-FuSa ASIL-B qualification, Coverage ≥70%
v0.2.0 — Full Safety & Cyber Pack
What's New
Safety Documentation (ISO 26262 / IEC 61508 / DO-178C)
- TARA (
TARA.md+tara.json): 7 threat scenarios with CVSS 3.1, 8 security controls, attack tree, residual risk acceptance — ISO/SAE 21434:2021 + IEC 62443-4-1 SL-2 - FMEA (
fmea.json): 14 failure mode entries linked to HARA hazards H-01..H-05, all closed — ISO 26262-9 - Software Architecture Specification (
sas.md): 9 modules, invariants, public interfaces, data flow, memory safety strategy — ISO 26262-6 §7.4 - Boundary Diagram (
boundary.mermaid): ISO 26262-6 §7.4.1 — all modules, data flows, ASIL annotations - Safety Manual (
SAFETY_MANUAL.md): safe API patterns, anti-patterns, thread safety matrix, memory budget, shutdown sequencing — ISO 26262-6 §7 / Part 10 §9 SEooC - Security (
SECURITY.md,INCIDENT-RESPONSE.md): coordinated disclosure, ASIL impact assessment, ISN process — ISO/SAE 21434 §7.4, IEC 62443-4-1 SM-2
Requirements Traceability
- 19 IEC 62443 security controls in
.fusa-iec62443.json(expanded from 5-line stub) - 32 new REQ-RELAY-001..029,051,056,059 in
.fusa-reqs.json— closes all orphanfusa:reqannotations - All 109 existing FuSa requirements retained; full traceability matrix intact
CI Improvements
cpfusa lintandcpfusa cyberare now hard gates (removed|| true)- ThreadSanitizer job added as a hard gate for REQ-VIRT-018 (concurrent bus access)
- All 15 CI checks pass
Bug Fixes
LinAdapter::send(): explicit range check before publish prevents silent ID truncation for IDs ≥64 (REQ-ADAPT-003)
v0.1.0 — C++ LIN bus library
cpp-LIN v0.1.0
First release of the C++ LIN bus library — a complete port of go-LIN implementing the RELAY spec v1.10, qualified to ISO 26262 ASIL-B.
Features
- Core LIN types:
Frame,Filter,ScheduleEntry,IBus,IMasterBus— full feature parity with go-LIN - Virtual bus (
lin::virt::Bus): thread-safe, metrics, health provider, subscriber drainer - E2E safety (
lin::safety): CRC-16/CCITT-FALSE end-to-end data protection with monotonic sequence counter - LDF parser (
lin::ldf): parses LIN Description Files — frames, signals, schedule tables - Master node (
lin::master::Node): schedule-driven header transmission with per-slot callbacks - Slave node (
lin::slave::Node): response registry with frame subscription - RELAY adapter (
lin::adapt()): wraps anyIBusas arelay::INode - CLI binary (
cpp-lin-cli): RELAYversion,capabilities,status,convert --protocol LIN
Quality gates (all green)
- 160/160 unit tests on GCC-12 C++17, GCC-12 C++20, Clang-14 C++17, AppleClang C++17, MSVC C++17
- ASan + UBSan clean
- LCOV coverage ≥ 70%
- RELAY conformance (
relay conform --strict) - cpfusa ASIL-B qualification
- clang-tidy static analysis
- Docker smoke test
- DCO signed-off
Standards
- C++17 (no C++20 features)
- RELAY spec v1.10 §8.3
- ISO 26262 ASIL-B
- IEC 62443 cybersecurity requirements