Add cargo workspace for devtools-frontend WASM #118
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
概要
devtools-frontend/crates
を cargo workspace にします変更の意図や背景
WASM 向けの crate の管理は,以下の理由から Gaia 本体の cargo workspace とは別途管理すべきです.
cargo build
するとどのターゲット向けに何をビルドすべきなのかが非常に非自明になる上に,想定と異なるターゲット向けにビルドされる可能性を考慮しなければならなくなり,不毛です[profile.release]
などを設定したくなりますが,これは workspace root でないと効果を発揮しない設定ですwasm-opslang
crate を workspace root にする提案をしましたが,実用上は個々の WASM 向け crate の profile を個別にチューニングするようなケースは無いものと思われるため,この PR ではよりシンプルにdevtools-frontend/crates
を cargo workspace としていますwasm-pack
が呼び出すcargo metadata
のためwasm-pack
内では,cargo metadata
が呼び出されますcargo metadata
では,対象となる crate は workspace root(workspace manifest || 1 package context)もしくは workspace member であることが想定されていますworkspace.meber
でないことによって workspace root(というか workspace でない単一 package)である場合を想定しておらず,エラーになりますそのため,WASM 用 crate 群のための cargo workspace を用意するため,
devtools-frontend/Cargo.toml
を追加し,wasm-opslang
crate をこの cargo workspace の member にします発端となる Issue / PR