From 75f281a8c638c8e64574c8fb36804eab2d3ffdea Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Mon, 8 Apr 2024 09:25:13 +0200 Subject: [PATCH 1/3] Bump to version 0.3.3-rc1 --- Cargo.lock | 66 +++++++++++++++---------------- Cargo.toml | 42 ++++++++++---------- Changelog.md | 31 +++++++++++++++ README.md | 12 +++--- apis/python/node/dora/__init__.py | 2 +- 5 files changed, 92 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 51e0deda3..8c67d4453 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -711,7 +711,7 @@ dependencies = [ [[package]] name = "benchmark-example-node" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "eyre", @@ -724,7 +724,7 @@ dependencies = [ [[package]] name = "benchmark-example-sink" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "eyre", @@ -1071,7 +1071,7 @@ dependencies = [ [[package]] name = "communication-layer-pub-sub" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "flume 0.10.14", "zenoh", @@ -1079,7 +1079,7 @@ dependencies = [ [[package]] name = "communication-layer-request-reply" -version = "0.3.2" +version = "0.3.3-rc1" [[package]] name = "concurrent-queue" @@ -1461,7 +1461,7 @@ dependencies = [ [[package]] name = "dora-arrow-convert" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "arrow", "eyre", @@ -1469,7 +1469,7 @@ dependencies = [ [[package]] name = "dora-cli" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "bat", "clap 4.4.6", @@ -1499,7 +1499,7 @@ dependencies = [ [[package]] name = "dora-coordinator" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "ctrlc", "dora-core", @@ -1517,7 +1517,7 @@ dependencies = [ [[package]] name = "dora-core" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "aligned-vec", "dora-message", @@ -1534,7 +1534,7 @@ dependencies = [ [[package]] name = "dora-daemon" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "aligned-vec", "async-trait", @@ -1562,7 +1562,7 @@ dependencies = [ [[package]] name = "dora-download" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "eyre", "reqwest", @@ -1590,7 +1590,7 @@ dependencies = [ [[package]] name = "dora-message" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "arrow-data", "arrow-schema", @@ -1601,7 +1601,7 @@ dependencies = [ [[package]] name = "dora-metrics" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "eyre", "opentelemetry 0.22.0", @@ -1612,7 +1612,7 @@ dependencies = [ [[package]] name = "dora-node-api" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "aligned-vec", "arrow", @@ -1634,7 +1634,7 @@ dependencies = [ [[package]] name = "dora-node-api-c" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "arrow-array", "dora-node-api", @@ -1644,7 +1644,7 @@ dependencies = [ [[package]] name = "dora-node-api-cxx" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "cxx", "cxx-build", @@ -1661,7 +1661,7 @@ dependencies = [ [[package]] name = "dora-node-api-python" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "arrow", "dora-node-api", @@ -1678,7 +1678,7 @@ dependencies = [ [[package]] name = "dora-operator-api" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-arrow-convert", "dora-operator-api-macros", @@ -1687,14 +1687,14 @@ dependencies = [ [[package]] name = "dora-operator-api-c" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-operator-api-types", ] [[package]] name = "dora-operator-api-cxx" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "cxx", "cxx-build", @@ -1703,7 +1703,7 @@ dependencies = [ [[package]] name = "dora-operator-api-macros" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "proc-macro2", "quote", @@ -1712,7 +1712,7 @@ dependencies = [ [[package]] name = "dora-operator-api-python" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "aligned-vec", "arrow", @@ -1726,7 +1726,7 @@ dependencies = [ [[package]] name = "dora-operator-api-types" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "arrow", "dora-arrow-convert", @@ -1735,7 +1735,7 @@ dependencies = [ [[package]] name = "dora-record" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "chrono", "dora-node-api", @@ -1798,7 +1798,7 @@ dependencies = [ [[package]] name = "dora-runtime" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "aligned-vec", "arrow", @@ -1825,7 +1825,7 @@ dependencies = [ [[package]] name = "dora-tracing" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "eyre", "opentelemetry 0.18.0", @@ -3285,7 +3285,7 @@ dependencies = [ [[package]] name = "multiple-daemons-example-node" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "eyre", @@ -3296,14 +3296,14 @@ dependencies = [ [[package]] name = "multiple-daemons-example-operator" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-operator-api", ] [[package]] name = "multiple-daemons-example-sink" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "eyre", @@ -4742,7 +4742,7 @@ dependencies = [ [[package]] name = "rust-dataflow-example-node" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "eyre", @@ -4753,14 +4753,14 @@ dependencies = [ [[package]] name = "rust-dataflow-example-operator" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-operator-api", ] [[package]] name = "rust-dataflow-example-sink" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "eyre", @@ -4779,7 +4779,7 @@ dependencies = [ [[package]] name = "rust-ros2-dataflow-example-node" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "dora-node-api", "dora-ros2-bridge", @@ -5190,7 +5190,7 @@ dependencies = [ [[package]] name = "shared-memory-server" -version = "0.3.2" +version = "0.3.3-rc1" dependencies = [ "bincode", "eyre", diff --git a/Cargo.toml b/Cargo.toml index 0852cb859..d1803e0d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,31 +37,31 @@ members = [ [workspace.package] # Make sure to also bump `apis/node/python/__init__.py` version. -version = "0.3.2" +version = "0.3.3-rc1" description = "`dora` goal is to be a low latency, composable, and distributed data flow." documentation = "https://dora.carsmos.ai" license = "Apache-2.0" [workspace.dependencies] -dora-node-api = { version = "0.3.2", path = "apis/rust/node", default-features = false } -dora-node-api-python = { version = "0.3.2", path = "apis/python/node", default-features = false } -dora-operator-api = { version = "0.3.2", path = "apis/rust/operator", default-features = false } -dora-operator-api-macros = { version = "0.3.2", path = "apis/rust/operator/macros" } -dora-operator-api-types = { version = "0.3.2", path = "apis/rust/operator/types" } -dora-operator-api-python = { version = "0.3.2", path = "apis/python/operator" } -dora-operator-api-c = { version = "0.3.2", path = "apis/c/operator" } -dora-node-api-c = { version = "0.3.2", path = "apis/c/node" } -dora-core = { version = "0.3.2", path = "libraries/core" } -dora-arrow-convert = { version = "0.3.2", path = "libraries/arrow-convert" } -dora-tracing = { version = "0.3.2", path = "libraries/extensions/telemetry/tracing" } -dora-metrics = { version = "0.3.2", path = "libraries/extensions/telemetry/metrics" } -dora-download = { version = "0.3.2", path = "libraries/extensions/download" } -shared-memory-server = { version = "0.3.2", path = "libraries/shared-memory-server" } -communication-layer-request-reply = { version = "0.3.2", path = "libraries/communication-layer/request-reply" } -dora-message = { version = "0.3.2", path = "libraries/message" } -dora-runtime = { version = "0.3.2", path = "binaries/runtime" } -dora-daemon = { version = "0.3.2", path = "binaries/daemon" } -dora-coordinator = { version = "0.3.2", path = "binaries/coordinator" } +dora-node-api = { version = "0.3.3-rc1", path = "apis/rust/node", default-features = false } +dora-node-api-python = { version = "0.3.3-rc1", path = "apis/python/node", default-features = false } +dora-operator-api = { version = "0.3.3-rc1", path = "apis/rust/operator", default-features = false } +dora-operator-api-macros = { version = "0.3.3-rc1", path = "apis/rust/operator/macros" } +dora-operator-api-types = { version = "0.3.3-rc1", path = "apis/rust/operator/types" } +dora-operator-api-python = { version = "0.3.3-rc1", path = "apis/python/operator" } +dora-operator-api-c = { version = "0.3.3-rc1", path = "apis/c/operator" } +dora-node-api-c = { version = "0.3.3-rc1", path = "apis/c/node" } +dora-core = { version = "0.3.3-rc1", path = "libraries/core" } +dora-arrow-convert = { version = "0.3.3-rc1", path = "libraries/arrow-convert" } +dora-tracing = { version = "0.3.3-rc1", path = "libraries/extensions/telemetry/tracing" } +dora-metrics = { version = "0.3.3-rc1", path = "libraries/extensions/telemetry/metrics" } +dora-download = { version = "0.3.3-rc1", path = "libraries/extensions/download" } +shared-memory-server = { version = "0.3.3-rc1", path = "libraries/shared-memory-server" } +communication-layer-request-reply = { version = "0.3.3-rc1", path = "libraries/communication-layer/request-reply" } +dora-message = { version = "0.3.3-rc1", path = "libraries/message" } +dora-runtime = { version = "0.3.3-rc1", path = "binaries/runtime" } +dora-daemon = { version = "0.3.3-rc1", path = "binaries/daemon" } +dora-coordinator = { version = "0.3.3-rc1", path = "binaries/coordinator" } dora-ros2-bridge = { path = "libraries/extensions/ros2-bridge" } dora-ros2-bridge-msg-gen = { path = "libraries/extensions/ros2-bridge/msg-gen" } dora-ros2-bridge-python = { path = "libraries/extensions/ros2-bridge/python" } @@ -94,7 +94,7 @@ dunce = "1.0.2" serde_yaml = "0.8.23" uuid = { version = "1.7", features = ["v7", "serde"] } tracing = "0.1.36" -futures = "0.3.25" +futures = "0.3.3-rc15" tokio-stream = "0.1.11" [[example]] diff --git a/Changelog.md b/Changelog.md index 7fc2b7999..0f5906b6d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,36 @@ # Changelog +## v0.3.3 (2024-04-08) + +## What's Changed + +- Metrics refactoring by @haixuanTao in https://github.com/dora-rs/dora/pull/423 +- Add ROS2 bridge support for C++ nodes by @phil-opp in https://github.com/dora-rs/dora/pull/425 +- Provide function to create empty `CombinedEvents` stream by @phil-opp in https://github.com/dora-rs/dora/pull/432 +- Expose ROS2 constants in generated bindings (Rust and C++) by @phil-opp in https://github.com/dora-rs/dora/pull/428 +- Add option to send `stdout` as node/operator output by @haixuanTao in https://github.com/dora-rs/dora/pull/388 +- Fix warning about `#pragma once` in main file by @phil-opp in https://github.com/dora-rs/dora/pull/433 +- Send runs artefacts into a dedicated `out` folder by @haixuanTao in https://github.com/dora-rs/dora/pull/429 +- Create README.md for cxx-ros2-example by @bobd988 in https://github.com/dora-rs/dora/pull/431 +- Use Async Parquet Writer for `dora-record` by @haixuanTao in https://github.com/dora-rs/dora/pull/434 +- Update mio to fix security vulnerability by @phil-opp in https://github.com/dora-rs/dora/pull/440 +- Add initial support for calling ROS2 services from Rust nodes by @phil-opp in https://github.com/dora-rs/dora/pull/439 +- Enable ROS2 service calls from C++ nodes by @phil-opp in https://github.com/dora-rs/dora/pull/441 +- Use `Debug` formatting for eyre errors when returning to C++ by @phil-opp in https://github.com/dora-rs/dora/pull/450 +- Fix out-of-tree builds in cmake example by @phil-opp in https://github.com/dora-rs/dora/pull/453 +- Llm example by @haixuanTao in https://github.com/dora-rs/dora/pull/451 + +## Minor + +- Bump h2 from 0.3.24 to 0.3.26 by @dependabot in https://github.com/dora-rs/dora/pull/456 +- Update `bat` dependency to v0.24 by @phil-opp in https://github.com/dora-rs/dora/pull/424 + +## New Contributors + +- @bobd988 made their first contribution in https://github.com/dora-rs/dora/pull/431 + +**Full Changelog**: https://github.com/dora-rs/dora/compare/v0.3.2...v0.3.3 + ## v0.3.2 (2024-01-26) ## Features diff --git a/README.md b/README.md index d2c0ff7a1..ca6efa90b 100644 --- a/README.md +++ b/README.md @@ -123,17 +123,17 @@ For more info on installation, check out [our guide](https://dora.carsmos.ai/doc 1. Install the example python dependencies: ```bash -pip install -r raw.githubusercontent.com/dora-rs/dora/v0.3.2/examples/python-operator-dataflow/requirements.txt +pip install -r https://raw.githubusercontent.com/dora-rs/dora/v0.3.3/examples/python-operator-dataflow/requirements.txt ``` 2. Get some example operators: ```bash -wget raw.githubusercontent.com/dora-rs/dora/v0.3.2/examples/python-operator-dataflow/webcam.py -wget raw.githubusercontent.com/dora-rs/dora/v0.3.2/examples/python-operator-dataflow/plot.py -wget raw.githubusercontent.com/dora-rs/dora/v0.3.2/examples/python-operator-dataflow/utils.py -wget raw.githubusercontent.com/dora-rs/dora/v0.3.2/examples/python-operator-dataflow/object_detection.py -wget raw.githubusercontent.com/dora-rs/dora/v0.3.2/examples/python-operator-dataflow/dataflow.yml +wget https://raw.githubusercontent.com/dora-rs/dora/v0.3.3/examples/python-operator-dataflow/webcam.py +wget https://raw.githubusercontent.com/dora-rs/dora/v0.3.3/examples/python-operator-dataflow/plot.py +wget https://raw.githubusercontent.com/dora-rs/dora/v0.3.3/examples/python-operator-dataflow/utils.py +wget https://raw.githubusercontent.com/dora-rs/dora/v0.3.3/examples/python-operator-dataflow/object_detection.py +wget https://raw.githubusercontent.com/dora-rs/dora/v0.3.3/examples/python-operator-dataflow/dataflow.yml ``` 3. Start the dataflow diff --git a/apis/python/node/dora/__init__.py b/apis/python/node/dora/__init__.py index 9c3143d2e..e04fd7d4d 100644 --- a/apis/python/node/dora/__init__.py +++ b/apis/python/node/dora/__init__.py @@ -15,7 +15,7 @@ from .dora import * __author__ = "Dora-rs Authors" -__version__ = "0.3.2" +__version__ = "0.3.3-rc1" class DoraStatus(Enum): From 26162c705ad355785f472110072f657f333c29cf Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Mon, 8 Apr 2024 09:25:13 +0200 Subject: [PATCH 2/3] Bump to version 0.3.3-rc1 --- README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ca6efa90b..a1770b301 100644 --- a/README.md +++ b/README.md @@ -52,12 +52,49 @@ dora-rs can show impressive performance, up to 17x faster compared to current st > See: https://github.com/dora-rs/dora-benchmark/tree/main for reproduction. -## Dataflow Paradignm +## Dataflow Paradigm + +dora-rs implements a declarative dataflow paradigm where tasks are split between nodes isolated as individual processes. -dora-rs implements a dataflow paradigm where tasks are split between nodes isolated as individual processes. Each node defines its inputs and outputs to connect with other nodes. + +```yaml +nodes: + - id: webcam + custom: + source: webcam.py + inputs: + tick: dora/timer/millis/50 + outputs: + - image + + - id: object_detection + custom: + source: object_detection.py + inputs: + image: webcam/image + outputs: + - bbox + + - id: plot + custom: + source: plot.py + inputs: + image: webcam/image + bbox: object_detection/bbox +``` + +Nodes can either be: + +- custom nodes were dora-rs is embedded as a native libraries. +- runtime nodes were dora-rs takes care of the main loop and run user-defined operators. This make dora-rs featurefull as we can run features like `hot-reloading`. + The dataflow paradigm has the advantage of creating an abstraction layer that makes robotic applications modular and easily configurable. + + + + ## Communication Communication between nodes is handled with shared memory on a same machine and TCP on distributed machines. Our shared memory implementation tracks messages across processes and discards them when obsolete. Shared memory slots are cached to avoid new memory allocation. @@ -211,17 +248,17 @@ We also have [a contributing guide](CONTRIBUTING.md). ## Support Matrix -| | dora-rs | Hoped for | -| --------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| **Tier 1 Support** | Python, Rust | C, C++, ROS 2 | +| | dora-rs | Hoped for | +| --------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| **Tier 1 Support** | Python, Rust | C, C++, ROS 2 | | **Tier 2 Support** | C, C++, ROS2 | -| **Hot-reloading** | Python | Rust (https://github.com/orgs/dora-rs/discussions/360) | -| **Message Format** | Arrow | Native | -| **Local Communication** | Shared Memory | Custom Middleware, [zero-copy GPU IPC](https://arrow.apache.org/docs/python/api/cuda.html), intra-process channel communication | -| **Remote Communication** | TCP (See: https://github.com/dora-rs/dora/issues/459) | Custom Middleware, [Zenoh](https://zenoh.io/) | -| **Metrics, Tracing, and Logging** | Opentelemetry | Native logging libraries into Opentelemetry | +| **Hot-reloading** | Python | Rust (https://github.com/orgs/dora-rs/discussions/360) | +| **Message Format** | Arrow | Native | +| **Local Communication** | Shared Memory | Custom Middleware, [zero-copy GPU IPC](https://arrow.apache.org/docs/python/api/cuda.html), intra-process `tokio::channel` communication | +| **Remote Communication** | TCP (See: https://github.com/dora-rs/dora/issues/459) | Custom Middleware, [Zenoh](https://zenoh.io/) | +| **Metrics, Tracing, and Logging** | Opentelemetry | Native logging libraries into Opentelemetry | | **Data archives** | Parquet ([dora-record](libraries/extensions/dora-record)) | -| **Visualization and annotation** | OpenCV | [rerun.io](rerun.io) | +| **Visualization and annotation** | OpenCV | [rerun.io](rerun.io) | | **Supported Platforms (x86)** | Windows, macOS, Linux | | **Supported Platforms (ARM)** | macOS, Linux | | **Configuration** | YAML | From 7be257ec4e6a0d42d16674f102116471fc7b5986 Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Thu, 11 Apr 2024 15:11:57 +0200 Subject: [PATCH 3/3] Bump to 0.3.3 --- Cargo.lock | 66 +++++++++++++++---------------- Cargo.toml | 42 ++++++++++---------- Changelog.md | 8 ++++ README.md | 2 +- apis/python/node/dora/__init__.py | 2 +- 5 files changed, 64 insertions(+), 56 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c67d4453..065b1ea01 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -711,7 +711,7 @@ dependencies = [ [[package]] name = "benchmark-example-node" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "eyre", @@ -724,7 +724,7 @@ dependencies = [ [[package]] name = "benchmark-example-sink" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "eyre", @@ -1071,7 +1071,7 @@ dependencies = [ [[package]] name = "communication-layer-pub-sub" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "flume 0.10.14", "zenoh", @@ -1079,7 +1079,7 @@ dependencies = [ [[package]] name = "communication-layer-request-reply" -version = "0.3.3-rc1" +version = "0.3.3" [[package]] name = "concurrent-queue" @@ -1461,7 +1461,7 @@ dependencies = [ [[package]] name = "dora-arrow-convert" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "arrow", "eyre", @@ -1469,7 +1469,7 @@ dependencies = [ [[package]] name = "dora-cli" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "bat", "clap 4.4.6", @@ -1499,7 +1499,7 @@ dependencies = [ [[package]] name = "dora-coordinator" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "ctrlc", "dora-core", @@ -1517,7 +1517,7 @@ dependencies = [ [[package]] name = "dora-core" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "aligned-vec", "dora-message", @@ -1534,7 +1534,7 @@ dependencies = [ [[package]] name = "dora-daemon" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "aligned-vec", "async-trait", @@ -1562,7 +1562,7 @@ dependencies = [ [[package]] name = "dora-download" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "eyre", "reqwest", @@ -1590,7 +1590,7 @@ dependencies = [ [[package]] name = "dora-message" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "arrow-data", "arrow-schema", @@ -1601,7 +1601,7 @@ dependencies = [ [[package]] name = "dora-metrics" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "eyre", "opentelemetry 0.22.0", @@ -1612,7 +1612,7 @@ dependencies = [ [[package]] name = "dora-node-api" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "aligned-vec", "arrow", @@ -1634,7 +1634,7 @@ dependencies = [ [[package]] name = "dora-node-api-c" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "arrow-array", "dora-node-api", @@ -1644,7 +1644,7 @@ dependencies = [ [[package]] name = "dora-node-api-cxx" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "cxx", "cxx-build", @@ -1661,7 +1661,7 @@ dependencies = [ [[package]] name = "dora-node-api-python" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "arrow", "dora-node-api", @@ -1678,7 +1678,7 @@ dependencies = [ [[package]] name = "dora-operator-api" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-arrow-convert", "dora-operator-api-macros", @@ -1687,14 +1687,14 @@ dependencies = [ [[package]] name = "dora-operator-api-c" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-operator-api-types", ] [[package]] name = "dora-operator-api-cxx" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "cxx", "cxx-build", @@ -1703,7 +1703,7 @@ dependencies = [ [[package]] name = "dora-operator-api-macros" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "proc-macro2", "quote", @@ -1712,7 +1712,7 @@ dependencies = [ [[package]] name = "dora-operator-api-python" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "aligned-vec", "arrow", @@ -1726,7 +1726,7 @@ dependencies = [ [[package]] name = "dora-operator-api-types" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "arrow", "dora-arrow-convert", @@ -1735,7 +1735,7 @@ dependencies = [ [[package]] name = "dora-record" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "chrono", "dora-node-api", @@ -1798,7 +1798,7 @@ dependencies = [ [[package]] name = "dora-runtime" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "aligned-vec", "arrow", @@ -1825,7 +1825,7 @@ dependencies = [ [[package]] name = "dora-tracing" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "eyre", "opentelemetry 0.18.0", @@ -3285,7 +3285,7 @@ dependencies = [ [[package]] name = "multiple-daemons-example-node" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "eyre", @@ -3296,14 +3296,14 @@ dependencies = [ [[package]] name = "multiple-daemons-example-operator" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-operator-api", ] [[package]] name = "multiple-daemons-example-sink" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "eyre", @@ -4742,7 +4742,7 @@ dependencies = [ [[package]] name = "rust-dataflow-example-node" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "eyre", @@ -4753,14 +4753,14 @@ dependencies = [ [[package]] name = "rust-dataflow-example-operator" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-operator-api", ] [[package]] name = "rust-dataflow-example-sink" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "eyre", @@ -4779,7 +4779,7 @@ dependencies = [ [[package]] name = "rust-ros2-dataflow-example-node" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "dora-node-api", "dora-ros2-bridge", @@ -5190,7 +5190,7 @@ dependencies = [ [[package]] name = "shared-memory-server" -version = "0.3.3-rc1" +version = "0.3.3" dependencies = [ "bincode", "eyre", diff --git a/Cargo.toml b/Cargo.toml index d1803e0d2..0ad7abd0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,31 +37,31 @@ members = [ [workspace.package] # Make sure to also bump `apis/node/python/__init__.py` version. -version = "0.3.3-rc1" +version = "0.3.3" description = "`dora` goal is to be a low latency, composable, and distributed data flow." documentation = "https://dora.carsmos.ai" license = "Apache-2.0" [workspace.dependencies] -dora-node-api = { version = "0.3.3-rc1", path = "apis/rust/node", default-features = false } -dora-node-api-python = { version = "0.3.3-rc1", path = "apis/python/node", default-features = false } -dora-operator-api = { version = "0.3.3-rc1", path = "apis/rust/operator", default-features = false } -dora-operator-api-macros = { version = "0.3.3-rc1", path = "apis/rust/operator/macros" } -dora-operator-api-types = { version = "0.3.3-rc1", path = "apis/rust/operator/types" } -dora-operator-api-python = { version = "0.3.3-rc1", path = "apis/python/operator" } -dora-operator-api-c = { version = "0.3.3-rc1", path = "apis/c/operator" } -dora-node-api-c = { version = "0.3.3-rc1", path = "apis/c/node" } -dora-core = { version = "0.3.3-rc1", path = "libraries/core" } -dora-arrow-convert = { version = "0.3.3-rc1", path = "libraries/arrow-convert" } -dora-tracing = { version = "0.3.3-rc1", path = "libraries/extensions/telemetry/tracing" } -dora-metrics = { version = "0.3.3-rc1", path = "libraries/extensions/telemetry/metrics" } -dora-download = { version = "0.3.3-rc1", path = "libraries/extensions/download" } -shared-memory-server = { version = "0.3.3-rc1", path = "libraries/shared-memory-server" } -communication-layer-request-reply = { version = "0.3.3-rc1", path = "libraries/communication-layer/request-reply" } -dora-message = { version = "0.3.3-rc1", path = "libraries/message" } -dora-runtime = { version = "0.3.3-rc1", path = "binaries/runtime" } -dora-daemon = { version = "0.3.3-rc1", path = "binaries/daemon" } -dora-coordinator = { version = "0.3.3-rc1", path = "binaries/coordinator" } +dora-node-api = { version = "0.3.3", path = "apis/rust/node", default-features = false } +dora-node-api-python = { version = "0.3.3", path = "apis/python/node", default-features = false } +dora-operator-api = { version = "0.3.3", path = "apis/rust/operator", default-features = false } +dora-operator-api-macros = { version = "0.3.3", path = "apis/rust/operator/macros" } +dora-operator-api-types = { version = "0.3.3", path = "apis/rust/operator/types" } +dora-operator-api-python = { version = "0.3.3", path = "apis/python/operator" } +dora-operator-api-c = { version = "0.3.3", path = "apis/c/operator" } +dora-node-api-c = { version = "0.3.3", path = "apis/c/node" } +dora-core = { version = "0.3.3", path = "libraries/core" } +dora-arrow-convert = { version = "0.3.3", path = "libraries/arrow-convert" } +dora-tracing = { version = "0.3.3", path = "libraries/extensions/telemetry/tracing" } +dora-metrics = { version = "0.3.3", path = "libraries/extensions/telemetry/metrics" } +dora-download = { version = "0.3.3", path = "libraries/extensions/download" } +shared-memory-server = { version = "0.3.3", path = "libraries/shared-memory-server" } +communication-layer-request-reply = { version = "0.3.3", path = "libraries/communication-layer/request-reply" } +dora-message = { version = "0.3.3", path = "libraries/message" } +dora-runtime = { version = "0.3.3", path = "binaries/runtime" } +dora-daemon = { version = "0.3.3", path = "binaries/daemon" } +dora-coordinator = { version = "0.3.3", path = "binaries/coordinator" } dora-ros2-bridge = { path = "libraries/extensions/ros2-bridge" } dora-ros2-bridge-msg-gen = { path = "libraries/extensions/ros2-bridge/msg-gen" } dora-ros2-bridge-python = { path = "libraries/extensions/ros2-bridge/python" } @@ -94,7 +94,7 @@ dunce = "1.0.2" serde_yaml = "0.8.23" uuid = { version = "1.7", features = ["v7", "serde"] } tracing = "0.1.36" -futures = "0.3.3-rc15" +futures = "0.3.25" tokio-stream = "0.1.11" [[example]] diff --git a/Changelog.md b/Changelog.md index 0f5906b6d..9dabfbc8f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -18,7 +18,13 @@ - Enable ROS2 service calls from C++ nodes by @phil-opp in https://github.com/dora-rs/dora/pull/441 - Use `Debug` formatting for eyre errors when returning to C++ by @phil-opp in https://github.com/dora-rs/dora/pull/450 - Fix out-of-tree builds in cmake example by @phil-opp in https://github.com/dora-rs/dora/pull/453 +- Fix broken link in README by @mshr-h in https://github.com/dora-rs/dora/pull/462 +- fix cargo run --example cmake-dataflow compile bugs by @XxChang in https://github.com/dora-rs/dora/pull/460 - Llm example by @haixuanTao in https://github.com/dora-rs/dora/pull/451 +- Fix meter conflict by @haixuanTao in https://github.com/dora-rs/dora/pull/461 +- Update README.md by @bobd988 in https://github.com/dora-rs/dora/pull/458 +- Refactor `README` by @haixuanTao in https://github.com/dora-rs/dora/pull/463 +- Specify conda env for Python Operators by @haixuanTao in https://github.com/dora-rs/dora/pull/468 ## Minor @@ -29,6 +35,8 @@ - @bobd988 made their first contribution in https://github.com/dora-rs/dora/pull/431 +* @mshr-h made their first contribution in https://github.com/dora-rs/dora/pull/462 + **Full Changelog**: https://github.com/dora-rs/dora/compare/v0.3.2...v0.3.3 ## v0.3.2 (2024-01-26) diff --git a/README.md b/README.md index a1770b301..3216125fd 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ nodes: Nodes can either be: - custom nodes were dora-rs is embedded as a native libraries. -- runtime nodes were dora-rs takes care of the main loop and run user-defined operators. This make dora-rs featurefull as we can run features like `hot-reloading`. +- runtime nodes were dora-rs takes care of the main loop and run user-defined operators. This make dora-rs featureful as we can run features like `hot-reloading`. The dataflow paradigm has the advantage of creating an abstraction layer that makes robotic applications modular and easily configurable. diff --git a/apis/python/node/dora/__init__.py b/apis/python/node/dora/__init__.py index e04fd7d4d..be8c50165 100644 --- a/apis/python/node/dora/__init__.py +++ b/apis/python/node/dora/__init__.py @@ -15,7 +15,7 @@ from .dora import * __author__ = "Dora-rs Authors" -__version__ = "0.3.3-rc1" +__version__ = "0.3.3" class DoraStatus(Enum):