RustでCargoの仮想ワークスペース(virtual workspaces)使用時にのみ依存パッケージのコンパイルに失敗する
RustでゲームエンジンのBevyを使ってパッケージとして書いていたものをワークスペースに移行してビルドしてみると、なぜか突然依存パッケージのコンパイルに失敗するようになった。
調べてみると仮想ワークスペースではパッケージのようにエディションを指定しないので、依存関係の解決アルゴリズムに古いバージョンのものがデフォルトで使われてしまうことが原因のようで、resolver = "2"
を指定すると解決した。
[workspace]
members = ["crates/*"]
resolver = "2"
なお解決したあとで検索してみるとBevyの非公式チートブックにもよくある落とし穴としてしっかり記載されていた。