Thanks to visit codestin.com
Credit goes to github.com

Skip to content

build(deps): bump strum from 0.27.2 to 0.28.0#210

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/strum-0.28.0
Closed

build(deps): bump strum from 0.27.2 to 0.28.0#210
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/strum-0.28.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 1, 2026

Bumps strum from 0.27.2 to 0.28.0.

Changelog

Sourced from strum's changelog.

0.28.0

  • #461: Allow any kind of passthrough attributes on EnumDiscriminants.

    • Previously only list-style attributes (e.g. #[strum_discriminants(derive(...))]) were supported. Now path-only (e.g. #[strum_discriminants(non_exhaustive)]) and name/value (e.g. #[strum_discriminants(doc = "foo")]) attributes are also supported.
  • #462: Add missing #[automatically_derived] to generated impls not covered by #444.

  • #466: Bump MSRV to 1.71, required to keep up with updated syn and windows-sys dependencies. This is a breaking change if you're on an old version of rust.

  • #469: Use absolute paths in generated proc macro code to avoid potential name conflicts.

  • #465: Upgrade phf dependency to v0.13.

  • #473: Fix cargo fmt / clippy issues and add GitHub Actions CI.

  • #477: strum::ParseError now implements core::fmt::Display instead std::fmt::Display to make it #[no_std] compatible. Note the Error trait wasn't available in core until 1.81 so strum::ParseError still only implements that in std.

  • #476: Breaking Change - EnumString now implements From<&str> (infallible) instead of TryFrom<&str> when the enum has a #[strum(default)] variant. This more accurately reflects that parsing cannot fail in that case. If you need the old TryFrom behavior, you can opt back in using parse_error_ty and parse_error_fn:

    #[derive(EnumString)]
    #[strum(parse_error_ty = strum::ParseError, parse_error_fn = make_error)]
    pub enum Color {
        Red,
        #[strum(default)]
        Other(String),
    }
    fn make_error(x: &str) -> strum::ParseError {
    strum::ParseError::VariantNotFound
    }

  • #431: Fix bug where EnumString ignored the parse_err_ty attribute when the enum had a #[strum(default)] variant.

  • #474: EnumDiscriminants will now copy default over from the original enum to the Discriminant enum.

    #[derive(Debug, Default, EnumDiscriminants)]
    #[strum_discriminants(derive(Default))] // <- Remove this in 0.28.
    enum MyEnum {
        #[default] // <- Will be the #[default] on the MyEnumDiscriminant
        #[strum_discriminants(default)] // <- Remove this in 0.28
        Variant0,
        Variant1 { a: NonDefault },
    }

... (truncated)

Commits
  • 7376771 Peternator7/0.28 (#475)
  • 26e63cd Display exists in core (#477)
  • 9334c72 Make TryFrom and FromStr infallible if there's a default (#476)
  • 0ccbbf8 Honor parse_err_ty attribute when the enum has a default variant (#431)
  • 2c9e5a9 Automatically add Default implementation to EnumDiscriminant if it exists on ...
  • e241243 Fix existing cargo fmt + clippy issues and add GH actions (#473)
  • 639b67f feat: allow any kind of passthrough attributes on EnumDiscriminants (#461)
  • 0ea1e2d docs: Fix typo (#463)
  • 36c051b Upgrade phf to v0.13 (#465)
  • 9328b38 Use absolute paths in proc macro (#469)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Apr 1, 2026
@dependabot dependabot Bot force-pushed the dependabot/cargo/strum-0.28.0 branch from 156224f to b6a4eb5 Compare April 2, 2026 00:45
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 2, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.06%. Comparing base (7596dd3) to head (444e399).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #210   +/-   ##
=======================================
  Coverage   87.06%   87.06%           
=======================================
  Files          22       22           
  Lines        4150     4150           
=======================================
  Hits         3613     3613           
  Misses        537      537           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@joshka
Copy link
Copy Markdown
Member

joshka commented Apr 4, 2026

@dependabot rebase

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Apr 4, 2026

Looks like this PR is already up-to-date with main! If you'd still like to recreate it from scratch, overwriting any edits, you can request @dependabot recreate.

@joshka
Copy link
Copy Markdown
Member

joshka commented Apr 4, 2026

@dependabot recreate

Bumps [strum](https://github.com/Peternator7/strum) from 0.27.2 to 0.28.0.
- [Release notes](https://github.com/Peternator7/strum/releases)
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md)
- [Commits](Peternator7/strum@v0.27.2...v0.28.0)

---
updated-dependencies:
- dependency-name: strum
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot Bot force-pushed the dependabot/cargo/strum-0.28.0 branch from b6a4eb5 to 444e399 Compare April 4, 2026 21:48
joshka added a commit that referenced this pull request Apr 4, 2026
## Summary

This PR fixes the `strum 0.28` dependency bump proposed in
[#210](#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](Peternator7/strum#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](#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](#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](#102).
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Apr 4, 2026

Looks like strum is up-to-date now, so this is no longer needed.

@dependabot dependabot Bot closed this Apr 4, 2026
@dependabot dependabot Bot deleted the dependabot/cargo/strum-0.28.0 branch April 4, 2026 22:48
joshka pushed a commit that referenced this pull request Apr 4, 2026
## 🤖 New release

* `tui-bar-graph`: 0.3.2 -> 0.3.3 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.3.3] - 2026-04-04

### ⚙️ Miscellaneous Tasks

- *(deps)* Lower dependency floors and reduce dependabot noise
([#211](#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](#224))
  > ## Summary
  >
  > This PR fixes the `strum 0.28` dependency bump proposed in
  > [#210](#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](Peternator7/strum#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](#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](#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](#102).
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
joshka pushed a commit that referenced this pull request Apr 4, 2026
## 🤖 New release

* `tui-widgets`: 0.7.1 -> 0.7.2 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.7.2] - 2026-04-04

### ⚙️ Miscellaneous Tasks

- *(deps)* Lower dependency floors and reduce dependabot noise
([#211](#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](#224))
  > ## Summary
  >
  > This PR fixes the `strum 0.28` dependency bump proposed in
  > [#210](#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](Peternator7/strum#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](#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](#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](#102).

- *(tui-scrollbar)* Release v0.2.4
([#213](#213))
  > ## 🤖 New release
  >
  > * `tui-scrollbar`: 0.2.3 -> 0.2.4 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.2.4] - 2026-04-04
  >
  > ### Other
  >
  > - [codex] Vendor CI workflows into this repository
  > ([#212](#212))
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-prompts)* Release v0.6.3
([#214](#214))
  > ## 🤖 New release
  >
  > * `tui-prompts`: 0.6.2 -> 0.6.3 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.6.3] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - *(deps)* Lower dependency floors and reduce dependabot noise
  > ([#211](#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:
  >
  > ### Other
  >
  > - [codex] Vendor CI workflows into this repository
  > ([#212](#212))
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-big-text)* Release v0.8.4
([#215](#215))
  > ## 🤖 New release
  >
  > * `tui-big-text`: 0.8.3 -> 0.8.4 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.8.4] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - *(deps)* Lower dependency floors and reduce dependabot noise
  > ([#211](#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:
  >
  > ### Other
  >
  > - [codex] Vendor CI workflows into this repository
  > ([#212](#212))
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-scrollview)* Release v0.6.4
([#216](#216))
  > ## 🤖 New release
  >
  > * `tui-scrollview`: 0.6.3 -> 0.6.4 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.6.4] - 2026-04-04
  >
  > ### Other
  >
  > - [codex] Vendor CI workflows into this repository
  > ([#212](#212))
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-qrcode)* Release v0.2.4
([#219](#219))
  > ## 🤖 New release
  >
  > * `tui-qrcode`: 0.2.3 -> 0.2.4 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.2.4] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - *(deps)* Lower dependency floors and reduce dependabot noise
  > ([#211](#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:
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-popup)* Release v0.7.4
([#220](#220))
  > ## 🤖 New release
  >
  > * `tui-popup`: 0.7.3 -> 0.7.4 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.7.4] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - Update Cargo.toml dependencies
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-box-text)* Release v0.3.3
([#221](#221))
  > ## 🤖 New release
  >
  > * `tui-box-text`: 0.3.2 -> 0.3.3 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.3.3] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - Update Cargo.toml dependencies
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-cards)* Release v0.3.3
([#222](#222))
  > ## 🤖 New release
  >
  > * `tui-cards`: 0.3.2 -> 0.3.3 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.3.3] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - Update Cargo.toml dependencies
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

- *(tui-bar-graph)* Release v0.3.3
([#223](#223))
  > ## 🤖 New release
  >
  > * `tui-bar-graph`: 0.3.2 -> 0.3.3 (✓ API compatible changes)
  >
  > <details><summary><i><b>Changelog</b></i></summary><p>
  >
  > <blockquote>
  >
  > ## [0.3.3] - 2026-04-04
  >
  > ### ⚙️ Miscellaneous Tasks
  >
  > - *(deps)* Lower dependency floors and reduce dependabot noise
  > ([#211](#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](#224))
  >   > ## Summary
  >   >
  >   > This PR fixes the `strum 0.28` dependency bump proposed in
  >   > [#210](#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](Peternator7/strum#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](#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](#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](#102).
  > </blockquote>
  >
  >
  > </p></details>
  >
  > ---
  > This PR was generated with
  > [release-plz](https://github.com/release-plz/release-plz/).

### Other

- [codex] Vendor CI workflows into this repository
([#212](#212))

- [codex] fix(ci): avoid direct secret check in workflow
([#218](#218))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants