This PR makes it possible to bump couple of dependency up:
- Arrow 0.54
- Pyo3 0.23
- ros2-client 0.8
The biggest blocker being pyo3 with a more restricting python class
requiring to be sync.
Kokoro TTS is a very fast TTS and a good replacement for outlets with
less than 1sec inference on macOS.
It is apache 2.0
TODO:
- [x] Interruption of the audio.
* Use `zenoh` for inter-daemon messaging
* Report error context from coordinator to CLI
* Assign unique ID to each daemon
The previous machine ID is still used, but optional. Users don't need to ensure that the chosen machine IDs are unique anymore because they are augmented with a UUID.
* Rework default daemon selection
* Subscribe to required outputs of remote nodes when spawning dataflow
* Don't check dataflow in coordinator
* Log when sending AllNodesReady message
* Add more logging in daemon
* Improve log output
* Fix node stopping when error occurs during spawn
* Fix: Record node result when spawn fails
* Trim additional newlines at end of `stderr`
* Fix typos: deamon -> daemon
* Log publish and subscribe topics
* Fix: Calculate mapping info first, then set up subscriptions
We need to loop over the nodes twice because the subscription setup requires full mapping info. Otherwise some subscriptions might be missing when we process the target node before the source node.
* Fix `multiple-daemons` example
* CI: Use `paths-ignore` instead of negated `paths` (#781)
Use `paths-ignore` instead of negated `paths`
The GitHub workflow docs specify: 'If you define a path with the ! character, you must also define at least one path without the ! character. If you only want to exclude paths, use paths-ignore instead.'
* Add README with run instructions to multiple-daemons example
* Add distributed deployment instructions to README for multiple-daemons example
* Add config option to publish all outputs to zenoh
This can be useful for debugging
* Load zenoh config from `ZENOH_CONFIG` env variable if set
* Remove commented-out check
* Exit daemon on ctrl-c after all dataflows are stopped
Before we only stopped all dataflows, but then kept on running.
* Properly disconnect daemons that exited in coordinator
Send an exit message from the daemon to the coordinator on exit. This enables the coordinator to disconnect the daemon properly instead of waiting for a missed heartbeat signal.
* Don't error if local listen port is already in use
* Error on daemon registration if machine ID is not unique
* Set default log level to INFO for coordinator and daemon
but keep zenoh log level at WARN level
* Debug: Print error kind if daemon listener spawning fails