The working directory of nodes with git fields is only decided on `dora build` because that's where we translate the branch/tag name into the commit hash.
Before, we fell back to using the base working directory if no build was done. However, this is confusing since the reason for the different working directory is not communicated in any.
This commit throws an error if no build happened before starting a dataflow with git nodes.
- Buffer log messages that are sent before subscribers are connected
- Include working directory in 'running build command' message
- Lower log level of 'building' message to `Debug`
We forgot to create the working directory in a few cases in #901. This
PR fixes this by adding the proper `create_dir_all` calls.
Alternative to https://github.com/dora-rs/dora/pull/1064
The dataflow descriptor format still changes often, which led to parse errors. By doing the parsing lazily, this should only affect users of the `dataflow_descriptor` function from now on.
We don't wait for dynamic nodes when the dataflow is done otherwise, so they might stop after the dataflow is done. This commit fixes a daemon error that happened in this case.
The coordinator now sends an immediate `DataflowStartTriggered` reply when receiving a `DataflowStart` command. This enables the CLI to directly attach to the dataflow and observe the build output.
To wait until the build/spawning is done, this commit introduces a new `WaitForSpawn` command, to which the coordinator replies with a `DataflowSpawned` message once the node has been started. We use this command for the `dora build` command.
Instead of running all the build commands directly, run them on their intended target machines through the coordinator.
This commit is a breaking change because a coordinator connection is now required for `dora build`.