Skip to content

Releases: SoundMatt/go-LIN

v1.2.0 — full safety & compliance evidence pack

19 Jun 20:36
e854a3f

Choose a tag to compare

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-SEC cybersecurity 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

19 Jun 19:31
1eb4d95

Choose a tag to compare

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; SpecVersion auto-tracks relay.SpecVersion ("1.10").
  • convert --protocol LIN interop driver (§11.2) — relay interop --protocol LIN reports go-lin EQUIVALENT.
  • Streaming send --format json / subscribe --format json NDJSON 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)

17 Jun 14:31
10d44d2

Choose a tag to compare

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).
  • SpecVersion tracks relay.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.Message envelope with deterministic Frame.ToMessage() / FromMessage(), validated against the published golden vectors.
  • Bus / MasterBus interface contracts, Adapt(Bus) relay.Node, error sentinels (incl. ErrInvalidFrame), optional HealthProvider / MetricsProvider / Drainer.
  • RELAY-conformant go-lin CLI (version / capabilities / status).

Functional safety

  • 100 atomic ASIL-B SEOOC requirements; gofusa check clean.
  • Safety artifacts regenerated for v1.0.0.

Closes #27.

v0.4.0 — RELAY spec v0.3 conformance

17 Jun 13:21
4e64fe9

Choose a tag to compare

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 in go-lin version and capabilities output.
  • ErrInvalidFrame sentinelValidateFrame now 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 live Adapt subscription 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, FromMessage round-trip, and ValidateFrame error mapping.

Functional safety

  • 100 atomic ASIL-B SEOOC requirements; gofusa check clean.
  • Safety artifacts regenerated for v0.4.0.

Conformance tracking: closes #25.

v0.3.0 — RELAY spec v0.2 conformance

17 Jun 02:48
b4a74f9

Choose a tag to compare

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 (pass nil for 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, ErrPayloadTooLarge wrap the RELAY sentinels; ErrNoResponse wraps relay.ErrTimeout (§5).
  • LINChecksumType with JSON tags on Frame, Filter, ScheduleEntry (§15.3).
  • ValidateFrame rejects 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(), and Adapt(Bus) relay.Node with the §10.5 goroutine + back-pressure model.
  • New mock sub-package (§7) and RELAY-conformant go-lin CLI binary with version / capabilities / status (§11–§13).

Optional interfaces (P2 · #18)

  • virtual.Bus implements HealthProvider, MetricsProvider, and Drainer (§9).

Functional safety

  • 100 atomic ASIL-B SEOOC requirements; gofusa check clean.
  • 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).

Full conformance tracking: closes #16, #17, #18.