chore: Standardize Cargo.toml files, enable more workspace dependencies

This commit is contained in:
Bryant Biggs 2023-09-19 10:43:08 -04:00
parent d3088c42ee
commit 5e1b7760a1
8 changed files with 141 additions and 105 deletions

View File

@ -2,11 +2,11 @@
members = [ members = [
"crates/client", "crates/client",
"crates/logging", "crates/logging",
"crates/shim-protos",
"crates/shim",
"crates/snapshots",
"crates/runc", "crates/runc",
"crates/runc-shim", "crates/runc-shim",
"crates/shim",
"crates/shim-protos",
"crates/snapshots",
] ]
[profile.release] [profile.release]
@ -24,14 +24,21 @@ edition = "2021"
# Common dependencies for all crates # Common dependencies for all crates
[workspace.dependencies] [workspace.dependencies]
tokio = "1.26"
tower = "0.4"
tonic = "0.10"
tonic-build = "0.10"
prost = "0.12"
prost-types = "0.12"
async-trait = "0.1.52" async-trait = "0.1.52"
futures = "0.3.19" futures = "0.3.19"
libc = "0.2.112"
log = "0.4"
nix = "0.26"
oci-spec = "0.6"
os_pipe = "1.1"
prost = "0.12"
prost-types = "0.12"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "1.0"
time = { version = "0.3.7", features = ["serde", "std"] }
tokio = "1.26"
tonic = "0.10"
tonic-build = "0.10"
tower = "0.4"
uuid = { version = "1.0", features = ["v4"] }

View File

@ -14,11 +14,19 @@ license.workspace = true
repository.workspace = true repository.workspace = true
homepage.workspace = true homepage.workspace = true
[[example]]
name = "container"
path = "examples/container.rs"
[[example]]
name = "version"
path = "examples/version.rs"
[dependencies] [dependencies]
tonic.workspace = true
prost.workspace = true prost.workspace = true
prost-types.workspace = true prost-types.workspace = true
tokio = { workspace = true, optional = true } tokio = { workspace = true, optional = true }
tonic.workspace = true
tower = { workspace = true, optional = true } tower = { workspace = true, optional = true }
[build-dependencies] [build-dependencies]

View File

@ -1,9 +1,13 @@
[package] [package]
name = "containerd-shim-logging" name = "containerd-shim-logging"
version = "0.1.1" version = "0.1.1"
authors = ["Maksym Pavlenko <pavlenko.maksym@gmail.com>", "The containerd Authors"] authors = [
"Maksym Pavlenko <pavlenko.maksym@gmail.com>",
"The containerd Authors"
]
description = "Logger extension for containerd v2 runtime" description = "Logger extension for containerd v2 runtime"
keywords = ["containerd", "shim", "containers"] keywords = ["containerd", "shim", "containers"]
categories = ["api-bindings", "asynchronous"]
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true

View File

@ -6,8 +6,9 @@ authors = [
"Tianyang Zhang <burning9699@gmail.com>", "Tianyang Zhang <burning9699@gmail.com>",
"The containerd Authors", "The containerd Authors",
] ]
keywords = ["containerd", "shim", "containers"]
description = "Rust implementation of containerd's runc v2 shim runtime" description = "Rust implementation of containerd's runc v2 shim runtime"
keywords = ["containerd", "shim", "containers"]
categories = ["api-bindings", "asynchronous"]
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
@ -24,20 +25,19 @@ path = "src/main.rs"
doc = false doc = false
[dependencies] [dependencies]
log = "0.4" containerd-shim = { path = "../shim", version = "0.5.0", features = ["async"] }
nix = "0.26"
libc = "0.2.95"
time = { version = "0.3.7", features = ["serde", "std"] }
serde = { version = "1.0.133", features = ["derive"] }
serde_json = "1.0.74"
oci-spec = "0.6.0"
crossbeam = "0.8.1" crossbeam = "0.8.1"
uuid = { version = "1.0.0", features = ["v4"] } libc.workspace = true
log.workspace = true
nix.workspace = true
oci-spec.workspace = true
runc = { path = "../runc", version = "0.2.0", features = ["async"] }
serde.workspace = true
serde_json.workspace = true
time.workspace = true
uuid.workspace = true
# Async dependencies # Async dependencies
async-trait = { workspace = true } async-trait.workspace = true
futures.workspace = true
tokio = { workspace = true, features = ["full"] } tokio = { workspace = true, features = ["full"] }
futures = { workspace = true }
containerd-shim = { path = "../shim", version = "0.5.0", features = ["async"] }
runc = { path = "../runc", version = "0.2.0", features = ["async"] }

View File

@ -1,9 +1,13 @@
[package] [package]
name = "runc" name = "runc"
version = "0.2.0" version = "0.2.0"
authors = ["Yuna Tomida <ytomida.mmm@gmail.com>", "The containerd Authors"] authors = [
keywords = ["containerd", "containers", "runc"] "Yuna Tomida <ytomida.mmm@gmail.com>",
"The containerd Authors",
]
description = "A crate for consuming the runc binary in your Rust applications" description = "A crate for consuming the runc binary in your Rust applications"
keywords = ["containerd", "containers", "runc"]
categories = ["api-bindings", "asynchronous"]
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
@ -13,24 +17,23 @@ homepage.workspace = true
[features] [features]
async = ["tokio", "async-trait", "futures", "tokio-pipe"] async = ["tokio", "async-trait", "futures", "tokio-pipe"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
libc = "0.2.112" libc.workspace = true
log = "0.4.14" log.workspace = true
nix = "0.26" nix.workspace = true
oci-spec = "0.6.0" oci-spec.workspace = true
os_pipe.workspace = true
path-absolutize = "3.0.11" path-absolutize = "3.0.11"
rand = "0.8.4" rand = "0.8.4"
serde = { version = "1.0.133", features = ["derive"] } serde.workspace = true
serde_json = "1.0.74" serde_json.workspace = true
tempfile = "3.6.0" tempfile = "3.6.0"
thiserror = "1.0.30" thiserror.workspace = true
time = { version = "0.3.7", features = ["serde", "std"] } time.workspace = true
uuid = { version = "1.0.0", features = ["v4"] } uuid.workspace = true
os_pipe = "1.0.0"
# Async dependencies # Async dependencies
tokio = { workspace = true, features = ["full"], optional = true }
async-trait = { workspace = true, optional = true } async-trait = { workspace = true, optional = true }
futures = { workspace = true, optional = true } futures = { workspace = true, optional = true }
tokio = { workspace = true, features = ["full"], optional = true }
tokio-pipe = { version="0.2.10", optional = true } tokio-pipe = { version="0.2.10", optional = true }

View File

@ -7,34 +7,13 @@ authors = [
] ]
description = "TTRPC bindings for containerd shim interfaces" description = "TTRPC bindings for containerd shim interfaces"
keywords = ["containerd", "shim", "containers", "ttrpc", "client"] keywords = ["containerd", "shim", "containers", "ttrpc", "client"]
categories = ["api-bindings"] categories = ["api-bindings", "asynchronous"]
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
repository.workspace = true repository.workspace = true
homepage.workspace = true homepage.workspace = true
[dependencies]
protobuf = "3.1"
# Quickfix to make CI green.
# 0.8.1 introduces a breaking change in the API.
# https://github.com/containerd/ttrpc-rust/pull/197
# https://github.com/containerd/ttrpc-rust/pull/209
ttrpc = "=0.8.0"
async-trait = { version = "0.1.48", optional = true }
[build-dependencies]
ttrpc-codegen = "0.4"
[dev-dependencies]
ctrlc = { version = "3.0", features = ["termination"] }
log = "0.4"
simple_logger = { version = "4.0", default-features = false, features = [
"stderr",
] }
tokio = { workspace = true, features = ["full"] }
[features] [features]
default = [] default = []
async = ["ttrpc/async", "async-trait"] async = ["ttrpc/async", "async-trait"]
@ -66,3 +45,21 @@ required-features = ["async"]
name = "shim-proto-connect-async" name = "shim-proto-connect-async"
path = "examples/connect-async.rs" path = "examples/connect-async.rs"
required-features = ["async"] required-features = ["async"]
[dependencies]
async-trait = { version = "0.1.48", optional = true }
protobuf = "3.1"
# Quickfix to make CI green.
# 0.8.1 introduces a breaking change in the API.
# https://github.com/containerd/ttrpc-rust/pull/197
# https://github.com/containerd/ttrpc-rust/pull/209
ttrpc = "=0.8.0"
[build-dependencies]
ttrpc-codegen = "0.4"
[dev-dependencies]
ctrlc = { version = "3.0", features = ["termination"] }
log.workspace = true
simple_logger = { version = "4.0", default-features = false, features = ["stderr"]}
tokio = { workspace = true, features = ["full"] }

View File

@ -1,9 +1,13 @@
[package] [package]
name = "containerd-shim" name = "containerd-shim"
version = "0.5.0" version = "0.5.0"
authors = ["Maksym Pavlenko <pavlenko.maksym@gmail.com>", "The containerd Authors"] authors = [
keywords = ["containerd", "shim", "containers"] "Maksym Pavlenko <pavlenko.maksym@gmail.com>",
"The containerd Authors",
]
description = "containerd shim extension" description = "containerd shim extension"
keywords = ["containerd", "shim", "containers"]
categories = ["api-bindings", "asynchronous"]
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
@ -11,7 +15,13 @@ repository.workspace = true
homepage.workspace = true homepage.workspace = true
[features] [features]
async = ["tokio", "containerd-shim-protos/async", "async-trait", "futures", "signal-hook-tokio"] async = [
"async-trait",
"containerd-shim-protos/async",
"futures",
"signal-hook-tokio",
"tokio",
]
[[example]] [[example]]
name = "skeleton_async" name = "skeleton_async"
@ -22,27 +32,26 @@ name = "windows-log-reader"
path = "examples/windows_log_reader.rs" path = "examples/windows_log_reader.rs"
[dependencies] [dependencies]
go-flag = "0.1.0"
thiserror = "1.0"
log = { version = "0.4", features = ["std"] }
libc = "0.2.95"
nix = "0.26"
lazy_static = "1.4.0"
time = { version = "0.3.7", features = ["serde", "std"] }
serde_json = "1.0.78"
serde_derive = "1.0.136"
serde = "1.0.136"
signal-hook = "0.3.13"
oci-spec = "0.6.0"
prctl = "1.0.0"
page_size = "0.6.0"
containerd-shim-protos = { path = "../shim-protos", version = "0.5.0" } containerd-shim-protos = { path = "../shim-protos", version = "0.5.0" }
go-flag = "0.1.0"
lazy_static = "1.4.0"
libc.workspace = true
log = { workspace = true, features = ["std"]}
nix.workspace = true
oci-spec.workspace = true
page_size = "0.6.0"
prctl = "1.0.0"
signal-hook = "0.3.13"
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
time.workspace = true
# Async dependencies
async-trait = { workspace = true, optional = true } async-trait = { workspace = true, optional = true }
tokio = { workspace = true, features = ["full"], optional = true }
futures = { workspace = true, optional = true} futures = { workspace = true, optional = true}
signal-hook-tokio = { version = "0.3.1", optional = true, features = ["futures-v0_3"]} signal-hook-tokio = { version = "0.3.1", optional = true, features = ["futures-v0_3"]}
tokio = { workspace = true, features = ["full"], optional = true }
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
cgroups-rs = "0.2.9" cgroups-rs = "0.2.9"
@ -51,9 +60,17 @@ cgroups-rs = "0.2.9"
command-fds = "0.2.1" command-fds = "0.2.1"
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]
windows-sys = {version = "0.48.0", features = ["Win32_Foundation","Win32_System_WindowsProgramming","Win32_System_Console", "Win32_System_Pipes","Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Threading"]}
mio = { version = "0.8", features = ["os-ext", "os-poll"] } mio = { version = "0.8", features = ["os-ext", "os-poll"] }
os_pipe = "1.1.3" os_pipe.workspace = true
windows-sys = {version = "0.48.0", features = [
"Win32_Foundation",
"Win32_System_WindowsProgramming",
"Win32_System_Console",
"Win32_System_Pipes",
"Win32_Security",
"Win32_Storage_FileSystem",
"Win32_System_Threading",
]}
[dev-dependencies] [dev-dependencies]
tempfile = "3.0" tempfile = "3.6"

View File

@ -5,9 +5,9 @@ authors = [
"Maksym Pavlenko <pavlenko.maksym@gmail.com>", "Maksym Pavlenko <pavlenko.maksym@gmail.com>",
"The containerd Authors", "The containerd Authors",
] ]
description = "Remote snapshotter extension for containerd"
keywords = ["containerd", "server", "grpc", "containers"] keywords = ["containerd", "server", "grpc", "containers"]
categories = ["api-bindings", "asynchronous"] categories = ["api-bindings", "asynchronous"]
description = "Remote snapshotter extension for containerd"
edition.workspace = true edition.workspace = true
license.workspace = true license.workspace = true
@ -15,21 +15,21 @@ repository.workspace = true
homepage.workspace = true homepage.workspace = true
[dependencies] [dependencies]
thiserror = "1.0"
tonic.workspace = true
prost.workspace = true
prost-types.workspace = true
tokio = { workspace = true, features = ["sync"] }
tokio-stream = "0.1.8"
serde = { version = "1.0", features = ["derive"] }
async-stream = "0.3.3" async-stream = "0.3.3"
futures.workspace = true futures.workspace = true
pin-utils = "0.1.0" pin-utils = "0.1.0"
prost.workspace = true
prost-types.workspace = true
serde.workspace = true
thiserror.workspace = true
tonic.workspace = true
tokio = { workspace = true, features = ["sync"] }
tokio-stream = "0.1.8"
[dev-dependencies] [dev-dependencies]
log = "0.4"
async-stream = "0.3.2" async-stream = "0.3.2"
futures.workspace = true futures.workspace = true
log.workspace = true
simple_logger = { version = "4.0", default-features = false } simple_logger = { version = "4.0", default-features = false }
[build-dependencies] [build-dependencies]