in #1091 we included some new uses of Crucible, in propolis-lib:
use crucible::BlockIO;
use crucible::BlockIndex;
use crucible::Buffer;
but how did this build without adding a direct dependency on crucible in propolis, which surely would have caused a "hmm" in review?
it was already a dependency, but optional! which unfortunately means that cargo test -p propolis fails with build errors about the non-present Omicron crates. CI passes, I think, because we cargo test --lib and build the entire workspace together, where propolis-server enables the Crucible-related features in propolis-the-library and it all pans out.
alongside untangling these dependencies (conditionalizing boot disk digest support?) we should add a cargo test -p propolis for good measure.
in #1091 we included some new uses of Crucible, in propolis-lib:
but how did this build without adding a direct dependency on
crucibleinpropolis, which surely would have caused a "hmm" in review?it was already a dependency, but optional! which unfortunately means that
cargo test -p propolisfails with build errors about the non-present Omicron crates. CI passes, I think, because wecargo test --liband build the entire workspace together, wherepropolis-serverenables the Crucible-related features inpropolis-the-library and it all pans out.alongside untangling these dependencies (conditionalizing boot disk digest support?) we should add a
cargo test -p propolisfor good measure.