Skip to content

Conversation

@orecham
Copy link
Contributor

@orecham orecham commented Dec 11, 2025

Notes for Reviewer

The zenoh tunnel backend iceoryx2-tunnel-zenoh is removed from the workspace and made an optional dependency to crates that use it (iceoryx2-cli).

When the corresponding feature flag is enabled, the backend is compiled.
Building the workspace with cargo build --workspace will not build the backend.

Pre-Review Checklist for the PR Author

  • Add sensible notes for the reviewer
  • PR title is short, expressive and meaningful
  • Consider switching the PR to a draft (Convert to draft)
    • as draft PR, the CI will be skipped for pushes
  • Relevant issues are linked in the References section
  • Branch follows the naming format (iox2-123-introduce-posix-ipc-example)
  • Commits messages are according to this guideline
    • Commit messages have the issue ID ([#123] Add posix ipc example)
    • Keep in mind to use the same email that was used to sign the Eclipse Contributor Agreement
  • Tests follow the best practice for testing
  • Changelog updated in the unreleased section including API breaking changes
  • Assign PR to reviewer
  • All checks have passed (except task-list-completed)

PR Reviewer Reminders

  • Commits are properly organized and messages are according to the guideline
  • Unit tests have been written for new behavior
  • Public API is documented
  • PR title describes the changes

References

Closes #

@orecham orecham changed the title [#1244] Make tunnel backend compilation opt in [#1244] Make tunnel backend compilation opt-in Dec 11, 2025
@orecham orecham self-assigned this Dec 11, 2025
[target.'cfg(not(target_os = "freebsd"))'.dependencies]
iceoryx2-tunnel-zenoh = { workspace = true, optional = true }
zenoh = { workspace = true }
iceoryx2-tunnel-zenoh = { path = '../iceoryx2-tunnel/zenoh', optional = true }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will potentially break for pubishing

Copy link
Contributor Author

@orecham orecham Dec 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@elBoberido Maybe but it's not clear to me. But since the crates are publish individually, not as a workspace, maybe it works?

EDIT: I looked into it, you are probably correct.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can do this in our script:

  1. Publish iceoryx2-tunnel-zenoh
  2. Update this Cargo.toml to depend on the uploaded version in crates.io
  3. Publish this crate

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I have seen another solution somewhere. Need to find it.

"Win32_System_SystemServices",
"Win32_System_ProcessStatus",
] }
zenoh = { version = "1.3.4", features = ["default", "unstable"] }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be kept by making the dependency optional?

Copy link
Contributor Author

@orecham orecham Dec 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@elBoberido I tried that, but even if the dependency is optional, it is built when running either of:

cargo build
cargo build --workspace

With the approach in this PR, the dependency is only built when building the crate that uses it with the corresponding feature activated.

iceoryx2-tunnel = { version = "0.7.0", path = "iceoryx2-tunnel/tunnel" }
iceoryx2-tunnel-backend = { version = "0.7.0", path = "iceoryx2-tunnel/backend" }
iceoryx2-tunnel-conformance-tests = { version = "0.7.0", path = "iceoryx2-tunnel/conformance-tests" }
iceoryx2-tunnel-zenoh = { version = "0.7.0", path = "iceoryx2-tunnel/zenoh" }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might also be problematic for publishing

serde_json = { workspace = true }
zenoh = { workspace = true }
serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
zenoh = { version = "1.3.4", features = ["default", "unstable"] }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you try to update zenoh to 1.7.1? Maybe there is no effort in this otherwise we do it later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants