Skip to content

Commit f612e46

Browse files
Minipadaclaude
andcommitted
docs: remove stale Rust-pilot references from current source and docs
dc_bridge has been C++ since ADR-0007; comments and descriptions across the package (headers, source files, tests, package.xml, README), dc_bringup's launch file, ci.yaml's intro comment, and tools/e2e/Containerfile still referred to the reverted Rust pilot ("Port of the Rust ...", "mirroring the Rust ... variants", "dc_bridge (Rust)", rclrs/cargo/colcon-cargo/ros2_rust build-friction notes) — noise at best, and in dc_bringup.launch.py's case actively wrong (still labeling the C++ dc_bridge node "(Rust)" and citing "rclrs has no rclcpp_components equivalent" as the reason it runs outside composition; replaced with the real, current reason — dc_bridge isn't registered as an rclcpp_components plugin). The architecture-decision history (why C++ was reverted from Rust) belongs in the ADRs (docs/adr/0004, 0007), which already record it and are left untouched, along with progress.txt (an append-only historical log — scrubbing "Rust" from entries describing the Rust-to-C++ reversion would make the log describe something that didn't happen) and the two doc/ mentions that are about unrelated things (cargo to install the mdbook doc-site tool; a hypothetical answer about future plugin languages in the FAQ). Comment-only / doc-only changes; verified dc_bridge still builds clean and its 75 gtests still pass, and dc_bringup.launch.py still parses. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0155z4WEezE9gofR1zkHbMxK Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
1 parent 999a27d commit f612e46

17 files changed

Lines changed: 52 additions & 61 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DC 2.0 (Jazzy) CI (#249). This branch only builds the jazzy line (external Vector
2-
# shipper, C++ dc_bridge — the Rust pilot of ADR-0004 was reverted in ADR-0007). The
3-
# humble-line `industrial_ci`/Docker workflow this repo used to run doesn't apply here and
2+
# shipper, C++ dc_bridge). The humble-line `industrial_ci`/Docker workflow this repo used
3+
# to run doesn't apply here and
44
# isn't carried over onto this branch (it still exists on `humble`, a separate branch/tree
55
# — deleting it here doesn't touch that). This repo is moving off Docker in favor of
66
# Podman (CLAUDE.md "Containers: Podman, not Docker").

dc_bridge/README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# dc_bridge
22

3-
The Bridge (ADRs 0001/0003/0005/0006; ADR-0007 reverts the ADR-0004 Rust pilot): a C++
4-
(`rclcpp`) node that subscribes to `dc_interfaces/msg/StringStamped` Record topics and
3+
The Bridge (ADRs 0001/0003/0005/0006/0007): a C++ (`rclcpp`) node that subscribes to
4+
`dc_interfaces/msg/StringStamped` Record topics and
55
forwards every Record to the [Vector](https://vector.dev) shipper over the Fluent Forward
66
protocol. It renders Vector's configuration from ROS parameters for the blessed
77
Destination set (`postgres`, `s3`, `file`, `console` — ADR-0003) and passes raw Vector
@@ -12,9 +12,8 @@ Records referencing Files get their Files uploaded to S3-compatible object stora
1212
`dc.files` Tag.
1313

1414
`dc_bridge` is an ordinary `ament_cmake` C++ package. It builds with the same `rosdep
15-
install` + `colcon build` as every other `dc_*` package — no Rust toolchain, no
16-
`colcon-cargo`, no source-built message repos. See `docs/adr/0007-bridge-returns-to-cpp.md`
17-
for why the Rust pilot was reverted.
15+
install` + `colcon build` as every other `dc_*` package. See
16+
`docs/adr/0007-bridge-returns-to-cpp.md` for the architecture decision history.
1817

1918
## Layout
2019

dc_bridge/include/dc_bridge/bridge_node.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// The dc_bridge ROS node (ADRs 0001/0003/0006, and ADR-0007 which reverts the Rust
2-
// pilot of ADR-0004): wires the ROS-independent core (Forwarder, Supervisor, Readiness,
3-
// ConfigRenderer) to topic subscriptions and a readiness service.
1+
// The dc_bridge ROS node (ADRs 0001/0003/0006/0007): wires the ROS-independent core
2+
// (Forwarder, Supervisor, Readiness, ConfigRenderer) to topic subscriptions and a
3+
// readiness service.
44
//
55
// Vector's own configuration is produced by dc_bridge::render (ADR-0003) from the
66
// `shipper`/`destinations` parameters; this node declares those parameters, expands the

dc_bridge/include/dc_bridge/forwarder.hpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Forwarder: send(record) hides Fluent Forward msgpack framing, socket lifecycle,
22
// reconnection, and backpressure behind one call. The wire protocol is the interface;
3-
// nothing else about Vector or the transport leaks past this class. (Port of the Rust
4-
// dc_bridge_core::forwarder — ADR-0004 reversed by ADR-0007.)
3+
// nothing else about Vector or the transport leaks past this class.
54
#ifndef DC_BRIDGE__FORWARDER_HPP_
65
#define DC_BRIDGE__FORWARDER_HPP_
76

@@ -33,9 +32,9 @@ struct ForwarderConfig
3332
std::chrono::milliseconds write_timeout{ 200 };
3433
};
3534

36-
/// Error categories a send() can fail with, mirroring the Rust ForwarderError variants
37-
/// so callers (and tests) can distinguish backpressure (retryable, connection kept)
38-
/// from a dropped connection / connect failure.
35+
/// Error categories a send() can fail with, so callers (and tests) can distinguish
36+
/// backpressure (retryable, connection kept) from a dropped connection / connect
37+
/// failure.
3938
enum class ForwarderErrorKind
4039
{
4140
Connect, ///< could not establish the TCP connection

dc_bridge/include/dc_bridge/render.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// Two layers, both pure: destination_from_raw (+ the per-type from_raw builders) turns
99
// the flat, stringly-typed values ROS parameters give into validated typed config (this
1010
// is where invalid-parameter rejection lives); render() turns already-validated typed
11-
// config into Vector TOML text. (Port of the Rust dc_bridge_core::render.)
11+
// config into Vector TOML text.
1212
#ifndef DC_BRIDGE__RENDER_HPP_
1313
#define DC_BRIDGE__RENDER_HPP_
1414

@@ -112,8 +112,8 @@ struct RenderConfig
112112
std::vector<Destination> destinations;
113113
};
114114

115-
/// Error categories mirroring the Rust RenderError variants; kind() lets tests assert
116-
/// the specific failure. Formatted message in what().
115+
/// Error categories a render() can fail with; kind() lets tests assert the specific
116+
/// failure. Formatted message in what().
117117
enum class RenderErrorKind
118118
{
119119
EmptyDataDir,

dc_bridge/include/dc_bridge/supervisor.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ class Supervisor
6161
/// Checks whether the supervised process has exited and, if so, restarts it (subject
6262
/// to restart_backoff). Returns true if a restart happened. A no-op returning false
6363
/// once stop() has been called — prevents the respawn-after-stop race a background
64-
/// poll loop would otherwise hit against a concurrent stop() (see the Rust
65-
/// supervisor's `stopped` field doc / regression tests).
64+
/// poll loop would otherwise hit against a concurrent stop().
6665
bool poll_restart();
6766

6867
/// Stops the supervised process and permanently disables future respawns from

dc_bridge/include/dc_bridge/uploader/object_store.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
// low-level multipart primitives whose persistent upload id makes interrupted transfers
44
// resumable. The real S3 implementation (aws-sdk-cpp) lives in src/uploader/
55
// s3_object_store.cpp; an in-memory fake in the tests exercises the logic without any
6-
// cloud dependency — the same split the Rust design had with object_store's InMemory
7-
// backend, keeping the upload logic testable and aws-free.
6+
// cloud dependency, keeping the upload logic testable and aws-free.
87
#ifndef DC_BRIDGE__UPLOADER__OBJECT_STORE_HPP_
98
#define DC_BRIDGE__UPLOADER__OBJECT_STORE_HPP_
109

dc_bridge/package.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
<description>
77
Bridge node (C++): subscribes to StringStamped Record topics and forwards them to the
88
Vector shipper over the Fluent Forward protocol, rendering Vector's config from ROS
9-
parameters for the blessed Destination set (ADRs 0001/0003/0006). ADR-0007 reverts
10-
the ADR-0004 Rust pilot: the Bridge is plain ament_cmake C++, so it builds with
11-
rosdep + colcon like every other dc_* package.
9+
parameters for the blessed Destination set (ADRs 0001/0003/0006/0007). Plain
10+
ament_cmake C++, so it builds with rosdep + colcon like every other dc_* package.
1211
</description>
1312
<maintainer email="d.bensoussan@proton.me">David Bensoussan</maintainer>
1413
<license>MPL-2.0</license>

dc_bridge/src/forwarder.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ namespace dc_bridge
2020
namespace
2121
{
2222

23-
// Packs a nlohmann::json value onto a msgpack packer, mirroring the Rust
24-
// json_to_value: numbers keep integer/unsigned/float distinctions, everything else maps
25-
// 1:1. (msgpack-cxx has no built-in nlohmann::json adaptor, so we walk the tree.)
23+
// Packs a nlohmann::json value onto a msgpack packer: numbers keep
24+
// integer/unsigned/float distinctions, everything else maps 1:1. (msgpack-cxx has no
25+
// built-in nlohmann::json adaptor, so we walk the tree.)
2626
template <typename Packer>
2727
void pack_json(Packer& pk, const nlohmann::json& value)
2828
{
@@ -69,7 +69,7 @@ void pack_json(Packer& pk, const nlohmann::json& value)
6969

7070
// The Fluent Forward wire record must be a map. A Record's JSON payload usually is one;
7171
// anything else (bare string/number/array) is wrapped in {"message": ...} rather than
72-
// dropped — matching the Rust record_to_msgpack_map.
72+
// dropped.
7373
template <typename Packer>
7474
void pack_record_map(Packer& pk, const nlohmann::json& payload)
7575
{
@@ -209,7 +209,7 @@ void Forwarder::send(const Record& record)
209209
if (n < 0 && (errno == EAGAIN || errno == EWOULDBLOCK))
210210
{
211211
// Peer stalled: keep the connection (it may just be slow to drain), report
212-
// backpressure. Matches the Rust WouldBlock/TimedOut arm.
212+
// backpressure.
213213
throw ForwarderError(ForwarderErrorKind::Backpressure,
214214
"peer stalled: write did not complete within the configured timeout");
215215
}

dc_bridge/src/main.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// dc_bridge node entry point. rclcpp handles SIGINT/SIGTERM and returns from spin();
2-
// on_shutdown stops the supervised Vector before exit so it's never orphaned (the same
3-
// guarantee the Rust node's ctrlc handler provided, but native to rclcpp here).
2+
// on_shutdown stops the supervised Vector before exit so it's never orphaned.
43
#include <memory>
54
#include <rclcpp/rclcpp.hpp>
65

0 commit comments

Comments
 (0)