chore: move dependency management to workspace (#1858)

Move all dependency management to the workspace level. This makes it
easier to manage dependencies across multiple crates in the workspace.

This also changes the versions of each dependency to track based on the
semver compatible version of the dependency (e.g. 0.1 instead of 0.1.0
or 2.9 instead of 2.9.0 to avoid having to regularly update the toml
files and to communicate that Ratatui will still generally work with
versions of the dependencies that are not the fully latest version. The
exact version of the dependencies is still tracked in the Cargo.lock
file.

Several dependencies that are fairly stable are changed to track a less
specific version (e.g. serde 1 instead of 1.0.x).

The following dependencies are updated to their latest versions:
- bitflags (2.3 -> 2.9)
- strum (0.26 -> 0.27)
- strum_macros (0.26 -> 0.27)
- all other semver compatible updates
This commit is contained in:
Josh McKinney
2025-05-15 09:55:34 -07:00
committed by GitHub
parent 09cc9ef57d
commit a07f5bec20
6 changed files with 274 additions and 300 deletions

466
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -27,15 +27,26 @@ edition = "2021"
rust-version = "1.81.0"
[workspace.dependencies]
bitflags = "2.9.0"
color-eyre = "0.6.3"
crossterm = "0.29.0"
document-features = "0.2.11"
hashbrown = "0.15.3"
indoc = "2.0.6"
instability = "0.3.7"
itertools = { version = "0.13.0", default-features = false, features = ["use_alloc"] }
pretty_assertions = "1.4.1"
anstyle = "1"
bitflags = "2.9"
color-eyre = "0.6"
compact_str = { version = "0.9", default-features = false }
criterion = { version = "0.5", features = ["html_reports"] }
crossterm = "0.29"
document-features = "0.2"
fakeit = "1"
futures = "0.3"
hashbrown = "0.15"
indoc = "2"
instability = "0.3"
itertools = { version = "0.14", default-features = false, features = ["use_alloc"] }
kasuari = { version = "0.4", default-features = false }
line-clipping = "0.3"
lru = "0.14"
palette = "0.7"
pretty_assertions = "1"
rand = "0.9"
rand_chacha = "0.9"
ratatui = { path = "ratatui", version = "0.30.0-alpha.3" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.4" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.3" }
@@ -43,13 +54,21 @@ ratatui-macros = { path = "ratatui-macros", version = "0.7.0-alpha.2" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.3" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.3" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.3" }
rstest = "0.25.0"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
strum = { version = "0.26.3", default-features = false, features = ["derive"] }
termion = "4.0.5"
termwiz = { version = "0.23.3" }
unicode-segmentation = "1.12.0"
rstest = "0.25"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
strum = { version = "0.27", default-features = false, features = ["derive"] }
termion = "4"
termwiz = "0.23"
thiserror = { version = "2", default-features = false }
time = { version = "0.3", default-features = false }
tokio = "1"
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = "0.3"
trybuild = "1"
unicode-segmentation = "1"
unicode-truncate = { version = "2", default-features = false }
# See <https://github.com/ratatui/ratatui/issues/1271> for information about why we pin unicode-width
unicode-width = "=0.2.0"

View File

@@ -56,21 +56,21 @@ scrolling-regions = []
serde = ["dep:serde", "bitflags/serde", "compact_str/serde"]
[dependencies]
anstyle = { version = "1", optional = true }
bitflags = "2.3"
compact_str = { version = "0.9.0", default-features = false }
anstyle = { workspace = true, optional = true }
bitflags.workspace = true
compact_str.workspace = true
document-features = { workspace = true, optional = true }
hashbrown = "0.15.2"
hashbrown.workspace = true
indoc.workspace = true
itertools.workspace = true
kasuari = { version = "0.4.6", default-features = false }
lru = "0.12.0"
palette = { version = "0.7.6", optional = true }
kasuari = { workspace = true, default-features = false }
lru.workspace = true
palette = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
strum.workspace = true
thiserror = { version = "2", default-features = false }
thiserror = { workspace = true, default-features = false }
unicode-segmentation.workspace = true
unicode-truncate = { version = "2", default-features = false }
unicode-truncate = { workspace = true, default-features = false }
unicode-width.workspace = true
[dev-dependencies]

View File

@@ -15,4 +15,4 @@ ratatui-core.workspace = true
ratatui-widgets.workspace = true
[dev-dependencies]
trybuild = { version = "1.0.103", features = ["diff"] }
trybuild = { workspace = true, features = ["diff"] }

View File

@@ -56,11 +56,11 @@ hashbrown.workspace = true
indoc.workspace = true
instability.workspace = true
itertools.workspace = true
line-clipping = "0.3.0"
line-clipping.workspace = true
ratatui-core = { workspace = true }
serde = { workspace = true, optional = true }
strum.workspace = true
time = { version = "0.3.11", optional = true, default-features = false }
time = { workspace = true, optional = true }
unicode-segmentation.workspace = true
unicode-width.workspace = true

View File

@@ -117,7 +117,7 @@ unstable-backend-writer = [
[dependencies]
document-features = { workspace = true, optional = true }
instability.workspace = true
palette = { version = "0.7.6", optional = true }
palette = { workspace = true, optional = true }
ratatui-core = { workspace = true }
ratatui-crossterm = { workspace = true, optional = true }
ratatui-macros = { workspace = true, optional = true }
@@ -129,23 +129,22 @@ serde = { workspace = true, optional = true }
ratatui-termion = { workspace = true, optional = true }
[dev-dependencies]
argh = "0.1.12"
color-eyre = "0.6.2"
criterion = { version = "0.5.1", features = ["html_reports"] }
crossterm = { version = "0.29.0", features = ["event-stream"] }
fakeit = "1.1"
futures = "0.3.30"
indoc = "2"
pretty_assertions = "1.4.0"
rand = "0.9.1"
rand_chacha = "0.9.0"
rstest = "0.25.0"
color-eyre.workspace = true
criterion.workspace = true
crossterm = { workspace = true, features = ["event-stream"] }
fakeit.workspace = true
futures.workspace = true
indoc.workspace = true
pretty_assertions.workspace = true
rand.workspace = true
rand_chacha.workspace = true
rstest.workspace = true
serde_json.workspace = true
time = { version = "0.3.39", features = ["local-offset"] }
tokio = { version = "1.44.2", features = ["rt", "macros", "time", "rt-multi-thread"] }
tracing = "0.1.40"
tracing-appender = "0.2.3"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
time = { workspace = true, features = ["local-offset"] }
tokio = { workspace = true, features = ["rt", "macros", "time", "rt-multi-thread"] }
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber = { workspace = true, features = ["env-filter"] }
[lints]
workspace = true