mirror of
https://github.com/ratatui/ratatui.git
synced 2025-09-28 05:21:23 +00:00
1801 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
![]() |
0f80c5e87e
|
chore!: use expect() instead of allow() for lint overrides (#1786)
BREAKING CHANGE: MSRV is now 1.81 |
||
![]() |
a03ba0de5c
|
build(deps): bump crossterm from 0.28.1 to 0.29.0 (#1771)
Bumps [crossterm](https://github.com/crossterm-rs/crossterm) from 0.28.1 to 0.29.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/crossterm-rs/crossterm/releases">crossterm's releases</a>.</em></p> <blockquote> <h2>0.29</h2> <h1>Version 0.29</h1> <h2>Added ⭐</h2> <ul> <li>Copy to clipboard using OSC52 (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/974">#974</a>)</li> <li>Derive standard traits for "SetCursorStyle" (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/909">#909</a>)</li> <li>Add query_keyboard_enhancement_flags to read enabled flags (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/958">#958</a>)</li> <li>Add is_* and as_* methods to the event enums (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/949">#949</a>)</li> <li>Add a feature flag for derive_more impls (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/970">#970</a>)</li> <li>Update rustix to 1.0 (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/982">#982</a>)</li> <li>Upgrade various dependencies</li> </ul> <h2>Breaking ⚠️</h2> <ul> <li>Correctly fix KeyModifiers Display impl Properly adding + in between modifiers (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/979">#979</a>)</li> </ul> <p><a href="https://github.com/joshka"><code>@joshka</code></a> <a href="https://github.com/linrongbin16"><code>@linrongbin16</code></a> <a href="https://github.com/kmicklas"><code>@kmicklas</code></a> <a href="https://github.com/maciek50322"><code>@maciek50322</code></a> <a href="https://github.com/rosew0od"><code>@rosew0od</code></a> <a href="https://github.com/sxyazi"><code>@sxyazi</code></a> <a href="https://github.com/the-mikedavis"><code>@the-mikedavis</code></a> <a href="https://github.com/hthuz"><code>@hthuz</code></a> <a href="https://github.com/aschey"><code>@aschey</code></a> <a href="https://github.com/naseschwarz"><code>@naseschwarz</code></a> <a href="https://github.com/Flokkq"><code>@Flokkq</code></a> <a href="https://github.com/gaesa"><code>@gaesa</code></a> <a href="https://github.com/WindSoilder"><code>@WindSoilder</code></a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md">crossterm's changelog</a>.</em></p> <blockquote> <h1>Unreleased</h1> <h1>Version 0.29</h1> <h2>Added ⭐</h2> <ul> <li>Copy to clipboard using OSC52 (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/974">#974</a>)</li> <li>Derive standard traits for "SetCursorStyle" (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/909">#909</a>)</li> <li>Add query_keyboard_enhancement_flags to read enabled flags (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/958">#958</a>)</li> <li>Add is_* and as_* methods to the event enums (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/949">#949</a>)</li> <li>Add a feature flag for derive_more impls (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/970">#970</a>)</li> <li>Update rustix to 1.0 (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/982">#982</a>)</li> </ul> <h2>Breaking ⚠️</h2> <ul> <li>Correctly fix KeyModifiers Display impl Properly adding + in between modifiers (<a href="https://redirect.github.com/crossterm-rs/crossterm/issues/979">#979</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/crossterm-rs/crossterm/commits/0.29">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Josh McKinney <joshka@users.noreply.github.com> |
||
![]() |
b4a71e5fd5
|
chore(lint): add std instead of core /alloc lints to ratatui-widgets (#1763)
Resolves #1761 |
||
![]() |
a42a17e184
|
feat(no_std): make ratatui-widgets no_std (#1779)
Resolves #1776 |
||
![]() |
07bec55b7d
|
refactor(no_std): Make usages of std explicit in ratatui-core. (#1782)
### This commit does the following: - Adds `#[no_std]` to `lib.rs`. - Adds `extern crate std;` to `lib.rs`. - Updates `ratatui-core` to explicitly `use` items from std and alloc. - Prefers `use`-ing alloc over std when possible. ### Explanation: This allows usages of `std` in `ratatui-core` to be clearly pointed out and dealt with individually. Eventually, when `std` is to be feature gated, the associated commit will be much cleaner. |
||
![]() |
02e53de0f8
|
refactor: make use of iter::repeat_n() (#1788)
Applied via clippy --fix. Available since 1.82.0. |
||
![]() |
c90ba9781e
|
fix: avoid unnecessary imports in minimal build (#1787)
core::ops::Range is only used with the feature `scrolling-regions`. Ensure a minimal `cargo check` reports no warnings. |
||
![]() |
799a6c66a7
|
build(deps): bump clap from 4.5.35 to 4.5.36 (#1790)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.35 to 4.5.36. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.36</h2> <h2>[4.5.36] - 2025-04-11</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Revert 4.5.35's "Don't leave space for shorts if there are none" for now</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.36] - 2025-04-11</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Revert 4.5.35's "Don't leave space for shorts if there are none" for now</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
fc4b996c59
|
build(deps): update compact_str requirement from 0.8.1 to 0.9.0 (#1783)
Looking at https://github.com/ParkMyCar/compact_str/blob/v0.9.0/CHANGELOG.md#090, there are a few API changes, but it doesn’t seem like anything there should be a problem given that `cargo test` still passes in `ratatui-core/`. |
||
![]() |
6836a6903e
|
feat: implement styled for other primitives (#1684) | ||
![]() |
d28a08237a
|
chore(deps): drop unused font8x8 dependency (#1777) | ||
![]() |
5f8c159484
|
build(deps): bump crossbeam-channel from 0.5.14 to 0.5.15 in the cargo group (#1774)
Bumps the cargo group with 1 update: [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam). Updates `crossbeam-channel` from 0.5.14 to 0.5.15 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/crossbeam-rs/crossbeam/releases">crossbeam-channel's releases</a>.</em></p> <blockquote> <h2>crossbeam-channel 0.5.15</h2> <ul> <li>Fix regression introduced in 0.5.12 that can lead to a double free when dropping unbounded channel. (<a href="https://redirect.github.com/crossbeam-rs/crossbeam/issues/1187">#1187</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
5a232a3115
|
feat(no_std): remove redundant std usages in ratatui-widgets (#1762)
|
||
![]() |
577bd17bba
|
build(deps): bump clap from 4.5.34 to 4.5.35 (#1770)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.34 to 4.5.35. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.35</h2> <h2>[4.5.35] - 2025-04-01</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Align positionals and flags when put in the same <code>help_heading</code></li> <li><em>(help)</em> Don't leave space for shorts if there are none</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.35] - 2025-04-01</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Align positionals and flags when put in the same <code>help_heading</code></li> <li><em>(help)</em> Don't leave space for shorts if there are none</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
fdc1746eff
|
build(deps): bump tokio from 1.44.1 to 1.44.2 (#1769)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.44.1 to 1.44.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/tokio/releases">tokio's releases</a>.</em></p> <blockquote> <h2>Tokio v1.44.2</h2> <p>This release fixes a soundness issue in the broadcast channel. The channel accepts values that are <code>Send</code> but <code>!Sync</code>. Previously, the channel called <code>clone()</code> on these values without synchronizing. This release fixes the channel by synchronizing calls to <code>.clone()</code> (Thanks Austin Bonander for finding and reporting the issue).</p> <h3>Fixed</h3> <ul> <li>sync: synchronize <code>clone()</code> call in broadcast channel (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7232">#7232</a>)</li> </ul> <p><a href="https://redirect.github.com/tokio-rs/tokio/issues/7232">#7232</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/7232">tokio-rs/tokio#7232</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
fcb47d60f3
|
feat!: rename Alignment to HorizontalAlignment and add VerticalAlignment (#1735)
We don't anticipate removing or deprecating the type alias in the near future, but it is recommended to update your imports to use the new name. Added a VerticalAlignment enum to make the API more consistent. We don't have a specific use case for it yet, but it's better to add it now and be able to use it in the future. BREAKING-CHANGE: The `Alignment` enum has been renamed to `HorizontalAlignment` to better reflect its purpose. A type alias has been added to maintain backwards compatibility, however there are some cases where type aliases are not enough to maintain backwards compatibility. E.g. when using glob imports to import all the enum variants. This should not affect most users, but it is recommended to update your imports to use the new name. ```diff - use ratatui::layout::Alignment; + use ratatui::layout::HorizontalAlignment; - use Alignment::*; + use HorizontalAlignment::*; ``` |
||
![]() |
2be9ccb120
|
docs(layout): remove unnecessary path prefix (#1766) | ||
![]() |
b669cebcaf
|
docs(layout): change cassowary to kasuari crate reference (#1765)
|
||
![]() |
cef617cc35
|
chore(lint): add std instead of core /alloc lints to ratatui-core (#1759)
Resolves #1752 |
||
![]() |
3d5b250e74
|
build(deps): use kasuari instead of cassowary (#1758)
[Kasuari](https://github.com/ratatui/kasuari) is a maintained fork of Cassowary. |
||
![]() |
ebe10cd81f
|
feat(no_std): remove redundant std usages in ratatui-core (#1753)
Resolves https://github.com/ratatui/ratatui/issues/1751 |
||
![]() |
416ebdf8c8
|
fix: correct clippy errors introduced by rust 1.86.0 update (#1755)
New version of rust (1.86.0) caused CI to fail. |
||
![]() |
ce16692b9a
|
docs(release): fix typo (#1754) | ||
![]() |
ba9eed7742
|
perf(table): replace while loop with simple min operation (#1747) | ||
![]() |
c27fba06f1
|
build(deps): bump clap from 4.5.32 to 4.5.34 (#1742)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.32 to 4.5.34. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.34</h2> <h2>[4.5.34] - 2025-03-27</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Don't add extra blank lines with <code>flatten_help(true)</code> and subcommands without arguments</li> </ul> <h2>v4.5.33</h2> <h2>[4.5.33] - 2025-03-26</h2> <h3>Fixes</h3> <ul> <li><em>(error)</em> When showing the usage of a suggestion for an unknown argument, don't show the group</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.34] - 2025-03-27</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Don't add extra blank lines with <code>flatten_help(true)</code> and subcommands without arguments</li> </ul> <h2>[4.5.33] - 2025-03-26</h2> <h3>Fixes</h3> <ul> <li><em>(error)</em> When showing the usage of a suggestion for an unknown argument, don't show the group</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
497b88e237
|
build(deps): bump termwiz from 0.23.0 to 0.23.3 (#1736)
Bumps [termwiz](https://github.com/wezterm/wezterm) from 0.23.0 to 0.23.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/wezterm/wezterm/releases">termwiz's releases</a>.</em></p> <blockquote> <h2>Nightly Builds</h2> <p>Ignore the sources associated with this release: it's just the readme. This release holds builds generated by the nightly build process that runs in the CI/CD environment. These builds may be unstable or unusable; they are simply a build of whatever is in master at the time that the nightly build runs.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
fff8319fa1
|
build(deps): bump termion from 4.0.4 to 4.0.5 (#1743)
Bumps termion from 4.0.4 to 4.0.5. [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
![]() |
495a9807ea
|
build(deps): bump octocrab from 0.43.0 to 0.44.0 (#1744)
Bumps [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.43.0 to 0.44.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/XAMPPRocky/octocrab/releases">octocrab's releases</a>.</em></p> <blockquote> <h2>v0.44.0</h2> <h3>Added</h3> <ul> <li>Implement Serialize for Page (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/761">#761</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>[<strong>breaking</strong>] <code>sha</code> is optional in <code>DiffEntry</code> if file contents are unchanged (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/750">#750</a>)</li> <li>insert auth headers for api.github.com (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/754">#754</a>)</li> <li><em>(emails)</em> <code>visibility</code> can be <code>null</code> (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/756">#756</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/XAMPPRocky/octocrab/blob/main/CHANGELOG.md">octocrab's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/XAMPPRocky/octocrab/compare/v0.43.0...v0.44.0">0.44.0</a> - 2025-03-26</h2> <h3>Added</h3> <ul> <li>Implement Serialize for Page (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/761">#761</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>[<strong>breaking</strong>] <code>sha</code> is optional in <code>DiffEntry</code> if file contents are unchanged (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/750">#750</a>)</li> <li>insert auth headers for api.github.com (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/754">#754</a>)</li> <li><em>(emails)</em> <code>visibility</code> can be <code>null</code> (<a href="https://redirect.github.com/XAMPPRocky/octocrab/pull/756">#756</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
b3f3c9bfd5
|
chore(ci): disable running release-plz on forked repositories (#1730)
See https://github.com/jdssl/ratatui/pull/1#issuecomment-2739366609 |
||
![]() |
2739391950
|
style: use Module imports_granularity (#1728)
I was swayed by the arguments about this made by the compiler team In <https://github.com/rust-lang/compiler-team/issues/750> and decided to look at how this organization affects ratatui. I found this reduces the number of lines across the codebase by about 350 and makes the imports more readable and definitely more greppable as you usually only have to read a single line. I've found in the past that maintaining imports regularly leads to merge conflicts which have to be resolved by hand and this change should reduce the likelihood of that happening. Main change is in rustfmt.toml, and the rest is just the result of running `cargo xtask format`. While implementing this, cargo machete brings up that the various backend crates are unused by the example crates. The re-export of each backend crate under ratatui is to make it possible for libs that rely on a specific version of ratatui to use the same version of the backend crate. Apps in general should use the backend crate directly rather than through ratatui as this is less confusing. - Removes all usages of `ratatui::{crossterm, termion, termwiz}`` in the examples. - Adds the backend crate to the dependencies of the examples that use the backend crate directly. |
||
![]() |
dca331c748
|
fix(demo): support tab key in demo2 example (#1726)
see #1721 Not sure what caused this - it's been there for a while probably and we didn't realize it since we used `demo2-destroy` mostly. |
||
![]() |
e7defb36de
|
ci: remove bencher workflows (#1719)
These actions are currently unused as we haven't invested the time necessary to understand how best to use them. We can always re-add them later if we find them useful. |
||
![]() |
87c9823b08
|
build(deps): bump serde from 1.0.218 to 1.0.219 (#1714)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.218 to 1.0.219. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p> <blockquote> <h2>v1.0.219</h2> <ul> <li>Prevent <code>absolute_paths</code> Clippy restriction being triggered inside macro-generated code (<a href="https://redirect.github.com/serde-rs/serde/issues/2906">#2906</a>, thanks <a href="https://github.com/davidzeng0"><code>@davidzeng0</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
352021bc6f
|
build(deps): bump tokio from 1.43.0 to 1.44.1 (#1723)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.43.0 to 1.44.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/tokio/releases">tokio's releases</a>.</em></p> <blockquote> <h2>Tokio v1.44.1</h2> <h1>1.44.1 (March 13th, 2025)</h1> <h3>Fixed</h3> <ul> <li>rt: skip defer queue in <code>block_in_place</code> context (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7216">#7216</a>)</li> </ul> <p><a href="https://redirect.github.com/tokio-rs/tokio/issues/7216">#7216</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/7216">tokio-rs/tokio#7216</a></p> <h2>Tokio v1.44.0</h2> <h1>1.44.0 (March 7th, 2025)</h1> <p>This release changes the <code>from_std</code> method on sockets to panic if a blocking socket is provided. We determined this change is not a breaking change as Tokio is not intended to operate using blocking sockets. Doing so results in runtime hangs and should be considered a bug. Accidentally passing a blocking socket to Tokio is one of the most common user mistakes. If this change causes an issue for you, please comment on <a href="https://redirect.github.com/tokio-rs/tokio/issues/7172">#7172</a>.</p> <h3>Added</h3> <ul> <li>coop: add <code>task::coop</code> module (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7116">#7116</a>)</li> <li>process: add <code>Command::get_kill_on_drop()</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7086">#7086</a>)</li> <li>sync: add <code>broadcast::Sender::closed</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6685">#6685</a>, <a href="https://redirect.github.com/tokio-rs/tokio/issues/7090">#7090</a>)</li> <li>sync: add <code>broadcast::WeakSender</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7100">#7100</a>)</li> <li>sync: add <code>oneshot::Receiver::is_empty()</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7153">#7153</a>)</li> <li>sync: add <code>oneshot::Receiver::is_terminated()</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7152">#7152</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>fs: empty reads on <code>File</code> should not start a background read (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7139">#7139</a>)</li> <li>process: calling <code>start_kill</code> on exited child should not fail (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7160">#7160</a>)</li> <li>signal: fix <code>CTRL_CLOSE</code>, <code>CTRL_LOGOFF</code>, <code>CTRL_SHUTDOWN</code> on windows (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7122">#7122</a>)</li> <li>sync: properly handle panic during mpsc drop (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7094">#7094</a>)</li> </ul> <h3>Changes</h3> <ul> <li>runtime: clean up magic number in registration set (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7112">#7112</a>)</li> <li>coop: make coop yield using waker defer strategy (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7185">#7185</a>)</li> <li>macros: make <code>select!</code> budget-aware (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7164">#7164</a>)</li> <li>net: panic when passing a blocking socket to <code>from_std</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7166">#7166</a>)</li> <li>io: clean up buffer casts (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7142">#7142</a>)</li> </ul> <h3>Changes to unstable APIs</h3> <ul> <li>rt: add before and after task poll callbacks (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7120">#7120</a>)</li> <li>tracing: make the task tracing API unstable public (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6972">#6972</a>)</li> </ul> <h3>Documented</h3> <ul> <li>docs: fix nesting of sections in top-level docs (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7159">#7159</a>)</li> <li>fs: rename symlink and hardlink parameter names (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7143">#7143</a>)</li> <li>io: swap reader/writer in simplex doc test (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7176">#7176</a>)</li> <li>macros: docs about <code>select!</code> alternatives (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7110">#7110</a>)</li> <li>net: rename the argument for <code>send_to</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/7146">#7146</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
de394875e4
|
build(deps): bump clap from 4.5.31 to 4.5.32 (#1724)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.31 to 4.5.32. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.32</h2> <h2>[4.5.32] - 2025-03-10</h2> <h3>Features</h3> <ul> <li>Add <code>Error::remove</code></li> </ul> <h3>Documentation</h3> <ul> <li><em>(cookbook)</em> Switch from <code>humantime</code> to <code>jiff</code></li> <li><em>(tutorial)</em> Better cover required vs optional</li> </ul> <h3>Internal</h3> <ul> <li>Update <code>pulldown-cmark</code></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.32] - 2025-03-10</h2> <h3>Features</h3> <ul> <li>Add <code>Error::remove</code></li> </ul> <h3>Documentation</h3> <ul> <li><em>(cookbook)</em> Switch from <code>humantime</code> to <code>jiff</code></li> <li><em>(tutorial)</em> Better cover required vs optional</li> </ul> <h3>Internal</h3> <ul> <li>Update <code>pulldown-cmark</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
fe8577c070
|
chore: remove paste dependency (#1713)
The paste crate is no longer maintained. Replaces the usages of this in the Stylize declarative macros with hard coded values. These macros are internal implementation deatil to ratatui and so the changes should have no impact on users. Fixes: https://github.com/ratatui/ratatui/issues/1712 |
||
![]() |
34fec670d3
|
chore(changelog): remove changelog footer (#1711)
The footer makes some noise when used with `release-plz`. |
||
![]() |
255e4661a8
|
chore: cargo update - pull in fixed version of ring crate (#1710) | ||
![]() |
e8eb4c36ee
|
build(deps): bump indoc from 2.0.5 to 2.0.6 (#1709)
Bumps [indoc](https://github.com/dtolnay/indoc) from 2.0.5 to 2.0.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/indoc/releases">indoc's releases</a>.</em></p> <blockquote> <h2>2.0.6</h2> <ul> <li>Documentation improvements</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
83774eecf0
|
build(deps): bump time from 0.3.37 to 0.3.39 (#1708)
Bumps [time](https://github.com/time-rs/time) from 0.3.37 to 0.3.39. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/time-rs/time/releases">time's releases</a>.</em></p> <blockquote> <h2>v0.3.39</h2> <p>See the <a href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">changelog</a> for details.</p> <h2>v0.3.38</h2> <p>See the <a href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">changelog</a> for details.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">time's changelog</a>.</em></p> <blockquote> <h2>0.3.39 [2025-03-06]</h2> <h3>Fixed</h3> <ul> <li>Doc tests run successfully with the default feature set.</li> <li>wasm builds work again.</li> </ul> <p>Both of these were regressions in v0.3.38 and are now checked in CI.</p> <h2>0.3.38 [2025-03-05]</h2> <h3>Added</h3> <ul> <li> <p>The <code>[year]</code> component (in format descriptions) now supports a <code>range</code> modifier, which can be either <code>standard</code> or <code>extended</code>. The default is <code>extended</code> for backwards compatibility. This is intended as a manner to opt <em>out</em> of the extended range when the <code>large-dates</code> feature is enabled. When the <code>large-dates</code> feature is not enabled, the modifier has no effect.</p> </li> <li> <p><code>UtcDateTime</code>, which is semantically equivalent to an <code>OffsetDateTime</code> with UTC as its offset. The advantage is that it is the same size as a <code>PrimitiveDateTime</code> and has improved operability with well-known formats.</p> <p>As part of this, there were some other additions:</p> <ul> <li><code>utc_datetime!</code> macro, which is similar to the <code>datetime!</code> macro but constructs a <code>UtcDateTime</code>.</li> <li><code>PrimitiveDateTime::as_utc</code></li> <li><code>OffsetDateTime::to_utc</code></li> <li><code>OffsetDateTime::checked_to_utc</code></li> </ul> </li> <li> <p><code>time::serde::timestamp::milliseconds_i64</code>, which is a module to serialize/deserialize timestamps as the Unix timestamp. The pre-existing module does this as an <code>i128</code> where an <code>i64</code> would suffice. This new module should be preferred.</p> </li> </ul> <h3>Changed</h3> <ul> <li><code>error::Format</code> has had its <code>source()</code> implementation changed to no longer return a boxed value from the <code>ComponentRange</code> variant. If you were explicitly expecting this, you will need to update your code. The method API remains unchanged.</li> <li><code>[year repr:century]</code> supports single-digit values.</li> <li>All <code>format_into</code> methods accept <code>?Sized</code> references.</li> </ul> <h3>Miscellaneous</h3> <ul> <li>Some non-exhaustive enum variants that are no longer used have been modified to be statically proven as uninhabited. The relevant fields are doc-hidden and not semver-guaranteed to remain as such, though it is unlikely to change.</li> <li>An unnecessary check when parsing RFC 2822 has been removed.</li> <li>Various methods have had their implementations changed, resulting in significant performance gains. Among the methods changed are <ul> <li><code>util::is_leap_year</code></li> <li><code>util::weeks_in_year</code></li> <li><code>Month::length</code></li> <li><code>Date::to_calendar_date</code></li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
4bd7c6dfa9
|
chore(changelog): skip placeholder commits in changelog (#1704) | ||
![]() |
92a19cb604
|
feat(list)!: highlight symbol styling (#1595)
Allow styling for `List`'s highlight symbol This change makes it so anything that implements `Into<Line>` can be used as a highlight symbol. BREAKING CHANGE: `List::highlight_symbol` can no longer be used in const context BREAKING CHANGE: `List::highlight_symbol` accepted `&str`. Conversion methods that rely on type inference will need to be rewritten as the compiler cannot infer the type. closes: https://github.com/ratatui/ratatui/issues/1443 --------- Co-authored-by: Josh McKinney <joshka@users.noreply.github.com> |
||
![]() |
5710b7a8d9
|
build(deps): bump rstest from 0.24.0 to 0.25.0 (#1695)
Bumps [rstest](https://github.com/la10736/rstest) from 0.24.0 to 0.25.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/la10736/rstest/releases">rstest's releases</a>.</em></p> <blockquote> <h2>0.25.0</h2> <h2>What's Changed</h2> <ul> <li>Append generated test macro so next test macros are aware of it by <a href="https://github.com/kezhuw"><code>@kezhuw</code></a> in <a href="https://redirect.github.com/la10736/rstest/pull/291">la10736/rstest#291</a></li> <li>feat: add <code>include_str</code> and <code>include_bytes</code> file input behaviour by <a href="https://github.com/lucascool12"><code>@lucascool12</code></a> in <a href="https://redirect.github.com/la10736/rstest/pull/297">la10736/rstest#297</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/kezhuw"><code>@kezhuw</code></a> made their first contribution in <a href="https://redirect.github.com/la10736/rstest/pull/291">la10736/rstest#291</a></li> <li><a href="https://github.com/lucascool12"><code>@lucascool12</code></a> made their first contribution in <a href="https://redirect.github.com/la10736/rstest/pull/297">la10736/rstest#297</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/la10736/rstest/compare/v0.24.0...v0.25.0">https://github.com/la10736/rstest/compare/v0.24.0...v0.25.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/la10736/rstest/blob/master/CHANGELOG.md">rstest's changelog</a>.</em></p> <blockquote> <h2>[0.25.0] 2025/3/2</h2> <h3>Changed</h3> <ul> <li>Append generated test macro so next test macros are aware of it (see <a href="https://redirect.github.com/la10736/rstest/pull/291">#291</a> thanks to <a href="https://github.com/kezhuw"><code>@kezhuw</code></a>).</li> </ul> <h3>Add</h3> <ul> <li>Added a <code>#[mode = ...]</code> attribute to be used with the <code>#[files(...)]</code> attribute to change the way the files get passed to the test. (see <a href="https://redirect.github.com/la10736/rstest/issues/295">#295</a> thanks to <a href="https://github.com/lucascool12"><code>@lucascool12</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
4eac5b2849
|
fix: make deprecation notes more helpful (#1702)
AI coding assistants use the deprecation notes to automatically suggest fixes. This commit updates the deprecation notes to push those tools to suggest the correct replacement methods and types. Specifically, AI tools often suggest using `Buffer::get(x, y)`, because of their training data where this was prevalent. When fixing these deprecations, they often incorrectly suggest using `Buffer::get(x, y)` instead of `Buffer[(x, y)]`. |
||
![]() |
2714d6b9c3
|
feat: add array and tuple RGB color conversion methods (#1703)
Other crates (e.g. colorgrad) that deal with colors can convert colors to a tuple of 3 or 4 u8 values. This commit adds conversion methods from these types to a `Color::Rgb` instance. Any alpha value is ignored. ```rust Color::from([255, 0, 0]); Color::from((255, 0, 0)); Color::from([255, 0, 0, 255]); Color::from((255, 0, 0, 255)); ``` |
||
![]() |
0919c72f89
|
chore(changelog): bring back commit details (#1694)
see https://github.com/ratatui/ratatui/pull/1671#issuecomment-2692469384 |
||
![]() |
48dd4762ab
|
build(deps): bump dawidd6/action-download-artifact from 8 to 9 (#1700)
Bumps
[dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact)
from 8 to 9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dawidd6/action-download-artifact/releases">dawidd6/action-download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v9</h2>
<h2>What's Changed</h2>
<ul>
<li>add merge_multiple option by <a
href="https://github.com/timostroehlein"><code>@timostroehlein</code></a>
in <a
href="https://redirect.github.com/dawidd6/action-download-artifact/pull/327">dawidd6/action-download-artifact#327</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/timostroehlein"><code>@timostroehlein</code></a>
made their first contribution in <a
href="https://redirect.github.com/dawidd6/action-download-artifact/pull/327">dawidd6/action-download-artifact#327</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dawidd6/action-download-artifact/compare/v8...v9">https://github.com/dawidd6/action-download-artifact/compare/v8...v9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
![]() |
1ca877da39
|
build(deps): bump bnjbvr/cargo-machete from 0.7.0 to 0.8.0 (#1699)
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete) from 0.7.0 to 0.8.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/bnjbvr/cargo-machete/releases">bnjbvr/cargo-machete's releases</a>.</em></p> <blockquote> <h2>v0.8.0</h2> <h2>What's Changed</h2> <ul> <li>readme: bump checkout action by <a href="https://github.com/marcoieni"><code>@marcoieni</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/142">bnjbvr/cargo-machete#142</a></li> <li>chore: make clippy happy on nightly builds by <a href="https://github.com/bnjbvr"><code>@bnjbvr</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/146">bnjbvr/cargo-machete#146</a></li> <li>Update cargo_toml to 0.21, making it compatible with the resolver=3 option (fixes <a href="https://redirect.github.com/bnjbvr/cargo-machete/issues/144">#144</a>) by <a href="https://github.com/AMDmi3"><code>@AMDmi3</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/145">bnjbvr/cargo-machete#145</a></li> <li>chore: bump dependencies by <a href="https://github.com/bnjbvr"><code>@bnjbvr</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/147">bnjbvr/cargo-machete#147</a></li> <li>chore: test ignored directories correctly by <a href="https://github.com/bnjbvr"><code>@bnjbvr</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/149">bnjbvr/cargo-machete#149</a></li> <li>fix: canonicalize relative paths when looking for the workspace manifest by <a href="https://github.com/bnjbvr"><code>@bnjbvr</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/148">bnjbvr/cargo-machete#148</a></li> <li>Build Docker image for both amd64 and arm64 by <a href="https://github.com/popen2"><code>@popen2</code></a> in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/151">bnjbvr/cargo-machete#151</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/marcoieni"><code>@marcoieni</code></a> made their first contribution in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/142">bnjbvr/cargo-machete#142</a></li> <li><a href="https://github.com/AMDmi3"><code>@AMDmi3</code></a> made their first contribution in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/145">bnjbvr/cargo-machete#145</a></li> <li><a href="https://github.com/popen2"><code>@popen2</code></a> made their first contribution in <a href="https://redirect.github.com/bnjbvr/cargo-machete/pull/151">bnjbvr/cargo-machete#151</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/bnjbvr/cargo-machete/compare/v0.7.0...v0.8.0">https://github.com/bnjbvr/cargo-machete/compare/v0.7.0...v0.8.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
31b53c3e59
|
build(deps): bump bitflags from 2.8.0 to 2.9.0 (#1698)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.8.0 to 2.9.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/bitflags/bitflags/releases">bitflags's releases</a>.</em></p> <blockquote> <h2>2.9.0</h2> <h2>What's Changed</h2> <ul> <li><code>Flags</code> trait: add <code>clear(&mut self)</code> method by <a href="https://github.com/wysiwys"><code>@wysiwys</code></a> in <a href="https://redirect.github.com/bitflags/bitflags/pull/437">bitflags/bitflags#437</a></li> <li>Fix up UI tests by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/bitflags/bitflags/pull/438">bitflags/bitflags#438</a></li> <li>Prepare for 2.9.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/bitflags/bitflags/pull/439">bitflags/bitflags#439</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0">https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md">bitflags's changelog</a>.</em></p> <blockquote> <h1>2.9.0</h1> <h2>What's Changed</h2> <ul> <li><code>Flags</code> trait: add <code>clear(&mut self)</code> method by <a href="https://github.com/wysiwys"><code>@wysiwys</code></a> in <a href="https://redirect.github.com/bitflags/bitflags/pull/437">bitflags/bitflags#437</a></li> <li>Fix up UI tests by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/bitflags/bitflags/pull/438">bitflags/bitflags#438</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0">https://github.com/bitflags/bitflags/compare/2.8.0...2.9.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
![]() |
a8be13c9c7
|
build(deps): bump serde_json from 1.0.139 to 1.0.140 (#1697)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.139 to 1.0.140. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p> <blockquote> <h2>v1.0.140</h2> <ul> <li>Documentation improvements</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |