Skip to content

Commit

Permalink
Merge pull request #215 from RosLibRust/re-org-move-ros1-to-own-crate
Browse files Browse the repository at this point in the history
Major re-org to crate / repository structure
  • Loading branch information
Carter12s authored Jan 6, 2025
2 parents 9f4a8ea + 69b2f09 commit 94b0c81
Show file tree
Hide file tree
Showing 71 changed files with 2,353 additions and 2,199 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/noetic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ jobs:
- name: Start rosbridge
run: source /opt/ros/noetic/setup.bash; roslaunch rosbridge_server rosbridge_websocket.launch & disown; rosrun rosapi rosapi_node & sleep 1
- name: Integration Tests
run: source /opt/ros/noetic/setup.bash; source /root/.cargo/env; RUST_LOG=debug cargo test --features ros1_test,ros1,running_bridge,rosapi -- --test-threads 1
run: source /opt/ros/noetic/setup.bash; source /root/.cargo/env; RUST_LOG=debug cargo test --features ros1_test,ros1,running_bridge,rosapi,rosbridge,zenoh -- --test-threads 1
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- roslibrust_mock now provides a basic mock implementation of roslibrust's generic traits for use in building automated testing of nodes.
- roslibrust_zenoh now proivides a Zenoh client that is compatible with the zenoh-ros1-plugin / zenoh-ros1-bridge
- roslibrust_ros1 now provides a ROS1 native client as a standalone crate
- roslibrust_rosbridge now provides a rosbridge client as a standalone crate
- roslibrust_rosapi now provides a generic interface for the rosapi node compatible with both rosbridge and ros1 backends

### Fixed

Expand All @@ -36,6 +39,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- A major reorganization of the internals of roslibrust was done to improve our ability to support multiple backends.
As part of the organization the rosbridge backend has been moved under the the `rosbridge` module, so
`roslibrust::ClientHandle` now becomes `roslibrust::rosbridge::ClientHandle`.
- Internal integral type Time changed from u32 to i32 representation to better align with ROS1
- Conversions between ROS Time and Duration to std::time::Time and std::time::Duration switched to TryFrom as they can be fallible.

Expand Down
153 changes: 84 additions & 69 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 15 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
[workspace]

members = [
"example_package",
"example_package_macro",
"roslibrust",
"roslibrust_codegen",
"roslibrust_codegen_macro",
"roslibrust_codegen",
"roslibrust_common",
"roslibrust_genmsg",
"roslibrust_test",
"roslibrust_mock",
"roslibrust_ros1",
"roslibrust_rosbridge",
"roslibrust_test",
"roslibrust_zenoh",
"roslibrust",
"roslibrust_rosapi",
]
resolver = "2"

[workspace.dependencies]
log = "0.4"
tokio = {version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
# Someday we may move this crate into this workspace
# For now this is how we keep from repeating the verison everywhere
roslibrust_serde_rosmsg = "0.4"
2 changes: 2 additions & 0 deletions example_package/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ edition = "2021"
[dependencies]
# The code generated by roslibrust_codegen has dependendencies
# We need to depend on the crate at build time so that the generate code has access to these dependencies
roslibrust_common = { path = "../roslibrust_common" }
# THIS SHOULDN'T BE NEEDED, BUT IS FOR NOW GOTTA FIX LEAKING DEPENDENCIES
roslibrust_codegen = { path = "../roslibrust_codegen" }

[build-dependencies]
Expand Down
5 changes: 4 additions & 1 deletion example_package_macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ edition = "2021"
[dependencies]
# The code generated by roslibrust_codegen has dependendencies
# We need to depend on the crate at build time so that the generate code has access to these dependencies
roslibrust_codegen = { path = "../roslibrust_codegen" }
# TODO figure out how to rexport these types through the macro
roslibrust_common = { path = "../roslibrust_common" }
# This crate contains the actual macro we will invoke
roslibrust_codegen_macro = { path = "../roslibrust_codegen_macro" }
# THIS SHOULDN'T BE NEEDED, BUT IS FOR NOW GOTTA FIX LEAKING DEPENDENCIES
roslibrust_codegen = { path = "../roslibrust_codegen" }
Loading

0 comments on commit 94b0c81

Please sign in to comment.