Skip to content

Latest commit

 

History

History
4334 lines (4138 loc) · 178 KB

File metadata and controls

4334 lines (4138 loc) · 178 KB

Changelog

All notable changes to this project will be documented in this file.

[0.7.1] - 2026-03-29

🚀 Features

  • (scrollbar) Update glyph previews and tests (#169)

    Default ScrollBar renders without arrow endcaps and uses a dark gray background with a blank (space) track.

    Add glyph set variants and improve the Unicode-only fallback. Document glyph sets with a 1/8-step horizontal thumb walk, and add snapshot render tests to keep the glyph combinations stable.

  • (scrollbar) Support crossterm 0.28 (#172)

    Add versioned crossterm feature flags and re-export the selected version as tui_scrollbar::crossterm.

    Add CI checks for the feature matrix and a docs.rs-style build.


  • (tui-bigtext) Enable no_std as default (#190)

    This enables using tui-bigtext in a no_std environment

    e.g. ratatui/mousefood#159

  • (tui-big-text) Add optional Block wrapping for BigText (#197)

    Summary

    Add optional block wrapping for the big text widget so it can render within a border and title area.

    Motivation

    This enables composing the big text widget with standard block decorations, which is useful for dashboards and status displays. E. g. I'm making layout with BigText stopwatch and I want to use block title as a place for status. Additionally it fits into my dashboard design. I think it might be useful.

    My example:

    Screenshot_5

    Changes

    • Added optional block support in the widget configuration and rendering flow.
    • Added a test to validate rendering with a bordered block and title.

    Testing

    cargo test -p tui-big-text --all-features -- --nocapture

📚 Documentation

  • (license) Add ratatui developers to the license

⚙️ Miscellaneous Tasks

  • (tui-scrollbar) Release v0.2.1 (#170)

    🤖 New release

    • tui-scrollbar: 0.2.0 -> 0.2.1 (✓ API compatible changes)
    Changelog

    [0.2.1] - 2026-01-05

    🚀 Features

    • (scrollbar) Update glyph previews and tests (#169)

      Default ScrollBar renders without arrow endcaps and uses a dark gray background with a blank (space) track.

    Add glyph set variants and improve the Unicode-only fallback. Document glyph sets with a 1/8-step horizontal thumb walk, and add snapshot render tests to keep the glyph combinations stable.


    This PR was generated with release-plz.

  • (tui-scrollbar) Release v0.2.2 (#173)

    🤖 New release

    • tui-scrollbar: 0.2.1 -> 0.2.2 (✓ API compatible changes)
    Changelog

    [0.2.2] - 2026-01-05

    🚀 Features

    • (scrollbar) Support crossterm 0.28 (#172)

    Add versioned crossterm feature flags and re-export the selected version as tui_scrollbar::crossterm.

    Add CI checks for the feature matrix and a docs.rs-style build.



    This PR was generated with release-plz.

  • (project) Update the repository link

  • (ci) Check for the ratatui organization for releases

  • Bump MSRV to 1.88.0 (#192)

    error: rustc 1.87.0 is not supported by the following packages:
      darling@0.23.0 requires rustc 1.88.0
      darling_core@0.23.0 requires rustc 1.88.0
      darling_macro@0.23.0 requires rustc 1.88.0
      instability@0.3.11 requires rustc 1.88
      instability@0.3.11 requires rustc 1.88
      instability@0.3.11 requires rustc 1.88
      time@0.3.46 requires rustc 1.88.0
      time-core@0.1.8 requires rustc 1.88.0
    
  • (tui-big-text) Release v0.8.2 (#176)

    🤖 New release

    • tui-big-text: 0.8.1 -> 0.8.2 (✓ API compatible changes)
    Changelog

    [0.8.2] - 2026-02-01

    🚀 Features

    • (tui-bigtext) Enable no_std as default (#190)

      This enables using tui-bigtext in a no_std environment

      e.g. ratatui/mousefood#159

    ⚙️ Miscellaneous Tasks

    • (project) Update the repository link


    This PR was generated with release-plz.

  • (tui-qrcode) Release v0.2.3 (#183)

    🤖 New release

    • tui-qrcode: 0.2.2 -> 0.2.3 (✓ API compatible changes)
    Changelog

    [0.2.3] - 2026-03-27

    ⚙️ Miscellaneous Tasks

    • (project) Update the repository link


    This PR was generated with release-plz.

  • (tui-prompts) Release v0.6.2 (#185)

    🤖 New release

    • tui-prompts: 0.6.1 -> 0.6.2 (✓ API compatible changes)
    Changelog

    [0.6.2] - 2026-03-29

    ⚙️ Miscellaneous Tasks

    • (project) Update the repository link


    This PR was generated with release-plz.

  • (tui-scrollview) Release v0.6.3 (#188)

    🤖 New release

    • tui-scrollview: 0.6.2 -> 0.6.3 (✓ API compatible changes)
    Changelog

    [0.6.3] - 2026-03-29

    ⚙️ Miscellaneous Tasks

    • (project) Update the repository link


    This PR was generated with release-plz.

  • (tui-popup) Release v0.7.3 (#187)

    🤖 New release

    • tui-popup: 0.7.2 -> 0.7.3 (✓ API compatible changes)
    Changelog

    [0.7.3] - 2026-03-29

    ⚙️ Miscellaneous Tasks

    • (project) Update the repository link


    This PR was generated with release-plz.

  • (tui-big-text) Release v0.8.3 (#200)

    🤖 New release

    • tui-big-text: 0.8.2 -> 0.8.3 (✓ API compatible changes)
    Changelog

    [0.8.3] - 2026-03-29

    🚀 Features

    • (tui-big-text) Add optional Block wrapping for BigText (#197)

      Summary

      Add optional block wrapping for the big text widget so it can render within a border and title area.

      Motivation

      This enables composing the big text widget with standard block decorations, which is useful for dashboards and status displays.

    E. g. I'm making layout with BigText stopwatch and I want to use block title as a place for status. Additionally it fits into my dashboard design. I think it might be useful.

    My example:

    Screenshot_5

    Changes

    • Added optional block support in the widget configuration and rendering flow.
    • Added a test to validate rendering with a bordered block and title.

    Testing

    cargo test -p tui-big-text --all-features -- --nocapture


    This PR was generated with release-plz.

  • (tui-cards) Release v0.3.2 (#182)

    🤖 New release

    • tui-cards: 0.3.1 -> 0.3.2 (✓ API compatible changes)
    Changelog

    [0.3.2] - 2026-03-29

    ⚙️ Miscellaneous Tasks

    • (project) Update the repository link


    This PR was generated with release-plz.

🛡️ Security

  • (deps) Bump tokio from 1.48.0 to 1.49.0 (#175)

    Bumps tokio from 1.48.0 to 1.49.0.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.49.0

    1.49.0 (January 3rd, 2026)

    Added

    • net: add support for TCLASS option on IPv6 (#7781)
    • runtime: stabilize runtime::id::Id (#7125)
    • task: implement Extend for JoinSet (#7195)
    • task: stabilize the LocalSet::id() (#7776)

    Changed

    • net: deprecate {TcpStream,TcpSocket}::set_linger (#7752)

    Fixed

    • macros: fix the hygiene issue of join! and try_join! (#7766)
    • runtime: revert "replace manual vtable definitions with Wake" (#7699)
    • sync: return TryRecvError::Disconnected from Receiver::try_recv after Receiver::close (#7686)
    • task: remove unnecessary trait bounds on the Debug implementation (#7720)

    Unstable

    • fs: handle EINTR in fs::write for io-uring (#7786)
    • fs: support io-uring with tokio::fs::read (#7696)
    • runtime: disable io-uring on EPERM (#7724)
    • time: add alternative timer for better multicore scalability (#7467)

    Documented

    • docs: fix a typos in bounded.rs and park.rs (#7817)
    • io: add SyncIoBridge cross-references to copy and copy_buf (#7798)
    • io: doc that AsyncWrite does not inherit from std::io::Write (#7705)
    • metrics: clarify that num_alive_tasks is not strongly consistent (#7614)
    • net: clarify the cancellation safety of the TcpStream::peek (#7305)
    • net: clarify the drop behavior of unix::OwnedWriteHalf (#7742)
    • net: clarify the platform-dependent backlog in TcpSocket docs (#7738)
    • runtime: mention LocalRuntime in new_current_thread docs (#7820)
    • sync: add missing period to mpsc::Sender::try_send docs (#7721)
    • sync: clarify the cancellation safety of oneshot::Receiver (#7780)
    • sync: improve the docs for the errors of mpsc (#7722)
    • task: add example for spawn_local usage on local runtime (#7689)

    #7125: tokio-rs/tokio#7125 #7195: tokio-rs/tokio#7195 #7305: tokio-rs/tokio#7305 #7467: tokio-rs/tokio#7467 #7614: tokio-rs/tokio#7614 #7686: tokio-rs/tokio#7686 #7689: tokio-rs/tokio#7689

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • (deps) Bump clap from 4.5.53 to 4.5.54 (#174)

    Bumps clap from 4.5.53 to 4.5.54.

    Release notes

    Sourced from clap's releases.

    v4.5.54

    [4.5.54] - 2026-01-02

    Fixes

    • (help) Move [default] to its own paragraph when PossibleValue::help is present in --help
    Changelog

    Sourced from clap's changelog.

    [4.5.54] - 2026-01-02

    Fixes

    • (help) Move [default] to its own paragraph when PossibleValue::help is present in --help
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • (deps) Bump time from 0.3.46 to 0.3.47 (#198)

    Bumps time from 0.3.46 to 0.3.47.

    Release notes

    Sourced from time's releases.

    v0.3.47

    See the changelog for details.

    Changelog

    Sourced from time's changelog.

    0.3.47 [2026-02-05]

    Security

    • The possibility of a stack exhaustion denial of service attack when parsing RFC 2822 has been eliminated. Previously, it was possible to craft input that would cause unbounded recursion. Now, the depth of the recursion is tracked, causing an error to be returned if it exceeds a reasonable limit.

      This attack vector requires parsing user-provided input, with any type, using the RFC 2822 format.

    Compatibility

    • Attempting to format a value with a well-known format (i.e. RFC 3339, RFC 2822, or ISO 8601) will error at compile time if the type being formatted does not provide sufficient information. This would previously fail at runtime. Similarly, attempting to format a value with ISO 8601 that is only configured for parsing (i.e. Iso8601::PARSING) will error at compile time.

    Added

    • Builder methods for format description modifiers, eliminating the need for verbose initialization when done manually.
    • date!(2026-W01-2) is now supported. Previously, a space was required between W and 01.
    • [end] now has a trailing_input modifier which can either be prohibit (the default) or discard. When it is discard, all remaining input is ignored. Note that if there are components after [end], they will still attempt to be parsed, likely resulting in an error.

    Changed

    • More performance gains when parsing.

    Fixed

    • If manually formatting a value, the number of bytes written was one short for some components. This has been fixed such that the number of bytes written is always correct.
    • The possibility of integer overflow when parsing an owned format description has been effectively eliminated. This would previously wrap when overflow checks were disabled. Instead of storing the depth as u8, it is stored as u32. This would require multiple gigabytes of nested input to overflow, at which point we've got other problems and trivial mitigations are available by downstream users.
    Commits
    • d5144cd v0.3.47 release
    • f6206b0 Guard against integer overflow in release mode
    • 1c63dc7 Avoid denial of service when parsing Rfc2822
    • 5940df6 Add builder methods to avoid verbose construction
    • 00881a4 Manually format macros everywhere
    • bb723b6 Add trailing_input modifier to end
    • 31c4f8e Permit W12 in date! macro
    • 490a17b Mark error paths in well-known formats as cold
    • 6cb1896 Optimize Rfc2822 parsing
    • 6d264d5 Remove erroneous #[inline(never)] attributes
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • (deps) Bump clap from 4.5.54 to 4.5.57 (#196)

    Bumps clap from 4.5.54 to 4.5.57.

    Release notes

    Sourced from clap's releases.

    v4.5.57

    [4.5.57] - 2026-02-03

    Fixes

    • Regression from 4.5.55 where having an argument with .value_terminator("--") caused problems with an argument with .last(true)

    v4.5.56

    [4.5.56] - 2026-01-29

    Fixes

    • On conflict error, don't show conflicting arguments in the usage

    v4.5.55

    [4.5.55] - 2026-01-27

    Fixes

    • Fix inconsistency in precedence between positionals with a value_terminator("--") and escapes (--) where ./foo -- bar means the first arg is empty, rather than escaping future args
    Changelog

    Sourced from clap's changelog.

    [4.5.57] - 2026-02-03

    Fixes

    • Regression from 4.5.55 where having an argument with .value_terminator("--") caused problems with an argument with .last(true)

    [4.5.56] - 2026-01-29

    Fixes

    • On conflict error, don't show conflicting arguments in the usage

    [4.5.55] - 2026-01-27

    Fixes

    • Fix inconsistency in precedence between positionals with a value_terminator("--") and escapes (--) where ./foo -- bar means the first arg is empty, rather than escaping future args
    Commits
    • 69c0ddb chore: Release
    • 8206bba docs: Update changelog
    • c109d67 Merge pull request #6104 from epage/hide
    • 9d7f212 fix(complete): Hide dot files on dynamic completer
    • 77b3fdb test(complete): Show dot file behavior
    • f89b9b8 test(derive): Make stable across upgrade
    • 58eb8a9 chore: Release
    • 10a2a75 docs: Update changelog
    • a42eebf Merge pull request #6103 from epage/mut_subcommands
    • 5335f54 feat: Add Command::mut_subcommands
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.

  • (deps) Bump derive_setters from 0.1.8 to 0.1.9 (#195)

    Bumps derive_setters from 0.1.8 to 0.1.9.

    Changelog

    Sourced from derive_setters's changelog.

    v0.1.9 (2026-01-30)

    • Add support for delegating setters for generic types. (Thanks @​MrSubidubi)
    • Documentation has been moved from the README.md to a proper rustdoc.
    • MSRV is increased to 1.68+ due to dependency updates.

    Commit Statistics

    • 16 commits contributed to the release.
    • 0 commits were understood as conventional.
    • 0 issues like '(#ID)' were seen in commit messages

    Commit Details

    • Uncategorized
      • Add proper changelog entries. (87037bf)
      • Adjusting changelogs prior to release of derive_setters v0.1.9 (f8a3c46)
      • Add tests for generics in compile-pass (8d37502)
      • Add trybuild tests. (74e353f)
      • Update Rust version. (1ca0910)
      • Update the rustfmt options and run rustfmt. (0ab982f)
      • Move the documentation into rustdoc. (722f3fc)
      • Code style improvements. (da6237b)
      • Remove an unused field. (8a112f3)
      • Update MSRV to 1.68.0 due to dependency updates. (474375d)
      • Update documentation and adds a changelog. (66c390a)
      • Update darling version. (30ea90e)
      • Implement tests for generic delegates. (bd14002)
      • Run rustfmt. (ccdc14e)
      • Merge pull request #19 from MrSubidubi/delegate-generic-support (284500e)
      • Add support for generics in generate_delegates (d777525)
    Commits
    • 57bf818 Release derive_setters v0.1.9
    • 87037bf Add proper changelog entries.
    • f8a3c46 Adjusting changelogs prior to release of derive_setters v0.1.9
    • 8d37502 Add tests for generics in compile-pass
    • 74e353f Add trybuild tests.
    • 1ca0910 Update Rust version.
    • 0ab982f Update the rustfmt options and run rustfmt.
    • 722f3fc Move the documentation into rustdoc.
    • da6237b Code style improvements.
    • 8a112f3 Remove an unused field.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.

  • (deps) Bump bytes from 1.11.0 to 1.11.1 (#194)

    Bumps bytes from 1.11.0 to 1.11.1.

    Release notes

    Sourced from bytes's releases.

    Bytes v1.11.1

    1.11.1 (February 3rd, 2026)

    • Fix integer overflow in BytesMut::reserve
    Changelog

    Sourced from bytes's changelog.

    1.11.1 (February 3rd, 2026)

    • Fix integer overflow in BytesMut::reserve
    Commits

    Dependabot compatibility score

    You can trigger a rebase of this PR by commenting @dependabot rebase.

[0.7.0] - 2026-01-02

🚀 Features

  • (scrollbar) Add tui-scrollbar crate (#164)

    Summary

    Introduce tui-scrollbar, a new widget crate for Ratatui that renders smooth, fractional scrollbars with precise thumb feedback and stateless input handling. The crate focuses on clear geometry via ScrollMetrics, configurable glyph sets (including legacy computing symbols), and ergonomic examples for keyboard and mouse interaction.

    ScrollBar demo

    Why

    Ratatui’s built-in scrollbar favors full-cell glyphs and stateful use. This crate prioritizes fractional thumbs for more accurate feedback, exposes pure metrics for testing/composition, and keeps scroll state in the application for predictable input behavior.

    Docs and Examples

    The crate-level docs include a quick start, API map, and input-handling guidance. Two examples show the fractional glyph sweep and an interactive mouse/keyboard demo.

    use ratatui_core::buffer::Buffer;
    use ratatui_core::layout::Rect;
    use ratatui_core::widgets::Widget;
    use tui_scrollbar::{ScrollBar, ScrollBarArrows, ScrollLengths};
    
    let area = Rect::new(0, 0, 1, 6);
    let lengths = ScrollLengths {
        content_len: 120,
        viewport_len: 30,
    };
    let scrollbar = ScrollBar::vertical(lengths)
        .arrows(ScrollBarArrows::Both)
        .offset(45);
    
    let mut buffer = Buffer::empty(area);
    scrollbar.render(area, &mut buffer);
  • (scrollbar) Add styled defaults (#168)

    Set default track/thumb/arrow styles, style the demos with a filled track, and update arrow glyphs and demo links.

    ScrollBar demo

⚙️ Miscellaneous Tasks

  • (tui-scrollbar) Release v0.2.0 (#165)

    🤖 New release

    • tui-scrollbar: 0.1.0 -> 0.2.0 (⚠ API breaking changes)

    tui-scrollbar breaking changes

    --- failure inherent_method_missing: pub method removed or renamed ---
    

[0.6.2] - 2025-12-27

📚 Documentation

  • Refresh widget docs (#148)

    Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.

⚙️ Miscellaneous Tasks

  • (tui-box-text) Release v0.3.1 (#149)

    🤖 New release

    • tui-box-text: 0.3.0 -> 0.3.1 (✓ API compatible changes)
    Changelog

    [0.3.1] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-cards) Release v0.3.1 (#150)

    🤖 New release

    • tui-cards: 0.3.0 -> 0.3.1 (✓ API compatible changes)
    Changelog

    [0.3.1] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-bar-graph) Release v0.3.1 (#151)

    🤖 New release

    • tui-bar-graph: 0.3.0 -> 0.3.1 (✓ API compatible changes)
    Changelog

    [0.3.1] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-qrcode) Release v0.2.2 (#152)

    🤖 New release

    • tui-qrcode: 0.2.1 -> 0.2.2 (✓ API compatible changes)
    Changelog

    [0.2.2] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-popup) Release v0.7.2 (#155)

    🤖 New release

    • tui-popup: 0.7.1 -> 0.7.2 (✓ API compatible changes)
    Changelog

    [0.7.2] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-big-text) Release v0.8.1 (#154)

    🤖 New release

    • tui-big-text: 0.8.0 -> 0.8.1 (✓ API compatible changes)
    Changelog

    [0.8.1] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-scrollview) Release v0.6.2 (#156)

    🤖 New release

    • tui-scrollview: 0.6.1 -> 0.6.2 (✓ API compatible changes)
    Changelog

    [0.6.2] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

  • (tui-prompts) Release v0.6.1 (#161)

    🤖 New release

    • tui-prompts: 0.6.0 -> 0.6.1 (✓ API compatible changes)
    Changelog

    [0.6.1] - 2025-12-27

    📚 Documentation

    • Refresh widget docs (#148)

      Standardize widget crate docs and README layouts. Unify badges, links, and license references. Add consistent usage sections and link style updates.


    This PR was generated with release-plz.

[0.6.1] - 2025-12-27

⚙️ Miscellaneous Tasks

  • Refresh readmes and rdme check (#140)

    Regenerate crate READMEs via cargo-rdme and add a CI check to keep workspace readmes in sync.

  • (tui-qrcode) Release v0.2.1 (#141)

    🤖 New release

    • tui-qrcode: 0.2.0 -> 0.2.1 (✓ API compatible changes)
    Changelog

    [0.2.1] - 2025-12-27

    ⚙️ Miscellaneous Tasks

    • Refresh readmes and rdme check (#140)

      Regenerate crate READMEs via cargo-rdme and add a CI check to keep workspace readmes in sync.


    This PR was generated with release-plz.

[0.6.0] - 2025-12-27

🚀 Features

  • (tui-bar-graph) [breaking] Add block octant characters (#116)

    Since Unicode 16.0 was published on September 10, 2024, support for block octant characters (U+1CD00 to U+1CDE5, PDF) has been improving in fonts. We should enable users of tui-widgets to use these characters in addition to existing options.

  • (tui-big-text) [breaking] Add block octant characters (#117)

    The changes in this PR add the following enum variants:

    • PixelSize::QuarterHeight and PixelSize::Octant to PixelSize found in the tui-big-text crate.

    Documentation and tests are included, and the examples (along with the VHS tapes and screenshots) have been updated to show the new two-row-tall text styles in action and how they compare to text rendered with other PixelSize settings.

  • [breaking] Migrate to ratatui 0.30 (#120)

    feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)

📚 Documentation

  • Add AGENTS.md repository guidelines (#108)

  • (tui-big-text) Fix enum name in field details (#119)

🎨 Styling

  • (tui-prompts) Apply changes from cargo fmt (#118)

⚙️ Miscellaneous Tasks

  • Enable trusted publishing via release-plz (#110)

  • Run release-plz per package (#121)

    • Run release-plz release-pr in a per-crate matrix
    • Keep release job as a single workspace publish
  • (tui-box-text) Release v0.3.0 (#106)

    🤖 New release

    • tui-box-text: 0.2.2 -> 0.3.0 (✓ API compatible changes)
    Changelog

    [0.3.0] - 2025-12-27

    🚀 Features

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)


    This PR was generated with release-plz.

  • Fix release-plz matrix concurrency (#123)

    Avoid matrix jobs canceling each other by including the package name in the concurrency group.

  • (tui-big-text) Release v0.8.0 (#122)

    🤖 New release

    • tui-big-text: 0.7.3 -> 0.8.0 (✓ API compatible changes)
    Changelog

    [0.8.0] - 2025-12-27

    🚀 Features

    • (tui-big-text) [breaking] Add block octant characters (#117)

      The changes in this PR add the following enum variants:

      • PixelSize::QuarterHeight and PixelSize::Octant to PixelSize found in the tui-big-text crate.

    Documentation and tests are included, and the examples (along with the VHS tapes and screenshots) have been updated to show the new two-row-tall text styles in action and how they compare to text rendered with other PixelSize settings.

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)

    📚 Documentation

    • (tui-big-text) Fix enum name in field details (#119)


    This PR was generated with release-plz.

  • Separate release-pr branches (#126)

    Configure per-package release-plz branch prefixes so matrix jobs target distinct PR branches instead of clobbering one.

  • (tui-cards) Release v0.3.0 (#125)

    🤖 New release

    • tui-cards: 0.2.4 -> 0.3.0 (✓ API compatible changes)
    Changelog

    [0.3.0] - 2025-12-27

    🚀 Features

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)


    This PR was generated with release-plz.

  • Template per-package release-pr config (#127)

    Generate a per-package release-plz config in CI so each matrix job uses a unique PR branch prefix without unsupported package settings.

  • Add per-package release-plz configs (#128)

    Commit per-package release-plz config files and point the workflow at them so each matrix job uses a unique PR branch prefix.

  • (tui-popup) Release v0.7.0 (#129)

    🤖 New release

    • tui-popup: 0.6.2 -> 0.7.0 (✓ API compatible changes)
    Changelog

    [0.7.0] - 2025-12-27

    🚀 Features

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)


    This PR was generated with release-plz.

  • (tui-scrollview) Release v0.6.0 (#132)

    🤖 New release

    • tui-scrollview: 0.5.3 -> 0.6.0 (✓ API compatible changes)
    Changelog

    [0.6.0] - 2025-12-27

    🚀 Features

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)


    This PR was generated with release-plz.

  • (tui-bar-graph) Release v0.3.0 (#131)

    🤖 New release

    • tui-bar-graph: 0.2.0 -> 0.3.0 (⚠ API breaking changes)

    tui-bar-graph breaking changes

    --- failure enum_variant_added: enum variant added on exhaustive enum ---
    
  • (tui-prompts) Release v0.6.0 (#130)

    🤖 New release

    • tui-prompts: 0.5.2 -> 0.6.0 (✓ API compatible changes)
    Changelog

    [0.6.0] - 2025-12-27

    🚀 Features

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)

    🎨 Styling

    • (tui-prompts) Apply changes from cargo fmt (#118)


    This PR was generated with release-plz.

  • (tui-qrcode) Release v0.2.0 (#133)

    🤖 New release

    • tui-qrcode: 0.1.3 -> 0.2.0 (✓ API compatible changes)
    Changelog

    [0.2.0] - 2025-12-27

    🚀 Features

    • [breaking] Migrate to ratatui 0.30 (#120)

      feat!: migrate to ratatui 0.30

    • Update workspace deps to ratatui 0.30, ratatui-core, ratatui-widgets, crossterm 0.29
    • Shift widget crates to ratatui-core/ratatui-widgets imports where needed
    • Update tui-popup/tui-prompts event handling to use crossterm types
    • Revise tui-popup rendering/ref semantics and docs to match reference rendering rules
    • Add rolling breaking changes doc and markdownlint config
    • Bump direct deps needed for minimal-versions and examples (document-features, colorgrad, unicode-width)


    This PR was generated with release-plz.

🛡️ Security

  • (deps) Bump indoc from 2.0.6 to 2.0.7 (#115)

    Bumps indoc from 2.0.6 to 2.0.7.

    Release notes

    Sourced from indoc's releases.

    2.0.7

    • Support C-string literals indoc! {c"..."}, indoc! {cr"..."} (#67)
    Commits
    • 8d78216 Release 2.0.7
    • 23472ff Merge pull request #67 from dtolnay/cstring
    • 8d05562 Hide C-string tests from old toolchain versions
    • 7c92efb Recognize C-string literals
    • fe39de4 Generalize Error constructors
    • 27e0151 Add C-string tests
    • 57f6fbb Sort tests
    • 170a079 Raise minimum tested compiler to rust 1.76
    • 2f6ef04 Opt in to generate-macro-expansion when building on docs.rs
    • ce1bed4 Update ui test suite to nightly-2025-09-12
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • (deps) Bump rstest from 0.25.0 to 0.26.1 (#114)

    Bumps rstest from 0.25.0 to 0.26.1.

    Release notes

    Sourced from rstest's releases.

    0.26.1

    Fix Docs

    Full Changelog: https://github.com/la10736/rstest/compare/v0.26.0...v0.26.1

    0.26.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/la10736/rstest/compare/v0.25.0...v0.26.0

    Changelog

    Sourced from rstest's changelog.

    [0.26.1] 2025/7/27

    Fixed

    • Docs

    [0.26.0] 2025/7/26

    Changed

    • The #[files(...)] attribute now ignores matched directory paths by default. See #306 thanks to @​Obito-git.

    Add

    • Introduced the #[dirs] attribute, which can be used with #[files(...)] to explicitly include directory paths. See #306 thanks to @​Obito-git.
    • The CI now runs builds and tests on Windows, as well.
    • #[test_attr] to define test attribute explicit and also enable the use of #[macro_rules_attribute::apply(<macro>)]: naw also smol works. See #303 #311 #315 thanks to @​coriolinus.

    Fixed

    • Removed unsued trait and impl spotted out on 1.89.0-nightly
    • Add missed tests about ignore attribute's args in rstest expansion. See #313
    • The #[files(...)] attribute now works reliably on Windows.
    • Now global attributes can go everywhere in the list also where case is used
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • (deps) Bump document-features from 0.2.11 to 0.2.12 (#113)

    Bumps document-features from 0.2.11 to 0.2.12.

    Changelog

    Sourced from document-features's changelog.

    0.2.12 - 2025-10-24

    • Update litrs dependency to 1.0.0
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • (deps) Bump clap from 4.5.48 to 4.5.53 (#111)

    Bumps clap from 4.5.48 to 4.5.53.

    Release notes

    Sourced from clap's releases.

    v4.5.53

    [4.5.53] - 2025-11-19

    Features

    • Add default_values_if, default_values_ifs

    v4.5.52

    [4.5.52] - 2025-11-17

    Fixes

    • Don't panic when args_conflicts_with_subcommands conflicts with an ArgGroup

    v4.5.51

    [4.5.51] - 2025-10-29

    Fixes

    • (help) Correctly calculate padding for short flags that take a value
    • (help) Don't panic on short flags using ArgAction::Count

    v4.5.50

    [4.5.50] - 2025-10-20

    Features

    • Accept Cow where String and &str are accepted
    Changelog

    Sourced from clap's changelog.

    [4.5.53] - 2025-11-19

    Features

    • Add default_values_if, default_values_ifs

    [4.5.52] - 2025-11-17

    Fixes

    • Don't panic when args_conflicts_with_subcommands conflicts with an ArgGroup

    [4.5.51] - 2025-10-29

    Fixes

    • (help) Correctly calculate padding for short flags that take a value
    • (help) Don't panic on short flags using ArgAction::Count

    [4.5.50] - 2025-10-20

    Features

    • Accept Cow where String and &str are accepted

    [4.5.49] - 2025-10-13

    Fixes

    • (help) Correctly wrap when ANSI escape codes are present
    Commits
    • 3716f9f chore: Release
    • 613b69a docs: Update changelog
    • d117f7a Merge pull request #6028 from epage/arg
    • cb8255d feat(builder): Allow quoted id's for arg macro
    • 1036060 Merge pull request #6025 from AldaronLau/typos-in-faq
    • 2fcafc0 docs: Fix minor grammar issues in FAQ
    • a380b65 Merge pull request #6023 from epage/template
    • 4d7ab14 chore: Update from _rust/main template
    • b8a7ea4 chore(deps): Update Rust Stable to v1.87 (#18)
    • f9842b3 chore: Avoid MSRV problems out of the box
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

Other

  • (deps) Bump tokio from 1.47.1 to 1.48.0 (#112)

[0.5.0] - 2025-11-02

🚀 Features

  • Add new tui-bar-graph crate (#63)

    Braille demo

    Solid demo

    use tui_bar_graph::{BarGraph, BarStyle, ColorMode};
    
    let data = vec![0.0, 0.1, 0.2, 0.3, 0.4, 0.5];
    let bar_graph = BarGraph::new(data)
        .with_gradient(colorgrad::preset::turbo())
        .with_bar_style(BarStyle::Braille)
        .with_color_mode(ColorMode::VerticalGradient);
    frame.render_widget(bar_graph, area);
  • Calculate area of QRCodeWidget (#68)

  • (tui-bar-graph) [breaking] Support boxed gradients (#66)

    This patch adds support for boxed gradients in the BarGraph widget. This makes it possible to choose gradients of different types at runtime without having to change the type of the BarGraph struct.

  • (tui-bar-graph) Add Quadrant style (#80)

    This style uses the block drawing 2x2 quadrant characters. In contrast to the braille style, it renders solid rather than dots. In contrast to the solid style, it renders two columns and rows per bar.

    Quadrant Magma

🐛 Bug Fixes

  • Broken bar graph test

  • Clippy lints (#81)

    Fixes a bunch of lints that are in beta / nursery. A lot of these are opinionated enough that they're not enabled by default, but I figure they generally lead to nicer code, so are worth fixing.

  • Use f64:midpoint (#83)

    MSRV is now 1.87

  • More clippy lints (#84)

  • (tui-prompts) Full-width character input in non-multiline prompt (#93) (#94)

🚜 Refactor

  • Simplify BarGraph rendering logic

  • Simplify color / gradient handling logic

🎨 Styling

  • Format doc comments

  • Add rustfmt and reformat code

⚙️ Miscellaneous Tasks

  • Remove needless lifetimes (#60)

  • Fix git-cliff config (#61)

  • Prepare tui-bar-graph 0.1.1

  • Remove leftover github workflow files (#73)

  • Commit cargo.lock file

  • (tui-big-text) Support disabling crossterm (#70)

  • Use semver compatible dependency versions (#77)

    Use 0.x and x.y instead of 0.x.y and x.y.z for deps to reduce incompatibilities

  • (deps) Use less specific versions of color-eyre and clap (#82)

🛡️ Security

Other

  • (deps) Update rstest requirement from 0.24.0 to 0.25.0 (#62)

    Updates the requirements on rstest to permit the latest version.

    Release notes

    Sourced from rstest's releases.

    0.24.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/la10736/rstest/compare/v0.23.0...v0.24.0

    Changelog

    Sourced from rstest's changelog.

    [0.24.0] 2025/1/1

    Changed

    Add

    • #![no_std] support: now you can use rstest also in no_std lib (see #282 thanks to @​rnbguy)
    • #[context] to have test function name and other useful thighs on the tip of your fingers (see #177)

    [0.23.0] 2024/9/29

    Add

    • You can now use environment variables in #[files] with an optional default value (see #277).
    • You can now set a base_dir for #[files] with the $[base_dir = "..."] attribute (see #277).

    [0.22.0] 2024/8/4

    Changed

    • Now it's possible destructuring input values both for cases, values and fixtures. See #231 for details

    Add

    • Implemented #[ignore] attribute to ignore test parameters during fixtures resolution/injection. See #228 for details

    Fixed

    • Lot of typo in code

    [0.21.0] 2024/6/1

    Changed

    • Add feature crate-name enabled by default to opt-in crate rename support. See #258

    [0.20.0] 2024/5/30

    Add

    • Implemented #[by_ref] attribute to take get a local lifetime for test arguments. See #241 for more details. Thanks to @​narpfel for suggesting it and useful discussions.
    • Support for import rstest with another name. See #221

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

  • Added render_stateful_widget method to ScrollView (#65)

  • Bump msrv to 1.82.0 (#74)

[0.4.1] - 2024-11-23

⚙️ Miscellaneous Tasks

  • Updated the following local packages: tui-scrollview

[0.3.1] - 2024-10-20

🚀 Features

  • (cards) Add new tui-cards library for playing cards

🐛 Bug Fixes

  • Broken links from move to tui-widgets

Other

  • Remove patch from main Cargo.toml file that was pointing at a local path (#38)

  • (deps) Update rstest requirement from 0.22.0 to 0.23.0 (#41)

    Updates the requirements on rstest to permit the latest version.

    Release notes

    Sourced from rstest's releases.

    Version 0.22.0

    Destructuring input data

    Changelog

    Sourced from rstest's changelog.

    [0.22.0] 2024/8/4

    Changed

    Add

    Fixed

    • Lot of typo in code

    [0.21.0] 2024/6/1

    Changed

    [0.20.0] 2024/5/30

    Add

    Fixed

    [0.19.0] 2024/4/9

    Changed

    Fixed

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

[0.3.0] - 2024-08-12

Ratatui-0.28.0 compatible release

⚙️ Miscellaneous Tasks

  • Bump ratatui-macros to 0.5.0
  • Bump tui-big-text to 0.6.0
  • Bump tui-popup to 0.5.0
  • Bump tui-prompts to 0.4.0
  • Bump tui-scrollview to 0.4.0

[0.2.6] - 2024-08-09

⚙️ Miscellaneous Tasks

  • (deps) Bump ratatui-macros and re-enable multiple versions lint

[0.2.5] - 2024-08-09

🐛 Bug Fixes

  • Add missing cfg (#28)

⚙️ Miscellaneous Tasks

  • (tui-big-text) Release v0.5.5 (#25)

    🤖 New release

    • tui-big-text: 0.5.4 -> 0.5.5
    Changelog

    tui-big-text

    [0.5.5] - 2024-08-09

    🐛 Bug Fixes

    • Update to ratatui 0.28 ([#24](#24))

    Note that for projects that rely on crossterm, Ratatui 0.28.0 now relies internally on Crossterm 0.28.0. Ratatui release notes highlights: https://ratatui.rs/highlights/v028/ See ratatui/ratatui#1298 for notes about crossterm compatibility


    This PR was generated with release-plz.

[0.2.4] - 2024-08-06

Other

[0.2.3] - 2024-08-02

📚 Documentation

  • Clean up changelogs (#17)
    • removed unnecessary footer comments
    • removed [unreleased] sections
    • removed duplicate release notes

⚙️ Miscellaneous Tasks

[0.2.2] - 2024-07-25

⚙️ Miscellaneous Tasks

  • Updated the following local packages: tui-big-text

[0.2.1] - 2024-07-25

📚 Documentation

  • Update readme / lib.rs links

⚙️ Miscellaneous Tasks

  • Remove anyhow dependency

    Replaced with color_eyre generally

  • Update bacon config

  • Update READMEs and licensing info

[0.2.0] - 2024-07-25

🚀 Features

  • (tui-big-text) Add alignment helper methods

    Adds helper methods to the BigTextBuilder struct to set the alignment of the text. This makes it simpler to set the alignment of the text.

    let left = BigText::builder()
        .left_aligned()
        .lines(vec!["Left".white().into()])
        .build()?;
    
    let right = BigText::builder()
        .right_aligned()
        .lines(vec!["Right".green().into()])
        .build()?;
    
    let centered = BigText::builder()
        .centered()
        .lines(vec!["Centered".red().into()])
        .build()?;
  • (tui-big-text) [breaking] Make BigText builder infallible (#14)

    BigTextBuilder.build() no longer returns a Result. Instead it returns the BigText widget directly. This change is made to simplify rendering code which often otherwise doesn't have any error conditions.

    This also makes the fields on BigText public (marked as non-exhaustive)

    BREAKING CHANGE:BigTextBuilder.build() no longer returns a Result.

    Remove the ? / expect / unwrap calls code which calls the build method.

     let big_text = BigText::builder()
         .lines(vec![Line::from("SingleLine")])
    -    .build()?;
    +    .build();

📚 Documentation

  • Fixup readme

  • Simplify tui-big-text examples

⚙️ Miscellaneous Tasks

  • Include commit body in changelog

[0.1.5] - 2024-07-25

Other

  • Add tui-popup to widgets

[0.1.4] - 2024-07-24

🐛 Bug Fixes

  • Remove cargo.lock file
  • Delete and backspace behavior for multi-byte characters (#57)
  • Fixup tui-prompts version to match crates.io

⚙️ Miscellaneous Tasks

  • Various fixes / clippy lints (#6)

0.1.3 - 2024-07-24

Fixed

  • (deps) update minimal version for futures

Other

  • add workflows and dependabot settings
  • Move to tui-widgets repository