Compare commits

...

136 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
a6218e03f3 Initial plan 2025-10-31 22:48:55 +00:00
Orhun Parmaksız
5e1319b52d chore(release): update versions for beta release 2025-10-31 23:43:32 +01:00
Orhun Parmaksız
d9cbf71996 chore(changelog): update for 0.30 beta release 2025-10-31 23:43:22 +01:00
Orhun Parmaksız
564e4cc039 chore(changelog): add .cliffignore to skip ratatui-macros entries 2025-10-31 23:38:14 +01:00
Orhun Parmaksız
0fcb4a7f93 chore(changelog): skip release entries 2025-10-31 23:37:09 +01:00
Orhun Parmaksız
6d8ab3a551 chore(changelog): add new contributors section 2025-10-31 23:37:06 +01:00
Orhun Parmaksız
d2a13360ff docs(changelog): add note to ratatui-macros' changelog 2025-10-31 23:36:59 +01:00
github-actions[bot]
51f51ab121 chore: release 2025-10-31 21:08:53 +00:00
Orhun Parmaksız
39cd313b3b test(layout): add visual buffer tests for Rect methods (#2124) 2025-11-01 00:07:15 +03:00
Orhun Parmaksız
db65aa0ef7 test(bench): add benchmark for text (#2160)
#2138

---------

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
Co-authored-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-10-31 23:53:51 +03:00
Orhun Parmaksız
0a25bc166d fix(tests): update the stderr snapshot for ratatui-macros (#2161)
New 🦀 broke the CI
2025-10-31 19:46:57 +03:00
Jagoda Estera Ślązak
3582052c30 chore(changelog): fix typos (#2157)
Fix yet more typos in commits...
2025-10-28 23:06:52 +03:00
dependabot[bot]
12d3c78aa4 build(deps): bump taiki-e/install-action from 2.62.33 to 2.62.38 (#2156)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.33 to 2.62.38.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.62.38</h2>
<ul>
<li>
<p>Update <code>coreutils@latest</code> to 0.3.0.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.3.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.17.</p>
</li>
<li>
<p>Update <code>cargo-tarpaulin@latest</code> to 0.34.1.</p>
</li>
</ul>
<h2>2.62.37</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.8.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.16.</p>
</li>
</ul>
<h2>2.62.36</h2>
<ul>
<li>
<p>Update <code>syft@latest</code> to 1.36.0.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.15.</p>
</li>
</ul>
<h2>2.62.35</h2>
<ul>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.2.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.108.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.14.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.9.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.5.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.13.</p>
</li>
</ul>
<h2>2.62.34</h2>
<ul>
<li>
<p>Update <code>sccache@latest</code> to 0.12.0.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.1.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.71.2.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.12.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.8.</p>
</li>
<li>
<p>Update <code>ubi@latest</code> to 0.8.2.</p>
</li>
<li>
<p>Update <code>cargo-tarpaulin@latest</code> to 0.34.0.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<ul>
<li>Update <code>mise@latest</code> to 2025.10.18.</li>
</ul>
<h2>[2.62.38] - 2025-10-25</h2>
<ul>
<li>
<p>Update <code>coreutils@latest</code> to 0.3.0.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.3.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.17.</p>
</li>
<li>
<p>Update <code>cargo-tarpaulin@latest</code> to 0.34.1.</p>
</li>
</ul>
<h2>[2.62.37] - 2025-10-24</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.8.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.16.</p>
</li>
</ul>
<h2>[2.62.36] - 2025-10-23</h2>
<ul>
<li>
<p>Update <code>syft@latest</code> to 1.36.0.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.15.</p>
</li>
</ul>
<h2>[2.62.35] - 2025-10-22</h2>
<ul>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.2.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.108.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.14.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.9.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c5b1b6f479"><code>c5b1b6f</code></a>
Release 2.62.38</li>
<li><a
href="7cd74f6aac"><code>7cd74f6</code></a>
Update <code>coreutils@latest</code> to 0.3.0</li>
<li><a
href="def9901333"><code>def9901</code></a>
Update <code>wasmtime@latest</code> to 38.0.3</li>
<li><a
href="a9d3853729"><code>a9d3853</code></a>
Update coreutils manifest</li>
<li><a
href="958d48b0c9"><code>958d48b</code></a>
Update <code>mise@latest</code> to 2025.10.17</li>
<li><a
href="fb485991fd"><code>fb48599</code></a>
Update <code>cargo-tarpaulin@latest</code> to 0.34.1</li>
<li><a
href="1c7b1d35fc"><code>1c7b1d3</code></a>
Release 2.62.37</li>
<li><a
href="18cba62798"><code>18cba62</code></a>
Update <code>cargo-binstall@latest</code> to 1.15.8</li>
<li><a
href="f3c0c6962a"><code>f3c0c69</code></a>
Update <code>zizmor@latest</code> to 1.16.0</li>
<li><a
href="99fc3e5b1e"><code>99fc3e5</code></a>
Update <code>mise@latest</code> to 2025.10.16</li>
<li>Additional commits viewable in <a
href="e43a5023a7...c5b1b6f479">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.62.33&new-version=2.62.38)](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>
2025-10-27 19:38:20 +03:00
dependabot[bot]
40d3116b2a build(deps): bump bitflags from 2.9.4 to 2.10.0 (#2153)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.4 to
2.10.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.10.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Implement iterator for all named flags by <a
href="https://github.com/ssrlive"><code>@​ssrlive</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/465">bitflags/bitflags#465</a></li>
<li>Depend on serde_core instead of serde by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/467">bitflags/bitflags#467</a></li>
<li>Prepare for 2.10.0 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/468">bitflags/bitflags#468</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ssrlive"><code>@​ssrlive</code></a> made
their first contribution in <a
href="https://redirect.github.com/bitflags/bitflags/pull/465">bitflags/bitflags#465</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0">https://github.com/bitflags/bitflags/compare/2.9.4...2.10.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.10.0</h1>
<h2>What's Changed</h2>
<ul>
<li>Implement iterator for all named flags by <a
href="https://github.com/ssrlive"><code>@​ssrlive</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/465">bitflags/bitflags#465</a></li>
<li>Depend on serde_core instead of serde by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/467">bitflags/bitflags#467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ssrlive"><code>@​ssrlive</code></a> made
their first contribution in <a
href="https://redirect.github.com/bitflags/bitflags/pull/465">bitflags/bitflags#465</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0">https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7cc8595e93"><code>7cc8595</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/468">#468</a>
from bitflags/cargo/2.10.0</li>
<li><a
href="ea9b2f7990"><code>ea9b2f7</code></a>
prepare for 2.10.0 release</li>
<li><a
href="7fdc68c7f5"><code>7fdc68c</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/467">#467</a>
from KodrAus/feat/serde_core</li>
<li><a
href="fdc1d4a371"><code>fdc1d4a</code></a>
depend on serde_core instead of serde</li>
<li><a
href="79225854ca"><code>7922585</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/466">#466</a>
from KodrAus/chore/iter-named-tests</li>
<li><a
href="409666ecc1"><code>409666e</code></a>
rename iter_named to iter_defined_names</li>
<li><a
href="50fab9141c"><code>50fab91</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/465">#465</a>
from ssrlive/main</li>
<li><a
href="f88648983a"><code>f886489</code></a>
Fix bitflags_custom_bits.stderr &amp; bitflags_trait_custom.stderr</li>
<li><a
href="39bd761932"><code>39bd761</code></a>
rename all_named_flags to iter_named</li>
<li><a
href="3e52578f1f"><code>3e52578</code></a>
Implement iterator for all named flags</li>
<li>See full diff in <a
href="https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bitflags&package-manager=cargo&previous-version=2.9.4&new-version=2.10.0)](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: Orhun Parmaksız <orhun@archlinux.org>
2025-10-27 19:06:20 +03:00
dependabot[bot]
d3017046b9 build(deps): bump document-features from 0.2.11 to 0.2.12 (#2152)
Bumps [document-features](https://github.com/slint-ui/document-features)
from 0.2.11 to 0.2.12.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/slint-ui/document-features/blob/master/CHANGELOG.md">document-features's
changelog</a>.</em></p>
<blockquote>
<h2>0.2.12 - 2025-10-24</h2>
<ul>
<li>Update litrs dependency to 1.0.0</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="721e708012"><code>721e708</code></a>
Prepare for release</li>
<li><a
href="21ec1eb99c"><code>21ec1eb</code></a>
Update MSRV</li>
<li><a
href="1c70d0aa83"><code>1c70d0a</code></a>
chore: fix wrong test function name (<a
href="https://redirect.github.com/slint-ui/document-features/issues/35">#35</a>)</li>
<li><a
href="21cdfeccbc"><code>21cdfec</code></a>
Update litrs dependency to v1.0</li>
<li><a
href="bb0dea8b10"><code>bb0dea8</code></a>
Fix typo in CHANGELOG.md</li>
<li>See full diff in <a
href="https://github.com/slint-ui/document-features/compare/v0.2.11...v0.2.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=document-features&package-manager=cargo&previous-version=0.2.11&new-version=0.2.12)](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>
2025-10-27 19:05:01 +03:00
dependabot[bot]
6e5d79747f build(deps): bump indoc from 2.0.6 to 2.0.7 (#2154)
Bumps [indoc](https://github.com/dtolnay/indoc) from 2.0.6 to 2.0.7.
<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.7</h2>
<ul>
<li>Support C-string literals <code>indoc! {c&quot;...&quot;}</code>,
<code>indoc! {cr&quot;...&quot;}</code> (<a
href="https://redirect.github.com/dtolnay/indoc/issues/67">#67</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8d78216b3f"><code>8d78216</code></a>
Release 2.0.7</li>
<li><a
href="23472ff7f3"><code>23472ff</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/indoc/issues/67">#67</a> from
dtolnay/cstring</li>
<li><a
href="8d05562cbe"><code>8d05562</code></a>
Hide C-string tests from old toolchain versions</li>
<li><a
href="7c92efb718"><code>7c92efb</code></a>
Recognize C-string literals</li>
<li><a
href="fe39de460f"><code>fe39de4</code></a>
Generalize Error constructors</li>
<li><a
href="27e015160e"><code>27e0151</code></a>
Add C-string tests</li>
<li><a
href="57f6fbb4da"><code>57f6fbb</code></a>
Sort tests</li>
<li><a
href="170a079558"><code>170a079</code></a>
Raise minimum tested compiler to rust 1.76</li>
<li><a
href="2f6ef0452d"><code>2f6ef04</code></a>
Opt in to generate-macro-expansion when building on docs.rs</li>
<li><a
href="ce1bed41bb"><code>ce1bed4</code></a>
Update ui test suite to nightly-2025-09-12</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/indoc/compare/2.0.6...2.0.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=indoc&package-manager=cargo&previous-version=2.0.6&new-version=2.0.7)](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>
2025-10-27 19:04:16 +03:00
dependabot[bot]
f18154bcfe build(deps): bump clap from 4.5.49 to 4.5.50 (#2155)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.49 to 4.5.50.
<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.50</h2>
<h2>[4.5.50] - 2025-10-20</h2>
<h3>Features</h3>
<ul>
<li>Accept <code>Cow</code> where <code>String</code> and
<code>&amp;str</code> are accepted</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.50] - 2025-10-20</h2>
<h3>Features</h3>
<ul>
<li>Accept <code>Cow</code> where <code>String</code> and
<code>&amp;str</code> are accepted</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d8acd47298"><code>d8acd47</code></a>
chore: Release</li>
<li><a
href="7c2b8d9ad4"><code>7c2b8d9</code></a>
docs: Update changelog</li>
<li><a
href="e69a2ea55b"><code>e69a2ea</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5987">#5987</a>
from mernen/fix-bash-comp-words-loop</li>
<li><a
href="e03cc2e798"><code>e03cc2e</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5988">#5988</a>
from cordx56/fix-builder-custom-version-docs</li>
<li><a
href="5ab2579844"><code>5ab2579</code></a>
fix: Minor fix for builder docs about version</li>
<li><a
href="2f66432721"><code>2f66432</code></a>
fix(complete): Only parse arguments before current</li>
<li><a
href="4d9d2100f7"><code>4d9d210</code></a>
test(complete): Illustrate current behavior in Bash</li>
<li>See full diff in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.49...clap_complete-v4.5.50">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.49&new-version=4.5.50)](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>
2025-10-27 19:03:47 +03:00
dependabot[bot]
1e11ca4536 build(deps): bump unicode-width from 0.2.1 to 0.2.2 (#2141)
Bumps [unicode-width](https://github.com/unicode-rs/unicode-width) from
0.2.1 to 0.2.2.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9d98411769"><code>9d98411</code></a>
Publish 0.2.2 (<a
href="https://redirect.github.com/unicode-rs/unicode-width/issues/79">#79</a>)</li>
<li><a
href="4bba1d1e48"><code>4bba1d1</code></a>
Support Unicode 17 (<a
href="https://redirect.github.com/unicode-rs/unicode-width/issues/75">#75</a>)</li>
<li>See full diff in <a
href="https://github.com/unicode-rs/unicode-width/compare/v0.2.1...v0.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=unicode-width&package-manager=cargo&previous-version=0.2.1&new-version=0.2.2)](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>
2025-10-20 23:43:39 -07:00
dependabot[bot]
fa73ff095d build(deps): bump octocrab from 0.44.1 to 0.47.0 (#2143)
Bumps [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.44.1 to
0.47.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.47.0</h2>
<h3>Added</h3>
<ul>
<li>add <code>immutable</code> Release field (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/806">#806</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>added creating a review (POST
&quot;/repos/{owner}/{repo}/pulls/{pull_number}/reviews&quot;) (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/805">#805</a>)</li>
</ul>
<h2>v0.46.0</h2>
<h3>Fixed</h3>
<ul>
<li>[<strong>breaking</strong>] make CommitAuthor email nullable (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/799">#799</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Expose <code>digest</code> field in Asset model (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/804">#804</a>)</li>
<li>cargo clippy (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/803">#803</a>)</li>
<li>fix doc url for ProjectHandler (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/802">#802</a>)</li>
</ul>
<h2>v0.45.0</h2>
<h3>Added</h3>
<ul>
<li>add <code>redelivery</code> field for hook deliveries (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/797">#797</a>)</li>
<li>added PATCH /user (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/792">#792</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>[<strong>breaking</strong>] change some fields to optional types in
CheckSuite struct (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/784">#784</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>:repos::Commit -&gt; models::commits::Commit (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/781">#781</a>)</li>
<li>cargo clippy --fix (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/783">#783</a>)</li>
<li>cargo clippy --fix (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/774">#774</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.46.0...v0.47.0">0.47.0</a>
- 2025-10-06</h2>
<h3>Added</h3>
<ul>
<li>add <code>immutable</code> Release field (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/806">#806</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>added creating a review (POST
&quot;/repos/{owner}/{repo}/pulls/{pull_number}/reviews&quot;) (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/805">#805</a>)</li>
</ul>
<h2><a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.45.0...v0.46.0">0.46.0</a>
- 2025-09-28</h2>
<h3>Fixed</h3>
<ul>
<li>[<strong>breaking</strong>] make CommitAuthor email nullable (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/799">#799</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Expose <code>digest</code> field in Asset model (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/804">#804</a>)</li>
<li>cargo clippy (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/803">#803</a>)</li>
<li>fix doc url for ProjectHandler (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/802">#802</a>)</li>
</ul>
<h2><a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.44.1...v0.45.0">0.45.0</a>
- 2025-09-14</h2>
<h3>Added</h3>
<ul>
<li>add <code>redelivery</code> field for hook deliveries (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/797">#797</a>)</li>
<li>added PATCH /user (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/792">#792</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>[<strong>breaking</strong>] change some fields to optional types in
CheckSuite struct (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/784">#784</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>:repos::Commit -&gt; models::commits::Commit (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/781">#781</a>)</li>
<li>cargo clippy --fix (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/783">#783</a>)</li>
<li>cargo clippy --fix (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/774">#774</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="73a4dd0b1c"><code>73a4dd0</code></a>
chore: release v0.46.1 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/807">#807</a>)</li>
<li><a
href="0e0e43d8d8"><code>0e0e43d</code></a>
feat: add <code>immutable</code> Release field (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/806">#806</a>)</li>
<li><a
href="eac8ccb6e8"><code>eac8ccb</code></a>
added creating a review (POST
&quot;/repos/{owner}/{repo}/pulls/{pull_number}/revi...</li>
<li><a
href="e37b2c0ea6"><code>e37b2c0</code></a>
chore: release v0.46.0 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/800">#800</a>)</li>
<li><a
href="a6e52f78cb"><code>a6e52f7</code></a>
Expose <code>digest</code> field in Asset model (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/804">#804</a>)</li>
<li><a
href="ed51c79b77"><code>ed51c79</code></a>
cargo clippy (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/803">#803</a>)</li>
<li><a
href="c14cfa4f9a"><code>c14cfa4</code></a>
doc: fix doc url for ProjectHandler (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/802">#802</a>)</li>
<li><a
href="0b57b29106"><code>0b57b29</code></a>
fix!: make CommitAuthor email nullable (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/799">#799</a>)</li>
<li><a
href="c3169920cb"><code>c316992</code></a>
chore: release v0.45.0 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/785">#785</a>)</li>
<li><a
href="1cad4325c7"><code>1cad432</code></a>
feat: add <code>redelivery</code> field for hook deliveries (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/797">#797</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.44.1...v0.47.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=octocrab&package-manager=cargo&previous-version=0.44.1&new-version=0.47.0)](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>
2025-10-20 23:21:52 -07:00
dependabot[bot]
efcc633f72 build(deps): bump clap from 4.5.48 to 4.5.49 (#2147)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.48 to 4.5.49.
<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.49] - 2025-10-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Correctly wrap when ANSI escape codes are
present</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6abe2f8c61"><code>6abe2f8</code></a>
chore: Release</li>
<li><a
href="d5c74542ce"><code>d5c7454</code></a>
docs: Update changelog</li>
<li><a
href="5b2e960267"><code>5b2e960</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5985">#5985</a>
from mernen/bash-cur</li>
<li><a
href="e426f4ee7a"><code>e426f4e</code></a>
fix(complete): Improve handling of current word in Bash</li>
<li><a
href="d5229218e8"><code>d522921</code></a>
test(complete): Demonstrate current behavior</li>
<li><a
href="74072bab6f"><code>74072ba</code></a>
chore(deps): Update compatible (dev) (<a
href="https://redirect.github.com/clap-rs/clap/issues/5983">#5983</a>)</li>
<li>See full diff in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.48...clap_complete-v4.5.49">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.48&new-version=4.5.49)](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>
2025-10-20 20:35:17 +03:00
dependabot[bot]
817895b554 build(deps): bump trybuild from 1.0.111 to 1.0.112 (#2145)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.111 to
1.0.112.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.112</h2>
<ul>
<li>Normalize indentation of consteval notes (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/318">#318</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f3b3d1e2d1"><code>f3b3d1e</code></a>
Release 1.0.112</li>
<li><a
href="579b2c39ad"><code>579b2c3</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/318">#318</a>
from dtolnay/headingnote</li>
<li><a
href="9485845429"><code>9485845</code></a>
Normalize indentation of consteval notes</li>
<li><a
href="6b1de1e13a"><code>6b1de1e</code></a>
Add test of consteval error with notes</li>
<li><a
href="e1d19ae2e9"><code>e1d19ae</code></a>
Raise required compiler to Rust 1.76</li>
<li><a
href="b4a1fc7dd6"><code>b4a1fc7</code></a>
Opt in to generate-macro-expansion when building on docs.rs</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.111...1.0.112">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.111&new-version=1.0.112)](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>
2025-10-20 19:01:08 +03:00
dependabot[bot]
8d715e2e51 build(deps): bump tokio from 1.47.1 to 1.48.0 (#2144)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.47.1 to 1.48.0.
<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.48.0</h2>
<h1>1.48.0 (October 14th, 2025)</h1>
<p>The MSRV is increased to 1.71.</p>
<h3>Added</h3>
<ul>
<li>fs: add <code>File::max_buf_size</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7594">#7594</a>)</li>
<li>io: export <code>Chain</code> of <code>AsyncReadExt::chain</code>
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7599">#7599</a>)</li>
<li>net: add <code>SocketAddr::as_abstract_name</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7491">#7491</a>)</li>
<li>net: add <code>TcpStream::quickack</code> and
<code>TcpStream::set_quickack</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7490">#7490</a>)</li>
<li>net: implement <code>AsRef&lt;Self&gt;</code> for
<code>TcpStream</code> and <code>UnixStream</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7573">#7573</a>)</li>
<li>task: add <code>LocalKey::try_get</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7666">#7666</a>)</li>
<li>task: implement <code>Ord</code> for <code>task::Id</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7530">#7530</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>deps: bump windows-sys to version 0.61 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7645">#7645</a>)</li>
<li>fs: preserve <code>max_buf_size</code> when cloning a
<code>File</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7593">#7593</a>)</li>
<li>macros: suppress <code>clippy::unwrap_in_result</code> in
<code>#[tokio::main]</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7651">#7651</a>)</li>
<li>net: remove <code>PollEvented</code> noise from Debug formats (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7675">#7675</a>)</li>
<li>process: upgrade <code>Command::spawn_with</code> to use
<code>FnOnce</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7511">#7511</a>)</li>
<li>sync: remove inner mutex in <code>SetOnce</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7554">#7554</a>)</li>
<li>sync: use <code>UnsafeCell::get_mut</code> in
<code>Mutex::get_mut</code> and <code>RwLock::get_mut</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7569">#7569</a>)</li>
<li>time: reduce the generated code size of
<code>Timeout&lt;T&gt;::poll</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7535">#7535</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>macros: fix hygiene issue in <code>join!</code> and
<code>try_join!</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7638">#7638</a>)</li>
<li>net: fix copy/paste errors in udp peek methods (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7604">#7604</a>)</li>
<li>process: fix error when runtime is shut down on nightly-2025-10-12
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7672">#7672</a>)</li>
<li>runtime: use release ordering in <code>wake_by_ref()</code> even if
already woken (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7622">#7622</a>)</li>
<li>sync: close the <code>broadcast::Sender</code> in
<code>broadcast::Sender::new()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7629">#7629</a>)</li>
<li>sync: fix implementation of unused <code>RwLock::try_*</code>
methods (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7587">#7587</a>)</li>
</ul>
<h3>Unstable</h3>
<ul>
<li>tokio: use cargo features instead of <code>--cfg</code> flags for
<code>taskdump</code> and <code>io_uring</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7655">#7655</a>,
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7621">#7621</a>)</li>
<li>fs: support <code>io_uring</code> in <code>fs::write</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7567">#7567</a>)</li>
<li>fs: support <code>io_uring</code> with <code>File::open()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7617">#7617</a>)</li>
<li>fs: support <code>io_uring</code> with <code>OpenOptions</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7321">#7321</a>)</li>
<li>macros: add <code>local</code> runtime flavor (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7375">#7375</a>,
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7597">#7597</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>io: clarify the zero capacity case of
<code>AsyncRead::poll_read</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7580">#7580</a>)</li>
<li>io: fix typos in the docs of <code>AsyncFd</code> readiness guards
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7583">#7583</a>)</li>
<li>net: clarify socket gets closed on drop (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7526">#7526</a>)</li>
<li>net: clarify the behavior of <code>UCred::pid()</code> on Cygwin (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7611">#7611</a>)</li>
<li>net: clarify the supported platform of <code>set_reuseport()</code>
and <code>reuseport()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7628">#7628</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="556820ff84"><code>556820f</code></a>
chore: prepare Tokio v1.48.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7677">#7677</a>)</li>
<li><a
href="fd1659a052"><code>fd1659a</code></a>
chore: prepare tokio-macros v2.6.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7676">#7676</a>)</li>
<li><a
href="53e8acac64"><code>53e8aca</code></a>
ci: update nightly version to 2025-10-12 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7670">#7670</a>)</li>
<li><a
href="9e5527d1d5"><code>9e5527d</code></a>
process: fix error when runtime is shut down on nightly-2025-10-12 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7672">#7672</a>)</li>
<li><a
href="25a24de0e6"><code>25a24de</code></a>
net: remove PollEvented noise from Debug formats (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7675">#7675</a>)</li>
<li><a
href="c1fa25f300"><code>c1fa25f</code></a>
task: clarify the behavior of several <code>spawn_local</code> methods
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7669">#7669</a>)</li>
<li><a
href="e7e02fcf0f"><code>e7e02fc</code></a>
fs: use <code>FileOptions</code> inside <code>fs::File</code> to support
uring (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7617">#7617</a>)</li>
<li><a
href="f7a7f62959"><code>f7a7f62</code></a>
ci: remove cargo-deny Unicode-DFS-2016 license exception config (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7619">#7619</a>)</li>
<li><a
href="d1f1499f63"><code>d1f1499</code></a>
tokio: use cargo feature for taskdump support instead of cfg (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7655">#7655</a>)</li>
<li><a
href="ad6f618952"><code>ad6f618</code></a>
runtime: clarify the behavior of <code>Handle::block_on</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7665">#7665</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.48.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.47.1&new-version=1.48.0)](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>
2025-10-20 19:00:53 +03:00
dependabot[bot]
934a54cd67 build(deps): bump taiki-e/install-action from 2.62.28 to 2.62.33 (#2142)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.28 to 2.62.33.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.62.33</h2>
<ul>
<li>Update <code>mise@latest</code> to 2025.10.10.</li>
</ul>
<h2>2.62.32</h2>
<ul>
<li>
<p>Update <code>syft@latest</code> to 1.34.2.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.7.</p>
</li>
</ul>
<h2>2.62.31</h2>
<ul>
<li>
<p>Update <code>protoc@latest</code> to 3.33.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.3.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.34.1.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.9.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.0.</p>
</li>
</ul>
<h2>2.62.30</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.6.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.15.2.</p>
</li>
</ul>
<h2>2.62.29</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.15.1.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.106.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.8.</p>
</li>
<li>
<p>Update <code>ubi@latest</code> to 0.8.1.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.8.</p>
</li>
<li>
<p>Update <code>ubi@latest</code> to 0.8.2.</p>
</li>
<li>
<p>Update <code>cargo-tarpaulin@latest</code> to 0.34.0.</p>
</li>
<li>
<p>Update <code>cargo-auditable@latest</code> to 0.7.1.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.4.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.11.</p>
</li>
</ul>
<h2>[2.62.33] - 2025-10-17</h2>
<ul>
<li>Update <code>mise@latest</code> to 2025.10.10.</li>
</ul>
<h2>[2.62.32] - 2025-10-16</h2>
<ul>
<li>
<p>Update <code>syft@latest</code> to 1.34.2.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.7.</p>
</li>
</ul>
<h2>[2.62.31] - 2025-10-16</h2>
<ul>
<li>
<p>Update <code>protoc@latest</code> to 3.33.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.3.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.34.1.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.9.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.0.</p>
</li>
</ul>
<h2>[2.62.30] - 2025-10-15</h2>
<ul>
<li>Update <code>vacuum@latest</code> to 0.18.6.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e43a5023a7"><code>e43a502</code></a>
Release 2.62.33</li>
<li><a
href="2ae4258c3d"><code>2ae4258</code></a>
Update <code>mise@latest</code> to 2025.10.10</li>
<li><a
href="e79914c740"><code>e79914c</code></a>
Release 2.62.32</li>
<li><a
href="40168eab5f"><code>40168ea</code></a>
Update <code>syft@latest</code> to 1.34.2</li>
<li><a
href="6d89b16c49"><code>6d89b16</code></a>
Update <code>vacuum@latest</code> to 0.18.7</li>
<li><a
href="0005e0116e"><code>0005e01</code></a>
Release 2.62.31</li>
<li><a
href="6936d999d9"><code>6936d99</code></a>
Update <code>protoc@latest</code> to 3.33.0</li>
<li><a
href="ac7ad6efa1"><code>ac7ad6e</code></a>
Update <code>uv@latest</code> to 0.9.3</li>
<li><a
href="005833aaf1"><code>005833a</code></a>
Update <code>syft@latest</code> to 1.34.1</li>
<li><a
href="2b32ff6f3d"><code>2b32ff6</code></a>
Update <code>mise@latest</code> to 2025.10.9</li>
<li>Additional commits viewable in <a
href="e7ef886cf8...e43a5023a7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.62.28&new-version=2.62.33)](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: Orhun Parmaksız <orhun@archlinux.org>
2025-10-20 19:00:14 +03:00
dependabot[bot]
23ab1f5a68 build(deps): bump rust-lang/crates-io-auth-action from 1.0.1 to 1.0.2 (#2146)
Bumps
[rust-lang/crates-io-auth-action](https://github.com/rust-lang/crates-io-auth-action)
from 1.0.1 to 1.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/crates-io-auth-action/releases">rust-lang/crates-io-auth-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>update dependencies</li>
<li>contributing: fix header levels by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/37">rust-lang/crates-io-auth-action#37</a></li>
<li>document how to publish a new version by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/38">rust-lang/crates-io-auth-action#38</a></li>
<li>disable node renovate updates by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/48">rust-lang/crates-io-auth-action#48</a>
and <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/49">rust-lang/crates-io-auth-action#49</a></li>
<li>fix zizmor lint by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/68">rust-lang/crates-io-auth-action#68</a></li>
<li>ci: Skip fragment check for Zulip client-side routing links by <a
href="https://github.com/kingsword09"><code>@​kingsword09</code></a> in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/80">rust-lang/crates-io-auth-action#80</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/kingsword09"><code>@​kingsword09</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/80">rust-lang/crates-io-auth-action#80</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/crates-io-auth-action/compare/v1.0.1...v1.0.2">https://github.com/rust-lang/crates-io-auth-action/compare/v1.0.1...v1.0.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="041cce5b4b"><code>041cce5</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/86">#86</a>
from rust-lang/update-dependencies</li>
<li><a
href="0400f617d6"><code>0400f61</code></a>
update dependencies</li>
<li><a
href="6a0951d3a2"><code>6a0951d</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/84">#84</a>
from rust-lang/renovate/github-actions</li>
<li><a
href="be8f8cfa3c"><code>be8f8cf</code></a>
chore(deps): pin dependencies</li>
<li><a
href="deea6c8fa2"><code>deea6c8</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/85">#85</a>
from rust-lang/remove-yaml-anchor-in-github-actions</li>
<li><a
href="f0eb76abb5"><code>f0eb76a</code></a>
remove yaml anchor in github actions</li>
<li><a
href="7d0a98d6f1"><code>7d0a98d</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/83">#83</a>
from rust-lang/fix-renovate-github-actions-update</li>
<li><a
href="52d74a7cdc"><code>52d74a7</code></a>
fix renovate github actions update</li>
<li><a
href="6db1cc5747"><code>6db1cc5</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/82">#82</a>
from rust-lang/update-pnpm-to-10-18-3</li>
<li><a
href="231886e9ea"><code>231886e</code></a>
update pnpm to 10.18.3</li>
<li>Additional commits viewable in <a
href="e919bc7605...041cce5b4b">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust-lang/crates-io-auth-action&package-manager=github_actions&previous-version=1.0.1&new-version=1.0.2)](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>
2025-10-20 18:58:48 +03:00
dependabot[bot]
f50fc86b84 build(deps): bump lru from 0.16.1 to 0.16.2 (#2140)
Bumps [lru](https://github.com/jeromefroe/lru-rs) from 0.16.1 to 0.16.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md">lru's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/jeromefroe/lru-rs/tree/0.16.2">v0.16.2</a> -
2025-10-14</h2>
<ul>
<li>Upgrade hashbrown dependency to 0.16.0.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1f843ded0"><code>c1f843d</code></a>
Merge pull request <a
href="https://redirect.github.com/jeromefroe/lru-rs/issues/223">#223</a>
from jeromefroe/jerome/prepare-0-16-2-release</li>
<li><a
href="fc4f30953e"><code>fc4f309</code></a>
Prepare 0.16.2 release</li>
<li><a
href="e91ea2bd85"><code>e91ea2b</code></a>
Merge pull request <a
href="https://redirect.github.com/jeromefroe/lru-rs/issues/222">#222</a>
from torokati44/hashbrown-0.16</li>
<li><a
href="90d05feff3"><code>90d05fe</code></a>
Update hashbrown to 0.16</li>
<li>See full diff in <a
href="https://github.com/jeromefroe/lru-rs/compare/0.16.1...0.16.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lru&package-manager=cargo&previous-version=0.16.1&new-version=0.16.2)](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>
2025-10-20 18:57:47 +03:00
dependabot[bot]
71c6ad9de6 build(deps): bump crate-ci/typos from 1.37.2 to 1.38.1 (#2134)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.37.2 to
1.38.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.38.1</h2>
<h2>[1.38.1] - 2025-10-07</h2>
<h3>Fixes</h3>
<ul>
<li>Ignore common golang identifiers</li>
</ul>
<h2>v1.38.0</h2>
<h2>[1.38.0] - 2025-10-06</h2>
<h3>Features</h3>
<ul>
<li>Update type list</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>typ</code></li>
<li>Consistently error on unused config fields</li>
</ul>
<h2>v1.37.3</h2>
<h2>[1.37.3] - 2025-10-06</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>PN</code> for <code>bitbake</code> file
types</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="https://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="https://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.38.1] - 2025-10-07</h2>
<h3>Fixes</h3>
<ul>
<li>Ignore common golang identifiers</li>
</ul>
<h2>[1.38.0] - 2025-10-06</h2>
<h3>Features</h3>
<ul>
<li>Update type list</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>typ</code></li>
<li>Consistently error on unused config fields</li>
</ul>
<h2>[1.37.3] - 2025-10-06</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>PN</code> for <code>bitbake</code> file
types</li>
</ul>
<h2>[1.37.2] - 2025-10-03</h2>
<h3>Fixes</h3>
<ul>
<li>Don't suggest <code>diagnostic</code> for <code>diagnotics</code>,
preferring <code>diagnostics</code></li>
</ul>
<h2>[1.37.1] - 2025-10-01</h2>
<h3>Fixes</h3>
<ul>
<li>Don't offer corrections to <code>&quot;&quot;</code></li>
</ul>
<h2>[1.37.0] - 2025-09-30</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1370">September
2025</a> changes</li>
<li>Pull in other dictionary updates</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="80c8a4945e"><code>80c8a49</code></a>
chore: Release</li>
<li><a
href="c1008ce1b6"><code>c1008ce</code></a>
docs: Update changelog</li>
<li><a
href="62a3b5083a"><code>62a3b50</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1398">#1398</a>
from ccoveille-forks/go-exclusions</li>
<li><a
href="e6bedbde77"><code>e6bedbd</code></a>
fix(config): Add some Go exclusions</li>
<li><a
href="90cacd60e8"><code>90cacd6</code></a>
docs(ref): Speak to glob ambiguity</li>
<li><a
href="b81b12ea1b"><code>b81b12e</code></a>
docs(ref): Clarify directories are not spell checked</li>
<li><a
href="eaf25df994"><code>eaf25df</code></a>
docs(ref): Speak to locale's behavior</li>
<li><a
href="a9735e2e14"><code>a9735e2</code></a>
docs(ref): Provide identifier/word config examples</li>
<li><a
href="3c14191fcc"><code>3c14191</code></a>
docs(ref): Talk about include lists</li>
<li><a
href="d0f81dc972"><code>d0f81dc</code></a>
docs(ref): Re-organize help more like cargo</li>
<li>Additional commits viewable in <a
href="7436548694...80c8a4945e">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crate-ci/typos&package-manager=github_actions&previous-version=1.37.2&new-version=1.38.1)](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: Orhun Parmaksız <orhun@archlinux.org>
2025-10-14 07:38:08 +03:00
dependabot[bot]
89a9fa1cfd build(deps): bump taiki-e/install-action from 2.62.21 to 2.62.28 (#2132)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.21 to 2.62.28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.62.28</h2>
<ul>
<li>
<p>Update <code>release-plz@latest</code> to 0.3.148.</p>
</li>
<li>
<p>Update <code>cargo-sort@latest</code> to 2.0.2.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.7.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.2.</p>
</li>
<li>
<p>Update <code>sccache@latest</code> to 0.11.0.</p>
</li>
</ul>
<h2>2.62.27</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.21.</li>
</ul>
<h2>2.62.26</h2>
<ul>
<li>
<p>Update <code>trivy@latest</code> to 0.67.2.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.4.1.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.7.</p>
</li>
</ul>
<h2>2.62.25</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.9.1.</p>
</li>
<li>
<p>Update <code>trivy@latest</code> to 0.67.1.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.3.3.</p>
</li>
</ul>
<h2>2.62.24</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.6.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.0.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.38.1.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 37.0.2.</p>
</li>
<li>
<p>Update <code>cargo-dinghy@latest</code> to 0.8.2.</p>
</li>
</ul>
<h2>2.62.23</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.5.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.8.24.</p>
</li>
</ul>
<h2>2.62.22</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.38.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.4.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<ul>
<li>Update <code>ubi@latest</code> to 0.8.1.</li>
</ul>
<h2>[2.62.28] - 2025-10-11</h2>
<ul>
<li>
<p>Update <code>release-plz@latest</code> to 0.3.148.</p>
</li>
<li>
<p>Update <code>cargo-sort@latest</code> to 2.0.2.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.7.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.2.</p>
</li>
<li>
<p>Update <code>sccache@latest</code> to 0.11.0.</p>
</li>
</ul>
<h2>[2.62.27] - 2025-10-10</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.21.</li>
</ul>
<h2>[2.62.26] - 2025-10-10</h2>
<ul>
<li>
<p>Update <code>trivy@latest</code> to 0.67.2.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.4.1.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.7.</p>
</li>
</ul>
<h2>[2.62.25] - 2025-10-10</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.9.1.</p>
</li>
<li>
<p>Update <code>trivy@latest</code> to 0.67.1.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.3.3.</p>
</li>
</ul>
<h2>[2.62.24] - 2025-10-08</h2>
<ul>
<li>Update <code>mise@latest</code> to 2025.10.6.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e7ef886cf8"><code>e7ef886</code></a>
Release 2.62.28</li>
<li><a
href="c493876e9d"><code>c493876</code></a>
Update cargo-sort manifest</li>
<li><a
href="acf024d407"><code>acf024d</code></a>
ci: Mark cargo-sort as glibc_pre_2_34_incompat</li>
<li><a
href="ec66e446df"><code>ec66e44</code></a>
Update <code>release-plz@latest</code> to 0.3.148</li>
<li><a
href="a9a6260eac"><code>a9a6260</code></a>
Update <code>cargo-sort@latest</code> to 2.0.2</li>
<li><a
href="3c80d80324"><code>3c80d80</code></a>
Update <code>cargo-binstall@latest</code> to 1.15.7</li>
<li><a
href="4830d35beb"><code>4830d35</code></a>
codegen: Allow lacking x86_64_macos when aarch64_macos is available</li>
<li><a
href="3c7706401f"><code>3c77064</code></a>
ci: Test macos-15-intel</li>
<li><a
href="7d66b55c1c"><code>7d66b55</code></a>
Update <code>uv@latest</code> to 0.9.2</li>
<li><a
href="bf8fb45a9e"><code>bf8fb45</code></a>
Update <code>sccache@latest</code> to 0.11.0</li>
<li>Additional commits viewable in <a
href="522492a8c1...e7ef886cf8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.62.21&new-version=2.62.28)](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>
2025-10-14 07:37:21 +03:00
dependabot[bot]
b176d04e59 build(deps): bump release-plz/action from 0.5.117 to 0.5.118 (#2133)
Bumps [release-plz/action](https://github.com/release-plz/action) from
0.5.117 to 0.5.118.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/release-plz/action/releases">release-plz/action's
releases</a>.</em></p>
<blockquote>
<h2>v0.5.118</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.148 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/224">release-plz/action#224</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.118">https://github.com/release-plz/action/compare/v0.5...v0.5.118</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d529f731ae"><code>d529f73</code></a>
Update to 0.3.148 (<a
href="https://redirect.github.com/release-plz/action/issues/224">#224</a>)</li>
<li>See full diff in <a
href="acb9246af4...d529f731ae">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=release-plz/action&package-manager=github_actions&previous-version=0.5.117&new-version=0.5.118)](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>
2025-10-14 07:36:44 +03:00
Orhun Parmaksız
8e5151f83d docs(rect): fix typo in the Rect::outer function comments (#2123) 2025-10-07 10:49:57 +03:00
Jagoda Estera Ślązak
f8b0594363 docs: fix typos (#2129)
This fixes the pipeline after bumping typos.
2025-10-07 10:12:26 +03:00
dependabot[bot]
f764546ece build(deps): bump serde_json from 1.0.143 to 1.0.145 (#2125)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.143 to
1.0.145.
<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.145</h2>
<ul>
<li>Raise serde version requirement to &gt;=1.0.220</li>
</ul>
<h2>v1.0.144</h2>
<ul>
<li>Switch serde dependency to serde_core (<a
href="https://redirect.github.com/serde-rs/json/issues/1285">#1285</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="efa66e3a1d"><code>efa66e3</code></a>
Release 1.0.145</li>
<li><a
href="23679e2b9d"><code>23679e2</code></a>
Add serde version constraint</li>
<li><a
href="fc27bafbf7"><code>fc27baf</code></a>
Release 1.0.144</li>
<li><a
href="caef3c6ea6"><code>caef3c6</code></a>
Ignore uninlined_format_args pedantic clippy lint</li>
<li><a
href="81ba3aaaff"><code>81ba3aa</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1285">#1285</a>
from dtolnay/serdecore</li>
<li><a
href="d21e8ce7a7"><code>d21e8ce</code></a>
Switch serde dependency to serde_core</li>
<li><a
href="6beb6cd596"><code>6beb6cd</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1286">#1286</a>
from dtolnay/up</li>
<li><a
href="1dbc803749"><code>1dbc803</code></a>
Raise required compiler to Rust 1.61</li>
<li><a
href="0bf5d87003"><code>0bf5d87</code></a>
Enforce trybuild &gt;= 1.0.108</li>
<li><a
href="d12e943590"><code>d12e943</code></a>
Update actions/checkout@v4 -&gt; v5</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.143...v1.0.145">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.143&new-version=1.0.145)](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>
2025-10-06 19:55:32 +03:00
dependabot[bot]
281459aeae build(deps): bump anstyle from 1.0.12 to 1.0.13 (#2126)
Bumps [anstyle](https://github.com/rust-cli/anstyle) from 1.0.12 to
1.0.13.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="14dd743496"><code>14dd743</code></a>
chore: Release</li>
<li><a
href="2baaec7772"><code>2baaec7</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/271">#271</a>
from epage/template</li>
<li><a
href="5d7026ccf0"><code>5d7026c</code></a>
chore: Update from _rust template</li>
<li><a
href="f218f4ae7a"><code>f218f4a</code></a>
docs(docsrs): Update to new doc_cfg feature name</li>
<li><a
href="676066ac62"><code>676066a</code></a>
chore(deps): Update Rust Stable to v1.90 (<a
href="https://redirect.github.com/rust-cli/anstyle/issues/30">#30</a>)</li>
<li><a
href="3bfcdc25c2"><code>3bfcdc2</code></a>
chore: Add license for libfuzzer</li>
<li><a
href="5afd57342b"><code>5afd573</code></a>
chore(ci): Fix env variable syntax</li>
<li><a
href="addd8718e9"><code>addd871</code></a>
chore(ci): Reduce cached content</li>
<li><a
href="a6942ae749"><code>a6942ae</code></a>
docs: Switch links to https</li>
<li><a
href="5fb0a8e7f3"><code>5fb0a8e</code></a>
chore(deps): Update Rust Stable to v1.89 (<a
href="https://redirect.github.com/rust-cli/anstyle/issues/29">#29</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-cli/anstyle/compare/v1.0.12...v1.0.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anstyle&package-manager=cargo&previous-version=1.0.12&new-version=1.0.13)](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>
2025-10-06 19:55:10 +03:00
dependabot[bot]
0ef33d1318 build(deps): bump crate-ci/typos from 1.36.3 to 1.37.2 (#2127)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.36.3 to
1.37.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.37.2</h2>
<h2>[1.37.2] - 2025-10-03</h2>
<h3>Fixes</h3>
<ul>
<li>Don't suggest <code>diagnostic</code> for <code>diagnotics</code>,
preferring <code>diagnostics</code></li>
</ul>
<h2>v1.37.1</h2>
<h2>[1.37.1] - 2025-10-01</h2>
<h3>Fixes</h3>
<ul>
<li>Don't offer corrections to <code>&quot;&quot;</code></li>
</ul>
<h2>v1.37.0</h2>
<h2>[1.37.0] - 2025-09-30</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1370">September
2025</a> changes</li>
<li>Pull in other dictionary updates</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="https://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="https://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.37.2] - 2025-10-03</h2>
<h3>Fixes</h3>
<ul>
<li>Don't suggest <code>diagnostic</code> for <code>diagnotics</code>,
preferring <code>diagnostics</code></li>
</ul>
<h2>[1.37.1] - 2025-10-01</h2>
<h3>Fixes</h3>
<ul>
<li>Don't offer corrections to <code>&quot;&quot;</code></li>
</ul>
<h2>[1.37.0] - 2025-09-30</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1370">September
2025</a> changes</li>
<li>Pull in other dictionary updates</li>
</ul>
<h2>[1.36.3] - 2025-09-25</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>analysises</code></li>
</ul>
<h2>[1.36.2] - 2025-09-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix regression from 1.36.1 when rendering an error for a line with
invalid UTF-8</li>
</ul>
<h2>[1.36.1] - 2025-09-03</h2>
<h3>Fixes</h3>
<ul>
<li>Replaced the error rendering for various quality of life
improvements</li>
</ul>
<h2>[1.36.0] - 2025-09-02</h2>
<h3>Features</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7436548694"><code>7436548</code></a>
chore: Release</li>
<li><a
href="1823e2b025"><code>1823e2b</code></a>
docs: Update changelog</li>
<li><a
href="f0ee432398"><code>f0ee432</code></a>
chore: Release</li>
<li><a
href="c29d486d28"><code>c29d486</code></a>
chore: Release</li>
<li><a
href="38f26066b2"><code>38f2606</code></a>
chore: Release</li>
<li><a
href="e8116273bc"><code>e811627</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1391">#1391</a>
from epage/corrections</li>
<li><a
href="89bd858038"><code>89bd858</code></a>
fix(dict): Remove correction to focus on nearest option</li>
<li><a
href="ac57a77c74"><code>ac57a77</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1390">#1390</a>
from epage/update</li>
<li><a
href="5f38952876"><code>5f38952</code></a>
style: Make clippy happy</li>
<li><a
href="17f77b960b"><code>17f77b9</code></a>
chore: Update dependencies</li>
<li>Additional commits viewable in <a
href="0c17dabcee...7436548694">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crate-ci/typos&package-manager=github_actions&previous-version=1.36.3&new-version=1.37.2)](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>
2025-10-06 19:54:32 +03:00
dependabot[bot]
928ddee9f1 build(deps): bump taiki-e/install-action from 2.62.13 to 2.62.21 (#2128)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.13 to 2.62.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.62.21</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.3.</p>
</li>
<li>
<p>Update <code>cargo-tarpaulin@latest</code> to 0.33.0.</p>
</li>
</ul>
<h2>2.62.20</h2>
<ul>
<li>Update <code>uv@latest</code> to 0.8.23.</li>
</ul>
<h2>2.62.19</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.20.</li>
</ul>
<h2>2.62.18</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.2.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.37.2.</p>
</li>
</ul>
<h2>2.62.17</h2>
<ul>
<li>Update <code>cargo-nextest@latest</code> to 0.9.105.</li>
</ul>
<h2>2.62.16</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.0.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.37.1.</p>
</li>
</ul>
<h2>2.62.15</h2>
<ul>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.2.3.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.37.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.25.</p>
</li>
</ul>
<h2>2.62.14</h2>
<ul>
<li>
<p>Update <code>trivy@latest</code> to 0.67.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.24.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<h2>[2.62.21] - 2025-10-06</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.3.</p>
</li>
<li>
<p>Update <code>cargo-tarpaulin@latest</code> to 0.33.0.</p>
</li>
</ul>
<h2>[2.62.20] - 2025-10-05</h2>
<ul>
<li>Update <code>uv@latest</code> to 0.8.23.</li>
</ul>
<h2>[2.62.19] - 2025-10-04</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.20.</li>
</ul>
<h2>[2.62.18] - 2025-10-04</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.2.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.37.2.</p>
</li>
</ul>
<h2>[2.62.17] - 2025-10-03</h2>
<ul>
<li>Update <code>cargo-nextest@latest</code> to 0.9.105.</li>
</ul>
<h2>[2.62.16] - 2025-10-02</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.0.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.37.1.</p>
</li>
</ul>
<h2>[2.62.15] - 2025-10-01</h2>
<ul>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.2.3.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.37.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.25.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="522492a8c1"><code>522492a</code></a>
Release 2.62.21</li>
<li><a
href="3a71859bab"><code>3a71859</code></a>
Update <code>mise@latest</code> to 2025.10.3</li>
<li><a
href="8df25fe764"><code>8df25fe</code></a>
Update <code>cargo-tarpaulin@latest</code> to 0.33.0</li>
<li><a
href="f355b1dcaf"><code>f355b1d</code></a>
Release 2.62.20</li>
<li><a
href="d839a0e7f9"><code>d839a0e</code></a>
Update <code>uv@latest</code> to 0.8.23</li>
<li><a
href="9f532f95f2"><code>9f532f9</code></a>
Release 2.62.19</li>
<li><a
href="279b968aa6"><code>279b968</code></a>
Update <code>cargo-llvm-cov@latest</code> to 0.6.20</li>
<li><a
href="e825cea3ae"><code>e825cea</code></a>
Release 2.62.18</li>
<li><a
href="0204df0e22"><code>0204df0</code></a>
Update changelog</li>
<li><a
href="5767aec4bd"><code>5767aec</code></a>
Update <code>mise@latest</code> to 2025.10.2</li>
<li>Additional commits viewable in <a
href="d0f4f69b07...522492a8c1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.62.13&new-version=2.62.21)](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>
2025-10-06 19:49:23 +03:00
Orhun Parmaksız
297d264c6b chore: update maintainers (#2122) 2025-10-05 12:07:06 -07:00
Marco Ieni
2b0a044ced fix(ci): add contents write permission to release-plz PR (#2119)
https://release-plz.dev/docs/github/quickstart#3-setup-the-workflow

Fixes https://github.com/release-plz/release-plz/issues/2439
2025-10-01 12:43:59 -07:00
Orhun Parmaksız
cace1e099c revert(release): prepare for beta release (#2022) (#2117)
This reverts commit 5ae224b244 so that
`release-plz` is being triggered again.

See https://github.com/ratatui/ratatui/pull/2022#issuecomment-3349094310
for rationale.

<!-- Please read CONTRIBUTING.md before submitting any pull request. -->
2025-10-01 10:51:06 +03:00
Orhun Parmaksız
200b217722 docs(examples): add VHS tapes and docs for widget examples (#2114)
fixes #1982

Later on I'll figure out an easy way to regenerate this in the CI and
possibly do the same for the app examples' VHS tapes. That's why I
haven't added a script or mentioned anything in the docs yet (hint:
#1721)

---------

Co-authored-by: Jagoda Estera Ślązak <128227338+j-g00da@users.noreply.github.com>
2025-09-30 22:22:30 +03:00
dependabot[bot]
849f4badbf build(deps): bump crate-ci/typos from 1.36.2 to 1.36.3 (#2115)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.36.2 to
1.36.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.36.3</h2>
<h2>[1.36.3] - 2025-09-25</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>analysises</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.36.3] - 2025-09-25</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>analysises</code></li>
</ul>
<h2>[1.36.2] - 2025-09-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix regression from 1.36.1 when rendering an error for a line with
invalid UTF-8</li>
</ul>
<h2>[1.36.1] - 2025-09-03</h2>
<h3>Fixes</h3>
<ul>
<li>Replaced the error rendering for various quality of life
improvements</li>
</ul>
<h2>[1.36.0] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1345">August
2025</a> changes</li>
</ul>
<h2>[1.35.8] - 2025-09-02</h2>
<h2>[1.35.7] - 2025-08-29</h2>
<h3>Documentation</h3>
<ul>
<li>Expand PyPI metadata</li>
</ul>
<h2>[1.35.6] - 2025-08-28</h2>
<h3>Fixes</h3>
<ul>
<li>Track <code>go.mod</code> as a golang file (regression from
1.13.21)</li>
</ul>
<h2>[1.35.5] - 2025-08-18</h2>
<h3>Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0c17dabcee"><code>0c17dab</code></a>
chore: Release</li>
<li><a
href="d4a3b7b012"><code>d4a3b7b</code></a>
docs: Update changelog</li>
<li><a
href="8feb042263"><code>8feb042</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1379">#1379</a>
from epage/dict</li>
<li><a
href="6995b89f82"><code>6995b89</code></a>
fix(dict): Don't correct too analysises</li>
<li><a
href="87d09ddc37"><code>87d09dd</code></a>
fix(codespell): Update to 2f3751e</li>
<li><a
href="5e1db27ee9"><code>5e1db27</code></a>
docs(readme): Specify --locked</li>
<li><a
href="2abc5d928a"><code>2abc5d9</code></a>
chore(deps): Update Rust Stable to v1.90 (<a
href="https://redirect.github.com/crate-ci/typos/issues/1375">#1375</a>)</li>
<li>See full diff in <a
href="85f62a8a84...0c17dabcee">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crate-ci/typos&package-manager=github_actions&previous-version=1.36.2&new-version=1.36.3)](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>
2025-09-29 22:22:28 -07:00
Blaeriz
9a930a6e99 docs(terminal): Made usage of Terminal::get_frame() clearer (#2071)
Closes : https://github.com/ratatui/ratatui/issues/1200

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-09-30 07:30:42 +03:00
dependabot[bot]
08afbeef39 build(deps): bump anstyle from 1.0.11 to 1.0.12 (#2112)
Bumps [anstyle](https://github.com/rust-cli/anstyle) from 1.0.11 to
1.0.12.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2a2bebb199"><code>2a2bebb</code></a>
chore: Release</li>
<li><a
href="98b79906a3"><code>98b7990</code></a>
docs: Update changelog</li>
<li><a
href="f28db2de10"><code>f28db2d</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/269">#269</a>
from Muscraft/no-leading-zero</li>
<li><a
href="20258de73f"><code>20258de</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/270">#270</a>
from Muscraft/coverage-rustfmt</li>
<li><a
href="b8a3a15f0b"><code>b8a3a15</code></a>
fix: Ensuse rustfmt is installed for coverage</li>
<li><a
href="ba45662034"><code>ba45662</code></a>
fix: Don't add leading zero to single digit ansi 256</li>
<li><a
href="82b1c6c433"><code>82b1c6c</code></a>
test: Add a test for leading zeros</li>
<li><a
href="d6c494232b"><code>d6c4942</code></a>
chore(deps): Update Rust Stable to v1.90 (<a
href="https://redirect.github.com/rust-cli/anstyle/issues/268">#268</a>)</li>
<li><a
href="d90a7bcb14"><code>d90a7bc</code></a>
style: Fix rustc warning</li>
<li><a
href="942f283356"><code>942f283</code></a>
chore: Release</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-cli/anstyle/compare/v1.0.11...v1.0.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anstyle&package-manager=cargo&previous-version=1.0.11&new-version=1.0.12)](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: Orhun Parmaksız <orhun@archlinux.org>
2025-09-30 07:29:51 +03:00
dependabot[bot]
424fcbf679 build(deps): bump line-clipping from 0.3.3 to 0.3.4 (#2111)
Bumps [line-clipping](https://github.com/joshka/line-clipping) from
0.3.3 to 0.3.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/joshka/line-clipping/releases">line-clipping's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.4</h2>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/17">#17</a>)</li>
<li><em>(deps)</em> bump actions/checkout in the github-actions group
(<a
href="https://redirect.github.com/joshka/line-clipping/pull/16">#16</a>)</li>
<li><em>(deps)</em> bump rstest in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/14">#14</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/joshka/line-clipping/blob/main/CHANGELOG.md">line-clipping's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/joshka/line-clipping/compare/v0.3.3...v0.3.4">0.3.4</a>
- 2025-09-28</h2>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/17">#17</a>)</li>
<li><em>(deps)</em> bump actions/checkout in the github-actions group
(<a
href="https://redirect.github.com/joshka/line-clipping/pull/16">#16</a>)</li>
<li><em>(deps)</em> bump rstest in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/14">#14</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5394ebf7b1"><code>5394ebf</code></a>
chore: release v0.3.4 (<a
href="https://redirect.github.com/joshka/line-clipping/issues/15">#15</a>)</li>
<li><a
href="f30cb0c44f"><code>f30cb0c</code></a>
build(deps): bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/issues/17">#17</a>)</li>
<li><a
href="c403f01190"><code>c403f01</code></a>
build(deps): bump actions/checkout in the github-actions group (<a
href="https://redirect.github.com/joshka/line-clipping/issues/16">#16</a>)</li>
<li><a
href="ce1e44f28a"><code>ce1e44f</code></a>
build(deps): bump rstest in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/issues/14">#14</a>)</li>
<li>See full diff in <a
href="https://github.com/joshka/line-clipping/compare/v0.3.3...v0.3.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=line-clipping&package-manager=cargo&previous-version=0.3.3&new-version=0.3.4)](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: Orhun Parmaksız <orhun@archlinux.org>
2025-09-30 07:27:44 +03:00
dependabot[bot]
442fb54ace build(deps): bump lru from 0.16.0 to 0.16.1 (#2109)
Bumps [lru](https://github.com/jeromefroe/lru-rs) from 0.16.0 to 0.16.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md">lru's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/jeromefroe/lru-rs/tree/0.16.1">v0.16.1</a> -
2025-09-08</h2>
<ul>
<li>Fix <code>Clone</code> for unbounded cache.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c699209232"><code>c699209</code></a>
Merge pull request <a
href="https://redirect.github.com/jeromefroe/lru-rs/issues/220">#220</a>
from jeromefroe/jerome/prepare-0-16-1-release</li>
<li><a
href="2bd8207030"><code>2bd8207</code></a>
Prepare 0.16.1 release</li>
<li><a
href="1b21bf1c59"><code>1b21bf1</code></a>
Merge pull request <a
href="https://redirect.github.com/jeromefroe/lru-rs/issues/219">#219</a>
from wqfish/bk</li>
<li><a
href="3ec42b6369"><code>3ec42b6</code></a>
Fix clone implementation for unbounded cache</li>
<li>See full diff in <a
href="https://github.com/jeromefroe/lru-rs/compare/0.16.0...0.16.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lru&package-manager=cargo&previous-version=0.16.0&new-version=0.16.1)](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>
2025-09-30 07:23:10 +03:00
dependabot[bot]
6fb2ec1753 build(deps): bump thiserror from 2.0.16 to 2.0.17 (#2110)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 2.0.16 to
2.0.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/thiserror/releases">thiserror's
releases</a>.</em></p>
<blockquote>
<h2>2.0.17</h2>
<ul>
<li>Use differently named __private module per patch release (<a
href="https://redirect.github.com/dtolnay/thiserror/issues/434">#434</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="72ae716e6d"><code>72ae716</code></a>
Release 2.0.17</li>
<li><a
href="599fdce83a"><code>599fdce</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/thiserror/issues/434">#434</a>
from dtolnay/private</li>
<li><a
href="9ec05f6b38"><code>9ec05f6</code></a>
Use differently named __private module per patch release</li>
<li><a
href="d2c492b549"><code>d2c492b</code></a>
Raise minimum tested compiler to rust 1.76</li>
<li><a
href="fc3ab9501d"><code>fc3ab95</code></a>
Opt in to generate-macro-expansion when building on docs.rs</li>
<li><a
href="819fe29dbb"><code>819fe29</code></a>
Update ui test suite to nightly-2025-09-12</li>
<li><a
href="259f48c549"><code>259f48c</code></a>
Enforce trybuild &gt;= 1.0.108</li>
<li><a
href="470e6a681c"><code>470e6a6</code></a>
Update ui test suite to nightly-2025-08-24</li>
<li><a
href="544e191e6e"><code>544e191</code></a>
Update actions/checkout@v4 -&gt; v5</li>
<li><a
href="cbc1ebad3e"><code>cbc1eba</code></a>
Delete duplicate cap-lints flag from build script</li>
<li>See full diff in <a
href="https://github.com/dtolnay/thiserror/compare/2.0.16...2.0.17">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=thiserror&package-manager=cargo&previous-version=2.0.16&new-version=2.0.17)](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>
2025-09-30 07:22:52 +03:00
dependabot[bot]
8a5fbd3c58 build(deps): bump serde from 1.0.219 to 1.0.228 (#2113)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.219 to
1.0.228.
<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.228</h2>
<ul>
<li>Allow building documentation with
<code>RUSTDOCFLAGS='--cfg=docsrs'</code> set for the whole dependency
graph (<a
href="https://redirect.github.com/serde-rs/serde/issues/2995">#2995</a>)</li>
</ul>
<h2>v1.0.227</h2>
<ul>
<li>Documentation improvements (<a
href="https://redirect.github.com/serde-rs/serde/issues/2991">#2991</a>)</li>
</ul>
<h2>v1.0.226</h2>
<ul>
<li>Deduplicate variant matching logic inside generated Deserialize impl
for adjacently tagged enums (<a
href="https://redirect.github.com/serde-rs/serde/issues/2935">#2935</a>,
thanks <a
href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
</ul>
<h2>v1.0.225</h2>
<ul>
<li>Avoid triggering a deprecation warning in derived Serialize and
Deserialize impls for a data structure that contains its own
deprecations (<a
href="https://redirect.github.com/serde-rs/serde/issues/2879">#2879</a>,
thanks <a
href="https://github.com/rcrisanti"><code>@​rcrisanti</code></a>)</li>
</ul>
<h2>v1.0.224</h2>
<ul>
<li>Remove private types being suggested in rustc diagnostics (<a
href="https://redirect.github.com/serde-rs/serde/issues/2979">#2979</a>)</li>
</ul>
<h2>v1.0.223</h2>
<ul>
<li>Fix serde_core documentation links (<a
href="https://redirect.github.com/serde-rs/serde/issues/2978">#2978</a>)</li>
</ul>
<h2>v1.0.222</h2>
<ul>
<li>Make <code>serialize_with</code> attribute produce code that works
if respanned to 2024 edition (<a
href="https://redirect.github.com/serde-rs/serde/issues/2950">#2950</a>,
thanks <a href="https://github.com/aytey"><code>@​aytey</code></a>)</li>
</ul>
<h2>v1.0.221</h2>
<ul>
<li>Documentation improvements (<a
href="https://redirect.github.com/serde-rs/serde/issues/2973">#2973</a>)</li>
<li>Deprecate <code>serde_if_integer128!</code> macro (<a
href="https://redirect.github.com/serde-rs/serde/issues/2975">#2975</a>)</li>
</ul>
<h2>v1.0.220</h2>
<ul>
<li>Add a way for data formats to depend on serde traits without waiting
for serde_derive compilation: <a
href="https://docs.rs/serde_core">https://docs.rs/serde_core</a> (<a
href="https://redirect.github.com/serde-rs/serde/issues/2608">#2608</a>,
thanks <a
href="https://github.com/osiewicz"><code>@​osiewicz</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a866b336f1"><code>a866b33</code></a>
Release 1.0.228</li>
<li><a
href="5adc9e816c"><code>5adc9e8</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2995">#2995</a>
from dtolnay/rustdocflags</li>
<li><a
href="ab581789f4"><code>ab58178</code></a>
Workaround for RUSTDOCFLAGS='--cfg=docsrs'</li>
<li><a
href="415d9fc560"><code>415d9fc</code></a>
Release 1.0.227</li>
<li><a
href="7c58427e12"><code>7c58427</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2991">#2991</a>
from dtolnay/inlinecoredoc</li>
<li><a
href="9d3410e3f4"><code>9d3410e</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2992">#2992</a>
from dtolnay/inplaceseed</li>
<li><a
href="2fb6748bf1"><code>2fb6748</code></a>
Remove InPlaceSeed public re-export</li>
<li><a
href="f8137c79a2"><code>f8137c7</code></a>
Inline serde_core into serde in docsrs mode</li>
<li><a
href="b7dbf7e3cb"><code>b7dbf7e</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2990">#2990</a>
from dtolnay/integer128</li>
<li><a
href="7c836915fc"><code>7c83691</code></a>
No longer macro_use integer128 module</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/serde/compare/v1.0.219...v1.0.228">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.219&new-version=1.0.228)](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>
2025-09-30 07:21:28 +03:00
Shingo OKAWA
887a6366e5 chore(ci): override RUSTUP_TOOLCHAIN for the check step (#2116)
Summary
Fixes an issue where the "check" CI jobs for MSRV and stable were
unintentionally using the stable toolchain from `rust-toolchain.toml`
instead of the matrix-specified toolchain.

Details
- Added `RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}` to the "check" job
in CI configuration.

Additional Context
- https://github.com/ratatui/ratatui/pull/2106
-
https://discord.com/channels/1070692720437383208/1072879985762762812/1422345357131780177
- https://rust-lang.github.io/rustup/overrides.html#overrides

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-09-30 07:19:06 +03:00
dependabot[bot]
b2872fb53c build(deps): bump taiki-e/install-action from 2.62.6 to 2.62.13 (#2107)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.6 to 2.62.13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.62.13</h2>
<ul>
<li>Update <code>zizmor@latest</code> to 1.14.2.</li>
</ul>
<h2>2.62.12</h2>
<ul>
<li>Update <code>mise@latest</code> to 2025.9.23.</li>
</ul>
<h2>2.62.11</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.21.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.43.0.</p>
</li>
</ul>
<h2>2.62.10</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.20.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.14.1.</p>
</li>
</ul>
<h2>2.62.9</h2>
<ul>
<li>
<p>Update <code>espup@latest</code> to 0.16.0.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.6.</p>
</li>
</ul>
<h2>2.62.8</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.36.3.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.19.</p>
</li>
</ul>
<h2>2.62.7</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.18.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.71.1.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<h2>[2.62.13] - 2025-09-29</h2>
<ul>
<li>Update <code>zizmor@latest</code> to 1.14.2.</li>
</ul>
<h2>[2.62.12] - 2025-09-29</h2>
<ul>
<li>Update <code>mise@latest</code> to 2025.9.23.</li>
</ul>
<h2>[2.62.11] - 2025-09-28</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.21.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.43.0.</p>
</li>
</ul>
<h2>[2.62.10] - 2025-09-27</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.20.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.14.1.</p>
</li>
</ul>
<h2>[2.62.9] - 2025-09-26</h2>
<ul>
<li>
<p>Update <code>espup@latest</code> to 0.16.0.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.6.</p>
</li>
</ul>
<h2>[2.62.8] - 2025-09-26</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.36.3.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.19.</p>
</li>
</ul>
<h2>[2.62.7] - 2025-09-25</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.18.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.71.1.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d0f4f69b07"><code>d0f4f69</code></a>
Release 2.62.13</li>
<li><a
href="79f2c3bc22"><code>79f2c3b</code></a>
Update <code>zizmor@latest</code> to 1.14.2</li>
<li><a
href="1eaae0c172"><code>1eaae0c</code></a>
Update .deny.toml</li>
<li><a
href="5ab30948b9"><code>5ab3094</code></a>
Release 2.62.12</li>
<li><a
href="d108ea068c"><code>d108ea0</code></a>
Update changelog</li>
<li><a
href="33fea01368"><code>33fea01</code></a>
Update <code>mise@latest</code> to 2025.9.23</li>
<li><a
href="9473c731b1"><code>9473c73</code></a>
Update <code>mise@latest</code> to 2025.9.22</li>
<li><a
href="efd8b64311"><code>efd8b64</code></a>
Release 2.62.11</li>
<li><a
href="83dbb79ca7"><code>83dbb79</code></a>
Update <code>mise@latest</code> to 2025.9.21</li>
<li><a
href="dfef5625a2"><code>dfef562</code></a>
Update <code>just@latest</code> to 1.43.0</li>
<li>Additional commits viewable in <a
href="4575ae687e...d0f4f69b07">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.62.6&new-version=2.62.13)](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>
2025-09-29 20:25:16 +03:00
dependabot[bot]
837af96e98 build(deps): bump Swatinem/rust-cache from 2.8.0 to 2.8.1 (#2108)
Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from
2.8.0 to 2.8.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/swatinem/rust-cache/releases">Swatinem/rust-cache's
releases</a>.</em></p>
<blockquote>
<h2>v2.8.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Set empty <code>CARGO_ENCODED_RUSTFLAGS</code> in workspace metadata
retrieval by <a href="https://github.com/ark0f"><code>@​ark0f</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/249">Swatinem/rust-cache#249</a></li>
<li>chore(deps): update dependencies by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/251">Swatinem/rust-cache#251</a></li>
<li>chore: fix dependabot groups by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/253">Swatinem/rust-cache#253</a></li>
<li>Bump the prd-patch group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/254">Swatinem/rust-cache#254</a></li>
<li>chore(dependabot): regenerate and commit dist/ by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/257">Swatinem/rust-cache#257</a></li>
<li>Bump <code>@​types/node</code> from 22.16.3 to 24.2.1 in the
dev-major group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/255">Swatinem/rust-cache#255</a></li>
<li>Bump typescript from 5.8.3 to 5.9.2 in the dev-minor group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/256">Swatinem/rust-cache#256</a></li>
<li>Bump actions/setup-node from 4 to 5 in the actions group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/259">Swatinem/rust-cache#259</a></li>
<li>Update README.md by <a
href="https://github.com/Propfend"><code>@​Propfend</code></a> in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/234">Swatinem/rust-cache#234</a></li>
<li>Bump <code>@​types/node</code> from 24.2.1 to 24.3.0 in the
dev-minor group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/258">Swatinem/rust-cache#258</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ark0f"><code>@​ark0f</code></a> made
their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/249">Swatinem/rust-cache#249</a></li>
<li><a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/251">Swatinem/rust-cache#251</a></li>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/254">Swatinem/rust-cache#254</a></li>
<li><a href="https://github.com/Propfend"><code>@​Propfend</code></a>
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/234">Swatinem/rust-cache#234</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Swatinem/rust-cache/compare/v2...v2.8.1">https://github.com/Swatinem/rust-cache/compare/v2...v2.8.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md">Swatinem/rust-cache's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>2.8.1</h2>
<ul>
<li>Set empty <code>CARGO_ENCODED_RUSTFLAGS</code> when retrieving
metadata</li>
<li>Various dependency updates</li>
</ul>
<h2>2.8.0</h2>
<ul>
<li>Add support for <code>warpbuild</code> cache provider</li>
<li>Add new <code>cache-workspace-crates</code> feature</li>
</ul>
<h2>2.7.8</h2>
<ul>
<li>Include CPU arch in the cache key</li>
</ul>
<h2>2.7.7</h2>
<ul>
<li>Also cache <code>cargo install</code> metadata</li>
</ul>
<h2>2.7.6</h2>
<ul>
<li>Allow opting out of caching $CARGO_HOME/bin</li>
<li>Add runner OS in cache key</li>
<li>Adds an option to do lookup-only of the cache</li>
</ul>
<h2>2.7.5</h2>
<ul>
<li>Support Cargo.lock format cargo-lock v4</li>
<li>Only run macOsWorkaround() on macOS</li>
</ul>
<h2>2.7.3</h2>
<ul>
<li>Work around upstream problem that causes cache saving to hang for
minutes.</li>
</ul>
<h2>2.7.2</h2>
<ul>
<li>Only key by <code>Cargo.toml</code> and <code>Cargo.lock</code>
files of workspace members.</li>
</ul>
<h2>2.7.1</h2>
<ul>
<li>Update toml parser to fix parsing errors.</li>
</ul>
<h2>2.7.0</h2>
<ul>
<li>Properly cache <code>trybuild</code> tests.</li>
</ul>
<h2>2.6.2</h2>
<ul>
<li>Fix <code>toml</code> parsing.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f13886b937"><code>f13886b</code></a>
2.8.1</li>
<li><a
href="5abb1e2a95"><code>5abb1e2</code></a>
update dependencies, prepare for release</li>
<li><a
href="3c68c31fe5"><code>3c68c31</code></a>
Bump <code>@​types/node</code> from 24.2.1 to 24.3.0 in the dev-minor
group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/258">#258</a>)</li>
<li><a
href="5467cca14c"><code>5467cca</code></a>
Update README.md (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/234">#234</a>)</li>
<li><a
href="94b28bf00e"><code>94b28bf</code></a>
Bump actions/setup-node from 4 to 5 in the actions group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/259">#259</a>)</li>
<li><a
href="cb8ffc21fa"><code>cb8ffc2</code></a>
Bump typescript from 5.8.3 to 5.9.2 in the dev-minor group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/256">#256</a>)</li>
<li><a
href="c4f0bbdf58"><code>c4f0bbd</code></a>
Bump <code>@​types/node</code> from 22.16.3 to 24.2.1 in the dev-major
group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/255">#255</a>)</li>
<li><a
href="d8c5063361"><code>d8c5063</code></a>
chore(dependabot): regenerate and commit dist/ (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/257">#257</a>)</li>
<li><a
href="267a8a94c9"><code>267a8a9</code></a>
Merge pull request <a
href="https://redirect.github.com/swatinem/rust-cache/issues/254">#254</a>
from Swatinem/dependabot/npm_and_yarn/prd-patch-d0e2e...</li>
<li><a
href="46cb408fba"><code>46cb408</code></a>
Bump the prd-patch group with 2 updates</li>
<li>Additional commits viewable in <a
href="98c8021b55...f13886b937">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Swatinem/rust-cache&package-manager=github_actions&previous-version=2.8.0&new-version=2.8.1)](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>
2025-09-29 20:21:10 +03:00
Shingo OKAWA
34baaf1137 chore(ci): override the toolchain for CI runs (#2106)
### Summary
Fixes an issue where the beta CI jobs were unintentionally using the
stable
toolchain from `rust-toolchain.toml` instead of the matrix-specified
toolchain.
This caused clippy to run against the wrong version.

### Details
- Added `RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}` to the CI
configuration

### Additional Context
-
https://discord.com/channels/1070692720437383208/1072879985762762812/1421990770482745415
- https://rust-lang.github.io/rustup/overrides.html#overrides

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-09-29 12:10:48 +03:00
Josh McKinney
ac60de3960 style: fix wrapping in doc comment (#2104) 2025-09-28 11:35:25 +03:00
Shingo OKAWA
91fa249cd4 chore: remove obsolete doc_auto_cfg feature (#2103)
The doc_auto_cfg feature was incorporated into the doc_cfg feature
in https://github.com/rust-lang/rust/pull/138907

Closes #2102

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-09-28 00:38:45 -07:00
Shingo OKAWA
73488abb45 docs(contributing): fix link to widgets_block_renders test (#2101)
The `CONTRIBUTING.md` referenced `tests/widgets_block.rs`, but the
correct path is `ratatui/tests/widgets_block.rs`. Updated the link so
that readers can navigate to the test example without 404 error.

---------

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-09-27 10:07:07 +03:00
eqsdxr
40f13c6a6c docs(rect): update the outdated comment for Rect::area() (#2100)
The return value of Rect.area() is no longer of u16 type, and the value
is not being clumped anymore.
2025-09-25 22:35:05 +03:00
Jeremy Rose
a89d3d62ff fix(buffer): clear behavior with VS16 wide emojis (#2063)
This fixes a bug where certain emojis like ⌨️ would sometimes be
"overlaid" onto existing content from the buffer, instead of properly
clearing.

[example demonstrating
bug](https://gist.github.com/nornagon/11a79d7a1f2e98aa129fedb4abccc530)

This PR was generated by Codex, and validated by me:
1. Behavior of the above example code was buggy before this fix (showed
overlaying "b" on top of the keyboard emoji), and fixed after.
2. The U+FE0F check is not strictly required, but I did note that emoji
without this char don't exhibit the buggy behavior, even without the
fix.

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2025-09-25 00:27:10 +03:00
dependabot[bot]
42a4e9e9af build(deps): bump bnjbvr/cargo-machete from 0.8.0 to 0.9.1 (#2059)
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete)
from 0.8.0 to 0.9.1.
<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.9.1</h2>
<p>Hotfix for the Github Action, no other changes in behavior since
v0.9.0.</p>
<h2>v0.9.0</h2>
<h2>Shiny new things</h2>
<ul>
<li>Add pre-commit hook by <a
href="https://github.com/jpmelos"><code>@​jpmelos</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/164">bnjbvr/cargo-machete#164</a></li>
<li>Handle multiple dependency tables and dependency delimiters by <a
href="https://github.com/mkatychev"><code>@​mkatychev</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/112">bnjbvr/cargo-machete#112</a></li>
<li>feat(<a
href="https://redirect.github.com/bnjbvr/cargo-machete/issues/152">#152</a>):
add renamed configuration field by <a
href="https://github.com/jalil-salame"><code>@​jalil-salame</code></a>
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/153">bnjbvr/cargo-machete#153</a></li>
<li>chore(ci): add aarch64 linux by <a
href="https://github.com/jarjk"><code>@​jarjk</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/179">bnjbvr/cargo-machete#179</a></li>
<li>feat: improve Dockerfile by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/174">bnjbvr/cargo-machete#174</a></li>
</ul>
<h2>Internal changes / refactorinsg</h2>
<ul>
<li>Add a release process by <a
href="https://github.com/bnjbvr"><code>@​bnjbvr</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/157">bnjbvr/cargo-machete#157</a></li>
<li>refactor: use ?-operator to simplify some and_then chains by <a
href="https://github.com/bnjbvr"><code>@​bnjbvr</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/166">bnjbvr/cargo-machete#166</a></li>
<li>Bump ring from 0.17.9 to 0.17.14 in
/integration-tests/renamed-dep-workspace by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/165">bnjbvr/cargo-machete#165</a></li>
<li>Bump ring from 0.17.8 to 0.17.14 in /integration-tests/renamed-dep
by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/167">bnjbvr/cargo-machete#167</a></li>
<li>doc: rename job name in example workflow by <a
href="https://github.com/kyu08"><code>@​kyu08</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/168">bnjbvr/cargo-machete#168</a></li>
<li>chore: update dependencies by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/177">bnjbvr/cargo-machete#177</a></li>
<li>Bump cargo_toml from 0.22.1 to 0.22.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/180">bnjbvr/cargo-machete#180</a></li>
<li>refactor: collect_paths by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/176">bnjbvr/cargo-machete#176</a></li>
<li>chore: add github sponsoring to FUNDING.yml by <a
href="https://github.com/bnjbvr"><code>@​bnjbvr</code></a> in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/183">bnjbvr/cargo-machete#183</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jpmelos"><code>@​jpmelos</code></a> made
their first contribution in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/164">bnjbvr/cargo-machete#164</a></li>
<li><a href="https://github.com/mkatychev"><code>@​mkatychev</code></a>
made their first contribution in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/112">bnjbvr/cargo-machete#112</a></li>
<li><a
href="https://github.com/jalil-salame"><code>@​jalil-salame</code></a>
made their first contribution in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/153">bnjbvr/cargo-machete#153</a></li>
<li><a href="https://github.com/kyu08"><code>@​kyu08</code></a> made
their first contribution in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/168">bnjbvr/cargo-machete#168</a></li>
<li><a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
made their first contribution in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/177">bnjbvr/cargo-machete#177</a></li>
<li><a href="https://github.com/jarjk"><code>@​jarjk</code></a> made
their first contribution in <a
href="https://redirect.github.com/bnjbvr/cargo-machete/pull/179">bnjbvr/cargo-machete#179</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bnjbvr/cargo-machete/compare/v0.8.0...v0.9.0">https://github.com/bnjbvr/cargo-machete/compare/v0.8.0...v0.9.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7959c84578"><code>7959c84</code></a>
chore: release v0.9.1</li>
<li><a
href="7e41788742"><code>7e41788</code></a>
fix(action): request to use the rust stable toolchain when
installing</li>
<li><a
href="ffca7bed89"><code>ffca7be</code></a>
chore: release 0.9.0</li>
<li><a
href="86e260dd1d"><code>86e260d</code></a>
chore: bump dependencies before the release</li>
<li><a
href="ddb305d9bc"><code>ddb305d</code></a>
chore: add github sponsoring to FUNDING.yml</li>
<li><a
href="373b106eaa"><code>373b106</code></a>
feat: improve Dockerfile</li>
<li><a
href="57a61aabbe"><code>57a61aa</code></a>
refactor: simplify <code>collect_path</code></li>
<li><a
href="73318504c4"><code>7331850</code></a>
chore(ci): add aarch64 linux (<a
href="https://redirect.github.com/bnjbvr/cargo-machete/issues/179">#179</a>)</li>
<li><a
href="c24779f18b"><code>c24779f</code></a>
Bump cargo_toml from 0.22.1 to 0.22.3</li>
<li><a
href="c725183eab"><code>c725183</code></a>
chore: update dependencies and set up automatic dependency updates</li>
<li>Additional commits viewable in <a
href="b54422fa33...7959c84578">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bnjbvr/cargo-machete&package-manager=github_actions&previous-version=0.8.0&new-version=0.9.1)](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>
2025-09-25 00:25:50 +03:00
dependabot[bot]
74558dafae build(deps): bump amannn/action-semantic-pull-request from 5.5.3 to 6.1.1 (#2067)
Bumps
[amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request)
from 5.5.3 to 6.1.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/amannn/action-semantic-pull-request/releases">amannn/action-semantic-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.1</h2>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v6.1.0...v6.1.1">6.1.1</a>
(2025-08-22)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Parse <code>headerPatternCorrespondence</code> properly (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/295">#295</a>)
(<a
href="800da4c97f">800da4c</a>)</li>
</ul>
<h2>v6.1.0</h2>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v6.0.1...v6.1.0">6.1.0</a>
(2025-08-19)</h2>
<h3>Features</h3>
<ul>
<li>Support providing regexps for types (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/292">#292</a>)
(<a
href="a30288bf13">a30288b</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Remove trailing whitespace from &quot;unknown release type&quot;
error message (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/291">#291</a>)
(<a
href="afa4edb1c4">afa4edb</a>)</li>
</ul>
<h2>v6.0.1</h2>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v6.0.0...v6.0.1">6.0.1</a>
(2025-08-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Actually execute action (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/289">#289</a>)
(<a
href="58e4ab40f5">58e4ab4</a>)</li>
</ul>
<h2>v6.0.0</h2>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v5.5.3...v6.0.0">6.0.0</a>
(2025-08-13)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Upgrade action to use Node.js 24 and ESM (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/287">#287</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Upgrade action to use Node.js 24 and ESM (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/287">#287</a>)
(<a
href="bc0c9a79ab">bc0c9a7</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md">amannn/action-semantic-pull-request's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v6.1.0...v6.1.1">6.1.1</a>
(2025-08-22)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Parse <code>headerPatternCorrespondence</code> properly (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/295">#295</a>)
(<a
href="800da4c97f">800da4c</a>)</li>
</ul>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v6.0.1...v6.1.0">6.1.0</a>
(2025-08-19)</h2>
<h3>Features</h3>
<ul>
<li>Support providing regexps for types (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/292">#292</a>)
(<a
href="a30288bf13">a30288b</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Remove trailing whitespace from &quot;unknown release type&quot;
error message (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/291">#291</a>)
(<a
href="afa4edb1c4">afa4edb</a>)</li>
</ul>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v6.0.0...v6.0.1">6.0.1</a>
(2025-08-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Actually execute action (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/289">#289</a>)
(<a
href="58e4ab40f5">58e4ab4</a>)</li>
</ul>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v5.5.3...v6.0.0">6.0.0</a>
(2025-08-13)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>Upgrade action to use Node.js 24 and ESM (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/287">#287</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Upgrade action to use Node.js 24 and ESM (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/287">#287</a>)
(<a
href="bc0c9a79ab">bc0c9a7</a>)</li>
</ul>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v5.5.2...v5.5.3">5.5.3</a>
(2024-06-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Bump <code>braces</code> dependency (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/269">#269</a>.
by <a href="https://github.com/EelcoLos"><code>@​EelcoLos</code></a>)
(<a
href="2d952a1bf9">2d952a1</a>)</li>
</ul>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v5.5.1...v5.5.2">5.5.2</a>
(2024-04-24)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Bump tar from 6.1.11 to 6.2.1 (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/262">#262</a>
by <a href="https://github.com/EelcoLos"><code>@​EelcoLos</code></a>)
(<a
href="9a90d5a5ac">9a90d5a</a>)</li>
</ul>
<h2><a
href="https://github.com/amannn/action-semantic-pull-request/compare/v5.5.0...v5.5.1">5.5.1</a>
(2024-04-24)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="48f256284b"><code>48f2562</code></a>
chore: Release 6.1.1 [skip ci]</li>
<li><a
href="800da4c97f"><code>800da4c</code></a>
fix: Parse <code>headerPatternCorrespondence</code> properly (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/295">#295</a>)</li>
<li><a
href="677b89571e"><code>677b895</code></a>
test: Fix broken test</li>
<li><a
href="24e6f016c1"><code>24e6f01</code></a>
ci: Fix permissions for tagger</li>
<li><a
href="7f33ba7922"><code>7f33ba7</code></a>
chore: Release 6.1.0 [skip ci]</li>
<li><a
href="afa4edb1c4"><code>afa4edb</code></a>
fix: Remove trailing whitespace from &quot;unknown release type&quot;
error message (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/291">#291</a>)</li>
<li><a
href="a30288bf13"><code>a30288b</code></a>
feat: Support providing regexps for types (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/292">#292</a>)</li>
<li><a
href="a46a7c8dc4"><code>a46a7c8</code></a>
build: Move Vitest to <code>devDependencies</code> (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/290">#290</a>)</li>
<li><a
href="fdd4d3ddf6"><code>fdd4d3d</code></a>
chore: Release 6.0.1 [skip ci]</li>
<li><a
href="58e4ab40f5"><code>58e4ab4</code></a>
fix: Actually execute action (<a
href="https://redirect.github.com/amannn/action-semantic-pull-request/issues/289">#289</a>)</li>
<li>Additional commits viewable in <a
href="0723387faa...48f256284b">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=amannn/action-semantic-pull-request&package-manager=github_actions&previous-version=5.5.3&new-version=6.1.1)](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>
2025-09-24 23:56:31 +03:00
dependabot[bot]
3c54e91420 build(deps): bump serde_json from 1.0.142 to 1.0.143 (#2068)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.142 to
1.0.143.
<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.143</h2>
<ul>
<li>Implement Clone and Debug for serde_json::Map iterators (<a
href="https://redirect.github.com/serde-rs/json/issues/1264">#1264</a>,
thanks <a
href="https://github.com/xlambein"><code>@​xlambein</code></a>)</li>
<li>Implement Default for CompactFormatter (<a
href="https://redirect.github.com/serde-rs/json/issues/1268">#1268</a>,
thanks <a href="https://github.com/SOF3"><code>@​SOF3</code></a>)</li>
<li>Implement FromStr for serde_json::Map (<a
href="https://redirect.github.com/serde-rs/json/issues/1271">#1271</a>,
thanks <a
href="https://github.com/mickvangelderen"><code>@​mickvangelderen</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="10102c49bf"><code>10102c4</code></a>
Release 1.0.143</li>
<li><a
href="2a5b85312c"><code>2a5b853</code></a>
Replace super::super with absolute path within crate</li>
<li><a
href="447170bd38"><code>447170b</code></a>
Merge pull request 1271 from
mickvangelderen/mick/impl-from-str-for-map</li>
<li><a
href="ec190d6dfd"><code>ec190d6</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1264">#1264</a>
from xlambein/master</li>
<li><a
href="8be664752f"><code>8be6647</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1268">#1268</a>
from SOF3/compact-default</li>
<li><a
href="ba5b3cccea"><code>ba5b3cc</code></a>
Revert &quot;Pin nightly toolchain used for miri job&quot;</li>
<li><a
href="fd35a02901"><code>fd35a02</code></a>
Implement FromStr for Map&lt;String, Value&gt;</li>
<li><a
href="bea0fe6b3e"><code>bea0fe6</code></a>
Implement Default for CompactFormatter</li>
<li><a
href="0c0e9f6bfa"><code>0c0e9f6</code></a>
Add Clone and Debug impls to map iterators</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.142...v1.0.143">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.142&new-version=1.0.143)](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>
2025-09-24 23:55:53 +03:00
dependabot[bot]
3673d360cf build(deps): bump codecov/codecov-action from 5.4.3 to 5.5.1 (#2081)
Bumps
[codecov/codecov-action](https://github.com/codecov/codecov-action) from
5.4.3 to 5.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codecov/codecov-action/releases">codecov/codecov-action's
releases</a>.</em></p>
<blockquote>
<h2>v5.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1833">codecov/codecov-action#1833</a></li>
<li>build(deps): bump github/codeql-action from 3.28.18 to 3.29.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1861">codecov/codecov-action#1861</a></li>
<li>Document a <code>codecov-cli</code> version reference example by <a
href="https://github.com/webknjaz"><code>@​webknjaz</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1774">codecov/codecov-action#1774</a></li>
<li>docs: fix typo in README by <a
href="https://github.com/datalater"><code>@​datalater</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1866">codecov/codecov-action#1866</a></li>
<li>fix: update to use local app/ dir by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1872">codecov/codecov-action#1872</a></li>
<li>build(deps): bump github/codeql-action from 3.29.9 to 3.29.11 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1867">codecov/codecov-action#1867</a></li>
<li>build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1868">codecov/codecov-action#1868</a></li>
<li>fix: overwrite pr number on fork by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1871">codecov/codecov-action#1871</a></li>
<li>chore(release): 5.5.1 by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1873">codecov/codecov-action#1873</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/datalater"><code>@​datalater</code></a>
made their first contribution in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1866">codecov/codecov-action#1866</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.5.0...v5.5.1">https://github.com/codecov/codecov-action/compare/v5.5.0...v5.5.1</a></p>
<h2>v5.5.0</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump github/codeql-action from 3.28.17 to 3.28.18 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1829">codecov/codecov-action#1829</a></li>
<li>docs: Refine OIDC docs by <a
href="https://github.com/spalmurray"><code>@​spalmurray</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1837">codecov/codecov-action#1837</a></li>
<li>fix: Typo in README by <a
href="https://github.com/spalmurray"><code>@​spalmurray</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1838">codecov/codecov-action#1838</a></li>
<li>fix: check reqs exist by <a
href="https://github.com/joseph-sentry"><code>@​joseph-sentry</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1835">codecov/codecov-action#1835</a></li>
<li>Pin actions/github-script by Git SHA by <a
href="https://github.com/martincostello"><code>@​martincostello</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1859">codecov/codecov-action#1859</a></li>
<li>feat: upgrade wrapper to 0.2.4 by <a
href="https://github.com/jviall"><code>@​jviall</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1864">codecov/codecov-action#1864</a></li>
<li>chore(release): 5.5.0 by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1865">codecov/codecov-action#1865</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/spalmurray"><code>@​spalmurray</code></a> made
their first contribution in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1837">codecov/codecov-action#1837</a></li>
<li><a
href="https://github.com/martincostello"><code>@​martincostello</code></a>
made their first contribution in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1859">codecov/codecov-action#1859</a></li>
<li><a href="https://github.com/jviall"><code>@​jviall</code></a> made
their first contribution in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1864">codecov/codecov-action#1864</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.4.3...v5.5.0">https://github.com/codecov/codecov-action/compare/v5.4.3...v5.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md">codecov/codecov-action's
changelog</a>.</em></p>
<blockquote>
<h2>v5.5.1</h2>
<h3>What's Changed</h3>
<ul>
<li>fix: overwrite pr number on fork by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1871">codecov/codecov-action#1871</a></li>
<li>build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by
<code>@​app/dependabot</code> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1868">codecov/codecov-action#1868</a></li>
<li>build(deps): bump github/codeql-action from 3.29.9 to 3.29.11 by
<code>@​app/dependabot</code> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1867">codecov/codecov-action#1867</a></li>
<li>fix: update to use local app/ dir by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1872">codecov/codecov-action#1872</a></li>
<li>docs: fix typo in README by <a
href="https://github.com/datalater"><code>@​datalater</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1866">codecov/codecov-action#1866</a></li>
<li>Document a <code>codecov-cli</code> version reference example by <a
href="https://github.com/webknjaz"><code>@​webknjaz</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1774">codecov/codecov-action#1774</a></li>
<li>build(deps): bump github/codeql-action from 3.28.18 to 3.29.9 by
<code>@​app/dependabot</code> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1861">codecov/codecov-action#1861</a></li>
<li>build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by
<code>@​app/dependabot</code> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1833">codecov/codecov-action#1833</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.5.0..v5.5.1">https://github.com/codecov/codecov-action/compare/v5.5.0..v5.5.1</a></p>
<h2>v5.5.0</h2>
<h3>What's Changed</h3>
<ul>
<li>feat: upgrade wrapper to 0.2.4 by <a
href="https://github.com/jviall"><code>@​jviall</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1864">codecov/codecov-action#1864</a></li>
<li>Pin actions/github-script by Git SHA by <a
href="https://github.com/martincostello"><code>@​martincostello</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1859">codecov/codecov-action#1859</a></li>
<li>fix: check reqs exist by <a
href="https://github.com/joseph-sentry"><code>@​joseph-sentry</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1835">codecov/codecov-action#1835</a></li>
<li>fix: Typo in README by <a
href="https://github.com/spalmurray"><code>@​spalmurray</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1838">codecov/codecov-action#1838</a></li>
<li>docs: Refine OIDC docs by <a
href="https://github.com/spalmurray"><code>@​spalmurray</code></a> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1837">codecov/codecov-action#1837</a></li>
<li>build(deps): bump github/codeql-action from 3.28.17 to 3.28.18 by
<code>@​app/dependabot</code> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1829">codecov/codecov-action#1829</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.4.3..v5.5.0">https://github.com/codecov/codecov-action/compare/v5.4.3..v5.5.0</a></p>
<h2>v5.4.3</h2>
<h3>What's Changed</h3>
<ul>
<li>build(deps): bump github/codeql-action from 3.28.13 to 3.28.17 by
<code>@​app/dependabot</code> in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1822">codecov/codecov-action#1822</a></li>
<li>fix: OIDC on forks by <a
href="https://github.com/joseph-sentry"><code>@​joseph-sentry</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1823">codecov/codecov-action#1823</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.4.2..v5.4.3">https://github.com/codecov/codecov-action/compare/v5.4.2..v5.4.3</a></p>
<h2>v5.4.2</h2>
<h3>What's Changed</h3>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.4.1..v5.4.2">https://github.com/codecov/codecov-action/compare/v5.4.1..v5.4.2</a></p>
<h2>v5.4.1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5a1091511a"><code>5a10915</code></a>
chore(release): 5.5.1 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1873">#1873</a>)</li>
<li><a
href="3e0ce21cac"><code>3e0ce21</code></a>
fix: overwrite pr number on fork (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1871">#1871</a>)</li>
<li><a
href="c4741c8197"><code>c4741c8</code></a>
build(deps): bump actions/checkout from 4.2.2 to 5.0.0 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1868">#1868</a>)</li>
<li><a
href="17370e8add"><code>17370e8</code></a>
build(deps): bump github/codeql-action from 3.29.9 to 3.29.11 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1867">#1867</a>)</li>
<li><a
href="18fdacf0ce"><code>18fdacf</code></a>
fix: update to use local app/ dir (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1872">#1872</a>)</li>
<li><a
href="206148c4b8"><code>206148c</code></a>
docs: fix typo in README (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1866">#1866</a>)</li>
<li><a
href="3cb13a1234"><code>3cb13a1</code></a>
Document a <code>codecov-cli</code> version reference example (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1774">#1774</a>)</li>
<li><a
href="a4803c1f8d"><code>a4803c1</code></a>
build(deps): bump github/codeql-action from 3.28.18 to 3.29.9 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1861">#1861</a>)</li>
<li><a
href="3139621497"><code>3139621</code></a>
build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1833">#1833</a>)</li>
<li><a
href="fdcc847654"><code>fdcc847</code></a>
chore(release): 5.5.0 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1865">#1865</a>)</li>
<li>Additional commits viewable in <a
href="18283e04ce...5a1091511a">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=codecov/codecov-action&package-manager=github_actions&previous-version=5.4.3&new-version=5.5.1)](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>
2025-09-24 23:54:46 +03:00
dependabot[bot]
28e5f35b17 build(deps): bump crate-ci/typos from 1.35.3 to 1.36.2 (#2080)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.35.3 to
1.36.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.36.2</h2>
<h2>[1.36.2] - 2025-09-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix regression from 1.36.1 when rendering an error for a line with
invalid UTF-8</li>
</ul>
<h2>v1.36.1</h2>
<h2>[1.36.1] - 2025-09-03</h2>
<h3>Fixes</h3>
<ul>
<li>Replaced the error rendering for various quality of life
improvements</li>
</ul>
<h2>v1.36.0</h2>
<h2>[1.36.0] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1345">August
2025</a> changes</li>
</ul>
<h2>v1.35.8</h2>
<h2>[1.35.8] - 2025-09-02</h2>
<h2>v1.35.7</h2>
<h2>[1.35.7] - 2025-08-29</h2>
<h3>Documentation</h3>
<ul>
<li>Expand PyPI metadata</li>
</ul>
<h2>v1.35.6</h2>
<h2>[1.35.6] - 2025-08-28</h2>
<h3>Fixes</h3>
<ul>
<li>Track <code>go.mod</code> as a golang file (regression from
1.13.21)</li>
</ul>
<h2>v1.35.5</h2>
<h2>[1.35.5] - 2025-08-18</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>accidently</code></li>
<li>Fix typo in correction to <code>dynamincally</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>messager</code></li>
<li>Fix typo in correction to <code>preferables</code></li>
<li>Fix typo in correction to <code>producibles</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.36.2] - 2025-09-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix regression from 1.36.1 when rendering an error for a line with
invalid UTF-8</li>
</ul>
<h2>[1.36.1] - 2025-09-03</h2>
<h3>Fixes</h3>
<ul>
<li>Replaced the error rendering for various quality of life
improvements</li>
</ul>
<h2>[1.36.0] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1345">August
2025</a> changes</li>
</ul>
<h2>[1.35.8] - 2025-09-02</h2>
<h2>[1.35.7] - 2025-08-29</h2>
<h3>Documentation</h3>
<ul>
<li>Expand PyPI metadata</li>
</ul>
<h2>[1.35.6] - 2025-08-28</h2>
<h3>Fixes</h3>
<ul>
<li>Track <code>go.mod</code> as a golang file (regression from
1.13.21)</li>
</ul>
<h2>[1.35.5] - 2025-08-18</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>accidently</code></li>
<li>Fix typo in correction to <code>dynamincally</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>messager</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85f62a8a84"><code>85f62a8</code></a>
chore: Release</li>
<li><a
href="6f26306a91"><code>6f26306</code></a>
docs: Update changelog</li>
<li><a
href="6bd8b39b57"><code>6bd8b39</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1374">#1374</a>
from epage/invalid</li>
<li><a
href="f5e19d3038"><code>f5e19d3</code></a>
fix(cli): Don't panic with invalid utf-8</li>
<li><a
href="5062775d92"><code>5062775</code></a>
test(cli): Generalize utf16 tests</li>
<li><a
href="b6297a6a50"><code>b6297a6</code></a>
chore: Release</li>
<li><a
href="e6d718928a"><code>e6d7189</code></a>
docs: Update changelog</li>
<li><a
href="1bf1ed2584"><code>1bf1ed2</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1372">#1372</a>
from epage/render</li>
<li><a
href="9e79b8d2c6"><code>9e79b8d</code></a>
refactor(cli): Give control over the whole group</li>
<li><a
href="a5fa603453"><code>a5fa603</code></a>
refactor(cli): Extract snippet creation</li>
<li>Additional commits viewable in <a
href="52bd719c2c...85f62a8a84">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crate-ci/typos&package-manager=github_actions&previous-version=1.35.3&new-version=1.36.2)](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>
2025-09-24 23:53:57 +03:00
dependabot[bot]
ba37ecebdb build(deps): bump actions/github-script from 7 to 8 (#2082)
Bumps [actions/github-script](https://github.com/actions/github-script)
from 7 to 8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/github-script/releases">actions/github-script's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update Node.js version support to 24.x by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/637">actions/github-script#637</a></li>
<li>README for updating actions/github-script from v7 to v8 by <a
href="https://github.com/sneha-krip"><code>@​sneha-krip</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/653">actions/github-script#653</a></li>
</ul>
<h2>⚠️ Minimum Compatible Runner Version</h2>
<p><strong>v2.327.1</strong><br />
<a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<p>Make sure your runner is updated to this version or newer to use this
release.</p>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/637">actions/github-script#637</a></li>
<li><a
href="https://github.com/sneha-krip"><code>@​sneha-krip</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/653">actions/github-script#653</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/github-script/compare/v7.1.0...v8.0.0">https://github.com/actions/github-script/compare/v7.1.0...v8.0.0</a></p>
<h2>v7.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgrade husky to v9 by <a
href="https://github.com/benelan"><code>@​benelan</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/482">actions/github-script#482</a></li>
<li>Add workflow file for publishing releases to immutable action
package by <a
href="https://github.com/Jcambass"><code>@​Jcambass</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/485">actions/github-script#485</a></li>
<li>Upgrade IA Publish by <a
href="https://github.com/Jcambass"><code>@​Jcambass</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/486">actions/github-script#486</a></li>
<li>Fix workflow status badges by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/497">actions/github-script#497</a></li>
<li>Update usage of <code>actions/upload-artifact</code> by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/512">actions/github-script#512</a></li>
<li>Clear up package name confusion by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/514">actions/github-script#514</a></li>
<li>Update dependencies with <code>npm audit fix</code> by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/515">actions/github-script#515</a></li>
<li>Specify that the used script is JavaScript by <a
href="https://github.com/timotk"><code>@​timotk</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/478">actions/github-script#478</a></li>
<li>chore: Add Dependabot for NPM and Actions by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/472">actions/github-script#472</a></li>
<li>Define <code>permissions</code> in workflows and update actions by
<a href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in
<a
href="https://redirect.github.com/actions/github-script/pull/531">actions/github-script#531</a></li>
<li>chore: Add Dependabot for .github/actions/install-dependencies by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/532">actions/github-script#532</a></li>
<li>chore: Remove .vscode settings by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/533">actions/github-script#533</a></li>
<li>ci: Use github/setup-licensed by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/473">actions/github-script#473</a></li>
<li>make octokit instance available as octokit on top of github, to make
it easier to seamlessly copy examples from GitHub rest api or octokit
documentations by <a
href="https://github.com/iamstarkov"><code>@​iamstarkov</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/508">actions/github-script#508</a></li>
<li>Remove <code>octokit</code> README updates for v7 by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/557">actions/github-script#557</a></li>
<li>docs: add &quot;exec&quot; usage examples by <a
href="https://github.com/neilime"><code>@​neilime</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/546">actions/github-script#546</a></li>
<li>Bump ruby/setup-ruby from 1.213.0 to 1.222.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/github-script/pull/563">actions/github-script#563</a></li>
<li>Bump ruby/setup-ruby from 1.222.0 to 1.229.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/github-script/pull/575">actions/github-script#575</a></li>
<li>Clearly document passing inputs to the <code>script</code> by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/603">actions/github-script#603</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/610">actions/github-script#610</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/benelan"><code>@​benelan</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/482">actions/github-script#482</a></li>
<li><a href="https://github.com/Jcambass"><code>@​Jcambass</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/485">actions/github-script#485</a></li>
<li><a href="https://github.com/timotk"><code>@​timotk</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/478">actions/github-script#478</a></li>
<li><a
href="https://github.com/iamstarkov"><code>@​iamstarkov</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/508">actions/github-script#508</a></li>
<li><a href="https://github.com/neilime"><code>@​neilime</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/546">actions/github-script#546</a></li>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/610">actions/github-script#610</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/github-script/compare/v7...v7.1.0">https://github.com/actions/github-script/compare/v7...v7.1.0</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ed597411d8"><code>ed59741</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/github-script/issues/653">#653</a>
from actions/sneha-krip/readme-for-v8</li>
<li><a
href="2dc352e4ba"><code>2dc352e</code></a>
Bold minimum Actions Runner version in README</li>
<li><a
href="01e118c8d0"><code>01e118c</code></a>
Update README for Node 24 runtime requirements</li>
<li><a
href="8b222ac82e"><code>8b222ac</code></a>
Apply suggestion from <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a></li>
<li><a
href="adc0eeac99"><code>adc0eea</code></a>
README for updating actions/github-script from v7 to v8</li>
<li><a
href="20fe497b3f"><code>20fe497</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/github-script/issues/637">#637</a>
from actions/node24</li>
<li><a
href="e7b7f222b1"><code>e7b7f22</code></a>
update licenses</li>
<li><a
href="2c81ba05f3"><code>2c81ba0</code></a>
Update Node.js version support to 24.x</li>
<li>See full diff in <a
href="https://github.com/actions/github-script/compare/v7...v8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/github-script&package-manager=github_actions&previous-version=7&new-version=8)](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>
2025-09-24 23:53:23 +03:00
dependabot[bot]
a2b2f98868 build(deps): bump hashbrown from 0.15.5 to 0.16.0 (#2084)
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.15.5 to
0.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/hashbrown/releases">hashbrown's
releases</a>.</em></p>
<blockquote>
<h2>v0.16.0</h2>
<h3>Changed</h3>
<ul>
<li>Bump foldhash, the default hasher, to 0.2.0.</li>
<li>Replaced <code>DefaultHashBuilder</code> with a newtype wrapper
around <code>foldhash</code> instead of re-exporting it directly.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md">hashbrown's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/hashbrown/compare/v0.15.5...v0.16.0">0.16.0</a>
- 2025-08-28</h2>
<h3>Changed</h3>
<ul>
<li>Bump foldhash, the default hasher, to 0.2.0.</li>
<li>Replaced <code>DefaultHashBuilder</code> with a newtype wrapper
around <code>foldhash</code> instead
of re-exporting it directly.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8d4def0edc"><code>8d4def0</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/hashbrown/issues/643">#643</a>
from cuviper/newtype-hasher</li>
<li><a
href="e0f404cc0b"><code>e0f404c</code></a>
use <code>feature(hasher_prefixfree_extras)</code></li>
<li><a
href="95ffed34ed"><code>95ffed3</code></a>
Change <code>DefaultHashBuilder</code> to an opaque newtype</li>
<li><a
href="bf35a11329"><code>bf35a11</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/hashbrown/issues/641">#641</a>
from hoxxep/foldhash-0.2</li>
<li><a
href="e2a634b37f"><code>e2a634b</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/hashbrown/issues/642">#642</a>
from heiher/loong-simd-types</li>
<li><a
href="88794e7fc5"><code>88794e7</code></a>
loongarch64: Use unified data types for SIMD intrinsics</li>
<li><a
href="b22dd85cc3"><code>b22dd85</code></a>
perf: Bump foldhash to 0.2.0</li>
<li><a
href="fe72a08e63"><code>fe72a08</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/hashbrown/issues/639">#639</a>
from gaujay/unbloat-get_inner-perf</li>
<li><a
href="71f8f37413"><code>71f8f37</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/hashbrown/issues/637">#637</a>
from gaujay/add-benchmarks</li>
<li><a
href="f1c039c1f6"><code>f1c039c</code></a>
Un-bloat get_inner functions to restore lookup performance</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/hashbrown/compare/v0.15.5...v0.16.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hashbrown&package-manager=cargo&previous-version=0.15.5&new-version=0.16.0)](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>
2025-09-24 23:43:23 +03:00
dependabot[bot]
e799b732b6 build(deps): bump zizmorcore/zizmor-action from 0.1.1 to 0.2.0 (#2089)
Bumps
[zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action)
from 0.1.1 to 0.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zizmorcore/zizmor-action/releases">zizmorcore/zizmor-action's
releases</a>.</em></p>
<blockquote>
<h2>v0.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add support for <code>color</code> input by <a
href="https://github.com/birjj"><code>@​birjj</code></a> in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/37">zizmorcore/zizmor-action#37</a></li>
<li>Adding option for GitHub annotations by <a
href="https://github.com/abdelq"><code>@​abdelq</code></a> in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/45">zizmorcore/zizmor-action#45</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/birjj"><code>@​birjj</code></a> made
their first contribution in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/37">zizmorcore/zizmor-action#37</a></li>
<li><a href="https://github.com/abdelq"><code>@​abdelq</code></a> made
their first contribution in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/45">zizmorcore/zizmor-action#45</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/zizmorcore/zizmor-action/compare/v0.1.2...v0.2.0">https://github.com/zizmorcore/zizmor-action/compare/v0.1.2...v0.2.0</a></p>
<h2>v0.1.2</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: allow version prefix of <code>v</code> by <a
href="https://github.com/martincostello"><code>@​martincostello</code></a>
in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/31">zizmorcore/zizmor-action#31</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/martincostello"><code>@​martincostello</code></a>
made their first contribution in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/31">zizmorcore/zizmor-action#31</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/zizmorcore/zizmor-action/compare/v0.1.1...v0.1.2">https://github.com/zizmorcore/zizmor-action/compare/v0.1.1...v0.1.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e673c3917a"><code>e673c39</code></a>
Adding option for GitHub annotations (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/45">#45</a>)</li>
<li><a
href="2d5a33f24d"><code>2d5a33f</code></a>
chore: add missing license (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/44">#44</a>)</li>
<li><a
href="a016d81e77"><code>a016d81</code></a>
chore(deps): bump github/codeql-action in the github-actions group (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/39">#39</a>)</li>
<li><a
href="a8fb1d7e7d"><code>a8fb1d7</code></a>
feat: add support for <code>color</code> input (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/37">#37</a>)</li>
<li><a
href="09680325f5"><code>0968032</code></a>
chore(deps): bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/35">#35</a>)</li>
<li><a
href="7f2abfff74"><code>7f2abff</code></a>
README: bump pins (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/33">#33</a>)</li>
<li><a
href="5ca5fc7a47"><code>5ca5fc7</code></a>
README: add note about v prefix (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/32">#32</a>)</li>
<li><a
href="9c58446551"><code>9c58446</code></a>
fix: allow version prefix of <code>v</code> (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/31">#31</a>)</li>
<li><a
href="c17832b972"><code>c17832b</code></a>
chore(deps): bump github/codeql-action in the github-actions group (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/30">#30</a>)</li>
<li><a
href="383d31df2e"><code>383d31d</code></a>
chore(deps): bump github/codeql-action in the github-actions group (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/27">#27</a>)</li>
<li>Additional commits viewable in <a
href="f52a838cfa...e673c3917a">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zizmorcore/zizmor-action&package-manager=github_actions&previous-version=0.1.1&new-version=0.2.0)](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>
2025-09-24 23:42:10 +03:00
lolbinarycat
b08b4cbd5e docs(terminal): add disclaimer about panics to Terminal::new (#2088)
<!-- Please read CONTRIBUTING.md before submitting any pull request. -->
part of #2087

cc @orhun

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2025-09-24 23:41:09 +03:00
dependabot[bot]
881d2452e0 build(deps): bump trybuild from 1.0.110 to 1.0.111 (#2092)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.110 to
1.0.111.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.111</h2>
<ul>
<li>Normalize dependency crate's version in filepaths (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/316">#316</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="31fbbb2dc6"><code>31fbbb2</code></a>
Release 1.0.111</li>
<li><a
href="d4dfc63d0a"><code>d4dfc63</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/316">#316</a>
from dtolnay/version</li>
<li><a
href="3caa02a1f0"><code>3caa02a</code></a>
Normalize dependency crate's version in paths</li>
<li><a
href="e1cfaadab8"><code>e1cfaad</code></a>
Update actions/checkout@v4 -&gt; v5</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.110...1.0.111">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.110&new-version=1.0.111)](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>
2025-09-24 23:40:47 +03:00
dependabot[bot]
cedad530fe build(deps): bump release-plz/action from 0.5.110 to 0.5.117 (#2090)
Bumps [release-plz/action](https://github.com/release-plz/action) from
0.5.110 to 0.5.117.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/release-plz/action/releases">release-plz/action's
releases</a>.</em></p>
<blockquote>
<h2>v0.5.117</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.146 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/222">release-plz/action#222</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.117">https://github.com/release-plz/action/compare/v0.5...v0.5.117</a></p>
<h2>v0.5.116</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.145 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/220">release-plz/action#220</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.116">https://github.com/release-plz/action/compare/v0.5...v0.5.116</a></p>
<h2>v0.5.115</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.144 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/219">release-plz/action#219</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.115">https://github.com/release-plz/action/compare/v0.5...v0.5.115</a></p>
<h2>v0.5.114</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.143 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/218">release-plz/action#218</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.114">https://github.com/release-plz/action/compare/v0.5...v0.5.114</a></p>
<h2>v0.5.113</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.142 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/217">release-plz/action#217</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.113">https://github.com/release-plz/action/compare/v0.5...v0.5.113</a></p>
<h2>v0.5.112</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.141 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/215">release-plz/action#215</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.112">https://github.com/release-plz/action/compare/v0.5...v0.5.112</a></p>
<h2>v0.5.111</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/release-plz/action/pull/212">release-plz/action#212</a></li>
<li>update cargo semver checks to v0.43 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/213">release-plz/action#213</a></li>
<li>Update to 0.3.140 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/214">release-plz/action#214</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.111">https://github.com/release-plz/action/compare/v0.5...v0.5.111</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="acb9246af4"><code>acb9246</code></a>
Update to 0.3.146 (<a
href="https://redirect.github.com/release-plz/action/issues/222">#222</a>)</li>
<li><a
href="27195cf771"><code>27195cf</code></a>
Update to 0.3.145 (<a
href="https://redirect.github.com/release-plz/action/issues/220">#220</a>)</li>
<li><a
href="574c1d0ed8"><code>574c1d0</code></a>
Update to 0.3.144 (<a
href="https://redirect.github.com/release-plz/action/issues/219">#219</a>)</li>
<li><a
href="d15ad33e74"><code>d15ad33</code></a>
Update to 0.3.143 (<a
href="https://redirect.github.com/release-plz/action/issues/218">#218</a>)</li>
<li><a
href="f4facd4a76"><code>f4facd4</code></a>
Update to 0.3.142 (<a
href="https://redirect.github.com/release-plz/action/issues/217">#217</a>)</li>
<li><a
href="f9715bc3b4"><code>f9715bc</code></a>
Update to 0.3.141 (<a
href="https://redirect.github.com/release-plz/action/issues/215">#215</a>)</li>
<li><a
href="a4ffad5637"><code>a4ffad5</code></a>
Update to 0.3.140 (<a
href="https://redirect.github.com/release-plz/action/issues/214">#214</a>)</li>
<li><a
href="8e4ec4422c"><code>8e4ec44</code></a>
update cargo semver checks to v0.43 (<a
href="https://redirect.github.com/release-plz/action/issues/213">#213</a>)</li>
<li><a
href="a27e254757"><code>a27e254</code></a>
build(deps): bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/release-plz/action/issues/212">#212</a>)</li>
<li>See full diff in <a
href="ccf6dd9984...acb9246af4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=release-plz/action&package-manager=github_actions&previous-version=0.5.110&new-version=0.5.117)](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>
2025-09-24 23:40:27 +03:00
dependabot[bot]
0e6c8f89be build(deps): bump taiki-e/install-action from 2.56.7 to 2.62.1 (#2095)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.56.7 to 2.62.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.62.1</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.15.</p>
</li>
<li>
<p>Update <code>cargo-udeps@latest</code> to 0.1.59.</p>
</li>
<li>
<p>Update <code>git-cliff@latest</code> to 2.10.1.</p>
</li>
</ul>
<h2>2.62.0</h2>
<ul>
<li>Support <code>cargo-deadlinks</code> (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1161">#1161</a>,
thanks <a
href="https://github.com/BenjaminBrienen"><code>@​BenjaminBrienen</code></a>)</li>
</ul>
<h2>2.61.13</h2>
<ul>
<li>
<p>Update <code>cargo-semver-checks@latest</code> to 0.44.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.14.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 37.0.0.</p>
</li>
</ul>
<h2>2.61.12</h2>
<ul>
<li>
<p>Update <code>parse-changelog@latest</code> to 0.6.14.</p>
</li>
<li>
<p>Update <code>xh@latest</code> to 0.25.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.13.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.8.19.</p>
</li>
</ul>
<h2>2.61.11</h2>
<ul>
<li>
<p>Update <code>cargo-no-dev-deps@latest</code> to 0.2.18.</p>
</li>
<li>
<p>Update <code>cargo-minimal-versions@latest</code> to 0.1.33.</p>
</li>
<li>
<p>Update <code>cargo-hack@latest</code> to 0.6.39.</p>
</li>
</ul>
<h2>2.61.10</h2>
<ul>
<li>Update <code>uv@latest</code> to 0.8.18.</li>
</ul>
<h2>2.61.9</h2>
<ul>
<li>Update <code>wasm-bindgen@latest</code> to 0.2.103.</li>
</ul>
<h2>2.61.8</h2>
<ul>
<li>
<p>Update <code>wasm-bindgen@latest</code> to 0.2.102.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.18.3.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.12.</p>
</li>
</ul>
<h2>2.61.7</h2>
<ul>
<li>Update <code>vacuum@latest</code> to 0.18.0.</li>
</ul>
<h2>2.61.6</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<h2>[2.62.1] - 2025-09-22</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.9.15.</p>
</li>
<li>
<p>Update <code>cargo-udeps@latest</code> to 0.1.59.</p>
</li>
<li>
<p>Update <code>git-cliff@latest</code> to 2.10.1.</p>
</li>
</ul>
<h2>[2.62.0] - 2025-09-21</h2>
<ul>
<li>Support <code>cargo-deadlinks</code> (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1161">#1161</a>,
thanks <a
href="https://github.com/BenjaminBrienen"><code>@​BenjaminBrienen</code></a>)</li>
</ul>
<h2>[2.61.13] - 2025-09-21</h2>
<ul>
<li>
<p>Update <code>cargo-semver-checks@latest</code> to 0.44.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.14.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 37.0.0.</p>
</li>
</ul>
<h2>[2.61.12] - 2025-09-20</h2>
<ul>
<li>
<p>Update <code>parse-changelog@latest</code> to 0.6.14.</p>
</li>
<li>
<p>Update <code>xh@latest</code> to 0.25.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.9.13.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.8.19.</p>
</li>
</ul>
<h2>[2.61.11] - 2025-09-19</h2>
<ul>
<li>
<p>Update <code>cargo-no-dev-deps@latest</code> to 0.2.18.</p>
</li>
<li>
<p>Update <code>cargo-minimal-versions@latest</code> to 0.1.33.</p>
</li>
<li>
<p>Update <code>cargo-hack@latest</code> to 0.6.39.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d6912b4777"><code>d6912b4</code></a>
Release 2.62.1</li>
<li><a
href="ac4d226188"><code>ac4d226</code></a>
Update <code>mise@latest</code> to 2025.9.15</li>
<li><a
href="a878b7011d"><code>a878b70</code></a>
Update <code>cargo-udeps@latest</code> to 0.1.59</li>
<li><a
href="16ab0e7b53"><code>16ab0e7</code></a>
Update <code>git-cliff@latest</code> to 2.10.1</li>
<li><a
href="0e09747a63"><code>0e09747</code></a>
Release 2.62.0</li>
<li><a
href="1856fd6ff0"><code>1856fd6</code></a>
Update changelog</li>
<li><a
href="ed4255be07"><code>ed4255b</code></a>
Support cargo-deadlinks (<a
href="https://redirect.github.com/taiki-e/install-action/issues/1161">#1161</a>)</li>
<li><a
href="3c3a266059"><code>3c3a266</code></a>
Release 2.61.13</li>
<li><a
href="e814402cd9"><code>e814402</code></a>
Update <code>cargo-semver-checks@latest</code> to 0.44.0</li>
<li><a
href="e34e0638e2"><code>e34e063</code></a>
Update <code>mise@latest</code> to 2025.9.14</li>
<li>Additional commits viewable in <a
href="https://github.com/taiki-e/install-action/compare/v2.56.7...d6912b47771be2c443ec90dbb3d28e023987e782">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.56.7&new-version=2.62.1)](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>
2025-09-24 23:40:06 +03:00
dependabot[bot]
aa6d8c9200 build(deps): bump dtolnay/rust-toolchain from b3b07ba8b418998c39fb20f53e8b695cdcc8de1b to 6d653acede28d24f02e3cd41383119e8b1b35921 (#2096)
Bumps
[dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from
b3b07ba8b418998c39fb20f53e8b695cdcc8de1b to
6d653acede28d24f02e3cd41383119e8b1b35921.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6d653acede"><code>6d653ac</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/171">#171</a>
from dtolnay/up</li>
<li><a
href="30dc51db75"><code>30dc51d</code></a>
Update Linux arm64 runner to Ubuntu 24.04</li>
<li><a
href="e97e2d8cc3"><code>e97e2d8</code></a>
Update actions/checkout@v4 -&gt; v5</li>
<li><a
href="3bd6ba104c"><code>3bd6ba1</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/168">#168</a>
from dtolnay/sed</li>
<li><a
href="0185c06042"><code>0185c06</code></a>
Fix update-revs.sh to recognize only the intended <code>required:
true</code></li>
<li><a
href="350b8170d6"><code>350b817</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/166">#166</a>
from dtolnay/fix1</li>
<li><a
href="6ded28b5b7"><code>6ded28b</code></a>
Try without comment?</li>
<li><a
href="cc2784cec7"><code>cc2784c</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/165">#165</a>
from dtolnay/fix2</li>
<li><a
href="f6642a8e0a"><code>f6642a8</code></a>
Try without backtick?</li>
<li><a
href="5ee21dc396"><code>5ee21dc</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rust-toolchain/issues/162">#162</a>
from dtolnay/pin</li>
<li>Additional commits viewable in <a
href="b3b07ba8b4...6d653acede">compare
view</a></li>
</ul>
</details>
<br />


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>
2025-09-24 23:38:44 +03:00
dependabot[bot]
bbe590ab08 build(deps): bump clap from 4.5.45 to 4.5.48 (#2097)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.45 to 4.5.48.
<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.48</h2>
<h2>[4.5.48] - 2025-09-19</h2>
<h3>Documentation</h3>
<ul>
<li>Add a new CLI Concepts document as another way of framing clap</li>
<li>Expand the <code>typed_derive</code> cookbook entry</li>
</ul>
<h2>v4.5.47</h2>
<h2>[4.5.47] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Added <code>impl FromArgMatches for ()</code></li>
<li>Added <code>impl Args for ()</code></li>
<li>Added <code>impl Subcommand for ()</code></li>
<li>Added <code>impl FromArgMatches for Infallible</code></li>
<li>Added <code>impl Subcommand for Infallible</code></li>
</ul>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Update runtime error text to match
<code>clap</code></li>
</ul>
<h2>v4.5.46</h2>
<h2>[4.5.46] - 2025-08-26</h2>
<h3>Features</h3>
<ul>
<li>Expose <code>StyledStr::push_str</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.48] - 2025-09-19</h2>
<h3>Documentation</h3>
<ul>
<li>Add a new CLI Concepts document as another way of framing clap</li>
<li>Expand the <code>typed_derive</code> cookbook entry</li>
</ul>
<h2>[4.5.47] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Added <code>impl FromArgMatches for ()</code></li>
<li>Added <code>impl Args for ()</code></li>
<li>Added <code>impl Subcommand for ()</code></li>
<li>Added <code>impl FromArgMatches for Infallible</code></li>
<li>Added <code>impl Subcommand for Infallible</code></li>
</ul>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Update runtime error text to match
<code>clap</code></li>
</ul>
<h2>[4.5.46] - 2025-08-26</h2>
<h3>Features</h3>
<ul>
<li>Expose <code>StyledStr::push_str</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c3a1ddc118"><code>c3a1ddc</code></a>
chore: Release</li>
<li><a
href="4460ff44b3"><code>4460ff4</code></a>
docs: Update changelog</li>
<li><a
href="54947a1b4b"><code>54947a1</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5981">#5981</a>
from mernen/fix-bash-clap-complete-space</li>
<li><a
href="fd3f6d271d"><code>fd3f6d2</code></a>
fix(complete): Restore nospace in bash</li>
<li><a
href="2f6a1083d9"><code>2f6a108</code></a>
test(complete): Demonstrate current behavior</li>
<li><a
href="f88be5738e"><code>f88be57</code></a>
style: Ensure consistent newlines</li>
<li><a
href="f209bce220"><code>f209bce</code></a>
chore: Release</li>
<li><a
href="f33ff7f81a"><code>f33ff7f</code></a>
docs: Update changelog</li>
<li><a
href="bf06e6f8f6"><code>bf06e6f</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5974">#5974</a>
from kryvashek/support-clearing-args-matches</li>
<li><a
href="5d357ada53"><code>5d357ad</code></a>
feat(parser): Added ArgMatches::try_clear_id()</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.45...clap_complete-v4.5.48">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.45&new-version=4.5.48)](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>
2025-09-24 18:56:47 +02:00
dependabot[bot]
b507b38c58 build(deps): bump time from 0.3.41 to 0.3.44 (#2098)
Bumps [time](https://github.com/time-rs/time) from 0.3.41 to 0.3.44.
<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.44</h2>
<p>See the <a
href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">changelog</a>
for details.</p>
<h2>v0.3.43</h2>
<p>See the <a
href="https://github.com/time-rs/time/blob/main/CHANGELOG.md">changelog</a>
for details.</p>
<h2>v0.3.42</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.44 [2025-09-19]</h2>
<h3>Fixed</h3>
<ul>
<li>Comparisons of <code>PrimitiveDateTime</code>,
<code>UtcDateTime</code>, and <code>OffsetDateTime</code> with differing
signs (i.e.
one negative and one positive year) would return the inverse result of
what was expected. This was
introduced in v0.3.42 and has been fixed.</li>
<li>Type inference would fail due to feature unification when
<code>wasm-bindgen</code> enabled <code>serde_json</code>.
This has been fixed by explicitly specifying the type in the relevant
locations.</li>
</ul>
<h2>0.3.43 [2025-09-02]</h2>
<h3>Added</h3>
<ul>
<li>Support for <code>rand</code> 0.9</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>In the <code>convert</code> module, any use of <code>per</code> with
types that were not the same (such as
<code>Nanosecond::per(Second)</code>) would not compile due to a bug.
This has been fixed.</li>
</ul>
<h2>0.3.42 [2025-08-31]</h2>
<h3>Added</h3>
<ul>
<li><code>Time::duration_until</code></li>
<li><code>Time::duration_since</code></li>
<li><code>per_t</code> method for all types in
<code>time::convert</code>. This is similar to the existing
<code>per</code> method, but
can return any of the primitive numeric types that can represent the
result. This will cut down on
<code>as</code> casts while ensuring correctness. Type inference isn't
perfect, so you may need to provide a
type annotation in some situations.</li>
<li><code>impl PartialOrd for Month</code> and <code>impl Ord for
Month</code>; this assumes the months are in the same year</li>
<li><code>SystemTimeExt</code> trait, adding methods for checked
arithmetic with <code>time::Duration</code> and obtaining
the difference between two <code>SystemTime</code>s as a
<code>time::Duration</code></li>
<li>Permit using <code>UtcDateTime</code> with <code>rand</code> (this
was inadvertently omitted previously)</li>
<li><code>impl core::error::Error</code> for all error types (now
available when the <code>std</code> feature is disabled)</li>
<li>MacOS can now obtain the local UTC offset in multi-threaded programs
as the system APIs are
thread-safe.</li>
<li><code>#[track_caller]</code> has been added to all relevant
methods.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The minimum supported Rust version is now 1.81.0.</li>
<li>The dependency on <code>itoa</code> has been removed, as the
standard library now has similar functionality
by default.</li>
<li>Formatting a component that involves a floating point number is now
guaranteed to be
deterministic, avoiding any subtle differences between platforms or
compiler versions.</li>
</ul>
<h3>Fixed</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="04c0ef2838"><code>04c0ef2</code></a>
v0.3.44 release</li>
<li><a
href="b9420633a3"><code>b942063</code></a>
Compare datetimes with signed integers</li>
<li><a
href="dcdfbf62a9"><code>dcdfbf6</code></a>
Add explicit type to avoid inference errors</li>
<li><a
href="f20385296a"><code>f203852</code></a>
Revert &quot;Remove dependency on <code>itoa</code>&quot;</li>
<li><a
href="45b9932e57"><code>45b9932</code></a>
v0.3.43 release</li>
<li><a
href="8cbf0dbff0"><code>8cbf0db</code></a>
Fix bug with <code>convert</code></li>
<li><a
href="3343e85826"><code>3343e85</code></a>
Add support for rand 0.9</li>
<li><a
href="afb2574f94"><code>afb2574</code></a>
Add note about MSRV</li>
<li><a
href="ed2852e3b2"><code>ed2852e</code></a>
v0.3.42 release</li>
<li><a
href="1067543c7f"><code>1067543</code></a>
Fix copied comment</li>
<li>Additional commits viewable in <a
href="https://github.com/time-rs/time/compare/v0.3.41...v0.3.44">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=time&package-manager=cargo&previous-version=0.3.41&new-version=0.3.44)](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>
2025-09-24 18:49:17 +02:00
Shingo OKAWA
8aefc06a90 test(macros): regenerate trybuild stderr (#2093)
### Overview

Updated the `.stderr` file corresponding to the
`ratatui-macros/tests/ui/fails.rs` compile-fail test.

### Changes

- Updated `tests/ui/fails.stderr` to match the new compiler output.

### Impact

- Affects only the trybuild UI tests
- No impact on production code

### Notes

- The `.stderr` was generated using `TRYBUILD=overwrite cargo test`.

Closes https://github.com/ratatui/ratatui/issues/2094

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-09-23 22:55:06 +03:00
Ryan Roden-Corrent
03f3f6df35 feat(style): allow add/sub modifiers to be omitted in Style serialization. (#2057)
It's really useful that Style supports Deserialize, this allows TUI
apps to have configurable theming without much extra code.

However, deserializing a style currently fails if `add_modifier` and
`sub_modifier` are
not specified. That means the following TOML config:

```toml
[theme.highlight]
fg = "white"
bg = "black"
```

Will fail to deserialize with "missing field `add_modifier`". It should
be possible
to omit modifiers and have them default to "none".
2025-09-19 21:57:55 +03:00
dependabot[bot]
ecef506a2b build(deps): bump bitflags from 2.9.2 to 2.9.3 (#2064)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.2 to
2.9.3.
<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.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Streamline generated code by <a
href="https://github.com/nnethercote"><code>@​nnethercote</code></a> in
<a
href="https://redirect.github.com/bitflags/bitflags/pull/458">bitflags/bitflags#458</a></li>
<li>Prepare for 2.9.3 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/459">bitflags/bitflags#459</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/nnethercote"><code>@​nnethercote</code></a>
made their first contribution in <a
href="https://redirect.github.com/bitflags/bitflags/pull/458">bitflags/bitflags#458</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.2...2.9.3">https://github.com/bitflags/bitflags/compare/2.9.2...2.9.3</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.3</h1>
<h2>What's Changed</h2>
<ul>
<li>Streamline generated code by <a
href="https://github.com/nnethercote"><code>@​nnethercote</code></a> in
<a
href="https://redirect.github.com/bitflags/bitflags/pull/458">bitflags/bitflags#458</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/nnethercote"><code>@​nnethercote</code></a>
made their first contribution in <a
href="https://redirect.github.com/bitflags/bitflags/pull/458">bitflags/bitflags#458</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.2...2.9.3">https://github.com/bitflags/bitflags/compare/2.9.2...2.9.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f59ad49e71"><code>f59ad49</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/459">#459</a>
from KodrAus/cargo/2.9.3</li>
<li><a
href="2c3a4f4a4a"><code>2c3a4f4</code></a>
prepare for 2.9.3 release</li>
<li><a
href="9e1cf3eaca"><code>9e1cf3e</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/458">#458</a>
from nnethercote/streamline-generated-code</li>
<li><a
href="a3f1f78b5d"><code>a3f1f78</code></a>
Avoid calling
<code>InternalBitFlags::{bits,from_bits_retain}</code>.</li>
<li><a
href="aead794e31"><code>aead794</code></a>
Avoid local variables in generated code.</li>
<li>See full diff in <a
href="https://github.com/bitflags/bitflags/compare/2.9.2...2.9.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bitflags&package-manager=cargo&previous-version=2.9.2&new-version=2.9.3)](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>
2025-09-04 21:50:05 +02:00
Jagoda Estera Ślązak
e89a526aab feat(no_std): portable-atomic integration for targets with no atomic types (#2076)
Improves compatibility with no-std targets that don't support atomic
types.

We support three different scenarios depending on the target:
1. Terminal applications and other std targets (e.g. espidf):
- `std` enabled, `portable-atomic` disabled
2. Embedded targets with atomic types, bare metal x86, etc.:
- `std` disabled `portable-atomic` disabled
3. Embedded targets without atomic types (e.g. single-core MCUs):
- `std` disabled, `portable-atomic` enabled

Turning on `portable-atomic` together with `std` will fall back to `std`
atomic.
2025-09-04 20:14:25 +02:00
Josh McKinney
46e7c6cbbf chore: document rustfmt options (#2055) 2025-09-01 18:48:09 +03:00
dependabot[bot]
9a4f5af613 build(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 in the cargo group (#2074)
Bumps the cargo group with 1 update:
[tracing-subscriber](https://github.com/tokio-rs/tracing).

Updates `tracing-subscriber` from 0.3.19 to 0.3.20
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tracing/releases">tracing-subscriber's
releases</a>.</em></p>
<blockquote>
<h2>tracing-subscriber 0.3.20</h2>
<p><strong>Security Fix</strong>: ANSI Escape Sequence Injection
(CVE-TBD)</p>
<h2>Impact</h2>
<p>Previous versions of tracing-subscriber were vulnerable to ANSI
escape sequence injection attacks. Untrusted user input containing ANSI
escape sequences could be injected into terminal output when logged,
potentially allowing attackers to:</p>
<ul>
<li>Manipulate terminal title bars</li>
<li>Clear screens or modify terminal display</li>
<li>Potentially mislead users through terminal manipulation</li>
</ul>
<p>In isolation, impact is minimal, however security issues have been
found in terminal emulators that enabled an attacker to use ANSI escape
sequences via logs to exploit vulnerabilities in the terminal
emulator.</p>
<h2>Solution</h2>
<p>Version 0.3.20 fixes this vulnerability by escaping ANSI control
characters in when writing events to destinations that may be printed to
the terminal.</p>
<h2>Affected Versions</h2>
<p>All versions of tracing-subscriber prior to 0.3.20 are affected by
this vulnerability.</p>
<h2>Recommendations</h2>
<p>Immediate Action Required: We recommend upgrading to
tracing-subscriber 0.3.20 immediately, especially if your
application:</p>
<ul>
<li>Logs user-provided input (form data, HTTP headers, query parameters,
etc.)</li>
<li>Runs in environments where terminal output is displayed to
users</li>
</ul>
<h2>Migration</h2>
<p>This is a patch release with no breaking API changes. Simply update
your Cargo.toml:</p>
<pre lang="toml"><code>[dependencies]
tracing-subscriber = &quot;0.3.20&quot;
</code></pre>
<h2>Acknowledgments</h2>
<p>We would like to thank <a href="http://github.com/zefr0x">zefr0x</a>
who responsibly reported the issue at
<code>security@tokio.rs</code>.</p>
<p>If you believe you have found a security vulnerability in any
tokio-rs project, please email us at <code>security@tokio.rs</code>.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4c52ca5266"><code>4c52ca5</code></a>
fmt: fix ANSI escape sequence injection vulnerability (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3368">#3368</a>)</li>
<li><a
href="f71cebe41e"><code>f71cebe</code></a>
subscriber: impl Clone for EnvFilter (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3360">#3360</a>)</li>
<li><a
href="3a1f571102"><code>3a1f571</code></a>
Fix CI (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3361">#3361</a>)</li>
<li><a
href="e63ef57f3d"><code>e63ef57</code></a>
chore: prepare tracing-attributes 0.1.30 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3316">#3316</a>)</li>
<li><a
href="6e59a13b1a"><code>6e59a13</code></a>
attributes: fix tracing::instrument regression around shadowing (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3311">#3311</a>)</li>
<li><a
href="e4df761275"><code>e4df761</code></a>
tracing: update core to 0.1.34 and attributes to 0.1.29 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3305">#3305</a>)</li>
<li><a
href="643f392ebb"><code>643f392</code></a>
chore: prepare tracing-attributes 0.1.29 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3304">#3304</a>)</li>
<li><a
href="d08e7a6eea"><code>d08e7a6</code></a>
chore: prepare tracing-core 0.1.34 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3302">#3302</a>)</li>
<li><a
href="6e70c571d3"><code>6e70c57</code></a>
tracing-subscriber: count numbers of enters in <code>Timings</code> (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/2944">#2944</a>)</li>
<li><a
href="c01d4fd9de"><code>c01d4fd</code></a>
fix docs and enable CI on <code>main</code> branch (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3295">#3295</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.19...tracing-subscriber-0.3.20">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tracing-subscriber&package-manager=cargo&previous-version=0.3.19&new-version=0.3.20)](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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ratatui/ratatui/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 09:46:37 +02:00
dependabot[bot]
0a9ff761a4 build(deps): bump thiserror from 2.0.15 to 2.0.16 (#2069)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 2.0.15 to
2.0.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/thiserror/releases">thiserror's
releases</a>.</em></p>
<blockquote>
<h2>2.0.16</h2>
<ul>
<li>Add to &quot;no-std&quot; crates.io category (<a
href="https://redirect.github.com/dtolnay/thiserror/issues/429">#429</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="40b58536cc"><code>40b5853</code></a>
Release 2.0.16</li>
<li><a
href="83dfb5f99b"><code>83dfb5f</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/thiserror/issues/429">#429</a>
from dtolnay/nostd</li>
<li><a
href="9b4a99fb90"><code>9b4a99f</code></a>
Add to &quot;no-std&quot; crates.io category</li>
<li>See full diff in <a
href="https://github.com/dtolnay/thiserror/compare/2.0.15...2.0.16">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=thiserror&package-manager=cargo&previous-version=2.0.15&new-version=2.0.16)](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>
2025-08-26 21:07:21 +03:00
dependabot[bot]
632ce79adf build(deps): bump clap-verbosity-flag from 3.0.3 to 3.0.4 (#2070)
Bumps
[clap-verbosity-flag](https://github.com/clap-rs/clap-verbosity-flag)
from 3.0.3 to 3.0.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap-verbosity-flag/blob/master/CHANGELOG.md">clap-verbosity-flag's
changelog</a>.</em></p>
<blockquote>
<h2>[3.0.4] - 2025-08-19</h2>
<h3>Features</h3>
<ul>
<li>Add <code>serde</code> feature for when mixing CLI and config</li>
<li>Add comparison operators to types</li>
<li>Add conversions between <code>Verbosity</code> and
<code>VerbosityFilter</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5e051e6c96"><code>5e051e6</code></a>
chore: Release clap-verbosity-flag version 3.0.4</li>
<li><a
href="7e81cfd0a4"><code>7e81cfd</code></a>
docs: Update changelog</li>
<li><a
href="210e8d9b0e"><code>210e8d9</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap-verbosity-flag/issues/114">#114</a>
from joshka/jm/serde</li>
<li><a
href="44f0caae99"><code>44f0caa</code></a>
feat: Implement Serialization and Deserialization</li>
<li><a
href="f735876936"><code>f735876</code></a>
feat: Add conversion methods between Verbosity and VerbosityFilter</li>
<li><a
href="e6f4e62f94"><code>e6f4e62</code></a>
feat: Add Eq, and PartialEq impls to various types</li>
<li><a
href="5e1afbe4ad"><code>5e1afbe</code></a>
chore(deps): Update Rust Stable to v1.89 (<a
href="https://redirect.github.com/clap-rs/clap-verbosity-flag/issues/147">#147</a>)</li>
<li><a
href="70812d8da8"><code>70812d8</code></a>
chore(deps): Update Rust Stable to v1.88 (<a
href="https://redirect.github.com/clap-rs/clap-verbosity-flag/issues/146">#146</a>)</li>
<li><a
href="97637bc6f7"><code>97637bc</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap-verbosity-flag/issues/145">#145</a>
from epage/template</li>
<li><a
href="e9231b150d"><code>e9231b1</code></a>
chore: Update from _rust/main template</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap-verbosity-flag/compare/v3.0.3...v3.0.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap-verbosity-flag&package-manager=cargo&previous-version=3.0.3&new-version=3.0.4)](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>
2025-08-26 20:52:37 +03:00
Dominique Martinet
564a9d76fc fix(line-gauge): pad default label to display 3 numbers (#2053)
Display the default label of the LineGauge widget padded to fill 3 cells.
This makes it so that the label doesn't shift around when going from a
single digit to double / triple digits.

To maintain the existing behavior, use a custom label by calling `.label()`
on the LineGauge.
2025-08-22 11:11:38 -07:00
Josh McKinney
2d713d723d feat(crossterm): allow multiple crossterm versions (#1841)
This commit introduces feature flags to make it possible for widget
library authors to depend on a specific version of crossterm without
causing version conflicts. This should make it easier for libraries and 
apps to update crossterm versions more easily.

The available feature flags are `crossterm_0_28` and `crossterm_0_29`.
By default, the latest version is enabled. If a multiple features are
enabled we choose the latest version. We will in general support at
least the last two major (0.x) versions of crossterm, and will only
remove versions in a major version bump.
2025-08-17 12:43:18 -07:00
Shingo OKAWA
86cd5292dd chore(deps): update slab and zerovec (#2050)
## Summary
This PR updates the `slab` dependency from 0.4.10 to 0.4.11 to fix
[RUSTSEC-2025-0047](https://rustsec.org/advisories/RUSTSEC-2025-0047), a
security
advisory about a bounds check bug in `get_disjoint_mut` that could lead
to reading
uninitialized memory. Also updates `zerovec` to the latest non-yanked
version to resolve cargo-deny warnings.

## Changes
- Updated `slab` to 0.4.11
- Updated `zerovec` to latest available version
- Regenerated `Cargo.lock`

## References
- https://rustsec.org/advisories/RUSTSEC-2025-0047
-
https://github.com/ratatui/ratatui/actions/runs/16983398723/job/48147754711?pr=1963

Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
2025-08-15 12:03:55 +03:00
kashregister
a21501f7f4 test(bench): Added a benchmark for constraints (#2043)
I've added a new benchmark for constraints, which only takes into
account the time it takes to generate a full layout using a single type
of constraints only. Avoided rendering here as it resulted in more
inaccurate benchmarks, and i believe it should be separated nonetheless.
2025-08-12 14:49:00 -07:00
Josh McKinney
75b78be09f feat: add width() impl for tabs (#2049)
The purpose of this is to make it easy for apps to easily calculate the
total tab width including all dividers and padding.
2025-08-12 14:39:27 -07:00
Jagoda Estera Ślązak
719badb5b8 chore: skip alpha and beta tags in cliff.toml (#2026)
https://github.com/ratatui/ratatui/pull/2025#issuecomment-3135177683
2025-08-12 08:02:01 +02:00
dependabot[bot]
879e09787e build(deps): bump crate-ci/typos from 1.34.0 to 1.35.3 (#2044)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.34.0 to
1.35.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.35.3</h2>
<h2>[1.35.3] - 2025-08-08</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>ratatui</code> in Rust files</li>
</ul>
<h2>v1.35.2</h2>
<h2>[1.35.2] - 2025-08-07</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>unmarshaling</code></li>
</ul>
<h2>v1.35.1</h2>
<h2>[1.35.1] - 2025-08-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>apostroph</code></li>
<li>Fix typo in correction to <code>cordinate</code></li>
<li>Fix typo in correction to <code>reproduceability</code></li>
<li>Fix typo in correction to <code>revolutionss</code></li>
<li>Fix typo in correction to <code>transivity</code></li>
</ul>
<h2>v1.35.0</h2>
<h2>[1.35.0] - 2025-08-04</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1331">July
2025</a> changes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.35.3] - 2025-08-08</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>ratatui</code> in Rust files</li>
</ul>
<h2>[1.35.2] - 2025-08-07</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>unmarshaling</code></li>
</ul>
<h2>[1.35.1] - 2025-08-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>apostroph</code></li>
<li>Fix typo in correction to <code>cordinate</code></li>
<li>Fix typo in correction to <code>reproduceability</code></li>
<li>Fix typo in correction to <code>revolutionss</code></li>
<li>Fix typo in correction to <code>transivity</code></li>
</ul>
<h2>[1.35.0] - 2025-08-04</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1331">July
2025</a> changes</li>
</ul>
<h2>[1.34.0] - 2025-06-30</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1309">June
2025</a> changes</li>
</ul>
<h2>[1.33.1] - 2025-06-02</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Don't correct <code>wasn't</code> to
<code>wasm't</code></li>
</ul>
<h2>[1.33.0] - 2025-06-02</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="52bd719c2c"><code>52bd719</code></a>
chore: Release</li>
<li><a
href="c6f77dda9e"><code>c6f77dd</code></a>
docs: Update changelog</li>
<li><a
href="e35d08c453"><code>e35d08c</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1353">#1353</a>
from Rolv-Apneseth/ratatui</li>
<li><a
href="9d6691bc8c"><code>9d6691b</code></a>
fix: Ignore <code>ratatui</code> in Rust files</li>
<li><a
href="f1231bc2bc"><code>f1231bc</code></a>
chore: Release</li>
<li><a
href="66def6387b"><code>66def63</code></a>
docs: Update changelog</li>
<li><a
href="623f09b5bc"><code>623f09b</code></a>
chore: Release</li>
<li><a
href="1080316783"><code>1080316</code></a>
chore: Release</li>
<li><a
href="442605b529"><code>442605b</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1352">#1352</a>
from epage/marshaling</li>
<li><a
href="983f866bac"><code>983f866</code></a>
fix(dict): Don't correct marshaling</li>
<li>Additional commits viewable in <a
href="392b78fe18...52bd719c2c">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crate-ci/typos&package-manager=github_actions&previous-version=1.34.0&new-version=1.35.3)](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>
2025-08-11 13:45:40 -07:00
dependabot[bot]
381fcf3dc9 build(deps): bump actions/checkout from 4.2.2 to 5.0.0 (#2045)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2
to 5.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
<li>Prepare v5.0.0 release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li>
</ul>
<h2>⚠️ Minimum Compatible Runner Version</h2>
<p><strong>v2.327.1</strong><br />
<a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<p>Make sure your runner is updated to this version or newer to use this
release.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
<li>Prepare release v4.3.0 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2237">actions/checkout#2237</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/motss"><code>@​motss</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li><a href="https://github.com/mouismail"><code>@​mouismail</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li><a href="https://github.com/benwells"><code>@​benwells</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4...v4.3.0">https://github.com/actions/checkout/compare/v4...v4.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
<li>README: Suggest <code>user.email</code> to be
<code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li>
</ul>
<h2>v4.1.4</h2>
<ul>
<li>Disable <code>extensions.worktreeConfig</code> when disabling
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1692">actions/checkout#1692</a></li>
<li>Add dependabot config by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1688">actions/checkout#1688</a></li>
<li>Bump the minor-actions-dependencies group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1693">actions/checkout#1693</a></li>
<li>Bump word-wrap from 1.2.3 to 1.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1643">actions/checkout#1643</a></li>
</ul>
<h2>v4.1.3</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="08c6903cd8"><code>08c6903</code></a>
Prepare v5.0.0 release (<a
href="https://redirect.github.com/actions/checkout/issues/2238">#2238</a>)</li>
<li><a
href="9f265659d3"><code>9f26565</code></a>
Update actions checkout to use node 24 (<a
href="https://redirect.github.com/actions/checkout/issues/2226">#2226</a>)</li>
<li><a
href="08eba0b27e"><code>08eba0b</code></a>
Prepare release v4.3.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2237">#2237</a>)</li>
<li><a
href="631c7dc4f8"><code>631c7dc</code></a>
Update package dependencies (<a
href="https://redirect.github.com/actions/checkout/issues/2236">#2236</a>)</li>
<li><a
href="8edcb1bdb4"><code>8edcb1b</code></a>
Update CODEOWNERS for actions (<a
href="https://redirect.github.com/actions/checkout/issues/2224">#2224</a>)</li>
<li><a
href="09d2acae67"><code>09d2aca</code></a>
Update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/2194">#2194</a>)</li>
<li><a
href="85e6279cec"><code>85e6279</code></a>
Adjust positioning of user email note and permissions heading (<a
href="https://redirect.github.com/actions/checkout/issues/2044">#2044</a>)</li>
<li><a
href="009b9ae9e4"><code>009b9ae</code></a>
Documentation update - add recommended permissions to Readme (<a
href="https://redirect.github.com/actions/checkout/issues/2043">#2043</a>)</li>
<li><a
href="cbb722410c"><code>cbb7224</code></a>
Update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/1977">#1977</a>)</li>
<li><a
href="3b9b8c884f"><code>3b9b8c8</code></a>
docs: update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/1971">#1971</a>)</li>
<li>See full diff in <a
href="11bd71901b...08c6903cd8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=4.2.2&new-version=5.0.0)](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>
2025-08-11 13:37:56 -07:00
dependabot[bot]
03072fa374 build(deps): bump taiki-e/install-action from 2.57.1 to 2.58.9 (#2046)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.57.1 to 2.58.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.58.9</h2>
<ul>
<li>Update <code>cargo-shear@latest</code> to 1.5.0.</li>
</ul>
<h2>2.58.8</h2>
<ul>
<li>Update <code>osv-scanner@latest</code> to 2.2.1.</li>
</ul>
<h2>2.58.7</h2>
<ul>
<li>
<p>Update <code>knope@latest</code> to 0.21.2.</p>
</li>
<li>
<p>Update <code>cyclonedx@latest</code> to 0.29.1.</p>
</li>
</ul>
<h2>2.58.6</h2>
<ul>
<li>Update <code>cargo-semver-checks@latest</code> to 0.43.0.</li>
</ul>
<h2>2.58.5</h2>
<ul>
<li>
<p>Update <code>knope@latest</code> to 0.21.1.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.14.4.</p>
</li>
</ul>
<h2>2.58.4</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.35.3.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.30.0.</p>
</li>
</ul>
<h2>2.58.3</h2>
<ul>
<li>Update <code>typos@latest</code> to 1.35.2.</li>
</ul>
<h2>2.58.2</h2>
<ul>
<li>Update <code>deepsource@latest</code> to 0.10.1.</li>
</ul>
<h2>2.58.1</h2>
<ul>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.2.0.</p>
</li>
<li>
<p>Update <code>grcov@latest</code> to 0.10.5.</p>
</li>
</ul>
<h2>2.58.0</h2>
<ul>
<li>
<p>Support <code>iai-callgrind-runner</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1073">#1073</a>,
thanks <a
href="https://github.com/niklasf"><code>@​niklasf</code></a>)</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.8.</p>
</li>
</ul>
<h2>2.57.8</h2>
<ul>
<li>Update <code>deepsource@latest</code> to 0.10.0.</li>
</ul>
<h2>2.57.7</h2>
<ul>
<li>Update <code>typos@latest</code> to 1.35.1.</li>
</ul>
<h2>2.57.6</h2>
<ul>
<li>
<p>Update <code>shellcheck@latest</code> to 0.11.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.102.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<ul>
<li>Update <code>editorconfig-checker@latest</code> to 3.4.0.</li>
</ul>
<h2>[2.58.9] - 2025-08-11</h2>
<ul>
<li>Update <code>cargo-shear@latest</code> to 1.5.0.</li>
</ul>
<h2>[2.58.8] - 2025-08-11</h2>
<ul>
<li>Update <code>osv-scanner@latest</code> to 2.2.1.</li>
</ul>
<h2>[2.58.7] - 2025-08-11</h2>
<ul>
<li>
<p>Update <code>knope@latest</code> to 0.21.2.</p>
</li>
<li>
<p>Update <code>cyclonedx@latest</code> to 0.29.1.</p>
</li>
</ul>
<h2>[2.58.6] - 2025-08-10</h2>
<ul>
<li>Update <code>cargo-semver-checks@latest</code> to 0.43.0.</li>
</ul>
<h2>[2.58.5] - 2025-08-10</h2>
<ul>
<li>
<p>Update <code>knope@latest</code> to 0.21.1.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.14.4.</p>
</li>
</ul>
<h2>[2.58.4] - 2025-08-09</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.35.3.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.30.0.</p>
</li>
</ul>
<h2>[2.58.3] - 2025-08-08</h2>
<ul>
<li>Update <code>typos@latest</code> to 1.35.2.</li>
</ul>
<h2>[2.58.2] - 2025-08-07</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2c73a741d1"><code>2c73a74</code></a>
Release 2.58.9</li>
<li><a
href="424d851274"><code>424d851</code></a>
Update <code>cargo-shear@latest</code> to 1.5.0</li>
<li><a
href="c6d88ff920"><code>c6d88ff</code></a>
Release 2.58.8</li>
<li><a
href="c44ead199b"><code>c44ead1</code></a>
Update <code>osv-scanner@latest</code> to 2.2.1</li>
<li><a
href="1fd1160ee1"><code>1fd1160</code></a>
Release 2.58.7</li>
<li><a
href="a56809b7da"><code>a56809b</code></a>
Update <code>knope@latest</code> to 0.21.2</li>
<li><a
href="4af683f0e4"><code>4af683f</code></a>
Update <code>cyclonedx@latest</code> to 0.29.1</li>
<li><a
href="5f6f3e0538"><code>5f6f3e0</code></a>
Release 2.58.6</li>
<li><a
href="0a75db001a"><code>0a75db0</code></a>
Update <code>cargo-semver-checks@latest</code> to 0.43.0</li>
<li><a
href="a50f5c5668"><code>a50f5c5</code></a>
Release 2.58.5</li>
<li>Additional commits viewable in <a
href="a416ddeedb...2c73a741d1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.57.1&new-version=2.58.9)](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>
2025-08-11 13:32:25 -07:00
Orhun Parmaksız
01067efd1c chore(changelog): allow running git-cliff without release-plz (#2031)
This is probably not optimal because we won't have access to the current
`{package}` while running `git-cliff` but at least it will run _just_
fine.

While at it, I changed something in the commit parsers to avoid adding
dependency updates to the changelog.

---------

Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-08-09 20:21:59 +03:00
Josh McKinney
ae4f42f5ae chore(deps): use less specific versions in manifests (#2041)
The goal of this is to reduce dependabot updates to generally only
Cargo.lock updates

- Use "0.x" or "x" as the version generally.
- Specify versions only in the workspace manifest
- Bump versions to latest semver compatible (and update rstest / lru /
  criterion deps)
2025-08-05 02:25:15 -07:00
LitoMore
9998000e36 docs: use shields.io badge (#2040)
Related to:
- https://github.com/simple-icons/simple-icons/pull/13593
- https://github.com/ratatui/ratatui/pull/1967

The Ratatui icon is available on shields.io now ✌️

And it's customizable. There are more configurations at
https://shields.io/badges.

Here are some examples:

```markdown
![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff)
![](https://img.shields.io/badge/Ratatui-fff?logo=ratatui&logoColor=000)
![](https://img.shields.io/badge/Built_With-Ratatui-000?logo=ratatui&logoColor=fff&labelColor=000&color=fff)
![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff&style=flat-square)
![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff&style=for-the-badge)
```

![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff)
![](https://img.shields.io/badge/Ratatui-fff?logo=ratatui&logoColor=000)

![](https://img.shields.io/badge/Built_With-Ratatui-000?logo=ratatui&logoColor=fff&labelColor=000&color=fff)

![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff&style=flat-square)

![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff&style=for-the-badge)

I also created a PR to the ratatui-website project to update the badge.
Here is the PR:

- https://github.com/ratatui/ratatui-website/pull/924
2025-08-04 17:32:32 -07:00
Josh McKinney
8188ed3950 feat: implement UnicodeWidthStr for Text/Line/Span (#2030)
You can now calculate the width of any Text/Line/Span using the
UnicodeWidthStr trait instead of the width method on the type. This also
makes it possible to use the width_cjk() method if needed.
2025-08-01 10:50:09 -07:00
dependabot[bot]
5e75278499 build(deps): bump taiki-e/install-action from 2.56.19 to 2.57.1 (#2020) 2025-08-01 07:43:58 +02:00
Josh McKinney
71ef65b624 docs: add section on collaborative development to contributing doc (#2029) 2025-07-30 14:01:34 -07:00
Josh McKinney
c845fec765 feat: add conversion from Size to Rect (#2028)
`Rect::from(size)` returns a new Rect at the origin (0, 0) with the
specified `Size`
2025-07-30 11:25:21 -07:00
Jagoda Estera Ślązak
0afb1a99af chore: ignore beta and rc tags in cliff.toml (#2025) 2025-07-29 15:25:30 -07:00
Jagoda Estera Ślązak
5ae224b244 chore: prepare for beta release (#2022) 2025-07-29 09:45:40 +02:00
dependabot[bot]
cd90671a8b build(deps): bump release-plz/action from 0.5.109 to 0.5.110 (#2021)
Bumps [release-plz/action](https://github.com/release-plz/action) from
0.5.109 to 0.5.110.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/release-plz/action/releases">release-plz/action's
releases</a>.</em></p>
<blockquote>
<h2>v0.5.110</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.139 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/211">release-plz/action#211</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.110">https://github.com/release-plz/action/compare/v0.5...v0.5.110</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ccf6dd9984"><code>ccf6dd9</code></a>
Update to 0.3.139 (<a
href="https://redirect.github.com/release-plz/action/issues/211">#211</a>)</li>
<li>See full diff in <a
href="068d76d2aa...ccf6dd9984">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=release-plz/action&package-manager=github_actions&previous-version=0.5.109&new-version=0.5.110)](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>
2025-07-28 23:30:36 -07:00
dependabot[bot]
08040b893e build(deps): bump tokio from 1.46.1 to 1.47.0 (#2019)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.46.1 to 1.47.0.
<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.47.0</h2>
<h1>1.47.0 (July 25th, 2025)</h1>
<p>This release adds <code>poll_proceed</code> and
<code>cooperative</code> to the <code>coop</code> module for
cooperative scheduling, adds <code>SetOnce</code> to the
<code>sync</code> module which provides
similar functionality to [<code>std::sync::OnceLock</code>], and adds a
new method
<code>sync::Notify::notified_owned()</code> which returns an
<code>OwnedNotified</code> without
a lifetime parameter.</p>
<h2>Added</h2>
<ul>
<li>coop: add <code>cooperative</code> and <code>poll_proceed</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7405">#7405</a>)</li>
<li>sync: add <code>SetOnce</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7418">#7418</a>)</li>
<li>sync: add <code>sync::Notify::notified_owned()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7465">#7465</a>)</li>
</ul>
<h2>Changed</h2>
<ul>
<li>deps: upgrade windows-sys 0.52 → 0.59 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7117">#7117</a>)</li>
<li>deps: update to socket2 v0.6 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7443">#7443</a>)</li>
<li>sync: improve <code>AtomicWaker::wake</code> performance (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7450">#7450</a>)</li>
</ul>
<h2>Documented</h2>
<ul>
<li>metrics: fix listed feature requirements for some metrics (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7449">#7449</a>)</li>
<li>runtime: improve safety comments of <code>Readiness&lt;'_&gt;</code>
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7415">#7415</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/7405">#7405</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7405">tokio-rs/tokio#7405</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7415">#7415</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7415">tokio-rs/tokio#7415</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7418">#7418</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7418">tokio-rs/tokio#7418</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7449">#7449</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7449">tokio-rs/tokio#7449</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7450">#7450</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7450">tokio-rs/tokio#7450</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7465">#7465</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7465">tokio-rs/tokio#7465</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3911cb8523"><code>3911cb8</code></a>
chore: prepare Tokio v1.47.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7482">#7482</a>)</li>
<li><a
href="d545aa2601"><code>d545aa2</code></a>
sync: add <code>sync::Notify::notified_owned()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7465">#7465</a>)</li>
<li><a
href="911ab21d70"><code>911ab21</code></a>
sync: add <code>SetOnce</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7418">#7418</a>)</li>
<li><a
href="9e94fa7e15"><code>9e94fa7</code></a>
task: remove raw-entry feature from hashbrown dep (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7252">#7252</a>)</li>
<li><a
href="0d234c3cf9"><code>0d234c3</code></a>
ci: unfreeze wasm-unknown-unknown from rustc 1.81 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7471">#7471</a>)</li>
<li><a
href="3754e059b6"><code>3754e05</code></a>
ci: use ubuntu-24.04-arm instead of ubuntu-22.04-arm (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7470">#7470</a>)</li>
<li><a
href="6d868d96ce"><code>6d868d9</code></a>
sync: fix <code>CancellationToken</code> failing to cancel the ready
futures (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7462">#7462</a>)</li>
<li><a
href="0a3fe46086"><code>0a3fe46</code></a>
sync: remove duplicated code in <code>OnceCell</code> tests (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7458">#7458</a>)</li>
<li><a
href="154d7d5fe6"><code>154d7d5</code></a>
ci: cleanup legacy <code>R-loom-multi-thread-alt</code> label from the
labeler (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7457">#7457</a>)</li>
<li><a
href="611b793356"><code>611b793</code></a>
coop: add <code>cooperative</code> and <code>poll_proceed</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7405">#7405</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.46.1...tokio-1.47.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.46.1&new-version=1.47.0)](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>
2025-07-28 23:30:01 -07:00
Jagoda Estera Ślązak
cba5cca2bd docs: update heading image for Ratatui 0.30.0 release 🎉 (#2000)
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-07-25 14:30:36 -07:00
Josh McKinney
c01b7d43ea ci: remove old release workflows (#2015) 2025-07-25 14:28:37 -07:00
Josh McKinney
9836f0760d docs: add AI contribution guidelines (#2013) 2025-07-25 12:10:14 -07:00
dependabot[bot]
bce6604379 build(deps): bump taiki-e/install-action from 2.56.13 to 2.56.19 (#2006)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.56.13 to 2.56.19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.56.19</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.18.</li>
</ul>
<h2>2.56.18</h2>
<ul>
<li>Update <code>just@latest</code> to 1.42.3.</li>
</ul>
<h2>2.56.17</h2>
<ul>
<li>Update <code>wasmtime@latest</code> to 34.0.2.</li>
</ul>
<h2>2.56.16</h2>
<ul>
<li>
<p>Update <code>cargo-zigbuild@latest</code> to 0.20.1.</p>
</li>
<li>
<p>Update <code>cargo-lambda@latest</code> to 1.8.6.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.6.</p>
</li>
<li>
<p>Update <code>earthly@latest</code> to 0.8.16.</p>
</li>
</ul>
<h2>2.56.15</h2>
<ul>
<li>
<p>Fix <code>cargo-valgrind</code> installation error due to their tag
rename.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.3.2.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.42.2.</p>
</li>
</ul>
<h2>2.56.14</h2>
<ul>
<li>
<p>Update <code>zola@latest</code> to 0.21.0.</p>
</li>
<li>
<p>Update <code>wait-for-them@latest</code> to 0.5.1.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.4.52.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.42.1.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.4.0.</p>
</li>
<li>
<p>Update <code>cyclonedx@latest</code> to 0.29.0.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<h2>[2.56.19] - 2025-07-19</h2>
<ul>
<li>Update <code>cargo-llvm-cov@latest</code> to 0.6.18.</li>
</ul>
<h2>[2.56.18] - 2025-07-19</h2>
<ul>
<li>Update <code>just@latest</code> to 1.42.3.</li>
</ul>
<h2>[2.56.17] - 2025-07-18</h2>
<ul>
<li>Update <code>wasmtime@latest</code> to 34.0.2.</li>
</ul>
<h2>[2.56.16] - 2025-07-18</h2>
<ul>
<li>
<p>Update <code>cargo-zigbuild@latest</code> to 0.20.1.</p>
</li>
<li>
<p>Update <code>cargo-lambda@latest</code> to 1.8.6.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.6.</p>
</li>
<li>
<p>Update <code>earthly@latest</code> to 0.8.16.</p>
</li>
</ul>
<h2>[2.56.15] - 2025-07-16</h2>
<ul>
<li>
<p>Fix <code>cargo-valgrind</code> installation error due to their tag
rename.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.3.2.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.42.2.</p>
</li>
</ul>
<h2>[2.56.14] - 2025-07-15</h2>
<ul>
<li>
<p>Update <code>zola@latest</code> to 0.21.0.</p>
</li>
<li>
<p>Update <code>wait-for-them@latest</code> to 0.5.1.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.4.52.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c99cc51b30"><code>c99cc51</code></a>
Release 2.56.19</li>
<li><a
href="35aa282e0f"><code>35aa282</code></a>
Update <code>cargo-llvm-cov@latest</code> to 0.6.18</li>
<li><a
href="8962e8bc90"><code>8962e8b</code></a>
Release 2.56.18</li>
<li><a
href="86ed27786e"><code>86ed277</code></a>
Update <code>just@latest</code> to 1.42.3</li>
<li><a
href="d8fcd11e5f"><code>d8fcd11</code></a>
Release 2.56.17</li>
<li><a
href="03efa19be6"><code>03efa19</code></a>
Update readme</li>
<li><a
href="14dc975de9"><code>14dc975</code></a>
ci: Fix debian 10 setup</li>
<li><a
href="00c7072f52"><code>00c7072</code></a>
Update wasmtime manifest</li>
<li><a
href="8520ed0913"><code>8520ed0</code></a>
Release 2.56.16</li>
<li><a
href="56de642f63"><code>56de642</code></a>
Update <code>cargo-zigbuild@latest</code> to 0.20.1</li>
<li>Additional commits viewable in <a
href="c07504cae0...c99cc51b30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.56.13&new-version=2.56.19)](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>
2025-07-21 13:27:03 -07:00
dependabot[bot]
c8d5d385b3 build(deps): bump release-plz/action from 0.5.108 to 0.5.109 (#2008)
Bumps [release-plz/action](https://github.com/release-plz/action) from
0.5.108 to 0.5.109.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/release-plz/action/releases">release-plz/action's
releases</a>.</em></p>
<blockquote>
<h2>v0.5.109</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.138 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/210">release-plz/action#210</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.109">https://github.com/release-plz/action/compare/v0.5...v0.5.109</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="068d76d2aa"><code>068d76d</code></a>
Update to 0.3.138 (<a
href="https://redirect.github.com/release-plz/action/issues/210">#210</a>)</li>
<li>See full diff in <a
href="8724d33cd9...068d76d2aa">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=release-plz/action&package-manager=github_actions&previous-version=0.5.108&new-version=0.5.109)](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>
2025-07-21 13:26:38 -07:00
dependabot[bot]
3fe3fe316e build(deps): bump marocchino/sticky-pull-request-comment from 2.9.3 to 2.9.4 (#2011)
Bumps
[marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment)
from 2.9.3 to 2.9.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/marocchino/sticky-pull-request-comment/releases">marocchino/sticky-pull-request-comment's
releases</a>.</em></p>
<blockquote>
<h2>v2.9.4</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps-dev): Bump <code>@​biomejs/biome</code> from 2.0.0 to
2.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1554">marocchino/sticky-pull-request-comment#1554</a></li>
<li>build(deps-dev): Bump <code>@​types/node</code> from 24.0.3 to
24.0.11 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1561">marocchino/sticky-pull-request-comment#1561</a></li>
<li>build(deps-dev): Bump <code>@​biomejs/biome</code> from 2.0.4 to
2.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1562">marocchino/sticky-pull-request-comment#1562</a></li>
<li>build(deps-dev): Bump <code>@​types/node</code> from 24.0.11 to
24.0.12 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1563">marocchino/sticky-pull-request-comment#1563</a></li>
<li>build(deps-dev): Bump <code>@​types/node</code> from 24.0.12 to
24.0.13 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1564">marocchino/sticky-pull-request-comment#1564</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/marocchino/sticky-pull-request-comment/compare/v2.9.3...v2.9.4">https://github.com/marocchino/sticky-pull-request-comment/compare/v2.9.3...v2.9.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="773744901b"><code>7737449</code></a>
📦️ Build</li>
<li><a
href="8b423c6fac"><code>8b423c6</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1564">#1564</a>
from marocchino/dependabot/npm_and_yarn/types/node-2...</li>
<li><a
href="3ac8a744e4"><code>3ac8a74</code></a>
build(deps-dev): Bump <code>@​types/node</code> from 24.0.12 to
24.0.13</li>
<li><a
href="e430cfc2fc"><code>e430cfc</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1563">#1563</a>
from marocchino/dependabot/npm_and_yarn/types/node-2...</li>
<li><a
href="99f9378b47"><code>99f9378</code></a>
build(deps-dev): Bump <code>@​types/node</code> from 24.0.11 to
24.0.12</li>
<li><a
href="2216b3aa26"><code>2216b3a</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1562">#1562</a>
from marocchino/dependabot/npm_and_yarn/biomejs/biom...</li>
<li><a
href="482d7fd7d6"><code>482d7fd</code></a>
build(deps-dev): Bump <code>@​biomejs/biome</code> from 2.0.4 to
2.1.1</li>
<li><a
href="c2da581914"><code>c2da581</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1561">#1561</a>
from marocchino/dependabot/npm_and_yarn/types/node-2...</li>
<li><a
href="76f84622bc"><code>76f8462</code></a>
build(deps-dev): Bump <code>@​types/node</code> from 24.0.3 to
24.0.11</li>
<li><a
href="246151aa30"><code>246151a</code></a>
⬆️ Update biome</li>
<li>Additional commits viewable in <a
href="d2ad0de260...773744901b">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=marocchino/sticky-pull-request-comment&package-manager=github_actions&previous-version=2.9.3&new-version=2.9.4)](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>
2025-07-21 13:25:49 -07:00
dependabot[bot]
0f10944ca0 build(deps): bump strum from 0.27.1 to 0.27.2 (#2009)
Bumps [strum](https://github.com/Peternator7/strum) from 0.27.1 to
0.27.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Peternator7/strum/releases">strum's
releases</a>.</em></p>
<blockquote>
<h2>v0.27.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Adding support for doc comments on <code>EnumDiscriminants</code>
generated type… by <a
href="https://github.com/linclelinkpart5"><code>@​linclelinkpart5</code></a>
in <a
href="https://redirect.github.com/Peternator7/strum/pull/141">Peternator7/strum#141</a></li>
<li>Drop needless <code>rustversion</code> dependency by <a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
in <a
href="https://redirect.github.com/Peternator7/strum/pull/446">Peternator7/strum#446</a></li>
<li>Upgrade <code>phf</code> to v0.12 by <a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
in <a
href="https://redirect.github.com/Peternator7/strum/pull/448">Peternator7/strum#448</a></li>
<li>allow discriminants on empty enum by <a
href="https://github.com/crop2000"><code>@​crop2000</code></a> in <a
href="https://redirect.github.com/Peternator7/strum/pull/435">Peternator7/strum#435</a></li>
<li>Remove broken link to EnumTable docs by <a
href="https://github.com/schneems"><code>@​schneems</code></a> in <a
href="https://redirect.github.com/Peternator7/strum/pull/427">Peternator7/strum#427</a></li>
<li>Change enum table callbacks to FnMut. by <a
href="https://github.com/ClaytonKnittel"><code>@​ClaytonKnittel</code></a>
in <a
href="https://redirect.github.com/Peternator7/strum/pull/443">Peternator7/strum#443</a></li>
<li>Add <code>#[automatically_derived]</code> to the <code>impl</code>s
by <a
href="https://github.com/dandedotdev"><code>@​dandedotdev</code></a> in
<a
href="https://redirect.github.com/Peternator7/strum/pull/444">Peternator7/strum#444</a></li>
<li>Implement a <code>suffix</code> attribute for serialization of enum
variants by <a
href="https://github.com/amogh-dambal"><code>@​amogh-dambal</code></a>
in <a
href="https://redirect.github.com/Peternator7/strum/pull/440">Peternator7/strum#440</a></li>
<li>Expound upon use_phf docs by <a
href="https://github.com/Peternator7"><code>@​Peternator7</code></a> in
<a
href="https://redirect.github.com/Peternator7/strum/pull/449">Peternator7/strum#449</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/446">Peternator7/strum#446</a></li>
<li><a href="https://github.com/crop2000"><code>@​crop2000</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/435">Peternator7/strum#435</a></li>
<li><a href="https://github.com/schneems"><code>@​schneems</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/427">Peternator7/strum#427</a></li>
<li><a
href="https://github.com/ClaytonKnittel"><code>@​ClaytonKnittel</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/443">Peternator7/strum#443</a></li>
<li><a
href="https://github.com/dandedotdev"><code>@​dandedotdev</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/444">Peternator7/strum#444</a></li>
<li><a
href="https://github.com/amogh-dambal"><code>@​amogh-dambal</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/440">Peternator7/strum#440</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Peternator7/strum/compare/v0.27.1...v0.27.2">https://github.com/Peternator7/strum/compare/v0.27.1...v0.27.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Peternator7/strum/blob/master/CHANGELOG.md">strum's
changelog</a>.</em></p>
<blockquote>
<h2>0.27.2</h2>
<ul>
<li>
<p><a
href="https://redirect.github.com/Peternator7/strum/pull/141">#141</a>:
Adding support for doc comments on <code>EnumDiscriminants</code>
generated type.</p>
<ul>
<li>The doc comment will be copied from the variant on the type
itself.</li>
</ul>
</li>
<li>
<p><a
href="https://redirect.github.com/Peternator7/strum/pull/435">#435</a>:allow
discriminants on empty enum.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/Peternator7/strum/pull/443">#443</a>:
Change enum table callbacks to FnMut.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/Peternator7/strum/pull/444">#444</a>:
Add <code>#[automatically_derived]</code> to the <code>impl</code>s by
<a href="https://github.com/dandedotdev"><code>@​dandedotdev</code></a>
in <a
href="https://redirect.github.com/Peternator7/strum/pull/444">Peternator7/strum#444</a></p>
<ul>
<li>This should make the linter less noisy with warnings in generated
code.</li>
</ul>
</li>
<li>
<p><a
href="https://redirect.github.com/Peternator7/strum/pull/440">#440</a>:
Implement a <code>suffix</code> attribute for serialization of enum
variants.</p>
<pre lang="rust"><code>#[derive(strum::Display)]
#[strum(suffix=&quot;.json&quot;)]
#[strum(serialize_all=&quot;snake_case&quot;)]
enum StorageConfiguration {
  PostgresProvider,
  S3StorageProvider,
  AzureStorageProvider,
}
<p>fn main() {
let response = SurveyResponse::Other(&quot;It was good&quot;.into());
println!(&quot;Loading configuration from: {}&quot;,
StorageConfiguration::PostgresProvider);
// prints: Loaded Configuration from: postgres_provider.json
}
</code></pre></p>
</li>
<li>
<p><a
href="https://redirect.github.com/Peternator7/strum/pull/446">#446</a>:
Drop needless <code>rustversion</code> dependency.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="38f66210e7"><code>38f6621</code></a>
Expound upon use_phf docs (<a
href="https://redirect.github.com/Peternator7/strum/issues/449">#449</a>)</li>
<li><a
href="bb1339026b"><code>bb13390</code></a>
Implement a <code>suffix</code> attribute for serialization of enum
variants (<a
href="https://redirect.github.com/Peternator7/strum/issues/440">#440</a>)</li>
<li><a
href="c9e52bfd28"><code>c9e52bf</code></a>
Add <code>#[automatically_derived]</code> to the <code>impl</code>s (<a
href="https://redirect.github.com/Peternator7/strum/issues/444">#444</a>)</li>
<li><a
href="1b00f899e5"><code>1b00f89</code></a>
Change enum table callbacks to FnMut. (<a
href="https://redirect.github.com/Peternator7/strum/issues/443">#443</a>)</li>
<li><a
href="6e2ca25fba"><code>6e2ca25</code></a>
Remove broken link to EnumTable docs (<a
href="https://redirect.github.com/Peternator7/strum/issues/427">#427</a>)</li>
<li><a
href="9503781141"><code>9503781</code></a>
allow discriminants on empty enum (<a
href="https://redirect.github.com/Peternator7/strum/issues/435">#435</a>)</li>
<li><a
href="8553ba2845"><code>8553ba2</code></a>
Upgrade <code>phf</code> to v0.12 (<a
href="https://redirect.github.com/Peternator7/strum/issues/448">#448</a>)</li>
<li><a
href="2eba5c2a5c"><code>2eba5c2</code></a>
Drop needless <code>rustversion</code> dependency (<a
href="https://redirect.github.com/Peternator7/strum/issues/446">#446</a>)</li>
<li><a
href="f301b67d91"><code>f301b67</code></a>
Merge branch 'linclelinkpart5-master-2'</li>
<li><a
href="455b2bf859"><code>455b2bf</code></a>
Merge branch 'master' of <a
href="https://github.com/linclelinkpart5/strum">https://github.com/linclelinkpart5/strum</a>
into lincle...</li>
<li>See full diff in <a
href="https://github.com/Peternator7/strum/compare/v0.27.1...v0.27.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=strum&package-manager=cargo&previous-version=0.27.1&new-version=0.27.2)](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>
2025-07-21 21:55:41 +02:00
dependabot[bot]
1bd3181d8e build(deps): bump instability from 0.3.7 to 0.3.9 (#2007)
Bumps [instability](https://github.com/ratatui/instability) from 0.3.7
to 0.3.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/instability/releases">instability's
releases</a>.</em></p>
<blockquote>
<h2>instability-example-v0.3.9</h2>
<h3>Other</h3>
<ul>
<li>Add #[allow(unused_imports)] lint to unstable reexports (<a
href="https://redirect.github.com/ratatui/instability/pull/21">#21</a>)</li>
</ul>
<h2>instability-v0.3.9</h2>
<h3>Other</h3>
<ul>
<li>split release jobs, fixup permissions (<a
href="https://redirect.github.com/ratatui/instability/pull/28">#28</a>)</li>
</ul>
<h2>instability-example-v0.3.8</h2>
<h3>Other</h3>
<ul>
<li>Add #[allow(unused_imports)] lint to unstable reexports (<a
href="https://redirect.github.com/ratatui/instability/pull/21">#21</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/instability/blob/main/CHANGELOG.md">instability's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/instability/compare/instability-v0.3.8...instability-v0.3.9">0.3.9</a>
- 2025-07-18</h2>
<h3>Other</h3>
<ul>
<li>split release jobs, fixup permissions (<a
href="https://redirect.github.com/ratatui/instability/pull/28">#28</a>)</li>
</ul>
<h2><a
href="https://github.com/ratatui/instability/compare/instability-v0.3.7...instability-v0.3.8">0.3.8</a>
- 2025-07-11</h2>
<h3>Added</h3>
<ul>
<li>Add <code>instability_disable_unstable_docs</code> RUSTFLAGS (<a
href="https://redirect.github.com/ratatui/instability/pull/23">#23</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4cf23b4370"><code>4cf23b4</code></a>
chore: release v0.3.9 (<a
href="https://redirect.github.com/ratatui/instability/issues/29">#29</a>)</li>
<li><a
href="d88afd18b7"><code>d88afd1</code></a>
ci: split release jobs, fixup permissions (<a
href="https://redirect.github.com/ratatui/instability/issues/28">#28</a>)</li>
<li><a
href="f88acb150e"><code>f88acb1</code></a>
ci: configure trusted publishing (<a
href="https://redirect.github.com/ratatui/instability/issues/27">#27</a>)</li>
<li><a
href="5bf7467800"><code>5bf7467</code></a>
chore: replace ratatui-org with ratatui everywhere (<a
href="https://redirect.github.com/ratatui/instability/issues/26">#26</a>)</li>
<li><a
href="d0fc40644f"><code>d0fc406</code></a>
chore: release v0.3.8 (<a
href="https://redirect.github.com/ratatui/instability/issues/24">#24</a>)</li>
<li><a
href="4d899fea50"><code>4d899fe</code></a>
feat: Add <code>instability_disable_unstable_docs</code> RUSTFLAGS (<a
href="https://redirect.github.com/ratatui/instability/issues/23">#23</a>)</li>
<li>See full diff in <a
href="https://github.com/ratatui/instability/compare/instability-v0.3.7...instability-v0.3.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=instability&package-manager=cargo&previous-version=0.3.7&new-version=0.3.9)](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>
2025-07-21 21:53:00 +02:00
dependabot[bot]
e04fef7354 build(deps): bump serde_json from 1.0.140 to 1.0.141 (#2005)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.140 to
1.0.141.
<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.141</h2>
<ul>
<li>Optimize string escaping during serialization (<a
href="https://redirect.github.com/serde-rs/json/issues/1273">#1273</a>,
thanks <a
href="https://github.com/conradludgate"><code>@​conradludgate</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6843c3660e"><code>6843c36</code></a>
Release 1.0.141</li>
<li><a
href="6e2c21063a"><code>6e2c210</code></a>
Touch up PR 1273</li>
<li><a
href="623d9b47cf"><code>623d9b4</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1273">#1273</a>
from conradludgate/optimise-string-escaping</li>
<li><a
href="de70b7db1f"><code>de70b7d</code></a>
use unreachable_unchecked for escape table. use a second match to
roundtrip E...</li>
<li><a
href="f2d940dd54"><code>f2d940d</code></a>
replace start index with bytes slice reference</li>
<li><a
href="cd55b5a0ff"><code>cd55b5a</code></a>
Ignore mismatched_lifetime_syntaxes lint</li>
<li><a
href="c1826ebccc"><code>c1826eb</code></a>
Pin nightly toolchain used for miri job</li>
<li><a
href="8a56cfa6d0"><code>8a56cfa</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1248">#1248</a>
from jimmycathy/master</li>
<li><a
href="af3d80de56"><code>af3d80d</code></a>
chore: fix typo</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.140...v1.0.141">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.140&new-version=1.0.141)](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>
2025-07-21 22:34:26 +03:00
dependabot[bot]
bbca3870d5 build(deps): bump rand from 0.9.1 to 0.9.2 (#2010)
Bumps [rand](https://github.com/rust-random/rand) from 0.9.1 to 0.9.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-random/rand/blob/master/CHANGELOG.md">rand's
changelog</a>.</em></p>
<blockquote>
<h2>[0.9.2 — 2025-07-20]</h2>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>rand::rngs::mock</code> module and
<code>StepRng</code> generator (<a
href="https://redirect.github.com/rust-random/rand/issues/1634">#1634</a>)</li>
</ul>
<h3>Additions</h3>
<ul>
<li>Enable <code>WeightedIndex&lt;usize&gt;</code> (de)serialization (<a
href="https://redirect.github.com/rust-random/rand/issues/1646">#1646</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d3dd415705"><code>d3dd415</code></a>
Prepare rand_core 0.9.2 (<a
href="https://redirect.github.com/rust-random/rand/issues/1605">#1605</a>)</li>
<li><a
href="99fabd20e9"><code>99fabd2</code></a>
Prepare rand_core 0.9.2</li>
<li><a
href="c7fe1c43b5"><code>c7fe1c4</code></a>
rand: re-export <code>rand_core</code> (<a
href="https://redirect.github.com/rust-random/rand/issues/1604">#1604</a>)</li>
<li><a
href="db2b1e0bb4"><code>db2b1e0</code></a>
rand: re-export <code>rand_core</code></li>
<li><a
href="ee1d96f9f5"><code>ee1d96f</code></a>
rand_core: implement reborrow for <code>UnwrapMut</code> (<a
href="https://redirect.github.com/rust-random/rand/issues/1595">#1595</a>)</li>
<li><a
href="e0eb2ee0fc"><code>e0eb2ee</code></a>
rand_core: implement reborrow for <code>UnwrapMut</code></li>
<li><a
href="975f602f5d"><code>975f602</code></a>
fixup clippy 1.85 warnings</li>
<li><a
href="775b05be1b"><code>775b05b</code></a>
Relax <code>Sized</code> requirements for blanket impls (<a
href="https://redirect.github.com/rust-random/rand/issues/1593">#1593</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-random/rand/compare/rand_core-0.9.1...rand_core-0.9.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rand&package-manager=cargo&previous-version=0.9.1&new-version=0.9.2)](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>
2025-07-21 22:33:35 +03:00
Austin Schey
1fe64de09a fix: include underline color in anstyle conversion (#2004)
Underline color wasn't included in the style conversion logic.
2025-07-20 17:07:29 -07:00
kenji
72334ed61c docs(layout): Update documentation to point to kasuari solver (#2003) 2025-07-20 13:07:20 -07:00
Jagoda Estera Ślązak
c1b8528b69 fix: panic when rendering widgets on too small buffer (#1996)
Fixes panic on overflow on horizontal `Barchart` and `RatatuiMascot` and adds proper tests to all widgets.

---------

Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-07-20 21:39:18 +02:00
Dheepak Krishnamurthy
cfebd68e18 chore: Fix typo in CONTRIBUTING.md (#2001)
Removes a hanging opening code block:

````
```suggestion
````
2025-07-20 06:11:27 +02:00
Josh McKinney
572749f388 chore: update contributing guidelines and add copilot-instructions (#1998)
See
https://docs.github.com/en/copilot/how-tos/agents/copilot-code-review/using-copilot-code-review

These instructions will be used by copilot when it performs automated PR
reviews, and helps provide guardrails for our standards. Over time we
might grow these to capture any consistent problems that we start seeing
when reviewing.

---------

Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-07-19 16:02:13 -07:00
David Tolnay
cdf189e15a build(deps): allow using ratatui with unicode-width 0.2.1 (#1999)
According to the issue linked from Cargo.toml, the intention has been to
manually upgrade unicode-width every now and then, after verifying that
the new version does not disrupt Ratatui. See
https://github.com/ratatui/ratatui/issues/1271#issuecomment-2373917195.

This PR unblocks using Ratatui in a dependency graph where some other
crate requires some of the fixes that landed in unicode-width 0.2.1.
Without this PR, Cargo blocks Ratatui from being used.

```console
error: failed to select a version for `unicode-width`.
    ... required by package `ratatui v0.29.0`
    ... which satisfies dependency `ratatui = "^0.29"` of package `cargo v0.91.0`
    ... which satisfies path dependency `cargo` (locked to 0.91.0) of package `repro v0.0.0`
versions that meet the requirements `=0.2.0` are: 0.2.0

all possible versions conflict with previously selected packages.

  previously selected package `unicode-width v0.2.1`
    ... which satisfies dependency `unicode-width = "^0.2.1"` of package `cargo v0.91.0`
    ... which satisfies path dependency `cargo` (locked to 0.91.0) of package `repro v0.0.0`

failed to select a version for `unicode-width` which could resolve this conflict
```
2025-07-19 15:23:20 -07:00
Tyler Breisacher
98f85b8650 docs: update link to scrollable widgets RFC (#1994) 2025-07-16 07:19:46 +02:00
Josh McKinney
0148b62f0c chore: remove cargo_metadata dep from xtask (#1993)
Removed due to hard N-2 MSRV requirement, whereas we use a soft N-2
(only update when necessary). This makes it painful to be able to test
our actual msrv (as the xtask has to be built with the version that its
deps support, while still wanting to check the msrv version, so we'd end
up with 2 versions in the one CI task and this would get annoying to
check).

See https://github.com/rust-lang/cargo/issues/15746 for more details.

Partially implements #1820 - mainly as a problem solution rather than a
specific goal to use cargo-hack
2025-07-15 15:05:18 -07:00
Josh McKinney
9bc573931c chore: remove clap-cargo from xtask (#1992)
Removed to avoid needing to bump our msrv. See
https://github.com/rust-lang/cargo/issues/15746\#issuecomment-3071774343
for more details.
2025-07-14 21:54:38 -07:00
dependabot[bot]
64e6d1953c build(deps): bump rust-lang/crates-io-auth-action from 1.0.0 to 1.0.1 (#1989)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust-lang/crates-io-auth-action&package-manager=github_actions&previous-version=1.0.0&new-version=1.0.1)](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: Orhun Parmaksız <orhun@archlinux.org>
2025-07-14 13:38:55 -07:00
dependabot[bot]
c0148a00fe build(deps): bump taiki-e/install-action from 2.56.7 to 2.56.13 (#1991)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.56.7&new-version=2.56.13)](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>
2025-07-14 13:30:49 -07:00
dependabot[bot]
44727c7b4a build(deps): bump cargo_metadata from 0.20.0 to 0.21.0 (#1987)
Bumps [cargo_metadata](https://github.com/oli-obk/cargo_metadata) from
0.20.0 to 0.21.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="70018a8681"><code>70018a8</code></a>
Update main.yml</li>
<li><a
href="523cfbe7f0"><code>523cfbe</code></a>
bump msrv</li>
<li><a
href="b1a61d390f"><code>b1a61d3</code></a>
bump version</li>
<li><a
href="0f300d5bff"><code>0f300d5</code></a>
Merge pull request <a
href="https://redirect.github.com/oli-obk/cargo_metadata/issues/295">#295</a>
from smoelius/update-cargo-util-schemas</li>
<li><a
href="4b28226e26"><code>4b28226</code></a>
Merge pull request <a
href="https://redirect.github.com/oli-obk/cargo_metadata/issues/300">#300</a>
from joeferner/fix-node-dep-name</li>
<li><a
href="bcd2373560"><code>bcd2373</code></a>
fix clippy errors</li>
<li><a
href="73aaebb077"><code>73aaebb</code></a>
fixes &quot;package name cannot be empty&quot; under
&quot;resolve/nodes/deps/name&quot;</li>
<li><a
href="f9a67c2023"><code>f9a67c2</code></a>
Merge pull request <a
href="https://redirect.github.com/oli-obk/cargo_metadata/issues/298">#298</a>
from kornelski/result</li>
<li><a
href="289e1173da"><code>289e117</code></a>
Make Result alias wildcard-import-proof</li>
<li><a
href="a9147a68d0"><code>a9147a6</code></a>
Merge pull request <a
href="https://redirect.github.com/oli-obk/cargo_metadata/issues/297">#297</a>
from ranger-ross/build-dir-unstable-support</li>
<li>Additional commits viewable in <a
href="https://github.com/oli-obk/cargo_metadata/compare/0.20.0...0.21.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cargo_metadata&package-manager=cargo&previous-version=0.20.0&new-version=0.21.0)](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>
2025-07-14 11:35:41 -07:00
dependabot[bot]
1e9d1253f9 build(deps): bump clap from 4.5.40 to 4.5.41 (#1988)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.40 to 4.5.41.
<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.41] - 2025-07-09</h2>
<h3>Features</h3>
<ul>
<li>Add <code>Styles::context</code> and
<code>Styles::context_value</code> to customize the styling of
<code>[default: value]</code> like notes in the <code>--help</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="92fcd83b76"><code>92fcd83</code></a>
chore: Release</li>
<li><a
href="aca91b99c1"><code>aca91b9</code></a>
docs: Update changelog</li>
<li><a
href="8434510cee"><code>8434510</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5869">#5869</a>
from tw4452852/patch-1</li>
<li><a
href="33b1fc304e"><code>33b1fc3</code></a>
fix(complete): Fix env leakage in elvish dynamic completion</li>
<li><a
href="e5f1f4884c"><code>e5f1f48</code></a>
chore: Release</li>
<li><a
href="9466a552fb"><code>9466a55</code></a>
docs: Update changelog</li>
<li><a
href="d74b793512"><code>d74b793</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5865">#5865</a>
from gifnksm/nushell-completion-value-types</li>
<li><a
href="ecbc775d3b"><code>ecbc775</code></a>
fix(nu): Set argument type based on <code>ValueHint</code></li>
<li><a
href="6784054536"><code>6784054</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5857">#5857</a>
from epage/empty</li>
<li><a
href="cca5f32b3a"><code>cca5f32</code></a>
test(complete): Show empty option-value behavior</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.40...clap_complete-v4.5.41">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.40&new-version=4.5.41)](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>
2025-07-14 11:25:23 -07:00
dependabot[bot]
aae46032bc build(deps): bump trybuild from 1.0.105 to 1.0.106 (#1986)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.105 to
1.0.106.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/trybuild/releases">trybuild's
releases</a>.</em></p>
<blockquote>
<h2>1.0.106</h2>
<ul>
<li>Update <code>toml</code> dependency to 0.9 (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/306">#306</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9e3eb039ed"><code>9e3eb03</code></a>
Release 1.0.106</li>
<li><a
href="6d6d3e83ad"><code>6d6d3e8</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/306">#306</a>
from dtolnay/toml</li>
<li><a
href="6b77d62236"><code>6b77d62</code></a>
Update to toml 0.9</li>
<li><a
href="f7a9a80fc4"><code>f7a9a80</code></a>
Ignore mismatched_lifetime_syntaxes lint</li>
<li><a
href="51a1a41487"><code>51a1a41</code></a>
Resolve manual_let_else pedantic clippy lint</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.105...1.0.106">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=trybuild&package-manager=cargo&previous-version=1.0.105&new-version=1.0.106)](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>
2025-07-14 11:24:57 -07:00
Josh McKinney
0e10170e19 chore: change Borders::NONE to a proper const (#1985)
https://docs.rs/bitflags/latest/bitflags/#zero-bit-flags

> Flags with no bits set should be avoided because they interact
strangely with
[Flags::contains](https://docs.rs/bitflags/latest/bitflags/trait.Flags.html#method.contains)
and
[Flags::intersects](https://docs.rs/bitflags/latest/bitflags/trait.Flags.html#method.intersects).
A zero-bit flag is always contained, but is never intersected. The names
of zero-bit flags can be parsed, but are never formatted.

Removing this simplifies the manual Debug impl that previously had to
check for Borders::NONE and now does not.
2025-07-13 22:56:21 -07:00
Josh McKinney
40e96a2a04 docs(block): add collapsed border example (#1899) 2025-07-13 01:30:57 -07:00
Josh McKinney
02ca5870c5 ci: add environment to release workflow (#1983)
https://github.com/rust-lang/crates.io/issues/11564#issuecomment-3066696820
2025-07-13 01:29:23 -07:00
LitoMore
8e3bd11d60 chore: add svg logo asset (#1967)
Added a shields.io style svg logo and a nicer version of the original logo.
The simplified icon will be added and available directly from shields.io via:
- https://github.com/simple-icons/simple-icons/pull/13593
2025-07-12 17:24:38 -07:00
Jagoda Estera Ślązak
017af11b2b feat: preserve block titles when merging borders (#1977)
Resolves #1939
2025-07-12 15:45:56 -07:00
Josh McKinney
821611f76f ci: use trusted publishing (#1981)
https://blog.rust-lang.org/2025/07/11/crates-io-development-update-2025-07/
https://crates.io/docs/trusted-publishing
2025-07-12 14:11:34 -07:00
Josh McKinney
ae43ea796a chore(cell): use Option instead of space (" ") for symbol (#1974)
This change makes the `Cell::symbol` field an `Option<CompactString>`,
allowing it to represent an empty cell as `None` instead of an empty
string. The rationale for this is to later allow the merge symbol
functionality to act differently based on whether a cell has previously
held a symbol or not, rather than always merging with an empty string.
This will help make it possible to merge borders with titles with spaces
and other symbols, without assuming that an empty string is always
equivalent to no symbol.

- Default is now derived as `Option::None` works correctly.
- PartialEq and Eq implementations are updated to treat `None` the same
  as an empty string.
- merge_symbol against an empty cell will now just set the symbol
  rather than calling MergeStrategy::merge with an empty string.
- PartialEq, and Hash are manually implementated instead of being
  derived, and are updated to treat `None` equal to an empty string.
2025-07-11 21:43:23 +03:00
Shingo OKAWA
5fa342cc52 fix(widgets): fix centered block title truncation (#1973)
Previously block titles that were aligned center were
truncated poorly (aligned to the left, and the last
non-fitting title would be truncated on the left and right.
This now truncates the titles more obviously centered.
2025-07-11 00:19:07 -07:00
John T. Wodder II
08b21fa55c fix: Fix panic when rendering a Paragraph out of bounds (#1670)
Fixes #1667.
2025-07-09 17:37:20 -07:00
dependabot[bot]
32ccf38606 build(deps): bump marocchino/sticky-pull-request-comment from 2.9.1 to 2.9.3 (#1970)
Bumps
[marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment)
from 2.9.1 to 2.9.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/marocchino/sticky-pull-request-comment/releases">marocchino/sticky-pull-request-comment's
releases</a>.</em></p>
<blockquote>
<h2>v2.9.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update deps (including security issues)</li>
<li>Test with vitest instead of jest</li>
<li>Use biome</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/marocchino/sticky-pull-request-comment/compare/v2.9.2...v2.9.3">https://github.com/marocchino/sticky-pull-request-comment/compare/v2.9.2...v2.9.3</a></p>
<h2>v2.9.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​octokit/graphql-schema</code> &amp; use biome by <a
href="https://github.com/marocchino"><code>@​marocchino</code></a> in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1517">marocchino/sticky-pull-request-comment#1517</a></li>
<li>build(deps): Bump undici from 5.28.4 to 5.28.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1476">marocchino/sticky-pull-request-comment#1476</a></li>
<li>build(deps-dev): Bump <code>@​types/node</code> from 22.10.7 to
22.14.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1515">marocchino/sticky-pull-request-comment#1515</a></li>
<li>build(deps): Bump <code>@​octokit/request-error</code> from 5.0.1 to
5.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1490">marocchino/sticky-pull-request-comment#1490</a></li>
<li>build(deps): Bump <code>@​octokit/request</code> from 8.1.4 to 8.4.1
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1494">marocchino/sticky-pull-request-comment#1494</a></li>
<li>build(deps): Bump <code>@​octokit/plugin-paginate-rest</code> from
9.1.2 to 9.2.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/pull/1493">marocchino/sticky-pull-request-comment#1493</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/marocchino/sticky-pull-request-comment/compare/v2.9.1...v2.9.2">https://github.com/marocchino/sticky-pull-request-comment/compare/v2.9.1...v2.9.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d2ad0de260"><code>d2ad0de</code></a>
📦️ Build</li>
<li><a
href="c6b90f93cb"><code>c6b90f9</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1553">#1553</a>
from marocchino/dependabot/npm_and_yarn/brace-expans...</li>
<li><a
href="20665dd134"><code>20665dd</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1550">#1550</a>
from marocchino/dependabot/npm_and_yarn/types/node-2...</li>
<li><a
href="8a03a65ab9"><code>8a03a65</code></a>
build(deps): Bump brace-expansion from 1.1.11 to 1.1.12</li>
<li><a
href="8d4420ab75"><code>8d4420a</code></a>
build(deps-dev): Bump <code>@​types/node</code> from 22.15.30 to
24.0.3</li>
<li><a
href="14ca6a4b49"><code>14ca6a4</code></a>
📦️ Build</li>
<li><a
href="283f17cccc"><code>283f17c</code></a>
🔧 Update biome setting</li>
<li><a
href="0607099d6a"><code>0607099</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1552">#1552</a>
from marocchino/dependabot/npm_and_yarn/vitest-3.2.4</li>
<li><a
href="9bff39e005"><code>9bff39e</code></a>
Merge pull request <a
href="https://redirect.github.com/marocchino/sticky-pull-request-comment/issues/1551">#1551</a>
from marocchino/dependabot/npm_and_yarn/biomejs/biom...</li>
<li><a
href="f02e40f8ac"><code>f02e40f</code></a>
build(deps-dev): Bump vitest from 3.2.2 to 3.2.4</li>
<li>Additional commits viewable in <a
href="52423e0164...d2ad0de260">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=marocchino/sticky-pull-request-comment&package-manager=github_actions&previous-version=2.9.1&new-version=2.9.3)](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>
2025-07-07 16:41:11 -07:00
dependabot[bot]
04428f6f74 build(deps): bump taiki-e/install-action from 2.55.1 to 2.56.7 (#1971)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.55.1 to 2.56.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.56.7</h2>
<ul>
<li>Update <code>shfmt@latest</code> to 3.12.0.</li>
</ul>
<h2>2.56.6</h2>
<ul>
<li>
<p>Update <code>cargo-llvm-cov@latest</code> to 0.6.17.</p>
</li>
<li>
<p>Update <code>cargo-udeps@latest</code> to 0.1.57.</p>
</li>
</ul>
<h2>2.56.5</h2>
<ul>
<li>Update <code>cargo-semver-checks@latest</code> to 0.42.0.</li>
</ul>
<h2>2.56.4</h2>
<ul>
<li>Update <code>cargo-shear@latest</code> to 1.3.3.</li>
</ul>
<h2>2.56.3</h2>
<ul>
<li>Update <code>trivy@latest</code> to 0.64.1.</li>
</ul>
<h2>2.56.2</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.2.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.28.0.</p>
</li>
</ul>
<h2>2.56.1</h2>
<ul>
<li>Update <code>release-plz@latest</code> to 0.3.137.</li>
</ul>
<h2>2.56.0</h2>
<ul>
<li>Support <code>coreutils</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1017">#1017</a>,
thanks <a
href="https://github.com/jayvdb"><code>@​jayvdb</code></a>)</li>
</ul>
<h2>2.55.4</h2>
<ul>
<li>
<p>Update <code>trivy@latest</code> to 0.64.0.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.41.0.</p>
</li>
</ul>
<h2>2.55.3</h2>
<ul>
<li>Update <code>dprint@latest</code> to 0.50.1.</li>
</ul>
<h2>2.55.2</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.11.0.</p>
</li>
<li>
<p>Update <code>cargo-dinghy@latest</code> to 0.8.1.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md">taiki-e/install-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>This project adheres to <a href="https://semver.org">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased]</h2>
<ul>
<li>Update <code>vacuum@latest</code> to 0.17.3.</li>
</ul>
<h2>[2.56.7] - 2025-07-07</h2>
<ul>
<li>Update <code>shfmt@latest</code> to 3.12.0.</li>
</ul>
<h2>[2.56.6] - 2025-07-06</h2>
<ul>
<li>
<p>Update <code>cargo-llvm-cov@latest</code> to 0.6.17.</p>
</li>
<li>
<p>Update <code>cargo-udeps@latest</code> to 0.1.57.</p>
</li>
</ul>
<h2>[2.56.5] - 2025-07-06</h2>
<ul>
<li>Update <code>cargo-semver-checks@latest</code> to 0.42.0.</li>
</ul>
<h2>[2.56.4] - 2025-07-05</h2>
<ul>
<li>Update <code>cargo-shear@latest</code> to 1.3.3.</li>
</ul>
<h2>[2.56.3] - 2025-07-03</h2>
<ul>
<li>Update <code>trivy@latest</code> to 0.64.1.</li>
</ul>
<h2>[2.56.2] - 2025-07-02</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.17.2.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.28.0.</p>
</li>
</ul>
<h2>[2.56.1] - 2025-07-01</h2>
<ul>
<li>Update <code>release-plz@latest</code> to 0.3.137.</li>
</ul>
<h2>[2.56.0] - 2025-07-01</h2>
<ul>
<li>Support <code>coreutils</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1017">#1017</a>,
thanks <a
href="https://github.com/jayvdb"><code>@​jayvdb</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f3a27926ea"><code>f3a2792</code></a>
Release 2.56.7</li>
<li><a
href="fc0c1ad363"><code>fc0c1ad</code></a>
Update <code>shfmt@latest</code> to 3.12.0</li>
<li><a
href="cb148fe1fc"><code>cb148fe</code></a>
Release 2.56.6</li>
<li><a
href="95c7e0aefa"><code>95c7e0a</code></a>
Update <code>cargo-llvm-cov@latest</code> to 0.6.17</li>
<li><a
href="d86483f9ef"><code>d86483f</code></a>
Update <code>cargo-udeps@latest</code> to 0.1.57</li>
<li><a
href="d32ce31795"><code>d32ce31</code></a>
Release 2.56.5</li>
<li><a
href="2119a1ef9a"><code>2119a1e</code></a>
Replace tab with space</li>
<li><a
href="0ae016a18f"><code>0ae016a</code></a>
Update jq to 1.8.1</li>
<li><a
href="9b1aeb740e"><code>9b1aeb7</code></a>
Update <code>cargo-semver-checks@latest</code> to 0.42.0</li>
<li><a
href="e6d2212084"><code>e6d2212</code></a>
Release 2.56.4</li>
<li>Additional commits viewable in <a
href="491d37bbaa...f3a27926ea">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=taiki-e/install-action&package-manager=github_actions&previous-version=2.55.1&new-version=2.56.7)](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>
2025-07-07 16:40:29 -07:00
dependabot[bot]
84427c2857 build(deps): bump tokio from 1.45.1 to 1.46.1 (#1968) 2025-07-07 20:01:54 +02:00
Orhun Parmaksız
ca5a9bb019 chore(changelog): skip dependency updates in changelog (#1966) 2025-07-05 16:29:09 +03:00
Josh McKinney
1f0c2ee18e ci: audit github workflows with zizmor (#1961)
Fixes https://github.com/ratatui/ratatui/issues/1950
2025-07-02 14:51:41 -07:00
dependabot[bot]
6b3323fb10 build(deps): bump kasuari from 0.4.6 to 0.4.7 (#1960)
Bumps [kasuari](https://github.com/ratatui/kasuari) from 0.4.6 to 0.4.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/kasuari/releases">kasuari's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.7</h2>
<h3>Other</h3>
<ul>
<li><em>(gitignore)</em> add <code>.env</code> to
<code>.gitignore</code> (<a
href="https://redirect.github.com/ratatui/kasuari/pull/22">#22</a>)</li>
<li>use variables directly in the <code>format!</code> string (<a
href="https://redirect.github.com/ratatui/kasuari/pull/23">#23</a>)</li>
<li><em>(deps)</em> bump hashbrown from 0.15.3 to 0.15.4 in the
rust-dependencies group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/19">#19</a>)</li>
<li>fix for code scanning alert no. 1: Workflow does not contain
permissions (<a
href="https://redirect.github.com/ratatui/kasuari/pull/20">#20</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/kasuari/blob/main/CHANGELOG.md">kasuari's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/kasuari/compare/v0.4.6...v0.4.7">0.4.7</a>
- 2025-06-27</h2>
<h3>Other</h3>
<ul>
<li><em>(gitignore)</em> add <code>.env</code> to
<code>.gitignore</code> (<a
href="https://redirect.github.com/ratatui/kasuari/pull/22">#22</a>)</li>
<li>use variables directly in the <code>format!</code> string (<a
href="https://redirect.github.com/ratatui/kasuari/pull/23">#23</a>)</li>
<li><em>(deps)</em> bump hashbrown from 0.15.3 to 0.15.4 in the
rust-dependencies group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/19">#19</a>)</li>
<li>fix for code scanning alert no. 1: Workflow does not contain
permissions (<a
href="https://redirect.github.com/ratatui/kasuari/pull/20">#20</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cf8c01fc18"><code>cf8c01f</code></a>
chore: release v0.4.7 (<a
href="https://redirect.github.com/ratatui/kasuari/issues/21">#21</a>)</li>
<li><a
href="a20b77a8f0"><code>a20b77a</code></a>
chore(gitignore): add <code>.env</code> to <code>.gitignore</code> (<a
href="https://redirect.github.com/ratatui/kasuari/issues/22">#22</a>)</li>
<li><a
href="e4b1bc12c7"><code>e4b1bc1</code></a>
refactor: use variables directly in the <code>format!</code> string (<a
href="https://redirect.github.com/ratatui/kasuari/issues/23">#23</a>)</li>
<li><a
href="78847cf972"><code>78847cf</code></a>
build(deps): bump hashbrown from 0.15.3 to 0.15.4 in the
rust-dependencies gr...</li>
<li><a
href="b918060969"><code>b918060</code></a>
ci: fix for code scanning alert no. 1: Workflow does not contain
permissions ...</li>
<li>See full diff in <a
href="https://github.com/ratatui/kasuari/compare/v0.4.6...v0.4.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=kasuari&package-manager=cargo&previous-version=0.4.6&new-version=0.4.7)](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>
2025-06-30 15:13:38 -07:00
117 changed files with 5010 additions and 3845 deletions

115
.cliffignore Normal file
View File

@@ -0,0 +1,115 @@
# skip entries from <https://github.com/ratatui/ratatui/pull/1652>
50af9a5d80ed5446f3e6cc554911f606580edde9
272e9709c6eed45cd7e0c183624b7898f4e0ae69
adc8fdc35aa57d6dad2ae8dd30ec2e9256576c09
31711dbf82a4c7bb3b78692da34d9f469725dd6e
b6356aa7a529a491d63dd6628b8985adae337f16
885558b6f89df642317d39c5b44c94c742d1e0c8
6440eb9d76379340953420629ab0a3d9039d6c48
3870583ea868452191857f9bda97a3d5c35d0a4f
487edc8399683fb8a9a66359729c015780d248f2
250c222cc4aaab09184a28efc68f75ca03133794
590a392ab11c1a215767614931036781f4cf6a29
6443f7408af4a8834bc68cd35d2ba9be47e45f38
8339cce10a51c9c951b3c9750d527d80168626eb
ac342231c344e893f2f630ee38167aab28c736a6
0fb103680028a6e26a1923f87b60bde51acaec4f
4335a90a00aeeedb69a92442c7f2711727944017
71480242a926f98e9081ed6e2dc8c381757b3a42
e1a31db55913bd690bcaef380e9dbc3b6a5dc175
38490ff8da6f11e309ba1bcb3e88a562f7c953c5
a4bb143e4767137d6a9e9927d3da66562611f86f
bc73f2dcbe5ea48fc4d1555a8e931f40d7b0e03f
77dea441e5637b1c428c2aa71ea67fb3aac20c12
06af14107e70e49a4cba3babb8ab0a0c57b4bdf8
9acdab32df69517b93dd2b861b85586d47c71540
2e684c6500be61fbe69744d183c8086564ac0051
b7f8ec0ff9659473d936eae53a57cd9de38cec1f
31a2c4548c304270a8c852f19baa7a4eaac5e75c
57b681b053c019b66e0ed92959638997fea731b1
131b9ec41751163d43d94564363247b60f031486
8b32f82b4dd526580d00fa13f053bf507e8ea933
76d1e5b1733d47a7f05acf563db26cb1a66b540d
57a0a34f924e0d488c9e9f917900e677c3488dc4
12aa58601ddd0704256c56019bd2c7139d41f7a2
2dc81833c60951d16f9bd60f3da003edfc9a11f5
20e41f1d1da6db8abbc2504814531d4d97bdf94b
68b55a12a29e70ebfcc063c2d5d5845de3b5a27e
693003314a25e792ffc5d53146b28bfb6a4582e3
63441e259bc38b56e0369197bed14788b2cb3d54
fa88152c808eeb6c9d9b3662361aab1e57e1b1bf
30d9daa59b1843786cde00e25c3e69cfe818b80b
92540b2f6ab25f3a5400aebb28af3c498ac793a4
29edc3a7a38c512611a80cf5d8d42027558419b2
819499d6ffc0e8453ed3220067645933a4882a74
4756526829a4e849d9e256b6cf821eb66afe3ade
8f35437d5ad78d31cd45c4af888f20f0b5ab4196
39bd72b1f702dadb1ebbaf4e77ad2fada166ac49
c6d2cee3e967c9234176c5229858512b0c79d6a9
bd90e3d928e0f9f0b915933ebbc32c2256fe8cfa
b820c0c7e4c576c1e39b5e482a8aac08076a039c
74194759756bb111b4da3e9a5cdb968275a2fab0
38b2f27efe0e1829bc503df7fd64b94b7bb80d97
21aa3232d762d6e3f81f15fc5b66ba462385ac05
903bb0ae32d22393783edfda96db900739864f0a
5cee13ab6d9c49751cf9283d9099e37f0cc3632c
0a0997702dd4cf2217160f5652f5c39cbd4a1010
778f2f5ec511bef431b54157242b91d083ea9840
7d23bd2ceaf96e81972b5f746fdcba0d17f6391f
2c02a56bce31519386303571e0b66b7d4beb378e
f33d51e7d9ccf9fe52ec3289d04d97c722d9ee17
91cd81aaa032887bb2327bc3fe3cad6b3c9fbacf
5d5a1ccb0b4e2f293f215ce026fba33f1c069689
6b9417db5f2adbdc60e9dd8dc5acbbe2a1f77ba9
dce1e4b138eb1333c9e773bacd579a8cdddd73fb
b4aacb045e2200896b0d0136a2b8688b47828d73
dcba0bcd5d5d6e33ddc1fa94ebb94819fdda600e
6f52350ecfb62e3a5bac16f0824e74b757cc6cd2
2c6f324b9aa5034771e00758b143fd8df94d859d
bf0210602948f8d26ae323996fe7b22fb218a446
07aff91b015b5e7e0504680c12edbce70d7dba1e
f6d49dde14af73ed467d75d8f6ec0f502db2908f
9a7467b30576d5cb7491ea6e09efcae97eadf9bb
a0c35f1d7bcce10e092582b95f5b0a3f20ad7bf3
d24747d46982192b575a40b8cc18d1c948fac3d7
8060f7bc578b29dde6ca0c4c64569f9c73218f46
0dc5b2d2e0aa6438ffc1b3965b1ab31c721adbcc
8ecdd892f53d7db95bbb53a61700d36e3fcefdd4
570c35868147a2400a13331e85d562d1ef96a011
3855c3a84a77037aeee40dbe9e52454fb1f9afee
93372f35c1669da0138ca776890f3ff3d38a6539
6cf08d4a2f0398856fd593f50bf077fd59b08230
f78d3bfec32d07c1124eee8d0249477ce3fb0884
204307fa50aaaa373946342084f7fd3af39f3cd3
c50b01d098e5ab405a50c3e14e858da27d606e8f
f71d1ac73e8290f37d55a67d6a6507a3653ec174
ae2868c0e0b1ac8b5126fd43269383fa533d87b5
be8def963956c605bca28bcd8df673bd7ec3740b
4ac4d9d3ab97176d71e287bcdd6d41e66f2f7ccb
fafabb8dab84e9460a076199ea646262e51c855b
2f97d35bd8618e8c0cc006cb1d4a9b151c1b9b4a
39d5a745acbbd3510de707d4e7c471c17e02ae59
a1acdcdc4c002390a76f01699cfa006a36cf3f56
ad54cf29ad1a4335ba208fb94a8fc5dfbba260e3
c7649575e7b199794be4252f79da80aaecdcee28
8913e2ce1f40d451ddb4527f08ec75f198d5063c
1b9e310300f22bfc72364f027a9caeddadf61a99
89d7dd46031511f0556b2d29ab34035f42e3a24c
ca4fa0b9bf5ba707aa0447ba7c38fbacdadb7eec
8cecfdf2f6dd5b0de507f79b469517cc0fb42add
7eeb6afb3dbc56e52f9387a74f826b186cd19137
d0f75eb371a96f8d5f174e23de074efd840e9e44
f8a70ea9da8e6df2bf7a5f74cce45615fc292afe
f28b9730061bffadb9d87ad63edf7d10b245d2c1
afc5cf2140f22fea6bd6933dd0f9c302229a1980
b75df78cdca58d5dca0c51fb8e106067aa6cb752
28f5a6dbd4091aa3efa86eed6767eeb44a655f0f
345e6a1ebd853858463a33953585ce407a60378c
c45a4de47c601554f6b981d211181468b4798e41
bbaa9a5432ff6ad5518344123c3b56f349347e99
f804c90f96221f334371ccd01b0e6df7b1cfc1e8
16ba867c5877d8c97968987ecb5f8bff966d0a82
38a1474ca12aa6a796afc1e277882d997a999e14
92c4078413fc79fcc83f5d3d8708abb58696ff1a
d4415204e1eb3aed2a74a722aeaaa274975dd2d7
e48bcf5f21f14acb27996fdc02231c140f5b817c

81
.github/copilot-instructions.md vendored Normal file
View File

@@ -0,0 +1,81 @@
# GitHub Copilot Code Review Instructions
## General Review Principles
### Pull Request Size and Scope
- **Flag large PRs**: Comment if a PR changes more than 500 lines or touches many unrelated areas
- **Suggest splitting**: Recommend breaking large changes into smaller, focused PRs
- **Question scope creep**: Ask about unrelated changes that seem outside the PR's stated purpose
### Code Quality and Style
- **Check adherence to style guidelines**: Verify changes follow the project's Rust conventions in [CONTRIBUTING.md](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#code-formatting)
- **Verify xtask compliance**: Ensure `cargo xtask format` and `cargo xtask lint` would pass
- **Look for AI-generated patterns**: Be suspicious of verbose, overly-commented, or non-idiomatic code
### Architectural Considerations
- **Reference ARCHITECTURE.md**: Point to [ARCHITECTURE.md](https://github.com/ratatui/ratatui/blob/main/ARCHITECTURE.md) for changes affecting crate boundaries
- **Question fundamental changes**: Flag modifications to core configuration, linting rules, or build setup without clear justification
- **Verify appropriate crate placement**: Ensure changes are in the correct crate per the modular structure
### Breaking Changes and Deprecation
- **Require deprecation**: Insist on deprecation warnings rather than immediate removal of public APIs
- **Ask for migration path**: Request clear upgrade instructions for breaking changes
- **Suggest feature flags**: Recommend feature flags for experimental or potentially disruptive changes
- **Reference versioning policy**: Point to the requirement of at least one version notice before removal
### Testing and Documentation
- **Verify test coverage**: Ensure new functionality includes appropriate tests
- **Check for test removal**: Question any removal of existing tests without clear justification
- **Require documentation**: Ensure public APIs are documented with examples
- **Validate examples**: Check that code examples are minimal and follow project style
### Specific Areas of Concern
#### Configuration Changes
- **Lint configuration**: Question changes to `.clippy.toml`, `rustfmt.toml`, or CI configuration
- **Cargo.toml modifications**: Scrutinize dependency changes or workspace modifications
- **Build system changes**: Require justification for xtask or build process modifications
#### Large Code Additions
- **Question necessity**: Ask if large code additions could be implemented more simply
- **Check for duplication**: Look for code that duplicates existing functionality
- **Verify integration**: Ensure new code integrates well with existing patterns
#### File Organization
- **Validate module structure**: Ensure new modules follow the project's organization
- **Check import organization**: Verify imports follow the std/external/local grouping pattern
- **Review file placement**: Confirm files are in appropriate locations per ARCHITECTURE.md
## Comment Templates
### For Large PRs
```
This PR seems quite large with changes across multiple areas. Consider splitting it into smaller, focused PRs:
- Core functionality changes
- Documentation updates
- Test additions
- Configuration changes
See our [contribution guidelines](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#keep-prs-small-intentional-and-focused) for more details.
```
### For Breaking Changes
```
This appears to introduce breaking changes. Please consider:
- Adding deprecation warnings instead of immediate removal
- Providing a clear migration path in the PR description
- Following our [deprecation policy](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#deprecation-notice)
```
### For Configuration Changes
```
Changes to project configuration (linting, formatting, build) should be discussed first. Please explain:
- Why this change is necessary
- What problem it solves
- Whether it affects contributor workflow
```
### For Style Issues
```
Please run `cargo xtask format` and `cargo xtask lint` to ensure code follows our style guidelines. See [CONTRIBUTING.md](https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#code-formatting) for details.
```

View File

@@ -1,52 +0,0 @@
#!/bin/bash
# Exit on error. Append "|| true" if you expect an error.
set -o errexit
# Exit on error inside any functions or subshells.
set -o errtrace
# Do not allow use of undefined vars. Use ${VAR:-} to use an undefined VAR
set -o nounset
# Catch the error in case mysqldump fails (but gzip succeeds) in `mysqldump |gzip`
set -o pipefail
# Turn on traces, useful while debugging but commented out by default
# set -o xtrace
last_release="$(git tag --sort=committerdate | grep -P "v0+\.\d+\.\d+$" | tail -1)"
echo "🐭 Last release: ${last_release}"
# detect breaking changes
if [ -n "$(git log --oneline ${last_release}..HEAD | grep '!:')" ]; then
echo "🐭 Breaking changes detected since ${last_release}"
git log --oneline ${last_release}..HEAD | grep '!:'
# increment the minor version
minor="${last_release##v0.}"
minor="${minor%.*}"
next_minor="$((minor + 1))"
next_release="v0.${next_minor}.0"
else
# increment the patch version
patch="${last_release##*.}"
next_patch="$((patch + 1))"
next_release="${last_release/%${patch}/${next_patch}}"
fi
echo "🐭 Next release: ${next_release}"
suffix="alpha"
last_tag="$(git tag --sort=committerdate | tail -1)"
if [[ "${last_tag}" = "${next_release}-${suffix}"* ]]; then
echo "🐭 Last alpha release: ${last_tag}"
# increment the alpha version
# e.g. v0.22.1-alpha.12 -> v0.22.1-alpha.13
alpha="${last_tag##*-${suffix}.}"
next_alpha="$((alpha + 1))"
next_tag="${last_tag/%${alpha}/${next_alpha}}"
else
# increment the patch and start the alpha version from 0
# e.g. v0.22.0 -> v0.22.1-alpha.0
next_tag="${next_release}-${suffix}.0"
fi
# update the crate version
msg="# crate version"
sed -E -i "s/^version = .* ${msg}$/version = \"${next_tag#v}\" ${msg}/" Cargo.toml
echo "NEXT_TAG=${next_tag}" >> $GITHUB_ENV
echo "🐭 Next alpha release: ${next_tag}"

View File

@@ -1,6 +1,13 @@
name: Check Pull Requests
# Set the permissions of the github token to the minimum and only enable what is needed
# See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions
permissions: {}
on:
# this workflow is required to be run on pull_request_target as it modifies the PR comments
# care should be taken that the jobs do not run any untrusted input
# zizmor: ignore[dangerous-triggers]
pull_request_target:
types:
- opened
@@ -8,23 +15,21 @@ on:
- synchronize
- labeled
- unlabeled
merge_group:
permissions:
pull-requests: write
jobs:
check-title:
permissions:
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Check PR title
if: github.event_name == 'pull_request_target'
uses: amannn/action-semantic-pull-request@v5
uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v5
id: check_pr_title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Add comment indicating we require pull request titles to follow conventional commits specification
- uses: marocchino/sticky-pull-request-comment@v2
- uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2
if: always() && (steps.check_pr_title.outputs.error_message != null)
with:
header: pr-title-lint-error
@@ -39,40 +44,42 @@ jobs:
# Delete a previous comment when the issue has been resolved
- if: ${{ steps.check_pr_title.outputs.error_message == null }}
uses: marocchino/sticky-pull-request-comment@v2
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2
with:
header: pr-title-lint-error
delete: true
check-breaking-change-label:
permissions:
pull-requests: write
runs-on: ubuntu-latest
env:
# use an environment variable to pass untrusted input to the script
# see https://securitylab.github.com/research/github-actions-untrusted-input/
PR_TITLE: ${{ github.event.pull_request.title }}
steps:
- name: Check breaking change label
id: check_breaking_change
run: |
pattern='^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(\w+\))?!:'
# Check if pattern matches
if echo "${PR_TITLE}" | grep -qE "$pattern"; then
echo "breaking_change=true" >> $GITHUB_OUTPUT
else
echo "breaking_change=false" >> $GITHUB_OUTPUT
fi
- name: Add label
if: steps.check_breaking_change.outputs.breaking_change == 'true'
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['Type: Breaking Change']
})
- name: Check breaking change label
id: check_breaking_change
run: |
pattern='^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(\w+\))?!:'
# Check if pattern matches
if echo "${PR_TITLE}" | grep -qE "$pattern"; then
echo "breaking_change=true" >> $GITHUB_OUTPUT
else
echo "breaking_change=false" >> $GITHUB_OUTPUT
fi
- name: Add label
if: steps.check_breaking_change.outputs.breaking_change == 'true'
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['Type: Breaking Change']
})
do-not-merge:
if: ${{ contains(github.event.*.labels.*.name, 'do not merge') }}

View File

@@ -1,5 +1,9 @@
name: Check Semver
# Set the permissions of the github token to the minimum and only enable what is needed
# See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions
permissions: {}
on:
pull_request:
branches:
@@ -11,6 +15,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v2
uses: obi1kenobi/cargo-semver-checks-action@5b298c9520f7096a4683c0bd981a7ac5a7e249ae # v2

View File

@@ -1,5 +1,9 @@
name: Continuous Integration
# Set the permissions of the github token to the minimum and only enable what is needed
# See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions
permissions: {}
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
@@ -25,11 +29,15 @@ jobs:
name: Check Formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with: { components: rustfmt }
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: nightly
components: rustfmt
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: taplo-cli
- run: cargo xtask format --check
@@ -40,8 +48,10 @@ jobs:
name: Check Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: crate-ci/typos@80c8a4945eec0f6d464eaf9e65ed98ef085283d1 # master
# Check for any disallowed dependencies in the codebase due to license / security issues.
# See <https://github.com/EmbarkStudios/cargo-deny>
@@ -49,9 +59,15 @@ jobs:
name: Check Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@cargo-deny
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-deny
- run: cargo deny --log-level info --all-features check
# Check for any unused dependencies in the codebase.
@@ -60,8 +76,10 @@ jobs:
name: Check Unused Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bnjbvr/cargo-machete@v0.8.0
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: bnjbvr/cargo-machete@7959c845782fed02ee69303126d4a12d64f1db18 # v0.9.1
# Run cargo clippy.
#
@@ -77,21 +95,27 @@ jobs:
toolchain: ["stable", "beta"]
continue-on-error: ${{ matrix.toolchain == 'beta' }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: ${{ matrix.toolchain }}
components: clippy
- uses: Swatinem/rust-cache@v2
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask clippy
env:
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
# Run markdownlint on all markdown files in the repository.
lint-markdown:
name: Check Markdown
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DavidAnson/markdownlint-cli2-action@v20
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: DavidAnson/markdownlint-cli2-action@992badcdf24e3b8eb7e87ff9287fe931bcb00c6e # v20
with:
globs: |
'**/*.md'
@@ -103,14 +127,19 @@ jobs:
name: Coverage Report
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
components: llvm-tools
- uses: taiki-e/install-action@cargo-llvm-cov
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-llvm-cov
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask coverage
- uses: codecov/codecov-action@v5
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
@@ -125,22 +154,32 @@ jobs:
toolchain: ["1.85.0", "stable"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: ${{ matrix.toolchain }}
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask check --all-features
env:
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
build-no-std:
name: Build No-Std
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
targets: x86_64-unknown-none
- uses: Swatinem/rust-cache@v2
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
# This makes it easier to debug the exact versions of the dependencies
- run: cargo tree --target x86_64-unknown-none -p ratatui-core
- run: cargo tree --target x86_64-unknown-none -p ratatui-widgets
@@ -156,9 +195,13 @@ jobs:
name: Check README
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@cargo-rdme
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-rdme
- run: cargo xtask readme --check
# Run cargo rustdoc with the same options that would be used by docs.rs, taking into account the
@@ -169,10 +212,19 @@ jobs:
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: dtolnay/install@cargo-docs-rs
- uses: Swatinem/rust-cache@v2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: nightly
- uses: dtolnay/install@74f735cdf643820234e37ae1c4089a08fd266d8a # master
with:
crate: cargo-docs-rs
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask docs
# Run cargo test on the documentation of the crate. This will catch any code examples that don't
@@ -181,9 +233,16 @@ jobs:
name: Test Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask test-docs
# Run cargo test on the libraries of the crate.
@@ -195,9 +254,16 @@ jobs:
matrix:
toolchain: ["1.85.0", "stable"]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask test-libs
# Run cargo test on all the backends.
@@ -214,7 +280,11 @@ jobs:
- os: windows-latest
backend: termion
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- run: cargo xtask test-backend ${{ matrix.backend }}

View File

@@ -1,49 +0,0 @@
name: Release alpha version
on:
workflow_dispatch:
schedule:
# At 00:00 on Saturday
# https://crontab.guru/#0_0_*_*_6
- cron: "0 0 * * 6"
defaults:
run:
shell: bash
jobs:
publish-alpha:
name: Create an alpha release
runs-on: ubuntu-latest
if: github.repository == 'ratatui/ratatui'
permissions:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Calculate the next release
run: .github/workflows/calculate-alpha-release.bash
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Publish
run: cargo publish --allow-dirty --token ${{ secrets.CARGO_TOKEN }}
- name: Generate a changelog
uses: orhun/git-cliff-action@v4
with:
config: cliff.toml
args: --unreleased --tag ${{ env.NEXT_TAG }} --strip header
env:
OUTPUT: BODY.md
- name: Publish on GitHub
uses: ncipollo/release-action@v1
with:
tag: ${{ env.NEXT_TAG }}
prerelease: true
bodyFile: BODY.md

View File

@@ -1,8 +1,8 @@
name: Release-plz
permissions:
pull-requests: write
contents: write
# Set the permissions of the github token to the minimum and only enable what is needed
# See https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions
permissions: {}
on:
push:
@@ -14,26 +14,39 @@ jobs:
# Release unpublished packages.
release-plz-release:
name: Release-plz release
environment: release
permissions:
pull-requests: write
contents: write
id-token: write
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'ratatui' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
- uses: rust-lang/crates-io-auth-action@041cce5b4b821e6b0ebc9c9c38b58cac4e34dcc2 # v1
id: auth
- name: Run release-plz
uses: release-plz/action@v0.5
uses: release-plz/action@d529f731ae3e89610ada96eda34e5c6ba3b12214 # v0.5
with:
command: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
# Create a PR with the new versions and changelog, preparing the next release.
release-plz-pr:
name: Release-plz PR
permissions:
pull-requests: write
contents: write
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'ratatui' }}
concurrency:
@@ -41,13 +54,16 @@ jobs:
cancel-in-progress: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
with:
toolchain: stable
- name: Run release-plz
uses: release-plz/action@v0.5
uses: release-plz/action@d529f731ae3e89610ada96eda34e5c6ba3b12214 # v0.5
with:
command: release-pr
env:

View File

@@ -1,45 +0,0 @@
name: Release stable version
on:
push:
tags:
- "v*.*.*"
jobs:
publish-stable:
name: Create an stable release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate a changelog
uses: orhun/git-cliff-action@v4
with:
config: cliff.toml
args: --latest --strip header
env:
OUTPUT: BODY.md
- name: Publish on GitHub
uses: ncipollo/release-action@v1
with:
prerelease: false
bodyFile: BODY.md
publish-crate:
name: Publish crate
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Publish
run: cargo publish --token ${{ secrets.CARGO_TOKEN }}

26
.github/workflows/zizmor.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: GitHub Actions Security Analysis with zizmor 🌈
# docs https://docs.zizmor.sh/integrations/#github-actions
on:
push:
branches: ["main"]
pull_request:
branches: ["**"]
permissions: {}
jobs:
zizmor:
name: Run zizmor 🌈
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Run zizmor 🌈
uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0

View File

@@ -26,6 +26,7 @@ This is a quick summary of the sections below:
feature is enabled
- Disabling `default-features` suppresses the error message if `show_cursor()` fails when dropping
`Terminal`
- Support a broader range for `unicode-width` version
- [v0.29.0](#v0290)
- `Sparkline::data` takes `IntoIterator<Item = SparklineBar>` instead of `&[u64]` and is no longer
const
@@ -377,6 +378,17 @@ The `termwiz` backend is upgraded from 0.22.0 to 0.23.0.
This release has a few fixes for hyperlinks and input handling, plus some dependency updates.
See the [commits](https://github.com/wezterm/wezterm/commits/main/termwiz) for more details.
### Support a broader range for `unicode-width` version ([#1999])
[#1999]: https://github.com/ratatui/ratatui/pull/1999
Ratatui's dependency on `unicode-width`, previously pinned to 0.2.0, has
expanded to allow version 0.2.1. This comes with 2 behavior changes described in
[unicode-width#61] and [unicode-width#74].
[unicode-width#61]: https://github.com/unicode-rs/unicode-width/pull/61
[unicode-width#74]: https://github.com/unicode-rs/unicode-width/pull/74
## [v0.29.0](https://github.com/ratatui/ratatui/releases/tag/v0.29.0)
### `Sparkline::data` takes `IntoIterator<Item = SparklineBar>` instead of `&[u64]` and is no longer const ([#1326])

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,23 @@ If your contribution is not straightforward, please first discuss the change you
creating a new issue before making the change, or starting a discussion on
[discord](https://discord.gg/pMCEU9hNEj).
## AI Generated Content
We welcome high quality PRs, whether they are human generated or made with the assistance of AI
tools, but we ask that you follow these guidelines:
- **Attribution**: Tell us about your use of AI tools, don't make us guess whether you're using it.
- **Review**: Make sure you review every line of AI generated content for correctness and relevance.
- **Quality**: AI-generated content should meet the same quality standards as human-written content.
- **Quantity**: Avoid submitting large amounts of AI generated content in a single PR. Remember that
quality is usually more important than quantity.
- **License**: Ensure that the AI-generated content is compatible with Ratatui's
[License](./LICENSE).
> [!IMPORTANT]
> Remember that AI tools can assist in generating content, but you are responsible for the final
> quality and accuracy of the contributions and communicating about it.
## Reporting issues
Before reporting an issue on the [issue tracker](https://github.com/ratatui/ratatui/issues),
@@ -29,6 +46,26 @@ change becomes a place where a bug may have been introduced. Consider splitting
reformatting changes into a separate PR from those that make a behavioral change, as the tests help
guarantee that the behavior is unchanged.
Guidelines for PR size:
- Aim for PRs under 500 lines of changes when possible.
- Split large features into incremental PRs that build on each other.
- Separate refactoring, formatting, and functional changes into different PRs.
- If a large PR is unavoidable, clearly explain why in the PR description.
### Breaking changes and backwards compatibility
We prioritize maintaining backwards compatibility and minimizing disruption to users:
- **Prefer deprecation over removal**: Add deprecation warnings rather than immediately removing
public APIs
- **Provide migration paths**: Include clear upgrade instructions for any breaking changes
- **Follow our deprecation policy**: Wait at least two versions before removing deprecated items
- **Consider feature flags**: Use feature flags for experimental or potentially disruptive changes
- **Document breaking changes**: Clearly mark breaking changes in commit messages and PR descriptions
See our [deprecation notice policy](#deprecation-notice) for more details.
### Code formatting
Run `cargo xtask format` before committing to ensure that code is consistently formatted with
@@ -41,6 +78,10 @@ to be installed when running rustfmt. You can install the nightly version of Rus
rustup install nightly
```
> [!IMPORTANT]
> Do not modify formatting configuration (`rustfmt.toml`, `.clippy.toml`) without
> prior discussion. These changes affect all contributors and should be carefully considered.
### Search `tui-rs` for similar work
The original fork of Ratatui, [`tui-rs`](https://github.com/fdehau/tui-rs/), has a large amount of
@@ -67,6 +108,15 @@ Running `cargo xtask ci` before pushing will perform the same checks that we do
It's not mandatory to do this before pushing, however it may save you time to do so instead of
waiting for GitHub to run the checks.
Available xtask commands:
- `cargo xtask ci` - Run all CI checks
- `cargo xtask format` - Format code
- `cargo xtask lint` - Run linting checks
- `cargo xtask test` - Run all tests
Run `cargo xtask --help` to see all available commands.
### Sign your commits
We use commit signature verification, which will block commits from being merged via the UI unless
@@ -74,6 +124,25 @@ they are signed. To set up your machine to sign commits, see [managing commit si
verification](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification)
in GitHub docs.
### Configuration and build system changes
Changes to project configuration files require special consideration:
- Linting configuration (`.clippy.toml`, `rustfmt.toml`): Affects all contributors.
- CI configuration (`.github/workflows/`): Affects build and deployment.
- Build system (`xtask/`, `Cargo.toml` workspace config): Affects development workflow.
- Dependencies: Consider MSRV compatibility and licensing.
Please discuss these changes in an issue before implementing them.
### Collaborative development
We may occasionally make changes directly to your branch—such as force-pushes—to help move a PR
forward, speed up review, or ensure it meets our quality standards. If you would prefer we do not do
this, or if your workflow depends on us avoiding force-pushes (for example, if your app points to
your branch in `Cargo.toml`), please mention this in your PR description and we will respect your
preference.
## Implementation Guidelines
### Setup
@@ -97,7 +166,13 @@ For an understanding of the crate organization and design decisions, see [ARCHIT
document explains the modular workspace structure introduced in version 0.30.0 and provides
guidance on which crate to use for different use cases.
[ARCHITECTURE.md]: ./ARCHITECTURE.md
When making changes, consider:
- Which crate should contain your changes per the modular structure,
- Whether your changes affect the public API of `ratatui-core` (requires extra care),
- And how your changes fit into the overall architecture.
[ARCHITECTURE.md]: https://github.com/ratatui/ratatui/blob/main/ARCHITECTURE.md
### Tests
@@ -106,7 +181,7 @@ good, but this can always be improved. Focus on keeping the tests simple and obv
tests for all new or modified code. Beside the usual doc and unit tests, one of the most valuable
test you can write for Ratatui is a test against the `TestBackend`. It allows you to assert the
content of the output buffer that would have been flushed to the terminal after a given draw call.
See `widgets_block_renders` in [tests/widgets_block.rs](./tests/widget_block.rs) for an example.
See `widgets_block_renders` in [ratatui/tests/widgets_block.rs](./ratatui/tests/widgets_block.rs) for an example.
When writing tests, generally prefer to write unit tests and doc tests directly in the code file
being tested rather than integration tests in the `tests/` folder.
@@ -115,6 +190,10 @@ If an area that you're making a change in is not tested, write tests to characte
behavior before changing it. This helps ensure that we don't introduce bugs to existing software
using Ratatui (and helps make it easy to migrate apps still using `tui-rs`).
> [!IMPORTANT]
> Do not remove existing tests without clear justification. If tests need to be
> modified due to API changes, explain why in your PR description.
For coverage, we have two [bacon](https://dystroy.org/bacon/) jobs (one for all tests, and one for
unit tests, keyboard shortcuts `v` and `u` respectively) that run
[cargo-llvm-cov](https://github.com/taiki-e/cargo-llvm-cov) to report the coverage. Several plugins
@@ -182,6 +261,14 @@ We generally want to wait at least two versions before removing deprecated items
time to update. However, if a deprecation is blocking for us to implement a new feature we may
*consider* removing it in a one version notice.
Deprecation process:
1. Add `#[deprecated]` attribute with a clear message.
2. Update documentation to point to the replacement.
3. Add an entry to `BREAKING-CHANGES.md` if applicable.
4. Wait at least two versions before removal.
5. Consider the impact on the ecosystem before removing.
### Use of unsafe for optimization purposes
We don't currently use any unsafe code in Ratatui, and would like to keep it that way. However, there

894
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -29,33 +29,35 @@ rust-version = "1.85.0"
[workspace.dependencies]
anstyle = "1"
bitflags = "2.9"
bitflags = "2.10"
clap = { version = "4.5", features = ["derive"] }
color-eyre = "0.6"
compact_str = { version = "0.9", default-features = false }
criterion = { version = "0.5", features = ["html_reports"] }
criterion = { version = "0.7", features = ["html_reports"] }
crossterm = "0.29"
document-features = "0.2"
fakeit = "1"
futures = "0.3"
hashbrown = "0.15"
hashbrown = "0.16"
indoc = "2"
instability = "0.3"
itertools = { version = "0.14", default-features = false, features = ["use_alloc"] }
kasuari = { version = "0.4", default-features = false }
line-clipping = "0.3"
lru = "0.14"
lru = "0.16"
octocrab = "0.47"
palette = "0.7"
pretty_assertions = "1"
rand = "0.9"
rand_chacha = "0.9"
ratatui = { path = "ratatui", version = "0.30.0-alpha.5" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.6" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.5" }
ratatui-macros = { path = "ratatui-macros", version = "0.7.0-alpha.4" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.5" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.5" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.5" }
rstest = "0.25"
ratatui = { path = "ratatui", version = "0.30.0-beta.0" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-beta.0" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-beta.0" }
ratatui-macros = { path = "ratatui-macros", version = "0.7.0-beta.0" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-beta.0" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-beta.0" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-beta.0" }
rstest = "0.26"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
strum = { version = "0.27", default-features = false, features = ["derive"] }
@@ -64,6 +66,7 @@ termwiz = "0.23"
thiserror = { version = "2", default-features = false }
time = { version = "0.3", default-features = false }
tokio = "1"
tokio-stream = "0.1"
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = "0.3"
@@ -71,7 +74,7 @@ trybuild = "1"
unicode-segmentation = "1"
unicode-truncate = { version = "2", default-features = false }
# See <https://github.com/ratatui/ratatui/issues/1271> for information about why we pin unicode-width
unicode-width = "=0.2.0"
unicode-width = ">=0.2.0, <=0.2.2"
# Improve benchmark consistency
[profile.bench]

View File

@@ -5,7 +5,7 @@ This file documents current and past maintainers.
- [orhun](https://github.com/orhun)
- [joshka](https://github.com/joshka)
- [kdheepak](https://github.com/kdheepak)
- [Valentin271](https://github.com/Valentin271)
- [j-g00da](https://github.com/j-g00da)
## Past Maintainers
@@ -13,3 +13,4 @@ This file documents current and past maintainers.
- [mindoodoo](https://github.com/mindoodoo)
- [sayanarijit](https://github.com/sayanarijit)
- [EdJoPaTo](https://github.com/EdJoPaTo)
- [Valentin271](https://github.com/Valentin271)

View File

@@ -12,7 +12,7 @@
</details>
![Demo](https://github.com/ratatui/ratatui/blob/87ae72dbc756067c97f6400d3e2a58eeb383776e/examples/demo2-destroy.gif?raw=true)
![Release header](https://github.com/ratatui/ratatui/blob/b23480adfa9430697071c906c7ba4d4f9bd37a73/assets/release-header.png?raw=true)
<div align="center">
@@ -113,15 +113,16 @@ There is also a [Matrix](https://matrix.org/) bridge available at
We rely on GitHub for [bugs][Report a bug] and [feature requests][Request a Feature].
Please make sure you read the [contributing](./CONTRIBUTING.md) guidelines before [creating a pull
request][Create a Pull Request].
request][Create a Pull Request]. We accept AI generated code, but please read the [AI Contributions]
guidelines to ensure compliance.
If you'd like to show your support, you can add the Ratatui badge to your project's README:
```md
[![Built With Ratatui](https://ratatui.rs/built-with-ratatui/badge.svg)](https://ratatui.rs/)
[![Built With Ratatui](https://img.shields.io/badge/Built_With_Ratatui-000?logo=ratatui&logoColor=fff)](https://ratatui.rs/)
```
[![Built With Ratatui](https://ratatui.rs/built-with-ratatui/badge.svg)](https://ratatui.rs/)
[![Built With Ratatui](https://img.shields.io/badge/Built_With_Ratatui-000?logo=ratatui&logoColor=fff)](https://ratatui.rs/)
## Acknowledgements
@@ -152,6 +153,7 @@ This project is licensed under the [MIT License][License].
[Request a Feature]: https://github.com/ratatui/ratatui/issues/new?labels=enhancement&projects=&template=feature_request.md
[Create a Pull Request]: https://github.com/ratatui/ratatui/compare
[Contributing]: https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md
[AI Contributions]: https://github.com/ratatui/ratatui/blob/main/CONTRIBUTING.md#ai-generated-content
[Crate]: https://crates.io/crates/ratatui
[tui-rs]: https://crates.io/crates/tui
[Sponsors]: https://github.com/sponsors/ratatui

1
assets/logo-simple.svg Normal file
View File

@@ -0,0 +1 @@
<svg role="img" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Ratatui</title><path d="M17 29h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1h1v1H5v-1H4v-1H3v-1H2v-1H1v-1H0v-2h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h2zm-2 14h1v1h1v1h1v-2h-1v-1h-1v-1h-1zm0-6h-3v1h1v1h4v-4h-1v-1h-1zm35-21h-1v4h-1v1h-1v1h-1v1h-2v1h-1v1h-1v1h-1v1h-2v9h5v1h1v9h-1v1h-1v2h-1v1h-1v-1h-1v-1h-1v-1h1v-1h1v-1h1v-5h-1v1h-3v1h-1v3h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-2h1v-2h1v-1h-2v1h-4v-1h-1v-1h-1v-1h-1v-2h1v-1h1v-1h2v-1h7v-1h1v-1h1v-1h1v-1h1v-1h1v-1h4v-1h3v-1h10zm-17 2h-1v2h1v1h2v-1h1v-2h-1v-1h-2zM29 1h1v9h1v1h1v2h1v2h-1v1h-1v1h-1v1h-1v1h-1v1h-3v-1h-1v-1h-2v-1h-1v-1h-1v-1h-6v-1h-1V9h1V8h1V7h1V6h1V5h1V4h1V3h1V2h1V1h2V0h6z"/></svg>

After

Width:  |  Height:  |  Size: 831 B

1
assets/logo.svg Normal file
View File

@@ -0,0 +1 @@
<svg role="img" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><title>Ratatui</title><path d="M50 16h-1v4h-1v1h-1v1h-1v1h-2v1h-1v1h-1v1h-1v1h-2v9h5v1h1v9h-1v1h-1v2h-1v1h-1v-1h-1v1h-2v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-1v-1h-2v1h-1v1h-1v1h-1v1h-1v1h-1v1h-1v1H9v1H8v1H7v1H6v1H5v1H4v1H3v1H2v2h1v1h1v1h1v1h1v1h1v1H5v-1H4v-1H3v-1H2v-1H1v-1H0v-2h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h1v-1h2v1h1v-1h-1v-1h-1v-2h1v-1h1v-1h2v-1h7v-1h1v-1h1v-1h1v-1h1v-1h1v-1h4v-1h3v-1h10zM39 49h1v-1h-1zm2-8h-3v1h-1v3h-1v-1h-1v1h1v1h1v1h1v1h1v-1h1v-1h1v-1h1v-5h-1zm-7 3h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-1-1h1v-1h-1zm-5-5h1v1h1v1h1v1h1v1h1v-2h1v-2h1v-1h-2v1h-4v-1h-1zm14-11h-1v2h1v1h2v-1h1v-2h-1v-1h-2zM18 40h1v1h1v2h-1v-1h-1v-1h-1v-2h1zm0-7h1v4h-4v-1h-1v-1h3v-3h1zM29 1h1v9h1v1h1v2h1v2h-1v1h-1v1h-1v1h-1v1h-1v1h-3v-1h-1v-1h-2v-1h-1v-1h-1v-1h-6v-1h-1V9h1V8h1V7h1V6h1V5h1V4h1V3h1V2h1V1h2V0h6z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -60,6 +60,22 @@ command = ["cargo", "xtask", "hack"]
[jobs.format]
command = ["cargo", "xtask", "format"]
[jobs.zizmor-offline]
# zizmor checks the workflow files for security issues. The offline version is generally faster, but
# checks for fewer issues.
command = ["zizmor", "--color", "always", ".github/workflows", "--offline"]
need_stdout = true
default_watch = false
watch = [".github/workflows/"]
[jobs.zizmor-online]
# zizmor checks the workflow files for security issues. The online version is a bit slower, but it
# checks for more issues
command = ["zizmor", "--color", "always", ".github/workflows"]
need_stdout = true
default_watch = false
watch = [".github/workflows/"]
# You may define here keybindings that would be specific to
# a project, for example a shortcut to launch a specific job.
# Shortcuts to internal functions (scrolling, toggling, etc.)
@@ -74,3 +90,5 @@ ctrl-v = "job:coverage-unit-tests-only"
u = "job:test-unit"
n = "job:nextest"
f = "job:format"
z = "job:zizmor-offline"
shift-z = "job:zizmor-online"

View File

@@ -24,7 +24,11 @@ body = """
{%- if not version %}
## [unreleased]
{% else -%}
{%- if package -%} {# release-plz specific variable #}
## {{ package }} - [{{ version }}]({{ release_link }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{%- else -%}
## [{{ version }}]({{ self::remote_url() }}/releases/tag/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{%- endif %}
{% endif -%}
{% macro commit(commit) -%}
@@ -57,16 +61,36 @@ body = """
{%- endfor -%}
{%- endfor %}
{%- if not release_link -%}
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
### New Contributors
{%- endif %}\
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
* @{{ contributor.username }} made their first contribution
{%- if contributor.pr_number %} in \
[#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
{%- endif %}
{%- endfor -%}
{%- endif -%}
{% if version %}
{% if previous.version %}
**Full Changelog**: {{ release_link }}
{%- if release_link -%}
**Full Changelog**: {{ release_link }} {# release-plz specific variable #}
{%- else -%}
**Full Changelog**: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}
{% endif %}
{% endif %}
{% else -%}
{% raw %}\n{% endraw %}
{% endif %}
{%- macro remote_url() -%}
{%- if remote.owner -%} {# release-plz specific variable #}
https://github.com/{{ remote.owner }}/{{ remote.repo }}\
{%- else -%}
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\
{%- endif -%}
{% endmacro %}
"""
# remove the leading and trailing whitespace from the template
@@ -92,10 +116,15 @@ commit_preprocessors = [
{ pattern = '(Clarify README.md)', replace = "docs(readme): ${1}" },
{ pattern = '(Update README.md)', replace = "docs(readme): ${1}" },
{ pattern = '(fix typos|Fix typos)', replace = "fix: ${1}" },
# a small typo that squeaked through and which would otherwise trigger the typos linter.
# Typos that squeaked through and which would otherwise trigger the typos linter.
# Regex obsfucation is to avoid triggering the linter in this file until there's a per file config
# See https://github.com/crate-ci/typos/issues/724
{ pattern = '\<[d]eatil\>', replace = "detail" },
{ pattern = '\<[f]eatuers\>', replace = "features" },
{ pattern = '\<[s]pecically\>', replace = "specially" },
{ pattern = '\<[g]ague\>', replace = "gauge" },
{ pattern = '\<[i]ntructions\>', replace = "instructions" },
{ pattern = '\<[i]mplementated\>', replace = "implemented" },
]
# regex for parsing and grouping commits
commit_parsers = [
@@ -109,13 +138,16 @@ commit_parsers = [
{ message = "^style", group = "<!-- 05 -->Styling" },
{ message = "^test", group = "<!-- 06 -->Testing" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore: release", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
{ message = "^chore\\(deps\\)", skip = true },
{ message = "^chore\\(changelog\\)", skip = true },
{ message = "^[cC]hore", group = "<!-- 07 -->Miscellaneous Tasks" },
{ body = ".*security", group = "<!-- 08 -->Security" },
{ message = "^build", group = "<!-- 09 -->Build" },
{ message = "^build\\(deps\\)", skip = true },
{ message = "^build\\(release\\)", skip = true },
{ message = "^build", group = "<!-- 08 -->Build" },
{ body = ".*security", group = "<!-- 09 -->Security" },
{ message = "^ci", group = "<!-- 10 -->Continuous Integration" },
{ message = "^revert", group = "<!-- 11 -->Reverted Commits" },
# handle some old commits styles from pre 0.4
@@ -130,9 +162,9 @@ filter_commits = false
# glob pattern for matching git tags
tag_pattern = "v[0-9]*"
# regex for skipping tags
skip_tags = "v0.1.0-rc.1"
skip_tags = "beta|alpha|v0.1.0-rc.1"
# regex for ignoring tags
ignore_tags = "alpha"
ignore_tags = "rc"
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order

View File

@@ -1,7 +1,9 @@
# Examples
This folder contains examples that are more application focused.
There are also [widget examples] in `ratatui-widgets`.
> [!TIP]
> There are also [widget examples] in `ratatui-widgets`.
[widget examples]: ../ratatui-widgets/examples
@@ -11,8 +13,9 @@ You can run these examples using:
cargo run -p example-name
```
This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead
of the `main` branch for code which is guaranteed to work with the released ratatui version.
> [!NOTE]
> This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead
> of the `main` branch for code which is guaranteed to work with the released Ratatui version.
> [!WARNING]
>

View File

@@ -14,9 +14,9 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre = "0.6.5"
color-eyre.workspace = true
crossterm = { workspace = true, features = ["event-stream"] }
octocrab = "0.44.0"
octocrab.workspace = true
ratatui.workspace = true
tokio = { version = "1.45.1", features = ["rt-multi-thread", "macros"] }
tokio-stream = "0.1.17"
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
tokio-stream.workspace = true

View File

@@ -9,7 +9,7 @@ rust-version.workspace = true
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
time = { version = "0.3.39", features = ["formatting", "parsing"] }
time = { workspace = true, features = ["formatting", "parsing"] }
[lints]
workspace = true

View File

@@ -8,7 +8,7 @@ rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
palette = "0.7.6"
palette.workspace = true
ratatui.workspace = true
[lints]

View File

@@ -12,9 +12,9 @@ termion = ["ratatui/termion", "dep:termion"]
termwiz = ["ratatui/termwiz", "dep:termwiz"]
[dependencies]
clap = { version = "4.5.40", features = ["derive"] }
clap.workspace = true
crossterm = { workspace = true, optional = true }
rand = "0.9.1"
rand.workspace = true
ratatui.workspace = true
termwiz = { workspace = true, optional = true }

View File

@@ -6,14 +6,14 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre = "0.6.5"
color-eyre.workspace = true
crossterm.workspace = true
indoc.workspace = true
itertools.workspace = true
palette = "0.7.6"
rand = "0.9.1"
rand_chacha = "0.9.0"
palette.workspace = true
rand.workspace = true
rand_chacha.workspace = true
ratatui = { workspace = true, features = ["all-widgets"] }
strum.workspace = true
time = "0.3.39"
unicode-width = "0.2.0"
time.workspace = true
unicode-width.workspace = true

View File

@@ -8,7 +8,7 @@ rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
rand = "0.9.1"
rand.workspace = true
ratatui.workspace = true
[lints]

View File

@@ -9,8 +9,8 @@ rust-version.workspace = true
color-eyre.workspace = true
crossterm.workspace = true
## a collection of line drawing algorithms (e.g. Bresenham's line algorithm)
line_drawing = "1.0.1"
rand = "0.9.1"
line_drawing = "1"
rand.workspace = true
ratatui.workspace = true
[lints]

View File

@@ -0,0 +1,13 @@
[package]
name = "release-header"
publish = false
license.workspace = true
edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
ratatui.workspace = true
[lints]
workspace = true

View File

@@ -0,0 +1,13 @@
# Release Header
Generates a banner for Ratatui releases featuring a Ratatui logo, version info, and a list of crates.
Used for README.md, documentation, and release materials. Updated for every release starting with v0.30.0 "Bryndza".
## Usage
```bash
cargo run --p release-header
```
Press any key to exit. Creates a fixed 68x16 terminal viewport.

View File

@@ -0,0 +1,171 @@
//! Generates a terminal banner for Ratatui releases featuring a Ratatui logo, version info, and
//! a list of crates.
//!
//! Used for README.md, documentation, and release materials. Updated for every release starting
//! with v0.30.0 "Bryndza".
//!
//! This example runs with the Ratatui library code in the branch that you are currently
//! reading. See the [`latest`] branch for the code which works with the most recent Ratatui
//! release.
//!
//! [`latest`]: https://github.com/ratatui/ratatui/tree/latest
use std::io::stdout;
use std::iter::zip;
use ratatui::crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen};
use ratatui::crossterm::{event, execute};
use ratatui::layout::{Constraint, Flex, Layout, Margin, Rect, Spacing};
use ratatui::style::{Color, Stylize};
use ratatui::symbols::merge::MergeStrategy;
use ratatui::text::Line;
use ratatui::widgets::{Block, BorderType, Padding, Paragraph, RatatuiLogo};
use ratatui::{DefaultTerminal, Frame, TerminalOptions, Viewport};
const SEMVER: &str = "0.30.0";
const RELEASE_NAME: &str = "Bryndza";
const MAIN_DISHES: [&str; 4] = [
"> ratatui",
"> ratatui-core",
"> ratatui-widgets",
"> ratatui-macros",
];
const BACKENDS: [&str; 3] = [
"> ratatui-crossterm",
"> ratatui-termion",
"> ratatui-termwiz",
];
const FG_COLOR: Color = Color::Rgb(246, 214, 187); // #F6D6BB
const BG_COLOR: Color = Color::Rgb(20, 20, 50); // #141432
const MENU_BORDER_COLOR: Color = Color::Rgb(255, 255, 160); // #FFFFA0
enum Rainbow {
Red,
Orange,
Yellow,
Green,
Blue,
Indigo,
Violet,
}
fn main() -> color_eyre::Result<()> {
color_eyre::install()?;
let viewport = Viewport::Fixed(Rect::new(0, 0, 68, 16));
let terminal = ratatui::init_with_options(TerminalOptions { viewport });
execute!(stdout(), EnterAlternateScreen).expect("failed to enter alternate screen");
let result = run(terminal);
execute!(stdout(), LeaveAlternateScreen).expect("failed to leave alternate screen");
ratatui::restore();
result
}
fn run(mut terminal: DefaultTerminal) -> color_eyre::Result<()> {
loop {
terminal.draw(render)?;
if event::read()?.is_key_press() {
break Ok(());
}
}
}
fn render(frame: &mut Frame) {
let area = frame.area();
frame.buffer_mut().set_style(area, (FG_COLOR, BG_COLOR));
let logo_width = 29;
let menu_width = 23;
let padding = 2; // Padding between logo and menu
let menu_borders = 3;
let height = MAIN_DISHES.len() as u16 + BACKENDS.len() as u16 + menu_borders;
let width = logo_width + menu_width + padding;
let center_area = area.centered(Constraint::Length(width), Constraint::Length(height));
let layout = Layout::horizontal(Constraint::from_lengths([logo_width, padding, menu_width]));
let [logo_area, _, menu_area] = center_area.layout(&layout);
render_logo(frame, logo_area);
render_menu(frame, menu_area);
}
fn render_logo(frame: &mut Frame, area: Rect) {
let area = area.inner(Margin::new(1, 0));
let layout = Layout::vertical(Constraint::from_lengths([6, 2, 1])).flex(Flex::End);
let [shadow_area, logo_area, version_area] = area.layout(&layout);
// Divide the logo into letter sections for individual coloring, then render a block for each
// letter with a color based on the row index.
let letter_layout = Layout::horizontal(Constraint::from_lengths([5, 4, 4, 4, 4, 5, 1]));
for (row_index, row) in shadow_area.rows().enumerate() {
for (rainbow, letter_area) in zip(Rainbow::ROYGBIV, row.layout_vec(&letter_layout)) {
let color = rainbow.gradient_color(row_index);
frame.render_widget(Block::new().style(color), letter_area);
}
// Render the Ratatui logo truncated.
frame.render_widget(RatatuiLogo::small(), row);
}
frame.render_widget(Block::new().style(FG_COLOR), logo_area);
frame.render_widget(RatatuiLogo::small(), logo_area);
frame.render_widget(format!("v{SEMVER} \"{RELEASE_NAME}\"").dim(), version_area);
}
impl Rainbow {
const RED_GRADIENT: [u8; 6] = [41, 43, 50, 68, 104, 156];
const GREEN_GRADIENT: [u8; 6] = [24, 30, 41, 65, 105, 168];
const BLUE_GRADIENT: [u8; 6] = [55, 57, 62, 78, 113, 166];
const AMBIENT_GRADIENT: [u8; 6] = [17, 18, 20, 25, 40, 60];
const ROYGBIV: [Self; 7] = [
Self::Red,
Self::Orange,
Self::Yellow,
Self::Green,
Self::Blue,
Self::Indigo,
Self::Violet,
];
fn gradient_color(&self, row: usize) -> Color {
let ambient = Self::AMBIENT_GRADIENT[row];
let red = Self::RED_GRADIENT[row];
let green = Self::GREEN_GRADIENT[row];
let blue = Self::BLUE_GRADIENT[row];
let blue_sat = Self::AMBIENT_GRADIENT[row].saturating_mul(6 - row as u8);
let (r, g, b) = match self {
Self::Red => (red, ambient, blue_sat),
Self::Orange => (red, green / 2, blue_sat),
Self::Yellow => (red, green, blue_sat),
Self::Green => (ambient, green, blue_sat),
Self::Blue => (ambient, ambient, blue.max(blue_sat)),
Self::Indigo => (blue, ambient, blue.max(blue_sat)),
Self::Violet => (red, ambient, blue.max(blue_sat)),
};
Color::Rgb(r, g, b)
}
}
fn render_menu(frame: &mut Frame, area: Rect) {
let layout = Layout::vertical(Constraint::from_lengths([
MAIN_DISHES.len() as u16 + 2,
BACKENDS.len() as u16 + 2,
]))
.spacing(Spacing::Overlap(1)); // Overlap to merge borders
let [main_dishes_area, backends_area] = area.layout(&layout);
render_menu_block(frame, main_dishes_area, "Main Courses", &MAIN_DISHES);
render_menu_block(frame, backends_area, "Pairings", &BACKENDS);
}
fn render_menu_block(frame: &mut Frame, area: Rect, title: &str, menu_items: &[&str]) {
let menu_block = Block::bordered()
.border_type(BorderType::Rounded)
.border_style(MENU_BORDER_COLOR)
.padding(Padding::horizontal(1))
.merge_borders(MergeStrategy::Fuzzy)
.title(title);
let menu_lines: Vec<Line> = menu_items.iter().map(|&item| Line::from(item)).collect();
frame.render_widget(Paragraph::new(menu_lines).block(menu_block), area);
}

View File

@@ -8,7 +8,7 @@ rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
fakeit = "1.1"
fakeit.workspace = true
itertools.workspace = true
ratatui.workspace = true
unicode-width.workspace = true

View File

@@ -9,9 +9,9 @@ rust-version.workspace = true
color-eyre.workspace = true
crossterm.workspace = true
ratatui.workspace = true
tracing = "0.1.40"
tracing-appender = "0.2.3"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber = { workspace = true, features = ["env-filter"] }
[lints]
workspace = true

View File

@@ -8,7 +8,7 @@ rust-version.workspace = true
[dependencies]
color-eyre.workspace = true
crossterm.workspace = true
rand = "0.9.1"
rand.workspace = true
ratatui.workspace = true
[lints]

View File

@@ -6,6 +6,6 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
color-eyre = "0.6"
crossterm = "0.29"
color-eyre.workspace = true
crossterm.workspace = true
ratatui = { workspace = true, features = ["unstable-widget-ref"] }

View File

@@ -0,0 +1,19 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./examples/vhs/release-header.tape`
# NOTE: Requires VHS 0.6.1 or later for Screenshot support
# The reason for this strange size is that the social preview image for this
# demo is 1280x64 with 80 pixels of padding on each side. We want a version
# without the padding for README.md, etc.
Set Theme {"background": "#141432"}
Set FontSize 25
Set Width 1120
Set Height 480
Set Padding 0
Hide
Type "cargo run -p release-header"
Enter
Sleep 1s
Show
Sleep 1s
Screenshot assets/release-header.png
Sleep 1s

View File

@@ -4,7 +4,7 @@ description = """
Core types and traits for the Ratatui Terminal UI library.
Widget libraries should use this crate. Applications should use the main Ratatui crate.
"""
version = "0.1.0-alpha.6"
version = "0.1.0-beta.0"
readme = "README.md"
authors.workspace = true
documentation.workspace = true
@@ -43,6 +43,9 @@ anstyle = ["dep:anstyle"]
## enables conversions from colors in the [`palette`] crate to [`Color`](crate::style::Color).
palette = ["std", "dep:palette"]
## enables portable-atomic integration for targets that don't support atomic types.
portable-atomic = ["kasuari/portable-atomic"]
## enables the backend code that sets the underline color. Underline color is only supported by
## the Crossterm backend, and is not supported on Windows 7.
underline-color = []

View File

@@ -495,6 +495,38 @@ impl Buffer {
if !current.skip && (current != previous || invalidated > 0) && to_skip == 0 {
let (x, y) = self.pos_of(i);
updates.push((x, y, &next_buffer[i]));
// If the current cell is multi-width, ensure the trailing cells are explicitly
// cleared when they previously contained non-blank content. Some terminals do not
// reliably clear the trailing cell(s) when printing a wide grapheme, which can
// result in visual artifacts (e.g., leftover characters). Emitting an explicit
// update for the trailing cells avoids this.
let symbol = current.symbol();
let cell_width = symbol.width();
// Work around terminals that fail to clear the trailing cell of certain
// emoji presentation sequences (those containing VS16 / U+FE0F).
// Only emit explicit clears for such sequences to avoid bloating diffs
// for standard wide characters (e.g., CJK), which terminals handle well.
let contains_vs16 = symbol.chars().any(|c| c == '\u{FE0F}');
if cell_width > 1 && contains_vs16 {
for k in 1..cell_width {
let j = i + k;
// Make sure that we are still inside the buffer.
if j >= next_buffer.len() || j >= previous_buffer.len() {
break;
}
let prev_trailing = &previous_buffer[j];
let next_trailing = &next_buffer[j];
if !next_trailing.skip && prev_trailing != next_trailing {
let (tx, ty) = self.pos_of(j);
// Push an explicit update for the trailing cell.
// This is expected to be a blank cell, but we use the actual
// content from the next buffer to handle cases where
// the user has explicitly set something else.
updates.push((tx, ty, next_trailing));
}
}
}
}
to_skip = current.symbol().width().saturating_sub(1);
@@ -1248,6 +1280,9 @@ mod tests {
// Both eye and speech bubble include a 'display as emoji' variation selector
// Prior to unicode-width 0.2, this was incorrectly detected as width 4 for some reason
#[case::eye_speechbubble("👁️‍🗨️", "👁🗨xxxxx")]
// Keyboard keycap emoji: base symbol + VS16 for emoji presentation
// This should render as a single grapheme with width 2.
#[case::keyboard_emoji("⌨️", "xxxxx")]
fn renders_emoji(#[case] input: &str, #[case] expected: &str) {
use unicode_width::UnicodeWidthChar;
@@ -1297,4 +1332,34 @@ mod tests {
assert_eq!(buffer.index_of(255, 256), 65791);
assert_eq!(buffer.pos_of(65791), (255, 256)); // previously (255, 0)
}
#[test]
fn diff_clears_trailing_cell_for_wide_grapheme() {
// Reproduce: write "ab", then overwrite with a wide emoji like "⌨️"
let prev = Buffer::with_lines(["ab"]); // width 2 area inferred
assert_eq!(prev.area.width, 2);
let mut next = Buffer::with_lines([" "]); // start with blanks
next.set_string(0, 0, "⌨️", Style::new());
// The next buffer contains a wide grapheme occupying cell 0 and implicitly cell 1.
// The debug formatting shows the hidden trailing space.
let expected_next = Buffer::with_lines(["⌨️"]);
assert_eq!(next, expected_next);
// The diff should include an update for (0,0) to draw the emoji. Depending on
// terminal behavior, it may or may not be necessary to explicitly clear (1,0).
// At minimum, ensure the first cell is updated and nothing incorrect is emitted.
let diff = prev.diff(&next);
assert!(
diff.iter()
.any(|(x, y, c)| *x == 0 && *y == 0 && c.symbol() == "⌨️")
);
// And it should explicitly clear the trailing cell (1,0) to avoid leftovers on terminals
// that don't automatically clear the following cell for wide characters.
assert!(
diff.iter()
.any(|(x, y, c)| *x == 1 && *y == 0 && c.symbol() == " ")
);
}
}

View File

@@ -4,7 +4,7 @@ use crate::style::{Color, Modifier, Style};
use crate::symbols::merge::MergeStrategy;
/// A buffer cell
#[derive(Debug, Clone, Eq, PartialEq, Hash)]
#[derive(Debug, Default, Clone)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Cell {
/// The string to be drawn in the cell.
@@ -15,7 +15,7 @@ pub struct Cell {
/// buffer for short strings.
///
/// See <https://github.com/ratatui/ratatui/pull/601> for more information.
symbol: CompactString,
symbol: Option<CompactString>,
/// The foreground color of the cell.
pub fg: Color,
@@ -36,30 +36,35 @@ pub struct Cell {
impl Cell {
/// An empty `Cell`
pub const EMPTY: Self = Self::new(" ");
pub const EMPTY: Self = Self {
symbol: None,
fg: Color::Reset,
bg: Color::Reset,
#[cfg(feature = "underline-color")]
underline_color: Color::Reset,
modifier: Modifier::empty(),
skip: false,
};
/// Creates a new `Cell` with the given symbol.
///
/// This works at compile time and puts the symbol onto the stack. Fails to build when the
/// symbol doesnt fit onto the stack and requires to be placed on the heap. Use
/// symbol doesn't fit onto the stack and requires to be placed on the heap. Use
/// `Self::default().set_symbol()` in that case. See [`CompactString::const_new`] for more
/// details on this.
pub const fn new(symbol: &'static str) -> Self {
Self {
symbol: CompactString::const_new(symbol),
fg: Color::Reset,
bg: Color::Reset,
#[cfg(feature = "underline-color")]
underline_color: Color::Reset,
modifier: Modifier::empty(),
skip: false,
symbol: Some(CompactString::const_new(symbol)),
..Self::EMPTY
}
}
/// Gets the symbol of the cell.
///
/// If the cell has no symbol, returns a single space character.
#[must_use]
pub fn symbol(&self) -> &str {
self.symbol.as_str()
self.symbol.as_ref().map_or(" ", |s| s.as_str())
}
/// Merges the symbol of the cell with the one already on the cell, using the provided
@@ -73,6 +78,9 @@ impl Cell {
/// produce a valid character. [`MergeStrategy`] defines how to handle such cases, e.g.,
/// `Exact` for valid merges only, or `Fuzzy` for close matches.
///
/// If the cell has no symbol set, it will set the symbol to the provided one rather than
/// merging.
///
/// # Example
///
/// ```
@@ -97,14 +105,17 @@ impl Cell {
/// [border collapsing]: https://ratatui.rs/recipes/layout/collapse-borders/
/// [Box Drawing Unicode block]: https://en.wikipedia.org/wiki/Box_Drawing
pub fn merge_symbol(&mut self, symbol: &str, strategy: MergeStrategy) -> &mut Self {
let merged = strategy.merge(self.symbol(), symbol);
self.symbol = CompactString::new(merged);
let merged_symbol = self
.symbol
.as_ref()
.map_or(symbol, |s| strategy.merge(s, symbol));
self.symbol = Some(CompactString::new(merged_symbol));
self
}
/// Sets the symbol of the cell.
pub fn set_symbol(&mut self, symbol: &str) -> &mut Self {
self.symbol = CompactString::new(symbol);
self.symbol = Some(CompactString::new(symbol));
self
}
@@ -112,14 +123,14 @@ impl Cell {
///
/// This is particularly useful for adding zero-width characters to the cell.
pub(crate) fn append_symbol(&mut self, symbol: &str) -> &mut Self {
self.symbol.push_str(symbol);
self.symbol.get_or_insert_default().push_str(symbol);
self
}
/// Sets the symbol of the cell to a single character.
pub fn set_char(&mut self, ch: char) -> &mut Self {
let mut buf = [0; 4];
self.symbol = CompactString::new(ch.encode_utf8(&mut buf));
self.symbol = Some(CompactString::new(ch.encode_utf8(&mut buf)));
self
}
@@ -180,21 +191,49 @@ impl Cell {
/// Resets the cell to the empty state.
pub fn reset(&mut self) {
self.symbol = CompactString::const_new(" ");
self.fg = Color::Reset;
self.bg = Color::Reset;
#[cfg(feature = "underline-color")]
{
self.underline_color = Color::Reset;
}
self.modifier = Modifier::empty();
self.skip = false;
*self = Self::EMPTY;
}
}
impl Default for Cell {
fn default() -> Self {
Self::EMPTY
impl PartialEq for Cell {
/// Compares two `Cell`s for equality.
///
/// Note that cells with no symbol (i.e., `Cell::EMPTY`) are considered equal to cells with a
/// single space symbol. This is to ensure that empty cells are treated uniformly,
/// regardless of how they were created
fn eq(&self, other: &Self) -> bool {
// Treat None and Some(" ") as equal
let symbols_eq = self.symbol() == other.symbol();
#[cfg(feature = "underline-color")]
let underline_color_eq = self.underline_color == other.underline_color;
#[cfg(not(feature = "underline-color"))]
let underline_color_eq = true;
symbols_eq
&& underline_color_eq
&& self.fg == other.fg
&& self.bg == other.bg
&& self.modifier == other.modifier
&& self.skip == other.skip
}
}
impl Eq for Cell {}
impl core::hash::Hash for Cell {
/// Hashes the cell.
///
/// This treats symbols with Some(" ") as equal to None, so that empty cells are
/// treated uniformly, regardless of how they were created.
fn hash<H: core::hash::Hasher>(&self, state: &mut H) {
self.symbol().hash(state);
self.fg.hash(state);
self.bg.hash(state);
#[cfg(feature = "underline-color")]
self.underline_color.hash(state);
self.modifier.hash(state);
self.skip.hash(state);
}
}
@@ -216,7 +255,7 @@ mod tests {
assert_eq!(
cell,
Cell {
symbol: CompactString::const_new(""),
symbol: Some(CompactString::const_new("")),
fg: Color::Reset,
bg: Color::Reset,
#[cfg(feature = "underline-color")]

View File

@@ -130,7 +130,7 @@ impl From<i16> for Spacing {
///
/// When the layout is computed, the result is cached in a thread-local cache, so that subsequent
/// calls with the same parameters are faster. The cache is a `LruCache`, and the size of the cache
/// can be configured using [`Layout::init_cache()`].
/// can be configured using [`Layout::init_cache()`] when the `layout-cache` feature is enabled.
///
/// # Construction
///
@@ -203,8 +203,8 @@ impl Layout {
/// on my laptop's terminal (171+51 = 222) and doubling it for good measure and then adding a
/// bit more to make it a round number. This gives enough entries to store a layout for every
/// row and every column, twice over, which should be enough for most apps. For those that need
/// more, the cache size can be set with [`Layout::init_cache()`].
/// This const is unused if layout cache is disabled.
/// more, the cache size can be set with `Layout::init_cache()` (requires the `layout-cache`
/// feature).
#[cfg(feature = "layout-cache")]
pub const DEFAULT_CACHE_SIZE: usize = 500;
@@ -626,7 +626,7 @@ impl Layout {
.expect("invalid number of rects")
}
/// Wrapper function around the cassowary solver to be able to split a given area into
/// Wrapper function around the [`kasuari`] solver to be able to split a given area into
/// smaller ones based on the preferred widths or heights and the direction.
///
/// Note that the constraints are applied to the whole area that is to be split, so using
@@ -636,8 +636,8 @@ impl Layout {
///
/// This method stores the result of the computation in a thread-local cache keyed on the layout
/// and area, so that subsequent calls with the same parameters are faster. The cache is a
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default, if the cache
/// is initialized with the [`Layout::init_cache()`] grows until the initialized cache size.
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default. If the cache
/// is initialized with [`Layout::init_cache()`], it grows until the initialized cache size.
///
/// There is a helper method that can be used to split the whole area into smaller ones based on
/// the layout: [`Layout::areas()`]. That method is a shortcut for calling this method. It
@@ -664,7 +664,7 @@ impl Layout {
self.split_with_spacers(area).0
}
/// Wrapper function around the cassowary solver that splits the given area into smaller ones
/// Wrapper function around the [`kasuari`] solver that splits the given area into smaller ones
/// based on the preferred widths or heights and the direction, with the ability to include
/// spacers between the areas.
///
@@ -673,8 +673,8 @@ impl Layout {
///
/// This method stores the result of the computation in a thread-local cache keyed on the layout
/// and area, so that subsequent calls with the same parameters are faster. The cache is a
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default, if the cache
/// is initialized with the [`Layout::init_cache()`] grows until the initialized cache size.
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default. If the cache
/// is initialized with [`Layout::init_cache()`], it grows until the initialized cache size.
///
/// # Examples
///
@@ -726,7 +726,7 @@ impl Layout {
}
fn try_split(&self, area: Rect) -> Result<(Segments, Spacers), AddConstraintError> {
// To take advantage of all of cassowary features, we would want to store the `Solver` in
// To take advantage of all of [`kasuari`] features, we would want to store the `Solver` in
// one of the fields of the Layout struct. And we would want to set it up such that we could
// add or remove constraints as and when needed.
// The advantage of doing it as described above is that it would allow users to

View File

@@ -164,8 +164,7 @@ impl Rect {
}
}
/// The area of the `Rect`. If the area is larger than the maximum value of `u16`, it will be
/// clamped to `u16::MAX`.
/// The area of the `Rect`.
pub const fn area(self) -> u32 {
(self.width as u32) * (self.height as u32)
}
@@ -225,7 +224,7 @@ impl Rect {
/// Returns a new `Rect` outside the current one, with the given margin applied on each side.
///
/// If the margin causes the `Rect`'s bounds to outsdie the range of a `u16`, the `Rect` will
/// If the margin causes the `Rect`'s bounds to be outside the range of a `u16`, the `Rect` will
/// be truncated to keep the bounds within `u16`. This will cause the size of the `Rect` to
/// change.
///
@@ -646,6 +645,18 @@ impl From<(Position, Size)> for Rect {
}
}
impl From<Size> for Rect {
/// Creates a new `Rect` with the given size at [`Position::ORIGIN`] (0, 0).
fn from(size: Size) -> Self {
Self {
x: 0,
y: 0,
width: size.width,
height: size.height,
}
}
}
#[cfg(test)]
mod tests {
use alloc::string::ToString;
@@ -956,6 +967,23 @@ mod tests {
);
}
#[test]
fn from_size() {
let size = Size {
width: 3,
height: 4,
};
assert_eq!(
Rect::from(size),
Rect {
x: 0,
y: 0,
width: 3,
height: 4
}
);
}
#[test]
fn centered_horizontally() {
let rect = Rect::new(0, 0, 5, 5);

View File

@@ -1,7 +1,6 @@
#![no_std]
// show the feature flags in the generated documentation
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/favicon.ico"

View File

@@ -238,15 +238,26 @@ impl fmt::Debug for Modifier {
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Style {
/// The foreground color.
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub fg: Option<Color>,
/// The background color.
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub bg: Option<Color>,
/// The underline color.
#[cfg(feature = "underline-color")]
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub underline_color: Option<Color>,
/// The modifiers to add.
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Modifier::is_empty")
)]
pub add_modifier: Modifier,
/// The modifiers to remove.
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Modifier::is_empty")
)]
pub sub_modifier: Modifier,
}
@@ -923,4 +934,59 @@ mod tests {
.remove_modifier(Modifier::DIM)
);
}
#[cfg(feature = "serde")]
#[test]
fn serialize_then_deserialize() {
let style = Style {
fg: Some(Color::Rgb(255, 0, 255)),
bg: Some(Color::White),
#[cfg(feature = "underline-color")]
underline_color: Some(Color::Indexed(3)),
add_modifier: Modifier::UNDERLINED,
sub_modifier: Modifier::CROSSED_OUT,
};
let json_str = serde_json::to_string(&style).unwrap();
let json_value: serde_json::Value = serde_json::from_str(&json_str).unwrap();
let mut expected_json = serde_json::json!({
"fg": "#FF00FF",
"bg": "White",
"add_modifier": "UNDERLINED",
"sub_modifier": "CROSSED_OUT"
});
#[cfg(feature = "underline-color")]
{
expected_json
.as_object_mut()
.unwrap()
.insert("underline_color".into(), "3".into());
}
assert_eq!(json_value, expected_json);
let deserialized: Style = serde_json::from_str(&json_str).unwrap();
assert_eq!(deserialized, style);
}
#[cfg(feature = "serde")]
#[test]
fn deserialize_defaults() {
let style = Style {
fg: None,
bg: None,
#[cfg(feature = "underline-color")]
underline_color: None,
add_modifier: Modifier::empty(),
sub_modifier: Modifier::empty(),
};
let json_str = serde_json::to_string(&style).unwrap();
assert_eq!(json_str, "{}");
let deserialized: Style = serde_json::from_str(&json_str).unwrap();
assert_eq!(deserialized, style);
}
}

View File

@@ -190,6 +190,8 @@ impl From<anstyle::Style> for Style {
Self {
fg: style.get_fg_color().map(Color::from),
bg: style.get_bg_color().map(Color::from),
#[cfg(feature = "underline-color")]
underline_color: style.get_underline_color().map(Color::from),
add_modifier: style.get_effects().into(),
..Default::default()
}
@@ -207,6 +209,11 @@ impl From<Style> for anstyle::Style {
let bg = anstyle::Color::from(bg);
anstyle_style = anstyle_style.bg_color(Some(bg));
}
#[cfg(feature = "underline-color")]
if let Some(underline) = style.underline_color {
let underline = anstyle::Color::from(underline);
anstyle_style = anstyle_style.underline_color(Some(underline));
}
anstyle_style = anstyle_style.effects(style.add_modifier.into());
anstyle_style
}
@@ -300,10 +307,13 @@ mod tests {
let anstyle_style = anstyle::Style::new()
.fg_color(Some(anstyle::Color::Ansi(AnsiColor::Red)))
.bg_color(Some(anstyle::Color::Ansi(AnsiColor::Blue)))
.underline_color(Some(anstyle::Color::Ansi(AnsiColor::Green)))
.effects(Effects::BOLD | Effects::ITALIC);
let style = Style::from(anstyle_style);
assert_eq!(style.fg, Some(Color::Red));
assert_eq!(style.bg, Some(Color::Blue));
#[cfg(feature = "underline-color")]
assert_eq!(style.underline_color, Some(Color::Green));
assert!(style.add_modifier.contains(Modifier::BOLD));
assert!(style.add_modifier.contains(Modifier::ITALIC));
}
@@ -313,6 +323,8 @@ mod tests {
let style = Style {
fg: Some(Color::Red),
bg: Some(Color::Blue),
#[cfg(feature = "underline-color")]
underline_color: Some(Color::Green),
add_modifier: Modifier::BOLD | Modifier::ITALIC,
..Default::default()
};
@@ -325,6 +337,11 @@ mod tests {
anstyle_style.get_bg_color(),
Some(anstyle::Color::Ansi(AnsiColor::Blue))
);
#[cfg(feature = "underline-color")]
assert_eq!(
anstyle_style.get_underline_color(),
Some(anstyle::Color::Ansi(AnsiColor::Green))
);
assert!(anstyle_style.get_effects().contains(Effects::BOLD));
assert!(anstyle_style.get_effects().contains(Effects::ITALIC));
}

View File

@@ -655,8 +655,8 @@ mod tests {
"abcdef0", // 7 chars is not a color
" bcdefa", // doesn't start with a '#'
"#abcdef00", // too many chars
"#1🦀2", // len 7 but on char boundaries shouldnt panic
"resett", // typo
"#1🦀2", // len 7 but on char boundaries shouldn't panic
"resets", // typo
"lightblackk", // typo
];

View File

@@ -99,7 +99,7 @@ pub enum MergeStrategy {
///
/// The following diagram illustrates how this would apply to several overlapping blocks where
/// the thick bordered blocks are rendered last, merging the previous symbols into a single
/// composite character. All combindations of the plain and thick segments exist, so these
/// composite character. All combinations of the plain and thick segments exist, so these
/// symbols can be merged into a single character:
///
/// ```text
@@ -264,7 +264,7 @@ pub enum MergeStrategy {
/// assert_eq!(strategy.merge("┃", "═"), "╬");
/// assert_eq!(strategy.merge("═", "┃"), "╋");
///
/// // combindations of double with plain that don't exist are merged based on the second symbol
/// // combinations of double with plain that don't exist are merged based on the second symbol
/// assert_eq!(strategy.merge("┐", "╔"), "╦");
/// assert_eq!(strategy.merge("╔", "┐"), "┬");
/// ```
@@ -300,15 +300,20 @@ impl MergeStrategy {
/// [Box Drawing Unicode block]: https://en.wikipedia.org/wiki/Box_Drawing
/// [`Cell::merge_symbol`]: crate::buffer::Cell::merge_symbol
pub fn merge<'a>(self, prev: &'a str, next: &'a str) -> &'a str {
let (Ok(prev_symbol), Ok(next_symbol)) =
(BorderSymbol::from_str(prev), BorderSymbol::from_str(next))
else {
// Replace should always just return the last symbol.
if self == Self::Replace {
return next;
};
if let Ok(merged) = prev_symbol.merge(next_symbol, self).try_into() {
return merged;
}
next
match (BorderSymbol::from_str(prev), BorderSymbol::from_str(next)) {
(Ok(prev_symbol), Ok(next_symbol)) => prev_symbol
.merge(next_symbol, self)
.try_into()
.unwrap_or(next),
// Non-border symbols take precedence in strategies other than Replace.
(Err(_), Ok(_)) => prev,
(_, Err(_)) => next,
}
}
}
@@ -523,7 +528,6 @@ macro_rules! define_symbols {
}
define_symbols!(
" " => (Nothing, Nothing, Nothing, Nothing),
"" => (Plain, Nothing, Plain, Nothing),
"" => (Thick, Nothing, Thick, Nothing),
"" => (Nothing, Plain, Nothing, Plain),
@@ -666,7 +670,7 @@ mod tests {
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", " ",
"", "", "", "", "", "", " ", "a", "b",
];
for a in symbols {
@@ -695,8 +699,8 @@ mod tests {
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge(" ", ""), "");
assert_eq!(strategy.merge("", " "), "");
assert_eq!(strategy.merge(" ", ""), " ");
assert_eq!(strategy.merge("", " "), " ");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
@@ -704,6 +708,9 @@ mod tests {
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", "a"), "a");
assert_eq!(strategy.merge("a", ""), "a");
assert_eq!(strategy.merge("a", "b"), "b");
}
#[test]
@@ -711,7 +718,7 @@ mod tests {
let strategy = MergeStrategy::Fuzzy;
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge(" ", ""), "");
assert_eq!(strategy.merge(" ", ""), " ");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
@@ -725,8 +732,8 @@ mod tests {
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge(" ", ""), "");
assert_eq!(strategy.merge("", " "), "");
assert_eq!(strategy.merge(" ", ""), " ");
assert_eq!(strategy.merge("", " "), " ");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
@@ -734,5 +741,8 @@ mod tests {
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", ""), "");
assert_eq!(strategy.merge("", "a"), "a");
assert_eq!(strategy.merge("a", ""), "a");
assert_eq!(strategy.merge("a", "b"), "b");
}
}

View File

@@ -128,6 +128,14 @@ where
{
/// Creates a new [`Terminal`] with the given [`Backend`] with a full screen viewport.
///
/// Note that unlike `ratatui::init`, this does not install a panic hook, so it is recommended
/// to do that manually when using this function, otherwise any panic messages will be printed
/// to the alternate screen and the terminal may be left in an unusable state.
///
/// See [how to set up panic hooks](https://ratatui.rs/recipes/apps/panic-hooks/) and
/// [`better-panic` example](https://ratatui.rs/recipes/apps/better-panic/) for more
/// information.
///
/// # Example
///
/// ```rust,ignore
@@ -137,6 +145,13 @@ where
///
/// let backend = CrosstermBackend::new(stdout());
/// let terminal = Terminal::new(backend)?;
///
/// // Optionally set up a panic hook to restore the terminal on panic.
/// let old_hook = std::panic::take_hook();
/// std::panic::set_hook(Box::new(move |info| {
/// ratatui::restore();
/// old_hook(info);
/// }));
/// # std::io::Result::Ok(())
/// ```
pub fn new(backend: B) -> Result<Self, B::Error> {
@@ -164,9 +179,7 @@ where
/// ```
pub fn with_options(mut backend: B, options: TerminalOptions) -> Result<Self, B::Error> {
let area = match options.viewport {
Viewport::Fullscreen | Viewport::Inline(_) => {
Rect::from((Position::ORIGIN, backend.size()?))
}
Viewport::Fullscreen | Viewport::Inline(_) => backend.size()?.into(),
Viewport::Fixed(area) => area,
};
let (viewport_area, cursor_pos) = match options.viewport {
@@ -190,6 +203,40 @@ where
}
/// Get a Frame object which provides a consistent view into the terminal state for rendering.
///
/// # Note
///
/// This exists to support more advanced use cases. Most cases should be fine using
/// [`Terminal::draw`].
///
/// [`Terminal::get_frame`] should be used when you need direct access to the frame buffer
/// outside of draw closure, for example:
///
/// - Unit testing widgets
/// - Buffer state inspection
/// - Cursor manipulation
/// - Multiple rendering passes/Buffer Manipulation
/// - Custom frame lifecycle management
/// - Buffer exporting
///
/// # Example
///
/// Getting the buffer and asserting on some cells after rendering a widget.
///
/// ```rust,ignore
/// use ratatui::{backend::TestBackend, Terminal};
/// use ratatui::widgets::Paragraph;
/// let backend = TestBackend::new(30, 5);
/// let mut terminal = Terminal::new(backend).unwrap();
/// {
/// let mut frame = terminal.get_frame();
/// frame.render_widget(Paragraph::new("Hello"), frame.area());
/// }
/// // When not using `draw`, present the buffer manually:
/// terminal.flush().unwrap();
/// terminal.swap_buffers();
/// terminal.backend_mut().flush().unwrap();
/// ```
pub const fn get_frame(&mut self) -> Frame<'_> {
let count = self.frame_count;
Frame {
@@ -265,7 +312,7 @@ where
pub fn autoresize(&mut self) -> Result<(), B::Error> {
// fixed viewports do not get autoresized
if matches!(self.viewport, Viewport::Fullscreen | Viewport::Inline(_)) {
let area = Rect::from((Position::ORIGIN, self.size()?));
let area = self.size()?.into();
if area != self.last_known_area {
self.resize(area)?;
}

View File

@@ -7,6 +7,7 @@ use alloc::vec::Vec;
use core::fmt;
use unicode_truncate::UnicodeTruncateStr;
use unicode_width::UnicodeWidthStr;
use crate::buffer::Buffer;
use crate::layout::{Alignment, Rect};
@@ -435,8 +436,9 @@ impl<'a> Line<'a> {
/// let line = Line::from(vec!["Hello".blue(), " world!".green()]);
/// assert_eq!(12, line.width());
/// ```
#[must_use]
pub fn width(&self) -> usize {
self.spans.iter().map(Span::width).sum()
UnicodeWidthStr::width(self)
}
/// Returns an iterator over the graphemes held by this line.
@@ -562,6 +564,16 @@ impl<'a> Line<'a> {
}
}
impl UnicodeWidthStr for Line<'_> {
fn width(&self) -> usize {
self.spans.iter().map(UnicodeWidthStr::width).sum()
}
fn width_cjk(&self) -> usize {
self.spans.iter().map(UnicodeWidthStr::width_cjk).sum()
}
}
impl<'a> IntoIterator for Line<'a> {
type Item = Span<'a>;
type IntoIter = alloc::vec::IntoIter<Span<'a>>;

View File

@@ -269,7 +269,7 @@ impl<'a> Span<'a> {
/// Returns the unicode width of the content held by this span.
pub fn width(&self) -> usize {
self.content.width()
UnicodeWidthStr::width(self)
}
/// Returns an iterator over the graphemes held by this span.
@@ -376,6 +376,16 @@ impl<'a> Span<'a> {
}
}
impl UnicodeWidthStr for Span<'_> {
fn width(&self) -> usize {
self.content.width()
}
fn width_cjk(&self) -> usize {
self.content.width_cjk()
}
}
impl<'a, T> From<T> for Span<'a>
where
T: Into<Cow<'a, str>>,

View File

@@ -5,6 +5,8 @@ use alloc::vec;
use alloc::vec::Vec;
use core::fmt;
use unicode_width::UnicodeWidthStr;
use crate::buffer::Buffer;
use crate::layout::{Alignment, Rect};
use crate::style::{Style, Styled};
@@ -284,7 +286,7 @@ impl<'a> Text<'a> {
/// assert_eq!(15, text.width());
/// ```
pub fn width(&self) -> usize {
self.iter().map(Line::width).max().unwrap_or_default()
UnicodeWidthStr::width(self)
}
/// Returns the height.
@@ -559,6 +561,25 @@ impl<'a> Text<'a> {
}
}
impl UnicodeWidthStr for Text<'_> {
/// Returns the max width of all the lines.
fn width(&self) -> usize {
self.lines
.iter()
.map(UnicodeWidthStr::width)
.max()
.unwrap_or_default()
}
fn width_cjk(&self) -> usize {
self.lines
.iter()
.map(UnicodeWidthStr::width_cjk)
.max()
.unwrap_or_default()
}
}
impl<'a> IntoIterator for Text<'a> {
type Item = Line<'a>;
type IntoIter = alloc::vec::IntoIter<Self::Item>;

148
ratatui-core/tests/rect.rs Normal file
View File

@@ -0,0 +1,148 @@
//! Integration tests for Rect operations visualized with buffers.
use ratatui_core::buffer::Buffer;
use ratatui_core::layout::{Margin, Offset, Rect};
use ratatui_core::widgets::Widget;
/// A minimal widget that fills its entire area with the given symbol.
struct Filled<'a> {
symbol: &'a str,
}
impl Widget for Filled<'_> {
fn render(self, area: Rect, buf: &mut Buffer) {
for y in area.top()..area.bottom() {
for x in area.left()..area.right() {
if let Some(cell) = buf.cell_mut((x, y)) {
cell.set_symbol(self.symbol);
}
}
}
}
}
#[test]
fn inner() {
let base = Rect::new(2, 2, 10, 6);
let inner = base.inner(Margin::new(2, 1));
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
Filled { symbol: "" }.render(base, &mut buf);
Filled { symbol: "" }.render(inner, &mut buf);
let expected = Buffer::with_lines([
" ",
" ",
" ██████████ ",
" ██░░░░░░██ ",
" ██░░░░░░██ ",
" ██░░░░░░██ ",
" ██░░░░░░██ ",
" ██████████ ",
" ",
" ",
]);
assert_eq!(buf, expected);
}
#[test]
fn outer() {
let base = Rect::new(4, 3, 6, 4);
let outer = base.outer(Margin::new(2, 1));
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
Filled { symbol: "" }.render(outer, &mut buf);
Filled { symbol: "" }.render(base, &mut buf);
let expected = Buffer::with_lines([
" ",
" ",
" ░░░░░░░░░░ ",
" ░░██████░░ ",
" ░░██████░░ ",
" ░░██████░░ ",
" ░░██████░░ ",
" ░░░░░░░░░░ ",
" ",
" ",
]);
assert_eq!(buf, expected);
}
#[test]
fn offset() {
let base = Rect::new(2, 2, 5, 3);
let moved = base.offset(Offset { x: 4, y: 2 });
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
Filled { symbol: "" }.render(base, &mut buf);
Filled { symbol: "" }.render(moved, &mut buf);
let expected = Buffer::with_lines([
" ",
" ",
" ░░░░░ ",
" ░░░░░ ",
" ░░░░█████ ",
" █████ ",
" █████ ",
" ",
" ",
" ",
]);
assert_eq!(buf, expected);
}
#[test]
fn intersection() {
let a = Rect::new(2, 2, 6, 4);
let b = Rect::new(5, 3, 6, 4);
let inter = a.intersection(b);
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
Filled { symbol: "" }.render(a, &mut buf);
Filled { symbol: "" }.render(b, &mut buf);
Filled { symbol: "" }.render(inter, &mut buf);
let expected = Buffer::with_lines([
" ",
" ",
" ░░░░░░ ",
" ░░░███▒▒▒ ",
" ░░░███▒▒▒ ",
" ░░░███▒▒▒ ",
" ▒▒▒▒▒▒ ",
" ",
" ",
" ",
]);
assert_eq!(buf, expected);
}
#[test]
fn clamp() {
let area = Rect::new(2, 2, 10, 6);
let rect = Rect::new(8, 5, 8, 4);
let clamped = rect.clamp(area);
let mut buf = Buffer::empty(Rect::new(0, 0, 20, 12));
Filled { symbol: "" }.render(area, &mut buf);
Filled { symbol: "" }.render(rect, &mut buf);
Filled { symbol: "" }.render(clamped, &mut buf);
let expected = Buffer::with_lines([
" ",
" ",
" ██████████ ",
" ██████████ ",
" ██░░░░░░░░ ",
" ██░░░░░░░░▒▒▒▒ ",
" ██░░░░░░░░▒▒▒▒ ",
" ██░░░░░░░░▒▒▒▒ ",
" ▒▒▒▒▒▒▒▒ ",
" ",
" ",
" ",
]);
assert_eq!(buf, expected);
}

View File

@@ -1,6 +1,6 @@
[package]
name = "ratatui-crossterm"
version = "0.1.0-alpha.5"
version = "0.1.0-beta.0"
description = "Crossterm backend for the Ratatui Terminal UI library."
documentation = "https://docs.rs/ratatui-crossterm/"
readme = "README.md"
@@ -14,11 +14,31 @@ exclude.workspace = true
edition.workspace = true
rust-version.workspace = true
[package.metadata.docs.rs]
features = ["document-features"]
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = ["underline-color"]
default = ["underline-color", "crossterm_0_29"]
#! One of the following versions of crossterm must be enabled. By default, the latest version is
#! enabled. This will always default to the most recent version of crossterm, but you can override
#! this by specifying the version you want to use in your Cargo.toml file. The purpose of these
#! features is to allow widget libraries to depend on specific versions of crossterm in a way that
#! doesn't cause version conflicts. A compiler error will be raised if you don't enable at least one
#! of the following features.
## Enables crossterm 0.28.x
crossterm_0_28 = ["dep:crossterm_0_28"]
## Enables crossterm 0.29.x
crossterm_0_29 = ["dep:crossterm_0_29"]
#! The following features are optional and can be enabled to add additional functionality to the
#! library. These features are not required for the library to function, but they may be useful in
#! certain situations.
## Enables serde for crossterm dependency
serde = ["crossterm/serde"]
serde = ["crossterm_0_28?/serde", "crossterm_0_29?/serde"]
## enables the backend code that sets the underline color.
## Underline color is not supported on Windows 7.
@@ -37,13 +57,14 @@ unstable-backend-writer = []
[dependencies]
crossterm.workspace = true
cfg-if = "1.0.1"
crossterm_0_28 = { version = "0.28", package = "crossterm", optional = true }
crossterm_0_29 = { version = "0.29", package = "crossterm", optional = true }
document-features = { workspace = true, optional = true }
instability.workspace = true
ratatui-core = { workspace = true }
ratatui-core.workspace = true
[dev-dependencies]
ratatui = { path = "../ratatui", features = ["crossterm"] }
rstest.workspace = true
[lints]

View File

@@ -2,10 +2,41 @@
<!-- cargo-rdme start -->
This module provides the [`CrosstermBackend`] implementation for the [`Backend`] trait. It uses
the [Crossterm] crate to interact with the terminal.
This crate provides [`CrosstermBackend`], an implementation of the [`Backend`] trait for the
[Ratatui] library. It uses the [Crossterm] library for all terminal manipulation.
### Crossterm Version and Re-export
`ratatui-crossterm` requires you to specify a version of the [Crossterm] library to be used.
This is managed via feature flags. The highest enabled feature flag of the available
`crossterm_0_xx` features (e.g., `crossterm_0_28`, `crossterm_0_29`) takes precedence. These
features determine which version of Crossterm is compiled and used by the backend. Feature
unification may mean that any crate in your dependency graph that chooses to depend on a
specific version of Crossterm may be affected by the feature flags you enable.
Ratatui will support at least the two most recent versions of Crossterm (though we may increase
this if crossterm release cadence increases). We will remove support for older versions in major
(0.x) releases of `ratatui-crossterm`, and we may add support for newer versions in minor
(0.x.y) releases.
To promote interoperability within the [Ratatui] ecosystem, the selected Crossterm crate is
re-exported as `ratatui_crossterm::crossterm`. This re-export is essential for authors of widget
libraries or any applications that need to perform direct Crossterm operations while ensuring
compatibility with the version used by `ratatui-crossterm`. By using
`ratatui_crossterm::crossterm` for such operations, developers can avoid version conflicts and
ensure that all parts of their application use a consistent set of Crossterm types and
functions.
For example, if your application's `Cargo.toml` enables the `crossterm_0_29` feature for
`ratatui-crossterm`, then any code using `ratatui_crossterm::crossterm` will refer to the 0.29
version of Crossterm.
For more information on how to use the backend, see the documentation for the
[`CrosstermBackend`] struct.
[Ratatui]: https://ratatui.rs
[Crossterm]: https://crates.io/crates/crossterm
[`Backend`]: ratatui_core::backend::Backend
## Crate Organization

View File

@@ -1,15 +1,45 @@
// show the feature flags in the generated documentation
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/favicon.ico"
)]
#![warn(missing_docs)]
//! This module provides the [`CrosstermBackend`] implementation for the [`Backend`] trait. It uses
//! the [Crossterm] crate to interact with the terminal.
//! This crate provides [`CrosstermBackend`], an implementation of the [`Backend`] trait for the
//! [Ratatui] library. It uses the [Crossterm] library for all terminal manipulation.
//!
//! ## Crossterm Version and Re-export
//!
//! `ratatui-crossterm` requires you to specify a version of the [Crossterm] library to be used.
//! This is managed via feature flags. The highest enabled feature flag of the available
//! `crossterm_0_xx` features (e.g., `crossterm_0_28`, `crossterm_0_29`) takes precedence. These
//! features determine which version of Crossterm is compiled and used by the backend. Feature
//! unification may mean that any crate in your dependency graph that chooses to depend on a
//! specific version of Crossterm may be affected by the feature flags you enable.
//!
//! Ratatui will support at least the two most recent versions of Crossterm (though we may increase
//! this if crossterm release cadence increases). We will remove support for older versions in major
//! (0.x) releases of `ratatui-crossterm`, and we may add support for newer versions in minor
//! (0.x.y) releases.
//!
//! To promote interoperability within the [Ratatui] ecosystem, the selected Crossterm crate is
//! re-exported as `ratatui_crossterm::crossterm`. This re-export is essential for authors of widget
//! libraries or any applications that need to perform direct Crossterm operations while ensuring
//! compatibility with the version used by `ratatui-crossterm`. By using
//! `ratatui_crossterm::crossterm` for such operations, developers can avoid version conflicts and
//! ensure that all parts of their application use a consistent set of Crossterm types and
//! functions.
//!
//! For example, if your application's `Cargo.toml` enables the `crossterm_0_29` feature for
//! `ratatui-crossterm`, then any code using `ratatui_crossterm::crossterm` will refer to the 0.29
//! version of Crossterm.
//!
//! For more information on how to use the backend, see the documentation for the
//! [`CrosstermBackend`] struct.
//!
//! [Ratatui]: https://ratatui.rs
//! [Crossterm]: https://crates.io/crates/crossterm
//! [`Backend`]: ratatui_core::backend::Backend
//!
//! # Crate Organization
//!
@@ -36,7 +66,6 @@
use std::io::{self, Write};
pub use crossterm;
use crossterm::cursor::{Hide, MoveTo, Show};
#[cfg(feature = "underline-color")]
use crossterm::style::SetUnderlineColor;
@@ -47,6 +76,19 @@ use crossterm::style::{
};
use crossterm::terminal::{self, Clear};
use crossterm::{execute, queue};
cfg_if::cfg_if! {
// Re-export the selected Crossterm crate making sure to choose the latest version. We do this
// to make it possible to easily enable all features when compiling `ratatui-crossterm`.
if #[cfg(feature = "crossterm_0_29")] {
pub use crossterm_0_29 as crossterm;
} else if #[cfg(feature = "crossterm_0_28")] {
pub use crossterm_0_28 as crossterm;
} else {
compile_error!(
"At least one crossterm feature must be enabled. See the crate docs for more information."
);
}
}
use ratatui_core::backend::{Backend, ClearType, WindowSize};
use ratatui_core::buffer::Cell;
use ratatui_core::layout::{Position, Size};
@@ -70,7 +112,7 @@ use ratatui_core::style::{Color, Modifier, Style};
///
/// # Example
///
/// ```rust,no_run
/// ```rust,ignore
/// use std::io::{stderr, stdout};
///
/// use crossterm::ExecutableCommand;
@@ -126,7 +168,7 @@ where
///
/// # Example
///
/// ```rust,no_run
/// ```rust,ignore
/// use std::io::stdout;
///
/// use ratatui::backend::CrosstermBackend;

View File

@@ -1,9 +1,8 @@
# Changelog
All notable changes to this project will be documented in this file.
See the [top-level changelog](../CHANGELOG.md) for the latest changes.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
This file is obsolete as of 0.30.0 release. [\*](https://github.com/ratatui/ratatui/pull/1652)
## [0.6.0](https://github.com/ratatui/ratatui-macros/compare/v0.5.0...v0.6.0) - 2024-10-21

View File

@@ -1,6 +1,6 @@
[package]
name = "ratatui-macros"
version = "0.7.0-alpha.4"
version = "0.7.0-beta.0"
edition.workspace = true
authors = ["The Ratatui Developers"]
description = "Macros for Ratatui"

View File

@@ -9,9 +9,9 @@ error: No rules expected the token `,` while trying to match the end of the macr
error: unexpected end of macro invocation
--> tests/ui/fails.rs:8:18
|
8 | let [a, b] = constraints![
8 | let [a, b] = constraints![
| __________________^
9 | | == 1/2,
9 | | == 1/2,
10 | | == 2,
11 | | ];
| |_____^ missing tokens in macro arguments
@@ -50,9 +50,8 @@ error: argument never used
| ------- ^^^^^^^^^^^^^ argument never used
| |
| formatting specifier missing
error[E0527]: pattern requires 2 elements but array has 3
--> tests/ui/fails.rs:8:9
|
8 | let [a, b] = constraints![
| ^^^^^^ expected 3 elements
|
help: format specifiers use curly braces, consider adding a format specifier
|
19 | let _ = span!("hello{}", "hello world");
| ++

View File

@@ -1,6 +1,6 @@
[package]
name = "ratatui-termion"
version = "0.1.0-alpha.5"
version = "0.1.0-beta.0"
description = "Termion backend for the Ratatui Terminal UI library."
documentation = "https://docs.rs/ratatui-termion/"
readme = "README.md"

View File

@@ -1,6 +1,5 @@
// show the feature flags in the generated documentation
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/favicon.ico"
@@ -66,7 +65,7 @@ use termion::{color as tcolor, style as tstyle};
///
/// # Example
///
/// ```rust,no_run
/// ```rust,ignore
/// use std::io::{stderr, stdout};
///
/// use ratatui::Terminal;
@@ -113,7 +112,7 @@ where
///
/// # Example
///
/// ```rust,no_run
/// ```rust,ignore
/// use std::io::stdout;
///
/// use ratatui::backend::TermionBackend;

View File

@@ -1,6 +1,6 @@
[package]
name = "ratatui-termwiz"
version = "0.1.0-alpha.5"
version = "0.1.0-beta.0"
description = "Termwiz backend for the Ratatui Terminal UI library."
documentation = "https://docs.rs/ratatui-termwiz/"
readme = "README.md"
@@ -27,7 +27,7 @@ serde = ["termwiz/use_serde"]
## Enables the backend code that sets the underline color.
## Underline color is not supported on Windows 7.
underline-color = []
underline-color = ["ratatui-core/underline-color"]
## Use terminal scrolling regions to make Terminal::insert_before less prone to flickering.
scrolling-regions = ["ratatui-core/scrolling-regions"]
@@ -38,7 +38,7 @@ ratatui-core = { workspace = true }
termwiz.workspace = true
[dev-dependencies]
ratatui = { path = "../ratatui", features = ["termwiz"] }
ratatui = { path = "../ratatui", features = ["termwiz"], default-features = false }
rstest.workspace = true
[lints]

View File

@@ -1,6 +1,5 @@
// show the feature flags in the generated documentation
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/favicon.ico"

View File

@@ -3,7 +3,7 @@ name = "ratatui-widgets"
description = "A collection of Ratatui widgets for building terminal user interfaces using Ratatui."
# Note that this started at 0.3.0 as there was a previous crate using the name `ratatui-widgets`.
# <https://github.com/joshka/ratatui-widgets/issues/46>
version = "0.3.0-alpha.5"
version = "0.3.0-beta.0"
readme = "README.md"
authors.workspace = true
documentation.workspace = true

View File

@@ -0,0 +1,101 @@
# Widget Examples
This folder contains minimal examples for Ratatui widgets.
There are meant to provide code snippets that can be copy-pasted into your
application.
> [!TIP]
> There are also [application examples] in the top-level `examples` folder.
[application examples]: ../../examples
You can run these examples using:
```shell
cargo run -p ratatui-widgets --example example-name
```
> [!NOTE]
> This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead
> of the `main` branch for code which is guaranteed to work with the released Ratatui version.
## Barchart (grouped)
![Barchart (grouped)][barchart-grouped.gif]
## Barchart
![Barchart][barchart.gif]
## Block
![Block][block.gif]
## Calendar
![Calendar][calendar.gif]
## Canvas
![Canvas][canvas.gif]
## Chart
![Chart][chart.gif]
## Collapsed Borders
![Collapsed Borders][collapsed-borders.gif]
## Gauge
![Gauge][gauge.gif]
## Line Gauge
![Line Gauge][line-gauge.gif]
## List
![List][list.gif]
## Logo
![Logo][logo.gif]
## Paragraph
![Paragraph][paragraph.gif]
## Scrollbar
![Scrollbar][scrollbar.gif]
## Sparkline
![Sparkline][sparkline.gif]
## Table
![Table][table.gif]
## Tabs
![Tabs][tabs.gif]
[barchart-grouped.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/barchart-grouped.gif?raw=true
[barchart.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/barchart.gif?raw=true
[block.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/block.gif?raw=true
[calendar.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/calendar.gif?raw=true
[canvas.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/canvas.gif?raw=true
[chart.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/chart.gif?raw=true
[collapsed-borders.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/collapsed-borders.gif?raw=true
[gauge.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/gauge.gif?raw=true
[line-gauge.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/line-gauge.gif?raw=true
[list.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/list.gif?raw=true
[logo.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/logo.gif?raw=true
[paragraph.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/paragraph.gif?raw=true
[scrollbar.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/scrollbar.gif?raw=true
[sparkline.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/sparkline.gif?raw=true
[table.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/table.gif?raw=true
[tabs.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/tabs.gif?raw=true

View File

@@ -0,0 +1,117 @@
//! # [Ratatui] [`Block`] with collapsed borders example
//!
//! The latest version of this example is available in the [widget examples] folder in the
//! repository.
//!
//! Please note that the examples are designed to be run against the `main` branch of the Github
//! repository. This means that you may not be able to compile with the latest release version on
//! crates.io, or the one that you have installed locally.
//!
//! See the [examples readme] for more information on finding examples that match the version of the
//! library you are using.
//!
//! [Ratatui]: https://github.com/ratatui/ratatui
//! [widget examples]: https://github.com/ratatui/ratatui/blob/main/ratatui-widgets/examples
//! [examples readme]: https://github.com/ratatui/ratatui/blob/main/examples/README.md
use std::collections::HashMap;
use color_eyre::Result;
use crossterm::event;
use ratatui::Frame;
use ratatui::layout::{Constraint, Layout, Rect, Spacing};
use ratatui::style::{Color, Stylize};
use ratatui::symbols::merge::MergeStrategy;
use ratatui::text::Line;
use ratatui::widgets::{Block, BorderType};
fn main() -> Result<()> {
color_eyre::install()?;
ratatui::run(|terminal| {
let mut selected_pane = Pane::Top;
loop {
terminal.draw(|frame| render(frame, selected_pane))?;
if let Some(key_event) = event::read()?.as_key_press_event() {
match key_event.code {
event::KeyCode::Up => selected_pane = Pane::Top,
event::KeyCode::Left => selected_pane = Pane::Left,
event::KeyCode::Right => selected_pane = Pane::Right,
event::KeyCode::Down => selected_pane = Pane::Bottom,
event::KeyCode::Char('q') => return Ok(()),
_ => {}
}
}
}
})
}
// Derive Eq, PartialEq, Hash for Pane to use as HashMap key
#[derive(Copy, Clone, Eq, PartialEq, Hash)]
enum Pane {
Top,
Left,
Right,
Bottom,
}
/// Render the UI with various blocks.
fn render(frame: &mut Frame, selected_pane: Pane) {
let [title, blocks] = frame.area().layout(&Layout::vertical([
Constraint::Length(1),
Constraint::Fill(1),
]));
render_title(frame, title);
render_blocks(selected_pane, frame, blocks);
}
fn render_title(frame: &mut Frame<'_>, area: Rect) {
let title = Line::from_iter([
"Block With Collapsed Borders".bold(),
" (Press 'q' to quit)".into(),
]);
frame.render_widget(title.centered(), area);
}
fn render_blocks(selected_pane: Pane, frame: &mut Frame<'_>, area: Rect) {
// The recipe to achieve collapsed borders is as follows:
// 1. Use `MergeStrategy::Exact` (or `MergeStrategy::Fuzzy`) to merge borders of adjacent
// blocks.
// 2. Use a layout with `Spacing::Overlap(1)` to ensure that the borders overlap
// 3. Use `BorderType::Thick` for the selected pane to make it visually distinct.
// 4. Render the selected pane last so it appears on top of the others.
let [top, middle, bottom] =
area.layout(&Layout::vertical([Constraint::Fill(1); 3]).spacing(Spacing::Overlap(1)));
let [left, right] =
middle.layout(&Layout::horizontal([Constraint::Fill(1); 2]).spacing(Spacing::Overlap(1)));
// Store pane areas and titles in a single HashMap indexed by Pane. A real application might
// store actual data or widgets in these areas instead (and use `WidgetRef` to handle
// heterogeneous widgets).
let mut panes = HashMap::new();
panes.insert(Pane::Top, (top, "Top Block"));
panes.insert(Pane::Left, (left, "Left Block"));
panes.insert(Pane::Right, (right, "Right Block"));
panes.insert(Pane::Bottom, (bottom, "Bottom Block"));
// Render all panes except the selected one first
for (&pane, &(area, title)) in &panes {
if pane != selected_pane {
// MergeStrategy::Exact causes the borders to collapse
let block = Block::bordered()
.merge_borders(MergeStrategy::Exact)
.title(title);
frame.render_widget(block, area);
}
}
// Render the selected pane last (so it appears on top) with a thick border
if let Some(&(area, title)) = panes.get(&selected_pane) {
// MergeStrategy::Exact causes the borders to collapse
let block = Block::bordered()
.merge_borders(MergeStrategy::Exact)
.border_type(BorderType::Thick)
.border_style(Color::Yellow)
.title(title);
frame.render_widget(block, area);
}
}

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/barchart-grouped.tape`
Output "target/barchart-grouped.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 1000
Hide
Type "cargo run -p ratatui-widgets --example barchart-grouped"
Enter
Sleep 1s
Show
Sleep 1s

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/barchart.tape`
Output "target/barchart.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 600
Hide
Type "cargo run -p ratatui-widgets --example barchart"
Enter
Sleep 1s
Show
Sleep 1s

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/block.tape`
Output "target/block.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 1200
Hide
Type "cargo run -p ratatui-widgets --example block"
Enter
Sleep 2s
Show
Sleep 2s

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/calendar.tape`
Output "target/calendar.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 800
Hide
Type "cargo run -p ratatui-widgets --example calendar"
Enter
Sleep 3s
Show
Sleep 5s

View File

@@ -0,0 +1,13 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/canvas.tape`
Output "target/canvas.gif"
Set Theme "Aardvark Blue"
Set FontSize 12
Set Width 1200
Set Height 800
Hide
Type "cargo run -p ratatui-widgets --example canvas"
Enter
Sleep 2s
Show
Sleep 5s

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/chart.tape`
Output "target/chart.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 800
Hide
Type "cargo run -p ratatui-widgets --example chart"
Enter
Sleep 1s
Show
Sleep 5s

View File

@@ -0,0 +1,17 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/collapsed-borders.tape`
Output "target/collapsed-borders.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 800
Hide
Type "cargo run -p ratatui-widgets --example collapsed-borders"
Enter
Sleep 2s
Show
Sleep 1s
Left Sleep 1s
Right Sleep 1s
Down Sleep 1s
Hide
Type "q"

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/gauge.tape`
Output "target/gauge.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 850
Hide
Type "cargo run -p ratatui-widgets --example gauge"
Enter
Sleep 2s
Show
Sleep 5s

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/line-gauge.tape`
Output "target/line-gauge.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 850
Hide
Type "cargo run -p ratatui-widgets --example line-gauge"
Enter
Sleep 2s
Show
Sleep 5s

View File

@@ -0,0 +1,20 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/list.tape`
Output "target/list.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 612
Hide
Type "cargo run -p ratatui-widgets --example list"
Enter
Sleep 10s
Show
Sleep 2s
Down@1.5s 3
Sleep 1.5s
Down@1.5s 3
Sleep 1.5s
Up@1s 1
Sleep 1s
Up@1s 4
Sleep 2s

View File

@@ -0,0 +1,14 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/logo.tape`
Output "target/logo.gif"
Set Theme "Aardvark Blue"
Set Width 550
Set Height 220
Hide
Type "cargo run -p ratatui-widgets --example logo"
Enter
Sleep 2s
Show
Sleep 2s
Hide
Escape

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/paragraph.tape`
Output "target/paragraph.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 600
Hide
Type "cargo run -p ratatui-widgets --example paragraph"
Enter
Sleep 1s
Show
Sleep 5s

View File

@@ -0,0 +1,17 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/scrollbar.tape`
Output "target/scrollbar.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 600
Hide
Type "cargo run -p ratatui-widgets --example scrollbar"
Enter
Sleep 1s
Show
Sleep 2s
Right@1s 4
Sleep 1s
Left@1s 1
Down@1s 3
Sleep 2s

View File

@@ -0,0 +1,12 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/sparkline.tape`
Output "target/sparkline.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 600
Hide
Type "cargo run -p ratatui-widgets --example sparkline"
Enter
Sleep 1s
Show
Sleep 5s

View File

@@ -0,0 +1,17 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/table.tape`
Output "target/table.gif"
Set Theme "Aardvark Blue"
Set Width 1400
Set Height 768
Hide
Type "cargo run -p ratatui-widgets --example table"
Enter
Sleep 1s
Show
Sleep 2s
Set TypingSpeed 1s
Down 3
Sleep 1s
Right 3
Sleep 2s

View File

@@ -0,0 +1,15 @@
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/tabs.tape`
Output "target/tabs.gif"
Set Theme "Aardvark Blue"
Set Width 1200
Set Height 368
Hide
Type "cargo run -p ratatui-widgets --example tabs"
Enter
Sleep 2s
Show
Sleep 1s
Right@2.5s 3
Left@2.5s 3
Sleep 2s

View File

@@ -515,7 +515,7 @@ impl BarChart<'_> {
let margin = u16::from(label_size != 0);
Rect {
x: area.x + label_size + margin,
width: area.width - label_size - margin,
width: area.width.saturating_sub(label_size).saturating_sub(margin),
..area
}
};
@@ -579,10 +579,10 @@ impl BarChart<'_> {
}
fn render_vertical(&self, buf: &mut Buffer, area: Rect) {
let label_info = self.label_info(area.height - 1);
let label_info = self.label_info(area.height.saturating_sub(1));
let bars_area = Rect {
height: area.height - label_info.height,
height: area.height.saturating_sub(label_info.height),
..area
};
@@ -722,6 +722,7 @@ mod tests {
use ratatui_core::layout::Alignment;
use ratatui_core::style::{Color, Modifier, Stylize};
use ratatui_core::text::Span;
use rstest::rstest;
use super::*;
use crate::borders::BorderType;
@@ -1472,4 +1473,35 @@ mod tests {
]);
assert_eq!(buffer, expected);
}
#[rstest]
#[case::horizontal(Direction::Horizontal)]
#[case::vertical(Direction::Vertical)]
fn render_in_minimal_buffer(#[case] direction: Direction) {
let chart = BarChart::default()
.data(&[("A", 1), ("B", 2)])
.bar_width(3)
.bar_gap(1)
.direction(direction);
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
// This should not panic, even if the buffer is too small to render the chart.
chart.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[rstest]
#[case::horizontal(Direction::Horizontal)]
#[case::vertical(Direction::Vertical)]
fn render_in_zero_size_buffer(#[case] direction: Direction) {
let chart = BarChart::default()
.data(&[("A", 1), ("B", 2)])
.bar_width(3)
.bar_gap(1)
.direction(direction);
let mut buffer = Buffer::empty(Rect::ZERO);
// This should not panic, even if the buffer has zero size.
chart.render(buffer.area, &mut buffer);
}
}

View File

@@ -933,41 +933,74 @@ impl Block<'_> {
}
/// Render titles in the center of the block
///
/// Currently this method aligns the titles to the left inside a centered area. This is not
/// ideal and should be fixed in the future to align the titles to the center of the block and
/// truncate both sides of the titles if the block is too small to fit all titles.
#[expect(clippy::similar_names)]
fn render_center_titles(&self, position: TitlePosition, area: Rect, buf: &mut Buffer) {
let area = self.titles_area(area, position);
let titles = self
.filtered_titles(position, Alignment::Center)
.collect_vec();
// titles are rendered with a space after each title except the last one
let total_width = titles
.iter()
.map(|title| title.width() as u16 + 1) // space between titles
.map(|title| title.width() as u16 + 1)
.sum::<u16>()
.saturating_sub(1); // no space for the last title
.saturating_sub(1);
let titles_area = self.titles_area(area, position);
let mut titles_area = Rect {
x: titles_area.left() + (titles_area.width.saturating_sub(total_width) / 2),
..titles_area
};
if total_width <= area.width {
self.render_centered_titles_without_truncation(titles, total_width, area, buf);
} else {
self.render_centered_titles_with_truncation(titles, total_width, area, buf);
}
}
fn render_centered_titles_without_truncation(
&self,
titles: Vec<&Line<'_>>,
total_width: u16,
area: Rect,
buf: &mut Buffer,
) {
// titles fit in the area, center them
let x = area.left() + area.width.saturating_sub(total_width) / 2;
let mut area = Rect { x, ..area };
for title in titles {
if titles_area.is_empty() {
break;
}
let title_width = title.width() as u16;
let title_area = Rect {
width: title_width.min(titles_area.width),
..titles_area
};
let width = title.width() as u16;
let title_area = Rect { width, ..area };
buf.set_style(title_area, self.titles_style);
title.render(title_area, buf);
// Move the rendering cursor to the right, leaving 1 column space.
area.x = area.x.saturating_add(width + 1);
area.width = area.width.saturating_sub(width + 1);
}
}
// bump the titles area to the right and reduce its width
titles_area.x = titles_area.x.saturating_add(title_width + 1);
titles_area.width = titles_area.width.saturating_sub(title_width + 1);
fn render_centered_titles_with_truncation(
&self,
titles: Vec<&Line<'_>>,
total_width: u16,
mut area: Rect,
buf: &mut Buffer,
) {
// titles do not fit in the area, truncate the left side using an offset. The right side
// is truncated by the area width.
let mut offset = total_width.saturating_sub(area.width) / 2;
for title in titles {
if area.is_empty() {
break;
}
let width = area.width.min(title.width() as u16).saturating_sub(offset);
let title_area = Rect { width, ..area };
buf.set_style(title_area, self.titles_style);
if offset > 0 {
// truncate the left side of the title to fit the area
title.clone().right_aligned().render(title_area, buf);
offset = offset.saturating_sub(width).saturating_sub(1);
} else {
// truncate the right side of the title to fit the area if needed
title.clone().left_aligned().render(title_area, buf);
}
// Leave 1 column of spacing between titles.
area.x = area.x.saturating_add(width + 1);
area.width = area.width.saturating_sub(width + 1);
}
}
@@ -1936,6 +1969,92 @@ mod tests {
pretty_assertions::assert_eq!(Buffer::with_lines(expected.lines()), buffer);
}
#[rstest]
#[case::replace(MergeStrategy::Replace, Buffer::with_lines([
"┏block top━━┓",
"┃ ┃",
"┗━━━━━━━━━━━┛",
"│ │",
"└───────────┘",
])
)]
#[case::replace(MergeStrategy::Exact, Buffer::with_lines([
"┏block top━━┓",
"┃ ┃",
"┡block btm━━┩",
"│ │",
"└───────────┘",
])
)]
#[case::replace(MergeStrategy::Fuzzy, Buffer::with_lines([
"┏block top━━┓",
"┃ ┃",
"┡block btm━━┩",
"│ │",
"└───────────┘",
])
)]
fn merged_titles_bottom_first(#[case] strategy: MergeStrategy, #[case] expected: Buffer) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 13, 5));
Block::bordered()
.title("block btm")
.render(Rect::new(0, 2, 13, 3), &mut buffer);
Block::bordered()
.title("block top")
.border_type(BorderType::Thick)
.merge_borders(strategy)
.render(Rect::new(0, 0, 13, 3), &mut buffer);
assert_eq!(buffer, expected);
}
#[rstest]
#[case::replace(MergeStrategy::Replace, Buffer::with_lines([
"┏block top━━┓",
"┃ ┃",
"┌block btm──┐",
"│ │",
"└───────────┘",
])
)]
#[case::replace(MergeStrategy::Exact, Buffer::with_lines([
"┏block top━━┓",
"┃ ┃",
"┞block btm──┦",
"│ │",
"└───────────┘",
])
)]
#[case::replace(MergeStrategy::Fuzzy, Buffer::with_lines([
"┏block top━━┓",
"┃ ┃",
"┞block btm──┦",
"│ │",
"└───────────┘",
])
)]
fn merged_titles_top_first(#[case] strategy: MergeStrategy, #[case] expected: Buffer) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 13, 5));
Block::bordered()
.title("block top")
.border_type(BorderType::Thick)
.render(Rect::new(0, 0, 13, 3), &mut buffer);
Block::bordered()
.title("block btm")
.merge_borders(strategy)
.render(Rect::new(0, 2, 13, 3), &mut buffer);
assert_eq!(buffer, expected);
}
#[test]
fn left_titles() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 1));
Block::new()
.title("L12")
.title("L34")
.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines(["L12 L34 "]));
}
#[test]
fn left_titles_truncated() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 1));
@@ -1946,12 +2065,16 @@ mod tests {
assert_eq!(buffer, Buffer::with_lines(["L12345 L67"]));
}
/// Note: this test is probably not what you'd expect, but it is how it works in the current
/// implementation. Update this if the behavior changes.
///
/// This probably should render the titles centered as a whole and then truncate both titles
/// to fit, but instead it renders each title and truncates them individually. This causes the
/// left title to be displayed in full, while the right title is truncated.
#[test]
fn center_titles() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 1));
Block::new()
.title(Line::from("C12").centered())
.title(Line::from("C34").centered())
.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" C12 C34 "]));
}
#[test]
fn center_titles_truncated() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 1));
@@ -1959,7 +2082,17 @@ mod tests {
.title(Line::from("C12345").centered())
.title(Line::from("C67890").centered())
.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines(["C12345 678"]));
assert_eq!(buffer, Buffer::with_lines(["12345 C678"]));
}
#[test]
fn right_titles() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 1));
Block::new()
.title(Line::from("R12").right_aligned())
.title(Line::from("R34").right_aligned())
.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" R12 R34"]));
}
#[test]
@@ -2001,4 +2134,25 @@ mod tests {
.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" C1R67890"]));
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
// This should not panic, even if the buffer is too small to render the block.
Block::bordered()
.title("I'm too big for this buffer")
.padding(Padding::uniform(10))
.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([""]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
// This should not panic, even if the buffer has zero size.
Block::bordered()
.title("I'm too big for this buffer")
.padding(Padding::uniform(10))
.render(buffer.area, &mut buffer);
}
}

View File

@@ -10,8 +10,6 @@ bitflags! {
#[derive(Default, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Borders: u8 {
/// Show no border (default)
const NONE = 0b0000;
/// Show the top border
const TOP = 0b0001;
/// Show the right border
@@ -25,6 +23,11 @@ bitflags! {
}
}
impl Borders {
/// Show no border (default)
pub const NONE: Self = Self::empty();
}
/// The type of border of a [`Block`](crate::block::Block).
///
/// See the [`borders`](crate::block::Block::borders) method of `Block` to configure its borders.
@@ -172,13 +175,11 @@ impl BorderType {
}
}
/// Implement the `Debug` trait for the `Borders` bitflags. This is a manual implementation to
/// display the flags in a more readable way. The default implementation would display the
/// flags as 'Border(0x0)' for `Borders::NONE` for example.
impl fmt::Debug for Borders {
/// Display the Borders bitflags as a list of names. For example, `Borders::NONE` will be
/// displayed as `NONE` and `Borders::ALL` will be displayed as `ALL`. If multiple flags are
/// set, they will be displayed separated by a pipe character.
/// Display the Borders bitflags as a list of names.
///
/// `Borders::NONE` is displayed as `NONE` and `Borders::ALL` is displayed as `ALL`. If multiple
/// flags are set, they are otherwise displayed separated by a pipe character.
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
if self.is_empty() {
return write!(f, "NONE");
@@ -186,17 +187,12 @@ impl fmt::Debug for Borders {
if self.is_all() {
return write!(f, "ALL");
}
let mut first = true;
for (name, border) in self.iter_names() {
if border == Self::NONE {
continue;
}
if first {
write!(f, "{name}")?;
first = false;
} else {
write!(f, " | {name}")?;
}
let mut names = self.iter_names().map(|(name, _)| name);
if let Some(first) = names.next() {
write!(f, "{first}")?;
}
for name in names {
write!(f, " | {name}")?;
}
Ok(())
}

View File

@@ -302,4 +302,27 @@ mod tests {
fn test_today() {
CalendarEventStore::today(Style::default());
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let calendar = Monthly::new(
Date::from_calendar_date(1984, Month::January, 1).unwrap(),
CalendarEventStore::default(),
);
// This should not panic, even if the buffer is too small to render the calendar.
calendar.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let calendar = Monthly::new(
Date::from_calendar_date(1984, Month::January, 1).unwrap(),
CalendarEventStore::default(),
);
// This should not panic, even if the buffer has zero size.
calendar.render(buffer.area, &mut buffer);
}
}

View File

@@ -976,4 +976,27 @@ mod tests {
b_grid.paint(usize::MAX, usize::MAX, Color::Red);
c_grid.paint(usize::MAX, usize::MAX, Color::Red);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let canvas = Canvas::default()
.x_bounds([0.0, 10.0])
.y_bounds([0.0, 10.0])
.paint(|_ctx| {});
// This should not panic, even if the buffer is too small to render the canvas.
canvas.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let canvas = Canvas::default()
.x_bounds([0.0, 10.0])
.y_bounds([0.0, 10.0])
.paint(|_ctx| {});
// This should not panic, even if the buffer has zero size.
canvas.render(buffer.area, &mut buffer);
}
}

View File

@@ -1547,4 +1547,25 @@ mod tests {
]);
assert_eq!(buffer, expected);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let chart = Chart::new(vec![Dataset::default().data(&[(0.0, 0.0), (1.0, 1.0)])])
.x_axis(Axis::default().bounds([0.0, 1.0]))
.y_axis(Axis::default().bounds([0.0, 1.0]));
// This should not panic, even if the buffer is too small to render the chart.
chart.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([""]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let chart = Chart::new(vec![Dataset::default().data(&[(0.0, 0.0), (1.0, 1.0)])])
.x_axis(Axis::default().bounds([0.0, 1.0]))
.y_axis(Axis::default().bounds([0.0, 1.0]));
// This should not panic, even if the buffer has zero size.
chart.render(buffer.area, &mut buffer);
}
}

View File

@@ -431,7 +431,7 @@ impl Widget for &LineGauge<'_> {
}
let ratio = self.ratio;
let default_label = Line::from(format!("{:.0}%", ratio * 100.0));
let default_label = Line::from(format!("{:3.0}%", ratio * 100.0));
let label = self.label.as_ref().unwrap_or(&default_label);
let (col, row) = buf.set_line(gauge_area.left(), gauge_area.top(), label, gauge_area.width);
let start = col + 1;
@@ -586,4 +586,38 @@ mod tests {
}
);
}
#[test]
fn render_in_minimal_buffer_gauge() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let gauge = Gauge::default().percent(50);
// This should not panic, even if the buffer is too small to render the gauge.
gauge.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines(["5"]));
}
#[test]
fn render_in_minimal_buffer_line_gauge() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let line_gauge = LineGauge::default().ratio(0.5);
// This should not panic, even if the buffer is too small to render the line gauge.
line_gauge.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer_gauge() {
let mut buffer = Buffer::empty(Rect::ZERO);
let gauge = Gauge::default().percent(50);
// This should not panic, even if the buffer has zero size.
gauge.render(buffer.area, &mut buffer);
}
#[test]
fn render_in_zero_size_buffer_line_gauge() {
let mut buffer = Buffer::empty(Rect::ZERO);
let line_gauge = LineGauge::default().ratio(0.5);
// This should not panic, even if the buffer has zero size.
line_gauge.render(buffer.area, &mut buffer);
}
}

View File

@@ -1,7 +1,6 @@
#![no_std]
// show the feature flags in the generated documentation
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/logo.png",
html_favicon_url = "https://raw.githubusercontent.com/ratatui/ratatui/main/assets/favicon.ico"

View File

@@ -625,4 +625,33 @@ mod tests {
])
);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let mut state = ListState::default().with_selected(None);
let items = vec![
ListItem::new("Item 1"),
ListItem::new("Item 2"),
ListItem::new("Item 3"),
];
let list = List::new(items);
// This should not panic, even if the buffer is too small to render the list.
list.render(buffer.area, &mut buffer, &mut state);
assert_eq!(buffer, Buffer::with_lines(["I"]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let mut state = ListState::default().with_selected(None);
let items = vec![
ListItem::new("Item 1"),
ListItem::new("Item 2"),
ListItem::new("Item 3"),
];
let list = List::new(items);
// This should not panic, even if the buffer has zero size.
list.render(buffer.area, &mut buffer, &mut state);
}
}

View File

@@ -236,4 +236,25 @@ mod tests {
])
);
}
#[rstest]
#[case::tiny(Size::Tiny, Buffer::with_lines([""]))]
#[case::small(Size::Small, Buffer::with_lines([""]))]
fn render_in_minimal_buffer(#[case] size: Size, #[case] expected: Buffer) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let logo = RatatuiLogo::new(size);
// This should not panic, even if the buffer is too small to render the logo.
logo.render(buffer.area, &mut buffer);
assert_eq!(buffer, expected);
}
#[rstest]
#[case::tiny(Size::Tiny)]
#[case::small(Size::Small)]
fn render_in_zero_size_buffer(#[case] size: Size) {
let mut buffer = Buffer::empty(Rect::ZERO);
let logo = RatatuiLogo::new(size);
// This should not panic, even if the buffer has zero size.
logo.render(buffer.area, &mut buffer);
}
}

View File

@@ -135,10 +135,21 @@ impl Widget for RatatuiMascot {
/// The logo colors are hardcorded in the widget.
/// The eye color depends on whether it's open / blinking
fn render(self, area: Rect, buf: &mut Buffer) {
let area = area.intersection(buf.area);
if area.is_empty() {
return;
}
for (y, (line1, line2)) in RATATUI_MASCOT.lines().tuples().enumerate() {
for (x, (ch1, ch2)) in line1.chars().zip(line2.chars()).enumerate() {
let x = area.left() + x as u16;
let y = area.top() + y as u16;
// Check if coordinates are within the buffer area
if x >= area.right() || y >= area.bottom() {
continue;
}
let cell = &mut buf[(x, y)];
// given two cells which make up the top and bottom of the character,
// Foreground color should be the non-space, non-terminal
@@ -229,4 +240,21 @@ mod tests {
.collect::<String>()
);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let mascot = RatatuiMascot::new();
// This should not panic, even if the buffer is too small to render the mascot.
mascot.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let mascot = RatatuiMascot::new();
// This should not panic, even if the buffer has zero size.
mascot.render(buffer.area, &mut buffer);
}
}

View File

@@ -227,7 +227,7 @@ impl<'a> Paragraph<'a> {
/// convention across the crate.
///
/// For more information about future scrolling design and concerns, see [RFC: Design of
/// Scrollable Widgets](https://github.com/ratatui/ratatui/issues/174) on GitHub.
/// Scrollable Widgets](https://github.com/ratatui/ratatui/discussions/1924) on GitHub.
#[must_use = "method moves the value of self and returns the modified value"]
pub const fn scroll(mut self, offset: (Vertical, Horizontal)) -> Self {
self.scroll = Position {
@@ -406,6 +406,7 @@ impl Widget for Paragraph<'_> {
impl Widget for &Paragraph<'_> {
fn render(self, area: Rect, buf: &mut Buffer) {
let area = area.intersection(buf.area);
buf.set_style(area, self.style);
self.block.as_ref().render(area, buf);
let inner = self.block.inner_if_some(area);
@@ -500,6 +501,7 @@ mod tests {
use ratatui_core::style::{Color, Modifier, Style, Stylize};
use ratatui_core::text::{Line, Span, Text};
use ratatui_core::widgets::Widget;
use rstest::rstest;
use super::*;
use crate::block::TitlePosition;
@@ -1193,4 +1195,45 @@ mod tests {
expected.set_style(Rect::new(1, 1, 11, 1), Style::default().fg(Color::Green));
assert_eq!(buf, expected);
}
#[rstest]
#[case::bottom(Rect::new(0, 5, 15, 1))]
#[case::right(Rect::new(20, 0, 15, 1))]
#[case::bottom_right(Rect::new(20, 5, 15, 1))]
fn test_render_paragraph_out_of_bounds(#[case] area: Rect) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 3));
Paragraph::new("Beyond the pale").render(area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines(vec![" "; 3]));
}
#[test]
fn partial_out_of_bounds() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 15, 3));
Paragraph::new("Hello World").render(Rect::new(10, 0, 10, 3), &mut buffer);
assert_eq!(
buffer,
Buffer::with_lines(vec![
" Hello",
" ",
" ",
])
);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let paragraph = Paragraph::new("Lorem ipsum");
// This should not panic, even if the buffer is too small to render the paragraph.
paragraph.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines(["L"]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let paragraph = Paragraph::new("Lorem ipsum");
// This should not panic, even if the buffer has zero size.
paragraph.render(buffer.area, &mut buffer);
}
}

View File

@@ -970,6 +970,8 @@ mod tests {
#[case::position_8("<---#####>", 8, 10)]
#[case::position_9("<----####>", 9, 10)]
#[case::position_one_out_of_bounds("<----####>", 10, 10)]
#[case::position_few_out_of_bounds("<----####>", 15, 10)]
#[case::position_very_many_out_of_bounds("<----####>", 500, 10)]
fn render_scrollbar_vertical_left(
#[case] expected: &str,
#[case] position: usize,
@@ -1000,7 +1002,9 @@ mod tests {
#[case::position_8("<---#####>", 8, 10)]
#[case::position_9("<----####>", 9, 10)]
#[case::position_one_out_of_bounds("<----####>", 10, 10)]
fn render_scrollbar_vertical_rightl(
#[case::position_few_out_of_bounds("<----####>", 15, 10)]
#[case::position_very_many_out_of_bounds("<----####>", 500, 10)]
fn render_scrollbar_vertical_right(
#[case] expected: &str,
#[case] position: usize,
#[case] content_length: usize,
@@ -1089,4 +1093,31 @@ mod tests {
let mut state = ScrollbarState::new(10);
scrollbar.render(zero_width_area, &mut buffer, &mut state);
}
#[rstest]
#[case::vertical_left(ScrollbarOrientation::VerticalLeft)]
#[case::vertical_right(ScrollbarOrientation::VerticalRight)]
#[case::horizontal_top(ScrollbarOrientation::HorizontalTop)]
#[case::horizontal_bottom(ScrollbarOrientation::HorizontalBottom)]
fn render_in_minimal_buffer(#[case] orientation: ScrollbarOrientation) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let scrollbar = Scrollbar::new(orientation);
let mut state = ScrollbarState::new(10).position(5);
// This should not panic, even if the buffer is too small to render the scrollbar.
scrollbar.render(buffer.area, &mut buffer, &mut state);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[rstest]
#[case::vertical_left(ScrollbarOrientation::VerticalLeft)]
#[case::vertical_right(ScrollbarOrientation::VerticalRight)]
#[case::horizontal_top(ScrollbarOrientation::HorizontalTop)]
#[case::horizontal_bottom(ScrollbarOrientation::HorizontalBottom)]
fn render_in_zero_size_buffer(#[case] orientation: ScrollbarOrientation) {
let mut buffer = Buffer::empty(Rect::ZERO);
let scrollbar = Scrollbar::new(orientation);
let mut state = ScrollbarState::new(10).position(5);
// This should not panic, even if the buffer has zero size.
scrollbar.render(buffer.area, &mut buffer, &mut state);
}
}

View File

@@ -699,4 +699,25 @@ mod tests {
.remove_modifier(Modifier::DIM)
);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let sparkline = Sparkline::default()
.data([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
.max(10);
// This should not panic, even if the buffer is too small to render the sparkline.
sparkline.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let sparkline = Sparkline::default()
.data([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
.max(10);
// This should not panic, even if the buffer has zero size.
sparkline.render(buffer.area, &mut buffer);
}
}

View File

@@ -2273,4 +2273,33 @@ mod tests {
let column_count = table.column_count();
assert_eq!(column_count, expected);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let rows = vec![
Row::new(vec!["Cell1", "Cell2", "Cell3"]),
Row::new(vec!["Cell4", "Cell5", "Cell6"]),
];
let table = Table::new(rows, [Constraint::Length(10); 3])
.header(Row::new(vec!["Header1", "Header2", "Header3"]))
.footer(Row::new(vec!["Footer1", "Footer2", "Footer3"]));
// This should not panic, even if the buffer is too small to render the table.
Widget::render(table, buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let rows = vec![
Row::new(vec!["Cell1", "Cell2", "Cell3"]),
Row::new(vec!["Cell4", "Cell5", "Cell6"]),
];
let table = Table::new(rows, [Constraint::Length(10); 3])
.header(Row::new(vec!["Header1", "Header2", "Header3"]))
.footer(Row::new(vec!["Footer1", "Footer2", "Footer3"]));
// This should not panic, even if the buffer has zero size.
Widget::render(table, buffer.area, &mut buffer);
}
}

View File

@@ -8,6 +8,7 @@ use ratatui_core::style::{Style, Styled};
use ratatui_core::symbols;
use ratatui_core::text::{Line, Span};
use ratatui_core::widgets::Widget;
use unicode_width::UnicodeWidthStr;
use crate::block::{Block, BlockExt};
@@ -446,6 +447,64 @@ where
}
}
impl UnicodeWidthStr for Tabs<'_> {
/// Returns the width of the rendered tabs.
///
/// The width includes the titles, dividers, and padding. It does not include any borders added
/// by the optional block.
///
/// Characters in the Ambiguous category are considered single-width.
///
/// ```
/// use ratatui::widgets::Tabs;
/// use unicode_width::UnicodeWidthStr;
///
/// let tabs = Tabs::new(vec!["Tab1", "Tab2", "Tab3"]);
/// assert_eq!(tabs.width(), 20); // " Tab1 │ Tab2 │ Tab3 "
/// ```
fn width(&self) -> usize {
let titles_width = self.titles.iter().map(Line::width).sum::<usize>();
let title_count = self.titles.len();
let divider_count = title_count.saturating_sub(1);
let divider_width = divider_count.saturating_mul(self.divider.width());
let left_padding_width = title_count.saturating_mul(self.padding_left.width());
let right_padding_width = title_count.saturating_mul(self.padding_right.width());
titles_width + divider_width + left_padding_width + right_padding_width
}
/// Returns the width of the rendered tabs, accounting for CJK characters.
///
/// This is probably the wrong method to use in most contexts that Ratatui applications care
/// about as it doesn't correlate with the visual representation of most terminals. Consider
/// using [`Tabs::width`] instead.
///
/// The width includes the titles, dividers, and padding. It does not include any borders added
/// by the optional block.
///
/// Characters in the Ambiguous category are considered double-width.
///
/// ```
/// use ratatui::widgets::Tabs;
/// use unicode_width::UnicodeWidthStr;
///
/// let tabs = Tabs::new(vec!["你", "好", "世界"]);
/// assert_eq!("你".width_cjk(), 2);
/// assert_eq!("好".width_cjk(), 2);
/// assert_eq!("世界".width_cjk(), 4);
/// assert_eq!("│".width_cjk(), 2); // this is correct for cjk
/// assert_eq!(tabs.width_cjk(), 18); // " 你 │ 好 │ 世界 "
/// ```
fn width_cjk(&self) -> usize {
let titles_width = self.titles.iter().map(Line::width_cjk).sum::<usize>();
let title_count = self.titles.len();
let divider_count = title_count.saturating_sub(1);
let divider_width = divider_count.saturating_mul(self.divider.width_cjk());
let left_padding_width = title_count.saturating_mul(self.padding_left.width_cjk());
let right_padding_width = title_count.saturating_mul(self.padding_right.width_cjk());
titles_width + divider_width + left_padding_width + right_padding_width
}
}
#[cfg(test)]
mod tests {
use alloc::{format, vec};
@@ -676,4 +735,71 @@ mod tests {
Style::default().black().on_white().bold().not_italic()
);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));
let tabs = Tabs::new(vec!["Tab1", "Tab2", "Tab3", "Tab4"])
.select(1)
.divider("|");
// This should not panic, even if the buffer is too small to render the tabs.
tabs.render(buffer.area, &mut buffer);
assert_eq!(buffer, Buffer::with_lines([" "]));
}
#[test]
fn render_in_zero_size_buffer() {
let mut buffer = Buffer::empty(Rect::ZERO);
let tabs = Tabs::new(vec!["Tab1", "Tab2", "Tab3", "Tab4"])
.select(1)
.divider("|");
// This should not panic, even if the buffer has zero size.
tabs.render(buffer.area, &mut buffer);
}
#[test]
fn unicode_width_basic() {
let tabs = Tabs::new(vec!["A", "BB", "CCC"]);
let rendered = " A │ BB │ CCC ";
assert_eq!(tabs.width(), rendered.width());
}
#[test]
fn unicode_width_no_padding() {
let tabs = Tabs::new(vec!["A", "BB", "CCC"]).padding("", "");
let rendered = "A│BB│CCC";
assert_eq!(tabs.width(), rendered.width());
}
#[test]
fn unicode_width_custom_divider_and_padding() {
let tabs = Tabs::new(vec!["A", "BB", "CCC"])
.divider("--")
.padding("X", "YY");
let rendered = "XAYY--XBBYY--XCCCYY";
assert_eq!(tabs.width(), rendered.width());
}
#[test]
fn unicode_width_empty_titles() {
let tabs = Tabs::new(Vec::<&str>::new());
let rendered = "";
assert_eq!(tabs.width(), rendered.width());
}
#[test]
fn unicode_width_cjk() {
let tabs = Tabs::new(vec!["", "", "世界"]);
let rendered = " 你 │ 好 │ 世界 ";
assert_eq!(tabs.width_cjk(), UnicodeWidthStr::width_cjk(rendered));
}
#[test]
fn unicode_width_cjk_custom_padding_and_divider() {
let tabs = Tabs::new(vec!["", "", "世界"])
.divider("")
.padding("", "");
let rendered = "左你右分左好右分左世界右";
assert_eq!(tabs.width_cjk(), UnicodeWidthStr::width_cjk(rendered));
}
}

View File

@@ -1,7 +1,7 @@
[package]
name = "ratatui"
description = "A library that's all about cooking up terminal user interfaces"
version = "0.30.0-alpha.5"
version = "0.30.0-beta.0"
authors.workspace = true
documentation.workspace = true
repository.workspace = true
@@ -59,6 +59,9 @@ layout-cache = ["std", "ratatui-core/layout-cache"]
## enables conversions from colors in the [`palette`] crate to [`Color`](crate::style::Color).
palette = ["std", "ratatui-core/palette", "dep:palette"]
## enables portable-atomic integration for targets that don't support atomic types.
portable-atomic = ["ratatui-core/portable-atomic"]
## Use terminal scrolling regions to make some operations less prone to
## flickering. (i.e. Terminal::insert_before).
scrolling-regions = [

View File

@@ -2,12 +2,14 @@ pub mod main {
pub mod barchart;
pub mod block;
pub mod buffer;
pub mod constraints;
pub mod line;
pub mod list;
pub mod paragraph;
pub mod rect;
pub mod sparkline;
pub mod table;
pub mod text;
}
pub use main::*;
@@ -21,4 +23,6 @@ criterion::criterion_main!(
rect::benches,
sparkline::benches,
table::benches,
text::benches,
constraints::benches,
);

Some files were not shown because too many files have changed in this diff Show More