diff --git a/Cargo.lock b/Cargo.lock index 6953c273..c27f7698 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2144,7 +2144,7 @@ dependencies = [ [[package]] name = "tui-bar-graph" -version = "0.3.2" +version = "0.3.3" dependencies = [ "clap", "color-eyre", diff --git a/Cargo.toml b/Cargo.toml index df415546..d4a39410 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,7 +93,7 @@ scrollview = ["tui-scrollview"] [dependencies] document-features.workspace = true ratatui-core = { workspace = true } -tui-bar-graph = { version = "0.3.2", path = "tui-bar-graph", optional = true } +tui-bar-graph = { version = "0.3.3", path = "tui-bar-graph", optional = true } tui-big-text = { version = "0.8.4", path = "tui-big-text", optional = true } tui-box-text = { version = "0.3.3", path = "tui-box-text", optional = true } tui-cards = { version = "0.3.3", path = "tui-cards", optional = true } diff --git a/tui-bar-graph/CHANGELOG.md b/tui-bar-graph/CHANGELOG.md index 124d4638..54f7d934 100644 --- a/tui-bar-graph/CHANGELOG.md +++ b/tui-bar-graph/CHANGELOG.md @@ -2,6 +2,145 @@ All notable changes to this project will be documented in this file. +## [0.3.3] - 2026-04-04 + +### ⚙️ Miscellaneous Tasks + +- *(deps)* Lower dependency floors and reduce dependabot noise ([#211](https://github.com/ratatui/tui-widgets/issues/211)) + > ## Summary + > + > - lower direct dependency requirements to the broadest semver ranges the + > workspace actually supports + > - keep `Cargo.lock` on current compatible releases, including the direct + > `clap`, `tokio`, `futures`, and `rand` updates that fit this PR's scope + > - configure Dependabot to group Cargo and GitHub Actions updates and use + > `increase-if-necessary` to reduce manifest churn + > + > ## Details + > + > This change validates dependency floors with `cargo minimal-versions` in + > `--direct` mode so the library manifests reflect honest direct + > requirements instead of transitive minimum noise. + > + > Notable outcomes: + > + > - broadened requirements such as `clap = "4"` and `tokio = "1"` after + > verifying the workspace still compiles and tests against their earliest + > compatible direct versions + > - kept real floors where required, such as `crossterm = "0.29"`, + > `document-features = "0.2.11"`, and `derive_setters = "0.1.9"` + > - kept the direct `rand` update to `0.10` and adjusted the + > `tui-bar-graph` examples to generate random `Vec` values in a `rand + > 0.10`-compatible way + > - kept transitive duplicate major versions where they are still required + > by downstream crates like the Ratatui stack or `lipsum` + > + > Dependabot should now produce less noise because grouped update PRs can + > primarily refresh `Cargo.lock` while leaving `Cargo.toml` alone unless a + > broader range is truly needed. + > + > ## Validation + > + > - `cargo minimal-versions check --workspace --direct` + > - `cargo check --all-features --workspace` + > - `cargo test --all-features --workspace` + > - `cargo minimal-versions test --workspace --all-features --direct` + > - `cargo outdated --workspace --root-deps-only` + > - `cargo test -p tui-bar-graph --all-features --examples` + > + > ## Supersedes + > + > This PR should supersede and allow closing the related Dependabot PRs: + +- *(deps)* Support strum 0.28 ([#224](https://github.com/ratatui/tui-widgets/issues/224)) + > ## Summary + > + > This PR fixes the `strum 0.28` dependency bump proposed in + > [#210](https://github.com/ratatui/tui-widgets/pull/210) and adds + > explicit `cargo check --all-targets --all-features --workspace` coverage + > so example-target compile failures are caught directly in CI instead of + > being missed by the existing workspace check. + > + > ## Root Cause + > + > The failure came from the `tui-bar-graph` example, where clap derives a + > parser for `BarStyle`. + > + > `BarStyle` still derives `FromStr`, and this was not caused by the + > `#[strum(default)]` behavior change from [strum PR + > #476](https://github.com/Peternator7/strum/pull/476). The actual issue + > was dependency resolution plus feature unification. + > + > Before the bump, `tui-bar-graph` and `ratatui-core` both used `strum + > 0.27`, so Cargo unified them and `ratatui-core`'s `strum/std` activation + > effectively carried `std` into the `strum` instance used by + > `tui-bar-graph`. After + > [#210](https://github.com/ratatui/tui-widgets/pull/210), `tui-bar-graph` + > used `strum 0.28` while `ratatui-core` still used `strum 0.27`, so the + > graph split into separate `strum` packages. + > + > At that point, `tui-bar-graph`'s own `strum 0.28` was built with + > `default-features = false`, which meant `strum::ParseError` no longer + > implemented `std::error::Error` in that context. That was enough to + > break clap's inferred parser for `BarStyle`. + > + > ## Code Changes + > + > `tui-bar-graph` now declares an explicit `std` feature and uses it to + > enable `strum/std`. `std` remains enabled by default, so the crate's + > normal ergonomics do not change. + > + > The interactive example is marked with `required-features = ["std"]` so + > its compile requirements are explicit instead of depending on accidental + > transitive feature behavior. + > + > `colorgrad` now uses `default-features = false`. + > + > ## Why Only `strum/std` + > + > `strum/std` matters here because it affects trait-based downstream + > integration on a public enum type. `BarStyle` derives traits whose + > interaction with clap depends on the trait set of `strum::ParseError`. + > + > `colorgrad/std` does not play the same role in this crate today, so the + > `std` feature does not forward `colorgrad/std`. + > + > ## Docs + > + > The crate now uses `document-features` so the feature contract is + > rendered in generated docs and on docs.rs. + > + > ## CI + > + > The issue exposed by + > [#210](https://github.com/ratatui/tui-widgets/pull/210) was a normal + > compile failure in a non-lib target. + > + > The workspace already ran `cargo check --all-features --workspace`, but + > that does not compile examples and other non-lib targets. `cargo check + > --all-targets --all-features --workspace` reproduces the failure + > directly. + > + > This PR adds explicit all-targets compile coverage so example-target + > breakage is caught as a normal build/check failure. + > + > ## Verification + > + > ```shell + > cargo check --all-targets --all-features --workspace + > cargo clippy --all-targets --all-features --workspace -- -D warnings + > cargo check -p tui-bar-graph --lib --no-default-features + > cargo doc -p tui-bar-graph --all-features + > cargo rdme --check --manifest-path tui-bar-graph/Cargo.toml + > ``` + > + > ## Follow-up + > + > A broader `no_std` audit of the other widget crates was done during this + > work and recorded separately on + > [#102](https://github.com/ratatui/tui-widgets/issues/102). + + ## [0.3.2] - 2026-03-29 ### ⚙️ Miscellaneous Tasks diff --git a/tui-bar-graph/Cargo.toml b/tui-bar-graph/Cargo.toml index 5e501388..01d61923 100644 --- a/tui-bar-graph/Cargo.toml +++ b/tui-bar-graph/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tui-bar-graph" description = "A Ratatui widget for rendering pretty bar graphs in the terminal" -version = "0.3.2" +version = "0.3.3" documentation = "https://docs.rs/tui-bar-graph" authors.workspace = true license.workspace = true