Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down
139 changes: 139 additions & 0 deletions tui-bar-graph/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<f64>` 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
Expand Down
2 changes: 1 addition & 1 deletion tui-bar-graph/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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
Expand Down