Leverage Cargo's workspace inheritance feature (#4905)

* Leverage Cargo's workspace inheritance feature

This commit is an attempt to reduce the complexity of the Cargo
manifests in this repository with Cargo's workspace-inheritance feature
becoming stable in Rust 1.64.0. This feature allows specifying fields in
the root workspace `Cargo.toml` which are then reused throughout the
workspace. For example this PR shares definitions such as:

* All of the Wasmtime-family of crates now use `version.workspace =
  true` to have a single location which defines the version number.
* All crates use `edition.workspace = true` to have one default edition
  for the entire workspace.
* Common dependencies are listed in `[workspace.dependencies]` to avoid
  typing the same version number in a lot of different places (e.g. the
  `wasmparser = "0.89.0"` is now in just one spot.

Currently the workspace-inheritance feature doesn't allow having two
different versions to inherit, so all of the Cranelift-family of crates
still manually specify their version. The inter-crate dependencies,
however, are shared amongst the root workspace.

This feature can be seen as a method of "preprocessing" of sorts for
Cargo manifests. This will help us develop Wasmtime but shouldn't have
any actual impact on the published artifacts -- everything's dependency
lists are still the same.

* Fix wasi-crypto tests
This commit is contained in:
Alex Crichton
2022-09-26 11:30:01 -05:00
committed by GitHub
parent af226d37c2
commit 7b311004b5
63 changed files with 520 additions and 446 deletions

View File

@@ -1,7 +1,7 @@
[package]
name = "wasmtime-cli"
version = "2.0.0"
authors = ["The Wasmtime Project Developers"]
version.workspace = true
authors.workspace = true
description = "Command-line interface for Wasmtime"
license = "Apache-2.0 WITH LLVM-exception"
documentation = "https://bytecodealliance.github.io/wasmtime/cli.html"
@@ -9,7 +9,7 @@ categories = ["wasm"]
keywords = ["webassembly", "wasm"]
repository = "https://github.com/bytecodealliance/wasmtime"
readme = "README.md"
edition = "2021"
edition.workspace = true
default-run = "wasmtime"
[lib]
@@ -21,54 +21,53 @@ path = "src/bin/wasmtime.rs"
doc = false
[dependencies]
wasmtime = { path = "crates/wasmtime", version = "2.0.0", default-features = false, features = ['cache', 'cranelift'] }
wasmtime-cache = { path = "crates/cache", version = "=2.0.0" }
wasmtime-cli-flags = { path = "crates/cli-flags", version = "=2.0.0" }
wasmtime-cranelift = { path = "crates/cranelift", version = "=2.0.0" }
wasmtime-environ = { path = "crates/environ", version = "=2.0.0" }
wasmtime-wast = { path = "crates/wast", version = "=2.0.0" }
wasmtime-wasi = { path = "crates/wasi", version = "2.0.0" }
wasmtime-wasi-crypto = { path = "crates/wasi-crypto", version = "2.0.0", optional = true }
wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "2.0.0", optional = true }
clap = { version = "3.2.0", features = ["color", "suggestions", "derive"] }
anyhow = "1.0.19"
target-lexicon = { version = "0.12.0", default-features = false }
wasmtime = { workspace = true, features = ['cache', 'cranelift'] }
wasmtime-cache = { workspace = true }
wasmtime-cli-flags = { workspace = true }
wasmtime-cranelift = { workspace = true }
wasmtime-environ = { workspace = true }
wasmtime-wast = { workspace = true }
wasmtime-wasi = { workspace = true }
wasmtime-wasi-crypto = { workspace = true, optional = true }
wasmtime-wasi-nn = { workspace = true, optional = true }
clap = { workspace = true, features = ["color", "suggestions", "derive"] }
anyhow = { workspace = true }
target-lexicon = { workspace = true }
libc = "0.2.60"
humantime = "2.0.0"
once_cell = "1.12"
once_cell = { workspace = true }
listenfd = "1.0.0"
[target.'cfg(unix)'.dependencies]
rustix = { version = "0.35.10", features = ["mm", "param"] }
rustix = { workspace = true, features = ["mm", "param"] }
[dev-dependencies]
# depend again on wasmtime to activate its default features for tests
wasmtime = { path = "crates/wasmtime", version = "2.0.0", features = ['component-model'] }
env_logger = "0.9.0"
log = "0.4.8"
wasmtime = { workspace = true, features = ['component-model', 'async', 'default'] }
env_logger = { workspace = true }
log = { workspace = true }
filecheck = "0.5.0"
tempfile = "3.1.0"
test-programs = { path = "crates/test-programs" }
wasmtime-runtime = { path = "crates/runtime" }
wasmtime-runtime = { workspace = true }
tokio = { version = "1.8.0", features = ["rt", "time", "macros", "rt-multi-thread"] }
wast = "46.0.0"
wast = { workspace = true }
criterion = "0.3.4"
num_cpus = "1.13.0"
memchr = "2.4"
async-trait = "0.1"
wat = "1.0.48"
once_cell = "1.9.0"
wat = { workspace = true }
rayon = "1.5.0"
wasmtime-wast = { workspace = true, features = ['component-model'] }
wasmtime-component-util = { workspace = true }
component-macro-test = { path = "crates/misc/component-macro-test" }
wasmtime-wast = { path = "crates/wast", version = "=2.0.0", features = ['component-model'] }
component-test-util = { path = "crates/misc/component-test-util" }
wasmtime-component-util = { path = "crates/component-util" }
component-test-util = { workspace = true }
[target.'cfg(windows)'.dev-dependencies]
windows-sys = { version = "0.36.0", features = ["Win32_System_Memory"] }
windows-sys = { workspace = true, features = ["Win32_System_Memory"] }
[build-dependencies]
anyhow = "1.0.19"
anyhow = { workspace = true }
[profile.release.build-override]
opt-level = 0
@@ -95,6 +94,76 @@ exclude = [
'docs/rust_wasi_markdown_parser'
]
[workspace.package]
version = "2.0.0"
authors = ["The Wasmtime Project Developers"]
edition = "2021"
[workspace.dependencies]
wasmtime = { path = "crates/wasmtime", version = "2.0.0", default-features = false }
wasmtime-cache = { path = "crates/cache", version = "=2.0.0" }
wasmtime-cli-flags = { path = "crates/cli-flags", version = "=2.0.0" }
wasmtime-cranelift = { path = "crates/cranelift", version = "=2.0.0" }
wasmtime-environ = { path = "crates/environ", version = "=2.0.0" }
wasmtime-fiber = { path = "crates/fiber", version = "=2.0.0" }
wasmtime-types = { path = "crates/types", version = "2.0.0" }
wasmtime-jit = { path = "crates/jit", version = "=2.0.0" }
wasmtime-jit-debug = { path = "crates/jit-debug", version = "=2.0.0" }
wasmtime-runtime = { path = "crates/runtime", version = "=2.0.0" }
wasmtime-wast = { path = "crates/wast", version = "=2.0.0" }
wasmtime-wasi = { path = "crates/wasi", version = "2.0.0" }
wasmtime-wasi-crypto = { path = "crates/wasi-crypto", version = "2.0.0" }
wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "2.0.0" }
wasmtime-component-util = { path = "crates/component-util", version = "=2.0.0" }
wasmtime-component-macro = { path = "crates/component-macro", version = "=2.0.0" }
wasmtime-asm-macros = { path = "crates/asm-macros", version = "=2.0.0" }
component-test-util = { path = "crates/misc/component-test-util" }
component-fuzz-util = { path = "crates/misc/component-fuzz-util" }
wiggle = { path = "crates/wiggle", version = "=2.0.0", default-features = false }
wiggle-macro = { path = "crates/wiggle/macro", version = "=2.0.0" }
wiggle-generate = { path = "crates/wiggle/generate", version = "=2.0.0" }
wasi-common = { path = "crates/wasi-common", version = "=2.0.0" }
wasi-tokio = { path = "crates/wasi-common/tokio", version = "=2.0.0" }
wasi-cap-std-sync = { path = "crates/wasi-common/cap-std-sync", version = "=2.0.0" }
wasmtime-fuzzing = { path = "crates/fuzzing" }
cranelift-wasm = { path = "cranelift/wasm", version = "0.89.0" }
cranelift-codegen = { path = "cranelift/codegen", version = "0.89.0" }
cranelift-frontend = { path = "cranelift/frontend", version = "0.89.0" }
cranelift-entity = { path = "cranelift/entity", version = "0.89.0" }
cranelift-native = { path = "cranelift/native", version = "0.89.0" }
cranelift-module = { path = "cranelift/module", version = "0.89.0" }
cranelift-interpreter = { path = "cranelift/interpreter", version = "0.89.0" }
cranelift-reader = { path = "cranelift/reader", version = "0.89.0" }
cranelift-filetests = { path = "cranelift/filetests" }
cranelift-object = { path = "cranelift/object", version = "0.89.0" }
cranelift-jit = { path = "cranelift/jit", version = "0.89.0" }
cranelift-preopt = { path = "cranelift/preopt", version = "0.89.0" }
cranelift-fuzzgen = { path = "cranelift/fuzzgen" }
cranelift-bforest = { path = "cranelift/bforest", version = "0.89.0" }
cranelift = { path = "cranelift/umbrella", version = "0.89.0" }
target-lexicon = { version = "0.12.3", default-features = false }
anyhow = "1.0.22"
wasmparser = "0.89.0"
wat = "1.0.48"
wast = "46.0.0"
wasmprinter = "0.2.39"
wasm-encoder = "0.16.0"
wasm-smith = "0.11.4"
wasm-mutate = "0.2.7"
windows-sys = "0.36.0"
env_logger = "0.9"
rustix = "0.35.10"
log = { version = "0.4.8", default-features = false }
object = { version = "0.29", default-features = false, features = ['read_core', 'elf', 'std'] }
gimli = { version = "0.26.0", default-features = false, features = ['read', 'std'] }
clap = { version = "3.2.0", features = ["color", "suggestions", "derive"] }
hashbrown = "0.12"
cap-std = "0.26.0"
once_cell = "1.12.0"
smallvec = { version = "1.6.1", features = ["union"] }
[features]
default = [
"jitdump",