-
Notifications
You must be signed in to change notification settings - Fork 120
Closed
Description
I stumbled upon this issue while trying to update tock-on-titan to the current libtock-rs master commit.
Because test_runner and libtock-core are in the same workspace, cargo searches for test_runner's dependencies when it tries to build libtock-core. This makes async-std a build dependency of libtock-core.
I don't think this was either expected or intended behavior when PR #164 created libtock-core.
This is blocking the tock-on-titan update because tock-on-titan's build system (intentionally) makes it difficult to pull in large dependencies such as async-std. I can think of a few ways forward:
- Remove the workspace entirely, making each crate stand on its own.
- Change the directory layout so that
libtock-corestays outside the "main" workspace. We could potentially have multiple workspaces, such as one for minimal-dependency code (e.g. libtock-core) and another for high-dependency code (libtock-rs and test_runner). - Leave the workspace in place and let out-of-tree boards deal with it. This is possible for tock-on-titan (our build system could copy
libtock-coreto a separate directory, removing it from the workspace) but is not possible for cargo-based projects.
I would prefer option 1 or 2, but I'd like to hear what others think before I put too much effort into this change.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels