Skip to content

feat: vendor neutral common contracts#453

Open
drwnz wants to merge 12 commits into
tier4:mainfrom
drwnz:feat/vendor-neutral-common-contracts
Open

feat: vendor neutral common contracts#453
drwnz wants to merge 12 commits into
tier4:mainfrom
drwnz:feat/vendor-neutral-common-contracts

Conversation

@drwnz

@drwnz drwnz commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

PR 2: Add Vendor-Neutral Common Sensor Contracts

Tacked by #452

Branch: feat/vendor-neutral-common-contracts
Base: test/runtime-common-return-mode
Type: New Feature

Description

Adds ROS-free common types shared by the vendor-neutral runtime interface:

  • SensorPacket and SensorPacketView
  • SensorDecodedOutput
  • radar output types
  • runtime configuration, metadata, error, and progress types
  • sample sensor model metadata used by the reference plugin
  • standard CMake package export support for nebula_core_common
  • non-ROS test helper linkage that supports tests with their own main()

This PR establishes the common data model only. It does not add decoder plugin
loading, transport sources, runtime orchestration, or vendor implementations.

Review Procedure

Focus on the API shape and allocation/lifetime contracts:

  • SensorPacketView is non-owning and cannot be created from temporaries.
  • Packet endpoint and CAN metadata use fixed-size storage for the hot path and
    reject oversize values instead of truncating.
  • NebulaPacket::stamp has deterministic zero defaults.
  • Decoded output remains a bounded variant of Nebula-owned types.
  • SensorConfiguration extends existing common configuration rather than
    creating a parallel vendor configuration model.
  • Boost is discovered without unnecessary compiled component requirements.

Covered Validation

  • colcon build --packages-select nebula_core_common --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
  • pre-commit run --files on changed common-contract files
  • Unit coverage for endpoint/interface length rejection, packet-view lifetime
    constraints, and default packet stamp initialization

Notes

The branch includes shared cspell dictionary additions needed by later stack
layers. No vendor packages are modified.

@codecov

codecov Bot commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 52.43902% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 40.59%. Comparing base (da02c22) to head (81836b4).

❌ Your patch check has failed because the patch coverage (0.00%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #453      +/-   ##
==========================================
+ Coverage   40.16%   40.59%   +0.43%     
==========================================
  Files         131      133       +2     
  Lines       10280    10276       -4     
  Branches     5387     5393       +6     
==========================================
+ Hits         4129     4172      +43     
+ Misses       3770     3737      -33     
+ Partials     2381     2367      -14     
Flag Coverage Δ
nebula_core_common 39.24% <52.43%> (?)
nebula_hesai 39.24% <52.43%> (?)
nebula_hesai_common 39.24% <52.43%> (?)
nebula_hesai_hw_interfaces 39.24% <52.43%> (?)
nebula_robosense 39.24% <52.43%> (?)
nebula_robosense_common 39.24% <52.43%> (?)
nebula_robosense_decoders 39.24% <52.43%> (?)
nebula_velodyne 39.24% <52.43%> (?)
nebula_velodyne_common 39.24% <52.43%> (?)
nebula_velodyne_decoders 39.24% <52.43%> (?)
nebula_velodyne_hw_interfaces 39.24% <52.43%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

drwnz added 8 commits June 15, 2026 12:18
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant