Skip to content

[M0] Transport abstraction and zenoh compatibility CI #3

Description

@tetsuh

Summary

Implement the Transport abstraction that hides the raw zenoh-cpp API from
the rest of the library, plus the dependency-upgrade CI that validates sitos
against both the minimum supported and the latest stable zenoh.

References

  • docs/09_dependency_policy.md §3 (Transport API definition), §4.2 (upgrade CI)
  • docs/02_architecture.md §1 (design rule: raw zenoh only inside src/transport/)
  • docs/04_api_cpp.md §1 (Encoding, PutOptions, Subscription, Queryable)

Scope

  • include/sitos/transport.hpp: Transport, TransportSample,
    TransportQuery exactly as specified in docs/09 §3
  • src/transport/zenoh_transport.cpp: ZenohTransport implementation
    (put/delete/get/subscriber/queryable, Encoding schema, ack attachment)
  • ZenohTransport::From(zenoh::Session&) factory for external session
    injection (requirement X04)
  • Confirm the attachment API is usable with the locked zenoh version;
    record findings in the PR (fallback: ack-less put, per docs/09 §3)
  • tests/integration/transport_test.cpp: round-trips through two
    transports in one process
  • Static check in CI: no zenoh includes outside src/transport/
    (e.g. grep-based guard step)
  • .github/workflows/dependency-upgrade.yml: nightly/manual matrix over
    {minimum supported, latest stable} zenoh

Out of scope

Acceptance Criteria

  1. transport_test is green with both the minimum supported and the latest
    stable zenoh versions
  2. CI fails if any file outside src/transport/ includes raw zenoh headers
  3. dependency-upgrade.yml runs on manual dispatch and reports per-version results

Dependencies

For the implementer

  • Copy the checklist above into your PR description and tick items as you
    complete them. Do not edit the checklist in this issue.
  • Follow docs/development_workflow.md (branch issue/3-transport-adapter,
    Conventional Commits per §2.1, TDD: write transport_test RED first).
  • This issue is closed automatically by the PR via Closes #3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:transportTransport abstraction, zenoh adaptertype:featNew feature or capability

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions