Skip to content

Commit 33d157f

Browse files
committed
Merge with master to resolve conflicts
2 parents df2f863 + 074f0d5 commit 33d157f

File tree

30 files changed

+2267
-123
lines changed

30 files changed

+2267
-123
lines changed

CHANGELOG.md

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2323

2424
### Added
2525

26+
### Fixed
27+
28+
- Keeping a ros1::ServiceServer alive no longer keeps the underlying node alive past the last ros1::NodeHandle being dropped.
29+
- Dropping the last ros1::NodeHandle results in the node cleaning up any advertises, subscriptions, and services with the ROS master.
30+
- Generated code now includes various lint attributes to suppress warnings.
31+
- TCPROS header parsing now ignores (the undocumented fields) response_type and request_type and doesn't produce warnings on them.
32+
33+
### Changed
34+
35+
- Internal integral type Time changed from u32 to i32 representation to better align with ROS1
36+
- Conversions between ROS Time and Duration to std::time::Time and std::time::Duration switched to TryFrom as they can be fallible.
37+
38+
## 0.11.1
39+
40+
### Added
41+
42+
### Fixed
43+
44+
- ROS1 Native Publishers no longer occasionally truncate very large messages when configured with latching
45+
46+
### Changed
47+
48+
- Passing of large messages containing uint8[] arrays is now substantially faster
49+
- Generated code now relies on serde_bytes to enable faster handling of uint8[] arrays
50+
- Switched to a fork of serde_rosmsg to enable faster handling of uint8[] arrays
51+
52+
## 0.11.0
53+
54+
### Added
55+
2656
- ROS1 Native Publishers now support latching behavior
2757
- The XML RPC client for interacting directly with the rosmaster server has been exposed as a public API
2858
- Experimental: Initial support for writing generic clients that can be compile time specialized for rosbridge or ros1
59+
- Can subscribe to any topic and get raw bytes instead of a deserialized message of known type
60+
- Can publish to any topic and send raw bytes instead of a deserialized message
2961

3062
### Fixed
3163

3264
- ROS1 Native Publishers correctly call unadvertise when dropped
65+
- ROS1 Native Publishers no longer occasionally truncate very large messages (>5MB)
3366

3467
### Changed
3568

@@ -45,6 +78,7 @@ This is to bring it in line with the ROS1 API.
4578
### Added
4679

4780
### Fixed
81+
4882
- Bug with message_definitions provided by Publisher in the connection header not being the fully expanded definition.
4983
- Bug with ROS1 native subscribers not being able to receive messages larger than 4096 bytes.
5084

@@ -55,13 +89,15 @@ This is to bring it in line with the ROS1 API.
5589
### Added
5690

5791
### Fixed
92+
5893
- Bug with ros1 native publishers not parsing connection headers correctly
5994

6095
### Changed
6196

6297
## 0.10.0 - July 5th, 2024
6398

6499
### Added
100+
65101
- ROS1 native service servers and service clients are now supported (experimental feature)
66102

67103
### Fixed
@@ -89,45 +125,45 @@ crates that were previously adding dependencies on serde, serde-big-array, and s
89125

90126
### Changed
91127

92-
- The function interface for top level generation functions in `roslibrust_codegen` have been changed to include the list of dependent
128+
- The function interface for top level generation functions in `roslibrust_codegen` have been changed to include the list of dependent
93129
filesystem paths that should trigger re-running code generation. Note: new files added to the search paths will not be automatically detected.
94130
- [Breaking Change] Codegen now generates fixed sized arrays as arrays [T; N] instead of Vec<T>
95-
- Removed `find_and_generate_ros_messages_relative_to_manifest_dir!` this proc_macro was changing the current working directory of the compilation job resulting in a variety of strange compilation behaviors. Build.rs scripts are recommended for use cases requiring fine grained control of message generation.
96-
- The function interface for top level generation functions in `roslibrust_codegen` have been changed to include the list of dependent filesystem paths that should trigger re-running code generation. Note: new files added to the search paths will not be automatically detected.
97-
- Refactor the `ros1::node` module into separate smaller pieces. This should be invisible externally (and no changes to examples were required).
131+
- Removed `find_and_generate_ros_messages_relative_to_manifest_dir!` this proc_macro was changing the current working directory of the compilation job resulting in a variety of strange compilation behaviors. Build.rs scripts are recommended for use cases requiring fine grained control of message generation.
132+
- The function interface for top level generation functions in `roslibrust_codegen` have been changed to include the list of dependent filesystem paths that should trigger re-running code generation. Note: new files added to the search paths will not be automatically detected.
133+
- Refactor the `ros1::node` module into separate smaller pieces. This should be invisible externally (and no changes to examples were required).
98134

99135
## 0.8.0 - October 4th, 2023
100136

101137
### Added
102138

103-
- Experimental support for ROS1 native communication behind the `ros1` feature flag
104-
- Generation of C++ source added via `roslibrust_genmsg` along with arbitrary languages via passed in templates
105-
- Generation of Rust source for actions
106-
- Example for custom generic message usage with rosbridge
107-
- Example for async native ROS1 listener
108-
- Example for async native ROS1 publisher
139+
- Experimental support for ROS1 native communication behind the `ros1` feature flag
140+
- Generation of C++ source added via `roslibrust_genmsg` along with arbitrary languages via passed in templates
141+
- Generation of Rust source for actions
142+
- Example for custom generic message usage with rosbridge
143+
- Example for async native ROS1 listener
144+
- Example for async native ROS1 publisher
109145

110146

111147
### Fixed
112148

113-
- Incorrect handling of ROS1 message string constants
149+
- Incorrect handling of ROS1 message string constants
114150

115151
### Changed
116152

117-
- `crawl` function in `roslibrust_codegen` updated to a more flexible API
118-
- Overhaul of error handling in roslibrust_codegen to bubble errors up, and remove use of panic! and unwrap(). Significantly better error messages should be produced from proc_macros and build.rs files. Direct usages of the API will need to be updated to handle the returned error type.
119-
- RosMessageType trait now has associated constants for MD5SUM and DEFINITION to enable ROS1 native support. These constants are optional at this time with a default value of "" provided.
153+
- `crawl` function in `roslibrust_codegen` updated to a more flexible API
154+
- Overhaul of error handling in roslibrust_codegen to bubble errors up, and remove use of panic! and unwrap(). Significantly better error messages should be produced from proc_macros and build.rs files. Direct usages of the API will need to be updated to handle the returned error type.
155+
- RosMessageType trait now has associated constants for MD5SUM and DEFINITION to enable ROS1 native support. These constants are optional at this time with a default value of "" provided.
120156

121157
## 0.7.0 - March 13, 2022
122158

123159
### Added
124160

125-
- Support for default field values in ROS2 messages
126-
- Added public APIs for getting message data from search and for generating Rust code given message data in roslibrust_codegen
127-
- More useful logs available when running codegen
128-
- Refactor some of the public APIs and types in roslibrust_codegen (concept of `ParsedMessageFile` vs `MessageFile`)
129-
- Added a method `get_md5sum` to `MessageFile`
130-
- Additional code generation API and macro which excludes `ROS_PACKAGE_PATH`
161+
- Support for default field values in ROS2 messages
162+
- Added public APIs for getting message data from search and for generating Rust code given message data in roslibrust_codegen
163+
- More useful logs available when running codegen
164+
- Refactor some of the public APIs and types in roslibrust_codegen (concept of `ParsedMessageFile` vs `MessageFile`)
165+
- Added a method `get_md5sum` to `MessageFile`
166+
- Additional code generation API and macro which excludes `ROS_PACKAGE_PATH`
131167

132168
### Fixed
133169

0 commit comments

Comments
 (0)