Releases: SoundMatt/go-LIN
v1.2.0 — full safety & compliance evidence pack
Builds out the complete functional-safety and cybersecurity evidence pack, with zero-GAP / zero-FAIL compliance gap reports across seven standards and maximised requirement and test coverage.
Compliance (0 GAP, 0 FAIL on every standard)
ISO 26262 · IEC 61508 · ISO/SAE 21434 · IEC 62443-4-2 · DO-178C · UN R.155 · SLSA v1.0 — each gated in CI. Remaining items are inherent human-review (MANUAL) attestations or N/A for a software component.
Highlights
- Full evidence pack: HARA (
.fusa-hara.json), TARA, boundary diagram, SCI, problem register, DO-178C plans (SVP/SCMP/SQAP/SAS), Safety Manual, SECURITY.md, INCIDENT-RESPONSE.md, IEC 62443 SL-2 declaration. - 112 requirements (was 100), each traced and tested — including a
REQ-SECcybersecurity family from the threat model and demonstrating tests for every SEOOC integration assumption. - Coverage: virtual 99.1%, slave/safety/mock 100%, ldf 89.7%, master 93.5%; new per-package coverage-floor gate.
- CI: new standards-compliance job (all 7 gap reports) + coverage floor; go-FuSa lifecycle expanded with
sec-tested 100, coverage, boundary, sci, coupling, SLSA builder provenance.
See SAFETY_MANUAL.md for the integration-facing safety document.
v1.1.0 — RELAY spec v1.10 conformance
Adopts the current stable RELAY spec v1.10 (§13.7 library architecture + §20 continuous conformance), closing adoption issues #29–#33.
Highlights
- RELAY v1.0.0 → v1.10.0;
SpecVersionauto-tracksrelay.SpecVersion("1.10"). convert --protocol LINinterop driver (§11.2) —relay interop --protocol LINreports go-lin EQUIVALENT.- Streaming
send --format json/subscribe --format jsonNDJSON crossbar spokes. - §20 CI gates:
relay conform --strict,relay interop, and the full go-FuSa lifecycle (check / trace -req-coverage 100 / cyber / vuln / qualify). - 106 atomic ASIL-B requirements (added REQ-ADAPT-001..005, REQ-MOCK-001) at 100% traceability + function-annotation density.
- TARA (ISO 21434) added to the committed safety evidence set.
relay conform --strict PASS (§12.1/§12.2/§12.3) · relay interop --protocol LIN EQUIVALENT · full gofusa lifecycle green.
v1.0.0 — RELAY spec v1.0 (stable)
First stable release. go-LIN now conforms to the stable RELAY specification v1.0 and builds against github.com/SoundMatt/RELAY@v1.0.0.
Highlights
- RELAY module bumped to v1.0.0 (stable API).
SpecVersiontracksrelay.SpecVersion(= "1.0") — the package version and linked module can no longer drift.- v1.0 has no normative changes from v0.3; go-LIN already conformed since v0.4.0. This release adopts the stability guarantee: canonical types (§15), application interfaces (§10), error sentinels (§5), and CLI document schemas (§12) are now stable, and any breaking change requires RELAY v2.0.
Conformance verified
relay conform (the v1.0 machine-checkable tool) passes against the go-lin binary:
PASS §12.1 version document schema
PASS §12.2 capabilities document schema
PASS §12.3 status document schema
RESULT: PASS
Conformance surface (cumulative)
- Universal
relay.Messageenvelope with deterministicFrame.ToMessage()/FromMessage(), validated against the published golden vectors. Bus/MasterBusinterface contracts,Adapt(Bus) relay.Node, error sentinels (incl.ErrInvalidFrame), optionalHealthProvider/MetricsProvider/Drainer.- RELAY-conformant
go-linCLI (version/capabilities/status).
Functional safety
- 100 atomic ASIL-B SEOOC requirements;
gofusa checkclean. - Safety artifacts regenerated for v1.0.0.
Closes #27.
v0.4.0 — RELAY spec v0.3 conformance
Adopts the RELAY specification v0.3, verified against the spec's published golden reference vectors. Builds on the v0.2 conformance shipped in v0.3.0.
Highlights
- RELAY module bumped to v0.8.0 (backward compatible).
SpecVersion = "0.3"— reflected ingo-lin versionandcapabilitiesoutput.ErrInvalidFramesentinel —ValidateFramenow wraps it for every structural violation (out-of-range ID, empty/oversize data, diagnostic frame 0x3C/0x3D with a non-classic checksum), per spec §5.3/§5.4.errors.Is(err, lin.ErrInvalidFrame)holds for all four cases.- Deterministic
Frame.ToMessage()— output now matches the published golden vector byte-for-byte (zero timestamp). The liveAdaptsubscription path stamps the wall-clock timestamp at delivery, so streaming telemetry still carries real time. - Golden + error vectors vendored under
testdata/relay-vectors/as first-class conformance fixtures, with tests covering canonical JSON,ToMessage,FromMessageround-trip, andValidateFrameerror mapping.
Functional safety
- 100 atomic ASIL-B SEOOC requirements;
gofusa checkclean. - Safety artifacts regenerated for v0.4.0.
Conformance tracking: closes #25.
v0.3.0 — RELAY spec v0.2 conformance
First release conforming to the RELAY specification v0.2. go-LIN now builds against github.com/SoundMatt/RELAY and exports the shared interface contract, error semantics, and protocol-agnostic application API.
Highlights
Breaking changes (P0 · #16)
Bus.Subscribe(filters []Filter, opts ...SubscriberOption)— filters are now a slice (passnilfor all frames) plus subscriber options, per RELAY §8.3.- Canonical constant names:
LINMaxDataLen,LINMaxID,LINDiagRequestID,LINDiagResponseID(§15.3). Old names retained as deprecated aliases.
Conformance (P1 · #17)
- Error sentinels
ErrClosed,ErrNotConnected,ErrTimeout,ErrPayloadTooLargewrap the RELAY sentinels;ErrNoResponsewrapsrelay.ErrTimeout(§5). LINChecksumTypewith JSON tags onFrame,Filter,ScheduleEntry(§15.3).ValidateFramerejects diagnostic frames (0x3C/0x3D) that don't use the classic checksum (§17.11).MasterBus.SetSchedule([]ScheduleEntry)added to the interface (§8.3).SpecVersion = "0.2",Frame.ToMessage()/FromMessage(), andAdapt(Bus) relay.Nodewith the §10.5 goroutine + back-pressure model.- New
mocksub-package (§7) and RELAY-conformantgo-linCLI binary withversion/capabilities/status(§11–§13).
Optional interfaces (P2 · #18)
virtual.BusimplementsHealthProvider,MetricsProvider, andDrainer(§9).
Functional safety
- 100 atomic ASIL-B SEOOC requirements;
gofusa checkclean. - Safety artifacts (dFMEA, safety case, SBOM, provenance, manifest) regenerated for v0.3.0.
Spec feedback raised
Two underspecified points encountered during implementation were filed on the spec repo: SoundMatt/RELAY#14 (Drainer drain semantics) and SoundMatt/RELAY#15 (Metrics per-protocol field semantics).