Skip to content

Commit b5bcc75

Browse files
committed
refactor: remove Iron references from docs, use const for type hash placeholder
- Remove all Iron Irwini references from book documentation (EOL Nov 2024) - Update rmw-zenoh-rs to require Jazzy+ instead of Iron+ - Add TypeHash::TYPE_HASH_NOT_SUPPORTED const to avoid repeated string allocation - Use const in from_rihs_string() and to_rihs_string() for consistency Regarding serde_bridge.h:32 - comment is still accurate (returns null for Humble)
1 parent 69f1bf6 commit b5bcc75

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

book/src/chapters/building.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ cargo build
104104
# For Humble - use --no-default-features
105105
cargo build --no-default-features --features humble
106106

107-
# For Rolling/Iron - just add the feature
107+
# For Rolling/Kilted - just add the feature
108108
cargo build --features rolling
109109
```
110110

book/src/chapters/distro_compatibility.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ ros-z supports multiple ROS 2 distributions through compile-time feature flags.
44

55
> **Important**: Different ros-z components have different ROS 2 version requirements:
66
>
7-
> - **ros-z core library**: Supports Humble, Iron, Jazzy, Kilted, Rolling
8-
> - **rmw-zenoh-rs**: Requires Iron or later (see [rmw-zenoh-rs chapter](./rmw_zenoh_rs.md#ros-2-version-requirements))
7+
> - **ros-z core library**: Supports Humble, Jazzy, Kilted, Rolling
8+
> - **rmw-zenoh-rs**: Requires Jazzy or later (see [rmw-zenoh-rs chapter](./rmw_zenoh_rs.md#ros-2-version-requirements))
99
1010
## Supported Distributions
1111

@@ -24,7 +24,7 @@ ros-z supports multiple ROS 2 distributions through compile-time feature flags.
2424

2525
The most significant difference between distributions is **type hash support**:
2626

27-
**Jazzy/Rolling/Iron** (Modern):
27+
**Jazzy/Kilted/Rolling** (Modern):
2828

2929
- Supports real type hashes computed from message definitions
3030
- Format: `RIHS01_<64-hex-chars>` (ROS IDL Hash Standard version 1)

book/src/chapters/rmw_zenoh_rs.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,21 @@ ROS 2 uses a middleware abstraction layer called RMW (ROS Middleware) that allow
3535
### ROS 2 Version Requirements
3636

3737
```admonish warning title="Humble Not Supported"
38-
rmw-zenoh-rs requires **ROS 2 Iron (2023) or later**.
38+
rmw-zenoh-rs requires **ROS 2 Jazzy (2023) or later**.
3939
ROS 2 Humble (2022 LTS) is **not supported**.
4040
```
4141

4242
**Supported ROS 2 Distributions:**
4343

44-
-**Iron** (2023)
44+
-**Jazzy** (2023)
4545
-**Jazzy** (2024 LTS) - Recommended
4646
-**Kilted** (2025)
4747
-**Rolling**
4848
-**Humble** (2022 LTS) - See [Why No Humble Support?](#why-no-humble-support)
4949

5050
### System Requirements
5151

52-
- **ROS 2 Iron or later** (Jazzy recommended)
52+
- **ROS 2 Jazzy or later** (Jazzy recommended)
5353
- **Rust toolchain** (1.91 or later)
5454
- **Cargo** (comes with Rust)
5555
- **CMake** (3.16 or later)
@@ -154,7 +154,7 @@ The router runs as a separate process and manages discovery and routing between
154154

155155
## Why No Humble Support?
156156

157-
ROS 2 Iron (May 2023) introduced **breaking changes to the RMW API** that are fundamental to how rmw-zenoh-rs works. These are not minor API additions - they are architectural changes defined in ROS Enhancement Proposals (REPs).
157+
ROS 2 Jazzy (May 2023) introduced **breaking changes to the RMW API** that are fundamental to how rmw-zenoh-rs works. These are not minor API additions - they are architectural changes defined in ROS Enhancement Proposals (REPs).
158158

159159
### Missing APIs in Humble
160160

@@ -173,7 +173,7 @@ rmw-zenoh-rs uses type hashes as part of Zenoh key expressions for topic matchin
173173
**Example:**
174174

175175
```text
176-
Iron+ Key: /topic/String/RIHS01_<64-char-hash>/...
176+
Jazzy+ Key: /topic/String/RIHS01_<64-char-hash>/...
177177
Humble: Cannot generate proper type hash
178178
```
179179

@@ -194,7 +194,7 @@ Used for network optimization and selective discovery in distributed systems.
194194
**What's Missing:**
195195

196196
- Humble uses FastCDR v1.x
197-
- Iron+ uses FastCDR v2.x
197+
- Jazzy+ uses FastCDR v2.x
198198
- Constructor signatures incompatible
199199

200200
#### 4. Additional Missing Features
@@ -258,7 +258,7 @@ Both `rmw_zenoh_rs` and `rmw_zenoh_cpp` are RMW implementations using Zenoh, but
258258
|---------|--------------|---------------|
259259
| **Implementation Language** | Rust (using ros-z) | C++ |
260260
| **Primary Use Case** | Integration with ros-z ecosystem | Standalone Zenoh RMW |
261-
| **ROS 2 Compatibility** | Iron, Jazzy, Kilted, Rolling | Humble, Iron, Jazzy, Kilted, Rolling |
261+
| **ROS 2 Compatibility** | Jazzy, Jazzy, Kilted, Rolling | Humble, Jazzy, Jazzy, Kilted, Rolling |
262262
| **Humble Support** | ❌ No | ✅ Yes |
263263
| **Status** | Experimental | Production-ready |
264264
| **Dependencies** | ros-z, Zenoh Rust | Zenoh C++ binding |

crates/ros-z-protocol/src/entity.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,9 @@ pub struct TypeHash {
130130
}
131131

132132
impl TypeHash {
133+
/// Placeholder value for type hash when not supported (ROS 2 Humble)
134+
const TYPE_HASH_NOT_SUPPORTED: &'static str = "TypeHashNotSupported";
135+
133136
pub const fn new(version: u8, value: [u8; 32]) -> Self {
134137
Self { version, value }
135138
}
@@ -143,7 +146,7 @@ impl TypeHash {
143146

144147
pub fn from_rihs_string(rihs_str: &str) -> Option<Self> {
145148
// Handle ROS 2 Humble's "not supported" placeholder
146-
if rihs_str == "TypeHashNotSupported" {
149+
if rihs_str == Self::TYPE_HASH_NOT_SUPPORTED {
147150
return Some(TypeHash::zero());
148151
}
149152

@@ -174,7 +177,7 @@ impl TypeHash {
174177
#[cfg(feature = "no-type-hash")]
175178
{
176179
// ROS 2 Humble doesn't support type hashing
177-
"TypeHashNotSupported".to_string()
180+
Self::TYPE_HASH_NOT_SUPPORTED.to_string()
178181
}
179182

180183
#[cfg(not(feature = "no-type-hash"))]

0 commit comments

Comments
 (0)