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.
Runs a dataflow locally, without requiring any any daemon or coordinator
processes. Multi-machine dataflows are not supported. The default log
level is set to `INFO`, overwriting it is possible by setting the
`RUST_LOG` environment variable.
This exposes the internal `dora daemon --run-dataflow` command that we
use for testing.
This addition was proposed in
https://github.com/orgs/dora-rs/discussions/698#discussioncomment-11125465
.
The second commit adds a ctrl-c handler. On first ctrl-c, we send a stop
command to all nodes. On second ctrl-c, we exit immediately and kill all
spawned nodes. On third ctrl-c, we abort the process directly without
waiting (child processes keep running).
Make `dora-message` a dependency of `dora-core`, instead of the other way around. This way, we can continue to freely bump the version of `dora-core` with the other workspace crates, without introducing errors such as #708.
It is necessary to make build multiline in order to build certain node.
This allow users to do the following:
```bash
nodes:
- id: dora-microphone
build: |
pip install -e ../../node-hub/dora-microphones
pip install -e ../../node-hub/dora-vad
path: dora-microphone
```
or
```bash
nodes:
- id: dora-microphone
build: |
sudo apt install abc
pip install bar
path: dora-microphone
```
This PR fixes one error that happen when the coordinator fail to connect
to the daemon and ultimately hangs indefinetely.
## To reproduce previous behaviour:
```bash
dora up
kill <DAEMON PID> && dora destroy
dora destroy # <- This hangs
```
Fix: https://github.com/dora-rs/dora/issues/253