Compare commits

...

72 Commits

Author SHA1 Message Date
github-actions[bot]
6dd59b3bf9 chore: release 2025-12-22 15:49:38 +00:00
dependabot[bot]
44957543c5 build(deps): bump serde_json from 1.0.145 to 1.0.146 (#2284)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.145 to
1.0.146.
<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.146</h2>
<ul>
<li>Set fast_arithmetic=64 for riscv64 (<a
href="https://redirect.github.com/serde-rs/json/issues/1305">#1305</a>,
thanks <a
href="https://github.com/Xeonacid"><code>@​Xeonacid</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="75ad7e6b4e"><code>75ad7e6</code></a>
Release 1.0.146</li>
<li><a
href="bc6c8276d9"><code>bc6c827</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1305">#1305</a>
from Xeonacid/patch-1</li>
<li><a
href="a09210adf5"><code>a09210a</code></a>
Set fast_arithmetic=64 for riscv64</li>
<li><a
href="01182e54b5"><code>01182e5</code></a>
Update actions/upload-artifact@v5 -&gt; v6</li>
<li><a
href="383b13a45f"><code>383b13a</code></a>
Update actions/upload-artifact@v4 -&gt; v5</li>
<li><a
href="04dd357b99"><code>04dd357</code></a>
Raise required compiler to Rust 1.68</li>
<li><a
href="e047dfbe00"><code>e047dfb</code></a>
Resolve manual_let_else pedantic clippy lint</li>
<li><a
href="a525d9c0c0"><code>a525d9c</code></a>
Raise required compiler to Rust 1.65</li>
<li><a
href="f815793bfd"><code>f815793</code></a>
Remove rustc version badge from readme</li>
<li><a
href="3f17d2c6ea"><code>3f17d2c</code></a>
Update actions/checkout@v5 -&gt; v6</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/json/compare/v1.0.145...v1.0.146">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.145&new-version=1.0.146)](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-12-22 18:43:38 +03:00
dependabot[bot]
a8d8afe101 build(deps): bump tracing from 0.1.43 to 0.1.44 (#2283)
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.43 to
0.1.44.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tracing/releases">tracing's
releases</a>.</em></p>
<blockquote>
<h2>tracing 0.1.44</h2>
<h3>Fixed</h3>
<ul>
<li>Fix <code>record_all</code> panic (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3432">#3432</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>tracing-core</code>: updated to 0.1.36 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3440">#3440</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/3432">#3432</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3432">tokio-rs/tracing#3432</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3440">#3440</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3440">tokio-rs/tracing#3440</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d55f6faf9"><code>2d55f6f</code></a>
chore: prepare tracing 0.1.44 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3439">#3439</a>)</li>
<li><a
href="10a9e838a3"><code>10a9e83</code></a>
chore: prepare tracing-core 0.1.36 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3440">#3440</a>)</li>
<li><a
href="ee82cf92a8"><code>ee82cf9</code></a>
tracing: fix record_all panic (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3432">#3432</a>)</li>
<li><a
href="9978c3663b"><code>9978c36</code></a>
chore: prepare tracing-mock 0.1.0-beta.3 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3429">#3429</a>)</li>
<li><a
href="cc44064b3a"><code>cc44064</code></a>
chore: prepare tracing-subscriber 0.3.22 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3428">#3428</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-0.1.43...tracing-0.1.44">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tracing&package-manager=cargo&previous-version=0.1.43&new-version=0.1.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-12-22 18:43:04 +03:00
dependabot[bot]
664b79404b build(deps): bump octocrab from 0.48.1 to 0.49.2 (#2285)
Bumps [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.48.1 to
0.49.2.
<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.49.2</h2>
<h3>Added</h3>
<ul>
<li>Add body_text and body_html to Comment model (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/832">#832</a>)</li>
</ul>
<h2>v0.49.1</h2>
<h3>Added</h3>
<ul>
<li>provide expiration-aware installation token APIs (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/837">#837</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Send body for retried requests (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/842">#842</a>)</li>
</ul>
<h2>v0.49.0</h2>
<h3>Fixed</h3>
<ul>
<li>[<strong>breaking</strong>] add a cfg to make the crypto backend for
jwt configurable (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/834">#834</a>)</li>
<li>incorrect path for followers and followees (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/829">#829</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>fix various warnings in CI and deny warnings being reintroduced (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/839">#839</a>)</li>
<li>[<strong>breaking</strong>] mark more structs as
<code>#[non_exhaustive]</code> (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/840">#840</a>)</li>
<li>Partial implementation of Organization CoPilot APIs (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/747">#747</a>)</li>
<li>[codes-of-conduct] <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/527">#527</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/833">#833</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.49.1...v0.49.2">0.49.2</a>
- 2025-12-20</h2>
<h3>Added</h3>
<ul>
<li>Add body_text and body_html to Comment model (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/832">#832</a>)</li>
</ul>
<h2><a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.49.0...v0.49.1">0.49.1</a>
- 2025-12-20</h2>
<h3>Added</h3>
<ul>
<li>provide expiration-aware installation token APIs (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/837">#837</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Send body for retried requests (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/842">#842</a>)</li>
</ul>
<h2><a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.48.1...v0.49.0">0.49.0</a>
- 2025-12-19</h2>
<h3>Fixed</h3>
<ul>
<li>[<strong>breaking</strong>] add a cfg to make the crypto backend for
jwt configurable (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/834">#834</a>)</li>
<li>incorrect path for followers and followees (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/829">#829</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>fix various warnings in CI and deny warnings being reintroduced (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/839">#839</a>)</li>
<li>[<strong>breaking</strong>] mark more structs as
<code>#[non_exhaustive]</code> (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/840">#840</a>)</li>
<li>Partial implementation of Organization CoPilot APIs (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/747">#747</a>)</li>
<li>[codes-of-conduct] <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/527">#527</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/833">#833</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="927105dffe"><code>927105d</code></a>
chore: release v0.49.2 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/843">#843</a>)</li>
<li><a
href="90f9139b85"><code>90f9139</code></a>
feat: Add body_text and body_html to Comment model (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/832">#832</a>)</li>
<li><a
href="4fce8e0221"><code>4fce8e0</code></a>
chore: release v0.49.1 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/841">#841</a>)</li>
<li><a
href="5ce8559748"><code>5ce8559</code></a>
fix: Send body for retried requests (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/842">#842</a>)</li>
<li><a
href="c8b8228529"><code>c8b8228</code></a>
feat: provide expiration-aware installation token APIs (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/837">#837</a>)</li>
<li><a
href="c554baad27"><code>c554baa</code></a>
chore: release v0.49.0 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/838">#838</a>)</li>
<li><a
href="3d8d846dfa"><code>3d8d846</code></a>
fix!: add a cfg to make the crypto backend for jwt configurable (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/834">#834</a>)</li>
<li><a
href="8e4624a30c"><code>8e4624a</code></a>
chore: fix various warnings in CI and deny warnings being reintroduced
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/839">#839</a>)</li>
<li><a
href="60878beec7"><code>60878be</code></a>
chore!: mark more structs as <code>#[non_exhaustive]</code> (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/840">#840</a>)</li>
<li><a
href="2c49ae4050"><code>2c49ae4</code></a>
Partial implementation of Organization CoPilot APIs (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/747">#747</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.48.1...v0.49.2">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.48.1&new-version=0.49.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-12-22 18:42:41 +03:00
dependabot[bot]
f9c6093b66 build(deps): bump fakeit from 1.4.0 to 1.4.1 (#2286)
Bumps [fakeit](https://github.com/PumpkinSeed/fakeit) from 1.4.0 to
1.4.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="352e9939c0"><code>352e993</code></a>
Bump version</li>
<li><a
href="7c4b0be098"><code>7c4b0be</code></a>
Merge pull request <a
href="https://redirect.github.com/PumpkinSeed/fakeit/issues/38">#38</a>
from scriptnetsthlm/master</li>
<li><a
href="551b15999b"><code>551b159</code></a>
Update gender function to include female</li>
<li>See full diff in <a
href="https://github.com/PumpkinSeed/fakeit/compare/v1.4.0...v1.4.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fakeit&package-manager=cargo&previous-version=1.4.0&new-version=1.4.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-12-22 18:42:11 +03:00
Orhun Parmaksız
b7ecef086d chore: expose crossterm 0.28/0.29 feature flags in Ratatui (#2270)
In docs we currently say that individual versions of crossterm could be
enabled like this:

```toml
ratatui = { version = "0.30.0-beta", features = ["crossterm_0_28"] }
```

However this wasn't actually possible:

```
package `x` depends on `ratatui` with feature `crossterm_0_28` but `ratatui` does not have that feature.

failed to select a version for `ratatui` which could resolve this conflict
```

This PR fixes that by exposing respective feature flags.
(Tested locally)

---------

Co-authored-by: Jagoda Estera Ślązak <128227338+j-g00da@users.noreply.github.com>
2025-12-16 11:23:50 +03:00
dependabot[bot]
38f7ee2049 build(deps): bump DavidAnson/markdownlint-cli2-action from 21.0.0 to 22.0.0 (#2273)
Bumps
[DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action)
from 21.0.0 to 22.0.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="07035fd053"><code>07035fd</code></a>
Update to version 22.0.0.</li>
<li><a
href="d74d6a504e"><code>d74d6a5</code></a>
Freshen generated index.js file.</li>
<li><a
href="ecaf45cd0e"><code>ecaf45c</code></a>
Bump markdownlint-cli2 from 0.19.1 to 0.20.0</li>
<li><a
href="e4bf40dee6"><code>e4bf40d</code></a>
Freshen generated index.js file.</li>
<li><a
href="ae047c4d45"><code>ae047c4</code></a>
Bump markdownlint-cli2 from 0.19.0 to 0.19.1</li>
<li><a
href="db7ea3f7fb"><code>db7ea3f</code></a>
Bump actions/checkout from 5 to 6</li>
<li><a
href="bfd3fdc8e2"><code>bfd3fdc</code></a>
Bump <code>@​stylistic/eslint-plugin</code> from 5.6.0 to 5.6.1</li>
<li><a
href="43dc18c80b"><code>43dc18c</code></a>
Bump <code>@​stylistic/eslint-plugin</code> from 5.5.0 to 5.6.0</li>
<li>See full diff in <a
href="30a0e04f18...07035fd053">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DavidAnson/markdownlint-cli2-action&package-manager=github_actions&previous-version=21.0.0&new-version=22.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>
2025-12-15 18:45:48 +03:00
dependabot[bot]
87a382f0e7 build(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 (#2272)
Bumps
[codecov/codecov-action](https://github.com/codecov/codecov-action) from
5.5.1 to 5.5.2.
<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.2</h2>
<h2>What's Changed</h2>
<ul>
<li>check gpg only when skip-validation = false by <a
href="https://github.com/maxweng-sentry"><code>@​maxweng-sentry</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1894">codecov/codecov-action#1894</a></li>
<li>chore: <code>disable_search</code> alignment by <a
href="https://github.com/freemanzMrojo"><code>@​freemanzMrojo</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1881">codecov/codecov-action#1881</a></li>
<li>chore(release): 5.5.2 by <a
href="https://github.com/thomasrockhu-codecov"><code>@​thomasrockhu-codecov</code></a>
in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1902">codecov/codecov-action#1902</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/maxweng-sentry"><code>@​maxweng-sentry</code></a>
made their first contribution in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1894">codecov/codecov-action#1894</a></li>
<li><a
href="https://github.com/freemanzMrojo"><code>@​freemanzMrojo</code></a>
made their first contribution in <a
href="https://redirect.github.com/codecov/codecov-action/pull/1881">codecov/codecov-action#1881</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.5.1...v5.5.2">https://github.com/codecov/codecov-action/compare/v5.5.1...v5.5.2</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.2</h2>
<h3>What's Changed</h3>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/codecov/codecov-action/compare/v5.5.1..v5.5.2">https://github.com/codecov/codecov-action/compare/v5.5.1..v5.5.2</a></p>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="671740ac38"><code>671740a</code></a>
chore(release): 5.5.2 (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1902">#1902</a>)</li>
<li><a
href="96b38e9e60"><code>96b38e9</code></a>
chore: <code>disable_search</code> alignment (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1881">#1881</a>)</li>
<li><a
href="9b6d1f84bd"><code>9b6d1f8</code></a>
check gpg only when skip-validation = false (<a
href="https://redirect.github.com/codecov/codecov-action/issues/1894">#1894</a>)</li>
<li>See full diff in <a
href="5a1091511a...671740ac38">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.5.1&new-version=5.5.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-12-15 18:45:12 +03:00
dependabot[bot]
4367bb45a1 build(deps): bump taiki-e/install-action from 2.62.63 to 2.63.3 (#2271)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.63 to 2.63.3.
<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.63.3</h2>
<ul>
<li>Update <code>cargo-nextest@latest</code> to 0.9.115.</li>
</ul>
<h2>2.63.2</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.12.7.</p>
</li>
<li>
<p>Update <code>git-cliff@latest</code> to 2.11.0.</p>
</li>
<li>
<p>Update <code>coreutils@latest</code> to 0.5.0.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.4.</p>
</li>
</ul>
<h2>2.63.1</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.12.5.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.9.0.</p>
</li>
</ul>
<h2>2.63.0</h2>
<ul>
<li>
<p>Support <code>tombi</code> (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1340">#1340</a>,
thanks <a
href="https://github.com/crepererum"><code>@​crepererum</code></a>)</p>
</li>
<li>
<p>Update <code>cargo-dinghy@latest</code> to 0.8.4.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.2.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.5.2.</p>
</li>
</ul>
<h2>2.62.67</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.5.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.72.1.</p>
</li>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.3.1.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.45.0.</p>
</li>
</ul>
<h2>2.62.66</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.9.17.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.38.2.</p>
</li>
</ul>
<h2>2.62.65</h2>
<ul>
<li>
<p>Update <code>cyclonedx@latest</code> to 0.29.2.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.44.1.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.7.2.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.1.</p>
</li>
</ul>
<h2>2.62.64</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.63.3] - 2025-12-15</h2>
<ul>
<li>Update <code>cargo-nextest@latest</code> to 0.9.115.</li>
</ul>
<h2>[2.63.2] - 2025-12-15</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.12.7.</p>
</li>
<li>
<p>Update <code>git-cliff@latest</code> to 2.11.0.</p>
</li>
<li>
<p>Update <code>coreutils@latest</code> to 0.5.0.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.4.</p>
</li>
</ul>
<h2>[2.63.1] - 2025-12-14</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.12.5.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.9.0.</p>
</li>
</ul>
<h2>[2.63.0] - 2025-12-12</h2>
<ul>
<li>
<p>Support <code>tombi</code> (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1340">#1340</a>,
thanks <a
href="https://github.com/crepererum"><code>@​crepererum</code></a>)</p>
</li>
<li>
<p>Update <code>cargo-dinghy@latest</code> to 0.8.4.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.2.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.5.2.</p>
</li>
</ul>
<h2>[2.62.67] - 2025-12-11</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.5.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.72.1.</p>
</li>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.3.1.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d850aa8169"><code>d850aa8</code></a>
Release 2.63.3</li>
<li><a
href="4e27f4eba3"><code>4e27f4e</code></a>
Update <code>cargo-nextest@latest</code> to 0.9.115</li>
<li><a
href="5818d9684d"><code>5818d96</code></a>
Release 2.63.2</li>
<li><a
href="9935da0ea5"><code>9935da0</code></a>
Update changelog</li>
<li><a
href="3396925d74"><code>3396925</code></a>
Update <code>mise@latest</code> to 2025.12.7</li>
<li><a
href="4563b68018"><code>4563b68</code></a>
Update <code>mise@latest</code> to 2025.12.6</li>
<li><a
href="bb9926ecd3"><code>bb9926e</code></a>
Update <code>git-cliff@latest</code> to 2.11.0</li>
<li><a
href="68c369b718"><code>68c369b</code></a>
Update <code>coreutils@latest</code> to 0.5.0</li>
<li><a
href="2afaa0138a"><code>2afaa01</code></a>
Update <code>cargo-binstall@latest</code> to 1.16.4</li>
<li><a
href="61e5998d10"><code>61e5998</code></a>
Release 2.63.1</li>
<li>Additional commits viewable in <a
href="50708e9ba8...d850aa8169">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.63&new-version=2.63.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-12-15 18:44:46 +03:00
三咲雅 misaki masa
bf84c6229b feat(core): Add a has_modifier() method to Style (#2267)
Resolves https://github.com/ratatui/ratatui/issues/2264
2025-12-13 14:07:45 -08:00
dependabot[bot]
3bdb9fe982 build(deps): bump release-plz/action from 0.5.119 to 0.5.120 (#2254)
Bumps [release-plz/action](https://github.com/release-plz/action) from
0.5.119 to 0.5.120.
<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.120</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to 0.3.150 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/232">release-plz/action#232</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.120">https://github.com/release-plz/action/compare/v0.5...v0.5.120</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="487eb7b5c0"><code>487eb7b</code></a>
Update to 0.3.150 (<a
href="https://redirect.github.com/release-plz/action/issues/232">#232</a>)</li>
<li>See full diff in <a
href="1efcf74dfc...487eb7b5c0">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.119&new-version=0.5.120)](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-12-08 18:58:07 +03:00
dependabot[bot]
2163fd5a2c build(deps): bump actions/checkout from 6.0.0 to 6.0.1 (#2255)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0
to 6.0.1.
<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>v6.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update all references from v5 and v4 to v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2314">actions/checkout#2314</a></li>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
<li>Clarify v6 README by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2328">actions/checkout#2328</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.1">https://github.com/actions/checkout/compare/v6...v6.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8e8c483db8"><code>8e8c483</code></a>
Clarify v6 README (<a
href="https://redirect.github.com/actions/checkout/issues/2328">#2328</a>)</li>
<li><a
href="033fa0dc0b"><code>033fa0d</code></a>
Add worktree support for persist-credentials includeIf (<a
href="https://redirect.github.com/actions/checkout/issues/2327">#2327</a>)</li>
<li><a
href="c2d88d3ecc"><code>c2d88d3</code></a>
Update all references from v5 and v4 to v6 (<a
href="https://redirect.github.com/actions/checkout/issues/2314">#2314</a>)</li>
<li>See full diff in <a
href="1af3b93b68...8e8c483db8">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=6.0.0&new-version=6.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>
2025-12-08 18:57:50 +03:00
dependabot[bot]
645cd55ed2 build(deps): bump taiki-e/install-action from 2.62.61 to 2.62.63 (#2256)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.61 to 2.62.63.
<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.63</h2>
<ul>
<li>
<p>Update <code>protoc@latest</code> to 3.33.2.</p>
</li>
<li>
<p>Update <code>release-plz@latest</code> to 0.3.150.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.3.</p>
</li>
<li>
<p>Update <code>knope@latest</code> to 0.21.7.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.0.</p>
</li>
</ul>
<h2>2.62.62</h2>
<ul>
<li>
<p>Update <code>cargo-deny@latest</code> to 0.18.8.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.7.1.</p>
</li>
<li>
<p>Update <code>trivy@latest</code> to 0.68.1.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.15.</p>
</li>
<li>
<p>Update <code>knope@latest</code> to 0.21.6.</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>just@latest</code> to 1.44.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.16.</p>
</li>
</ul>
<h2>[2.62.63] - 2025-12-06</h2>
<ul>
<li>
<p>Update <code>protoc@latest</code> to 3.33.2.</p>
</li>
<li>
<p>Update <code>release-plz@latest</code> to 0.3.150.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.3.</p>
</li>
<li>
<p>Update <code>knope@latest</code> to 0.21.7.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.0.</p>
</li>
</ul>
<h2>[2.62.62] - 2025-12-03</h2>
<ul>
<li>
<p>Update <code>cargo-deny@latest</code> to 0.18.8.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.7.1.</p>
</li>
<li>
<p>Update <code>trivy@latest</code> to 0.68.1.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.15.</p>
</li>
<li>
<p>Update <code>knope@latest</code> to 0.21.6.</p>
</li>
</ul>
<h2>[2.62.61] - 2025-12-02</h2>
<ul>
<li>
<p>Update <code>cargo-deny@latest</code> to 0.18.7.</p>
</li>
<li>
<p>Update <code>cargo-careful@latest</code> to 0.4.9.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.14.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.4.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="50708e9ba8"><code>50708e9</code></a>
Release 2.62.63</li>
<li><a
href="608cb5db93"><code>608cb5d</code></a>
Update <code>protoc@latest</code> to 3.33.2</li>
<li><a
href="813a6b3dc6"><code>813a6b3</code></a>
Update <code>release-plz@latest</code> to 0.3.150</li>
<li><a
href="643883d80b"><code>643883d</code></a>
Update <code>cargo-binstall@latest</code> to 1.16.3</li>
<li><a
href="3a82a98e89"><code>3a82a98</code></a>
Update <code>knope@latest</code> to 0.21.7</li>
<li><a
href="b24d319e09"><code>b24d319</code></a>
Update <code>mise@latest</code> to 2025.12.0</li>
<li><a
href="493d7f216e"><code>493d7f2</code></a>
Release 2.62.62</li>
<li><a
href="0c6fcb01be"><code>0c6fcb0</code></a>
Update <code>cargo-deny@latest</code> to 0.18.8</li>
<li><a
href="e8101c18b1"><code>e8101c1</code></a>
Tweak docs</li>
<li><a
href="c8c9b5bb95"><code>c8c9b5b</code></a>
tools: Update scripts</li>
<li>Additional commits viewable in <a
href="92e6dd1c20...50708e9ba8">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.61&new-version=2.62.63)](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-12-08 18:57:19 +03:00
dependabot[bot]
28d80365d6 build(deps): bump octocrab from 0.48.0 to 0.48.1 (#2258)
Bumps [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.48.0 to
0.48.1.
<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.48.1</h2>
<h3>Fixed</h3>
<ul>
<li><em>(build)</em> don't fetch dependencies (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/828">#828</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.48.0...v0.48.1">0.48.1</a>
- 2025-12-02</h2>
<h3>Fixed</h3>
<ul>
<li><em>(build)</em> don't fetch dependencies (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/828">#828</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d381cc09db"><code>d381cc0</code></a>
chore: release v0.48.1 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/830">#830</a>)</li>
<li><a
href="41162f3dc1"><code>41162f3</code></a>
fix(build): don't fetch dependencies (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/828">#828</a>)</li>
<li>See full diff in <a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.48.0...v0.48.1">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.48.0&new-version=0.48.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-12-08 18:56:27 +03:00
dependabot[bot]
c52de1a926 build(deps): bump tracing-appender from 0.2.3 to 0.2.4 (#2259)
Bumps [tracing-appender](https://github.com/tokio-rs/tracing) from 0.2.3
to 0.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tracing/releases">tracing-appender's
releases</a>.</em></p>
<blockquote>
<h2>tracing-appender 0.2.4</h2>
<h3>Added</h3>
<ul>
<li>Prune old files at startup (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/2966">#2966</a>)</li>
<li>Add fallback to file creation date (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3000">#3000</a>)</li>
<li>Introduce weekly rotation (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3218">#3218</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix <code>max_files</code> integer underflow when set to zero (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3348">#3348</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>Update tracing-appender docs link to correct docs.rs URL (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3325">#3325</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/2966">#2966</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#2966%5D(https://redirect.github.com/tokio-rs/tracing/issues/2966)">tokio-rs/tracing#2966</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3000">#3000</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3000%5D(https://redirect.github.com/tokio-rs/tracing/issues/3000)">tokio-rs/tracing#3000</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3218">#3218</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3218%5D(https://redirect.github.com/tokio-rs/tracing/issues/3218)">tokio-rs/tracing#3218</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3325">#3325</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3325%5D(https://redirect.github.com/tokio-rs/tracing/issues/3325)">tokio-rs/tracing#3325</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3348">#3348</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3348%5D(https://redirect.github.com/tokio-rs/tracing/issues/3348)">tokio-rs/tracing#3348</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="405397b8cc"><code>405397b</code></a>
chore: prepare tracing-appender 0.2.4 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3420">#3420</a>)</li>
<li><a
href="a9eeed7394"><code>a9eeed7</code></a>
chore: prepare tracing-subscriber 0.3.21 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3419">#3419</a>)</li>
<li><a
href="5bd5505478"><code>5bd5505</code></a>
chore: prepare tracing 0.1.42 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3418">#3418</a>)</li>
<li><a
href="55086231ec"><code>5508623</code></a>
chore: prepare tracing-attributes 0.1.31 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3417">#3417</a>)</li>
<li><a
href="d92b4c0feb"><code>d92b4c0</code></a>
chore: prepare tracing-core 0.1.35 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3414">#3414</a>)</li>
<li><a
href="9751b6e776"><code>9751b6e</code></a>
chore: run <code>tracing-subscriber</code> tests with all features (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3412">#3412</a>)</li>
<li><a
href="efa0169b43"><code>efa0169</code></a>
mock: add doctests for <code>on_register_dispatch</code> negative cases
(<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3416">#3416</a>)</li>
<li><a
href="a093858f38"><code>a093858</code></a>
docs: fix link in <code>FmtSpan</code> docs (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3411">#3411</a>)</li>
<li><a
href="976fa55e2a"><code>976fa55</code></a>
mock: add test case for layer not calling on_register_dispatch (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3415">#3415</a>)</li>
<li><a
href="8bc008c5f0"><code>8bc008c</code></a>
fix(subscriber): make Layered propagate on_register_dispatch (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3379">#3379</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-appender-0.2.3...tracing-appender-0.2.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tracing-appender&package-manager=cargo&previous-version=0.2.3&new-version=0.2.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-12-08 18:56:03 +03:00
dependabot[bot]
e338795396 build(deps): bump line-clipping from 0.3.4 to 0.3.5 (#2260)
Bumps [line-clipping](https://github.com/joshka/line-clipping) from
0.3.4 to 0.3.5.
<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.5</h2>
<h3>Other</h3>
<ul>
<li>use trusted-publising (<a
href="https://redirect.github.com/joshka/line-clipping/pull/24">#24</a>)</li>
<li>set edition 2024 and msrv 1.85 (<a
href="https://redirect.github.com/joshka/line-clipping/pull/23">#23</a>)</li>
<li><em>(deps)</em> bump actions/checkout in the github-actions group
(<a
href="https://redirect.github.com/joshka/line-clipping/pull/22">#22</a>)</li>
<li><em>(deps)</em> bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/21">#21</a>)</li>
<li><em>(deps)</em> bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/18">#18</a>)</li>
<li>fix clippy install (<a
href="https://redirect.github.com/joshka/line-clipping/pull/19">#19</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.4...v0.3.5">0.3.5</a>
- 2025-11-29</h2>
<h3>Other</h3>
<ul>
<li>use trusted-publising (<a
href="https://redirect.github.com/joshka/line-clipping/pull/24">#24</a>)</li>
<li>set edition 2024 and msrv 1.85 (<a
href="https://redirect.github.com/joshka/line-clipping/pull/23">#23</a>)</li>
<li><em>(deps)</em> bump actions/checkout in the github-actions group
(<a
href="https://redirect.github.com/joshka/line-clipping/pull/22">#22</a>)</li>
<li><em>(deps)</em> bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/21">#21</a>)</li>
<li><em>(deps)</em> bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/pull/18">#18</a>)</li>
<li>fix clippy install (<a
href="https://redirect.github.com/joshka/line-clipping/pull/19">#19</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="edf70705ae"><code>edf7070</code></a>
chore: release v0.3.5 (<a
href="https://redirect.github.com/joshka/line-clipping/issues/20">#20</a>)</li>
<li><a
href="64af0944e9"><code>64af094</code></a>
chore: use trusted-publising (<a
href="https://redirect.github.com/joshka/line-clipping/issues/24">#24</a>)</li>
<li><a
href="3a88318f99"><code>3a88318</code></a>
chore: set edition 2024 and msrv 1.85 (<a
href="https://redirect.github.com/joshka/line-clipping/issues/23">#23</a>)</li>
<li><a
href="180f3a1952"><code>180f3a1</code></a>
build(deps): bump actions/checkout in the github-actions group (<a
href="https://redirect.github.com/joshka/line-clipping/issues/22">#22</a>)</li>
<li><a
href="4e5cf3b954"><code>4e5cf3b</code></a>
build(deps): bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/issues/21">#21</a>)</li>
<li><a
href="b7808bc2e0"><code>b7808bc</code></a>
build(deps): bump bitflags in the rust-dependencies group (<a
href="https://redirect.github.com/joshka/line-clipping/issues/18">#18</a>)</li>
<li><a
href="ffead4fad2"><code>ffead4f</code></a>
ci: fix clippy install (<a
href="https://redirect.github.com/joshka/line-clipping/issues/19">#19</a>)</li>
<li>See full diff in <a
href="https://github.com/joshka/line-clipping/compare/v0.3.4...v0.3.5">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.4&new-version=0.3.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 18:54:35 +03:00
dependabot[bot]
f944f2fff9 build(deps): bump instability from 0.3.9 to 0.3.10 (#2261)
Bumps [instability](https://github.com/ratatui/instability) from 0.3.9
to 0.3.10.
<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.10</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.10</h2>
<h3>Other</h3>
<ul>
<li>enable trusted publishing with release-plz (<a
href="https://redirect.github.com/ratatui/instability/pull/31">#31</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.9...instability-v0.3.10">0.3.10</a>
- 2025-11-29</h2>
<h3>Other</h3>
<ul>
<li>enable trusted publishing with release-plz (<a
href="https://redirect.github.com/ratatui/instability/pull/31">#31</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8b311cd7d5"><code>8b311cd</code></a>
chore: release v0.3.10 (<a
href="https://redirect.github.com/ratatui/instability/issues/32">#32</a>)</li>
<li><a
href="220c65cbc5"><code>220c65c</code></a>
chore: enable trusted publishing with release-plz (<a
href="https://redirect.github.com/ratatui/instability/issues/31">#31</a>)</li>
<li>See full diff in <a
href="https://github.com/ratatui/instability/compare/instability-v0.3.9...instability-v0.3.10">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.9&new-version=0.3.10)](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-12-08 18:54:06 +03:00
dependabot[bot]
58c85295ae build(deps): bump criterion from 0.8.0 to 0.8.1 (#2257)
Bumps [criterion](https://github.com/criterion-rs/criterion.rs) from
0.8.0 to 0.8.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/criterion-rs/criterion.rs/releases">criterion's
releases</a>.</em></p>
<blockquote>
<h2>criterion-plot-v0.8.1</h2>
<h3>Fixed</h3>
<ul>
<li>Typo</li>
</ul>
<h2>criterion-v0.8.1</h2>
<h3>Fixed</h3>
<ul>
<li>Homepage link</li>
</ul>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump crate-ci/typos from 1.23.5 to 1.40.0</li>
<li><em>(deps)</em> bump jontze/action-mdbook from 3 to 4</li>
<li><em>(deps)</em> bump actions/checkout from 4 to 6</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md">criterion's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/criterion-rs/criterion.rs/compare/criterion-v0.8.0...criterion-v0.8.1">0.8.1</a>
- 2025-12-07</h2>
<h3>Fixed</h3>
<ul>
<li>Homepage link</li>
</ul>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump crate-ci/typos from 1.23.5 to 1.40.0</li>
<li><em>(deps)</em> bump jontze/action-mdbook from 3 to 4</li>
<li><em>(deps)</em> bump actions/checkout from 4 to 6</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e4e06dfdc3"><code>e4e06df</code></a>
chore: release v0.8.1</li>
<li><a
href="aa548b9f58"><code>aa548b9</code></a>
fix: Homepage link</li>
<li><a
href="950c3b727a"><code>950c3b7</code></a>
fix: Typo</li>
<li><a
href="7e3e50c369"><code>7e3e50c</code></a>
chore(deps): bump crate-ci/typos from 1.23.5 to 1.40.0</li>
<li><a
href="391a99ad54"><code>391a99a</code></a>
chore(deps): bump jontze/action-mdbook from 3 to 4</li>
<li><a
href="8fb9a8797a"><code>8fb9a87</code></a>
chore(deps): bump actions/checkout from 4 to 6</li>
<li>See full diff in <a
href="https://github.com/criterion-rs/criterion.rs/compare/criterion-v0.8.0...criterion-v0.8.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=criterion&package-manager=cargo&previous-version=0.8.0&new-version=0.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-12-08 18:53:24 +03:00
dependabot[bot]
dc4ca94e95 build(deps): bump taiki-e/install-action from 2.62.57 to 2.62.60 (#2242)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.57 to 2.62.60.
<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.60</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.18.0.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.7.0.</p>
</li>
<li>
<p>Update <code>wasm-bindgen@latest</code> to 0.2.106.</p>
</li>
</ul>
<h2>2.62.59</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.10.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.13.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.40.0.</p>
</li>
</ul>
<h2>2.62.58</h2>
<ul>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.6.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.8.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.17.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.12.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.6.0.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 39.0.1.</p>
</li>
<li>
<p>Update <code>release-plz@latest</code> to 0.3.149.</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.20.4.</p>
</li>
<li>
<p>Update <code>cargo-valgrind@latest</code> to 2.4.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.11.</p>
</li>
</ul>
<h2>[2.62.60] - 2025-11-30</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.18.0.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.7.0.</p>
</li>
<li>
<p>Update <code>wasm-bindgen@latest</code> to 0.2.106.</p>
</li>
</ul>
<h2>[2.62.59] - 2025-11-28</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.10.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.13.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.40.0.</p>
</li>
</ul>
<h2>[2.62.58] - 2025-11-26</h2>
<ul>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.6.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.8.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.17.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.12.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.6.0.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 39.0.1.</p>
</li>
<li>
<p>Update <code>release-plz@latest</code> to 0.3.149.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3575e53270"><code>3575e53</code></a>
Release 2.62.60</li>
<li><a
href="82ed20a6c4"><code>82ed20a</code></a>
Update cspell dictionary</li>
<li><a
href="f6aadf50d8"><code>f6aadf5</code></a>
Update <code>zizmor@latest</code> to 1.18.0</li>
<li><a
href="6faf516c7d"><code>6faf516</code></a>
Update <code>cargo-shear@latest</code> to 1.7.0</li>
<li><a
href="54589f5111"><code>54589f5</code></a>
Update <code>wasm-bindgen@latest</code> to 0.2.106</li>
<li><a
href="b4b8094585"><code>b4b8094</code></a>
Release 2.62.59</li>
<li><a
href="812d1ba673"><code>812d1ba</code></a>
Update changelog</li>
<li><a
href="3d348f5824"><code>3d348f5</code></a>
Update <code>mise@latest</code> to 2025.11.10</li>
<li><a
href="85debb04fc"><code>85debb0</code></a>
Update <code>mise@latest</code> to 2025.11.9</li>
<li><a
href="b21ab5b468"><code>b21ab5b</code></a>
Update <code>uv@latest</code> to 0.9.13</li>
<li>Additional commits viewable in <a
href="763e3324d4...3575e53270">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.57&new-version=2.62.60)](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-12-06 14:43:06 -08:00
Josh McKinney
22610b019b feat: Support adding an Offset to Position (#2239)
Adds Position::offset() and arithmentic ops (Position + Offset and
Position - Offset)

Fixes: https://github.com/ratatui/ratatui/issues/2018
2025-12-06 14:42:39 -08:00
dependabot[bot]
c0e1b1560e build(deps): bump criterion from 0.7.0 to 0.8.0 (#2246)
Bumps [criterion](https://github.com/criterion-rs/criterion.rs) from
0.7.0 to 0.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/criterion-rs/criterion.rs/releases">criterion's
releases</a>.</em></p>
<blockquote>
<h2>criterion-plot-v0.8.0</h2>
<p>No release notes provided.</p>
<h2>criterion-v0.8.0</h2>
<h3>BREAKING</h3>
<ul>
<li>Drop async-std support</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Bump MSRV to 1.86, stable to 1.91.1</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add ability to plot throughput on summary page.</li>
<li>Add support for reporting throughput in elements and bytes -
<code>Throughput::ElementsAndBytes</code> allows the text summary to
report throughput in both units simultaneously.</li>
<li>Add alloca-based memory layout randomisation to mitigate memory
effects on measurements.</li>
<li>Add doc comment to benchmark runner in criterion_group macro
(removes linter warnings)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix plotting NaN bug</li>
</ul>
<h3>Other</h3>
<ul>
<li>Remove Master API Docs links temporarily while we restore the docs
publishing.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md">criterion's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/criterion-rs/criterion.rs/compare/criterion-v0.7.0...criterion-v0.8.0">0.8.0</a>
- 2025-11-29</h2>
<h3>BREAKING</h3>
<ul>
<li>Drop async-std support</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Bump MSRV to 1.86, stable to 1.91.1</li>
</ul>
<h3>Added</h3>
<ul>
<li>Add ability to plot throughput on summary page.</li>
<li>Add support for reporting throughput in elements and bytes -
<code>Throughput::ElementsAndBytes</code> allows the text summary to
report throughput in both units simultaneously.</li>
<li>Add alloca-based memory layout randomisation to mitigate memory
effects on measurements.</li>
<li>Add doc comment to benchmark runner in criterion_group macro
(removes linter warnings)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix plotting NaN bug</li>
</ul>
<h3>Other</h3>
<ul>
<li>Remove Master API Docs links temporarily while we restore the docs
publishing.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b49ade728c"><code>b49ade7</code></a>
chore: release v0.8.0</li>
<li>See full diff in <a
href="https://github.com/criterion-rs/criterion.rs/compare/criterion-plot-v0.7.0...criterion-v0.8.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=criterion&package-manager=cargo&previous-version=0.7.0&new-version=0.8.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-12-06 14:42:16 -08:00
Paul Harrison
55a95e67bc test(rect): mutual intersection agreement (#2252) 2025-12-03 22:46:00 -08:00
Paul Harrison
345f47e044 style(rect): use plus operator for offset (#2251)
## Summary
Use `+` operator to move `Rect` by an `Offset` as added
[here](https://github.com/ratatui/ratatui/pull/1596).

Includes change to use `Offset::new()` in place of `Offset { ... }`
2025-12-02 17:47:03 +03:00
dependabot[bot]
cb85c8eb4e build(deps): bump release-plz/action from 0.5.118 to 0.5.119 (#2245)
Bumps [release-plz/action](https://github.com/release-plz/action) from
0.5.118 to 0.5.119.
<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.119</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>dry_run</code> input option by <a
href="https://github.com/MidasLamb"><code>@​MidasLamb</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/204">release-plz/action#204</a></li>
<li>fix test by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/226">release-plz/action#226</a></li>
<li>build(deps): bump actions/checkout from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/release-plz/action/pull/227">release-plz/action#227</a></li>
<li>updater: fix number of assets by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/228">release-plz/action#228</a></li>
<li>Update to 0.3.149 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/229">release-plz/action#229</a></li>
<li>update cargo-semver-checks to v0.45 by <a
href="https://github.com/marcoieni"><code>@​marcoieni</code></a> in <a
href="https://redirect.github.com/release-plz/action/pull/230">release-plz/action#230</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/MidasLamb"><code>@​MidasLamb</code></a>
made their first contribution in <a
href="https://redirect.github.com/release-plz/action/pull/204">release-plz/action#204</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-plz/action/compare/v0.5...v0.5.119">https://github.com/release-plz/action/compare/v0.5...v0.5.119</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1efcf74dfc"><code>1efcf74</code></a>
update cargo-semver-checks to v0.45 (<a
href="https://redirect.github.com/release-plz/action/issues/230">#230</a>)</li>
<li><a
href="063bcc50f8"><code>063bcc5</code></a>
Update to 0.3.149 (<a
href="https://redirect.github.com/release-plz/action/issues/229">#229</a>)</li>
<li><a
href="8fbb571544"><code>8fbb571</code></a>
updater: fix number of assets (<a
href="https://redirect.github.com/release-plz/action/issues/228">#228</a>)</li>
<li><a
href="8139e59591"><code>8139e59</code></a>
build(deps): bump actions/checkout from 5 to 6 (<a
href="https://redirect.github.com/release-plz/action/issues/227">#227</a>)</li>
<li><a
href="01df7609d1"><code>01df760</code></a>
fix test (<a
href="https://redirect.github.com/release-plz/action/issues/226">#226</a>)</li>
<li><a
href="af52851a74"><code>af52851</code></a>
Add <code>dry_run</code> input option (<a
href="https://redirect.github.com/release-plz/action/issues/204">#204</a>)</li>
<li>See full diff in <a
href="d529f731ae...1efcf74dfc">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.118&new-version=0.5.119)](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-12-02 17:46:08 +03:00
dependabot[bot]
b405a398e9 build(deps): bump tracing from 0.1.41 to 0.1.43 (#2247)
[//]: # (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 [tracing](https://github.com/tokio-rs/tracing) from 0.1.41 to
0.1.43.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tracing/releases">tracing's
releases</a>.</em></p>
<blockquote>
<h2>tracing 0.1.43</h2>
<h4>Important</h4>
<p>The previous release [0.1.42] was yanked because <a
href="https://redirect.github.com/tokio-rs/tracing/issues/3382">#3382</a>
was a breaking change.
See further details in <a
href="https://redirect.github.com/tokio-rs/tracing/issues/3424">#3424</a>.
This release contains all the changes from that
version, plus a revert for the problematic part of the breaking PR.</p>
<h3>Fixed</h3>
<ul>
<li>Revert &quot;make <code>valueset</code> macro sanitary&quot; (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3425">#3425</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/3382">#3382</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3382">tokio-rs/tracing#3382</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3424">#3424</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3424">tokio-rs/tracing#3424</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3425">#3425</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3425">tokio-rs/tracing#3425</a>
[0.1.42]: <a
href="https://github.com/tokio-rs/tracing/releases/tag/tracing-0.1.42">https://github.com/tokio-rs/tracing/releases/tag/tracing-0.1.42</a></p>
<h2>tracing 0.1.42</h2>
<h3>Important</h3>
<p>The [<code>Span::record_all</code>] method has been removed from the
documented API. It
was always unsuable via the documented API as it requried a
<code>ValueSet</code> which
has no publically documented constructors. The method remains, but
should not
be used outside of <code>tracing</code> macros.</p>
<h3>Added</h3>
<ul>
<li><strong>attributes</strong>: Support constant expressions as
instrument field names (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3158">#3158</a>)</li>
<li>Add <code>record_all!</code> macro for recording multiple values in
one call (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3227">#3227</a>)</li>
<li><strong>core</strong>: Improve code generation at trace points
significantly (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3398">#3398</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>tracing-core</code>: updated to 0.1.35 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3414">#3414</a>)</li>
<li><code>tracing-attributes</code>: updated to 0.1.31 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3417">#3417</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix &quot;name / parent&quot; variant of <code>event!</code> (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/2983">#2983</a>)</li>
<li>Remove 'r#' prefix from raw identifiers in field names (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3130">#3130</a>)</li>
<li>Fix perf regression when <code>release_max_level_*</code> not set
(<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3373">#3373</a>)</li>
<li>Use imported instead of fully qualified path (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3374">#3374</a>)</li>
<li>Make <code>valueset</code> macro sanitary (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3382">#3382</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li><strong>core</strong>: Add missing <code>dyn</code> keyword in
<code>Visit</code> documentation code sample (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3387">#3387</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/2983">#2983</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#2983%5D(https://redirect.github.com/tokio-rs/tracing/issues/2983)">tokio-rs/tracing#2983</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3130">#3130</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3130%5D(https://redirect.github.com/tokio-rs/tracing/issues/3130)">tokio-rs/tracing#3130</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3158">#3158</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3158%5D(https://redirect.github.com/tokio-rs/tracing/issues/3158)">tokio-rs/tracing#3158</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="64e1c8d3ae"><code>64e1c8d</code></a>
chore: prepare tracing 0.1.43 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3427">#3427</a>)</li>
<li><a
href="7c44f7bb21"><code>7c44f7b</code></a>
tracing: revert &quot;make <code>valueset</code> macro sanitary&quot;
(<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3425">#3425</a>)</li>
<li><a
href="cdaf661c13"><code>cdaf661</code></a>
chore: prepare tracing-mock 0.1.0-beta.2 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3422">#3422</a>)</li>
<li><a
href="a164fd3021"><code>a164fd3</code></a>
chore: prepare tracing-journald 0.3.2 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3421">#3421</a>)</li>
<li><a
href="405397b8cc"><code>405397b</code></a>
chore: prepare tracing-appender 0.2.4 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3420">#3420</a>)</li>
<li><a
href="a9eeed7394"><code>a9eeed7</code></a>
chore: prepare tracing-subscriber 0.3.21 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3419">#3419</a>)</li>
<li><a
href="5bd5505478"><code>5bd5505</code></a>
chore: prepare tracing 0.1.42 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3418">#3418</a>)</li>
<li><a
href="55086231ec"><code>5508623</code></a>
chore: prepare tracing-attributes 0.1.31 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3417">#3417</a>)</li>
<li><a
href="d92b4c0feb"><code>d92b4c0</code></a>
chore: prepare tracing-core 0.1.35 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3414">#3414</a>)</li>
<li><a
href="9751b6e776"><code>9751b6e</code></a>
chore: run <code>tracing-subscriber</code> tests with all features (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3412">#3412</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-0.1.41...tracing-0.1.43">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tracing&package-manager=cargo&previous-version=0.1.41&new-version=0.1.43)](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-12-02 17:45:16 +03:00
dependabot[bot]
cd5c7afbac build(deps): bump crate-ci/typos from 1.39.2 to 1.40.0 (#2244)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.39.2 to
1.40.0.
<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.40.0</h2>
<h2>[1.40.0] - 2025-11-26</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1405">November
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="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.40.0] - 2025-11-26</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1405">November
2025</a> changes</li>
</ul>
<h2>[1.39.2] - 2025-11-13</h2>
<h3>Fixes</h3>
<ul>
<li>Don't offer <code>entry</code> as a correction for
<code>entrys</code></li>
</ul>
<h2>[1.39.1] - 2025-11-12</h2>
<h3>Features</h3>
<ul>
<li>Make <code>--help</code> more vibrant</li>
</ul>
<h2>[1.39.0] - 2025-10-31</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1383">October
2025</a> changes</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>When a typo is pluralized, prefer pluralized corrections</li>
</ul>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2d0ce569fe"><code>2d0ce56</code></a>
chore: Release</li>
<li><a
href="efbd900f8d"><code>efbd900</code></a>
chore: Release</li>
<li><a
href="863fd15db8"><code>863fd15</code></a>
docs: Update changelog</li>
<li><a
href="9a27b16791"><code>9a27b16</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1432">#1432</a>
from epage/nov</li>
<li><a
href="3dbd9d4eac"><code>3dbd9d4</code></a>
feat(dict): November additions</li>
<li><a
href="a1a16c7b7c"><code>a1a16c7</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1427">#1427</a>
from deining/bump-github-action</li>
<li><a
href="cb8d2e78ff"><code>cb8d2e7</code></a>
docs: Bump GitHub checkout action in 'github-action.md'</li>
<li><a
href="9f99fb8dfe"><code>9f99fb8</code></a>
docs(ref): Clarify extend-words / extend-identifiers</li>
<li>See full diff in <a
href="626c4bedb7...2d0ce569fe">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.39.2&new-version=1.40.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-12-02 17:44:57 +03:00
dependabot[bot]
604f89a167 build(deps): bump Swatinem/rust-cache from 2.8.1 to 2.8.2 (#2243)
Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from
2.8.1 to 2.8.2.
<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.2</h2>
<h2>What's Changed</h2>
<ul>
<li>ci: address lint findings, add zizmor workflow by <a
href="https://github.com/woodruffw"><code>@​woodruffw</code></a> in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/262">Swatinem/rust-cache#262</a></li>
<li>feat: Implement ability to disable adding job ID + rust environment
hashes to cache names by <a
href="https://github.com/Ryan-Brice"><code>@​Ryan-Brice</code></a> in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/279">Swatinem/rust-cache#279</a></li>
<li>Don't overwrite env for cargo-metadata call by <a
href="https://github.com/MaeIsBad"><code>@​MaeIsBad</code></a> in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/285">Swatinem/rust-cache#285</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/woodruffw"><code>@​woodruffw</code></a>
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/262">Swatinem/rust-cache#262</a></li>
<li><a
href="https://github.com/Ryan-Brice"><code>@​Ryan-Brice</code></a> made
their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/279">Swatinem/rust-cache#279</a></li>
<li><a href="https://github.com/MaeIsBad"><code>@​MaeIsBad</code></a>
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/285">Swatinem/rust-cache#285</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Swatinem/rust-cache/compare/v2.8.1...v2.8.2">https://github.com/Swatinem/rust-cache/compare/v2.8.1...v2.8.2</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.2</h2>
<ul>
<li>Don't overwrite env for cargo-metadata call</li>
</ul>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="779680da71"><code>779680d</code></a>
2.8.2</li>
<li><a
href="2ea64efb25"><code>2ea64ef</code></a>
Bump smol-toml from 1.4.2 to 1.5.2 in the prd-minor group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/287">#287</a>)</li>
<li><a
href="8930d9c33e"><code>8930d9c</code></a>
Bump the actions group with 3 updates (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/288">#288</a>)</li>
<li><a
href="c071727fc9"><code>c071727</code></a>
Bump <code>@​actions/io</code> from 1.1.3 to 2.0.0 in the prd-major
group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/281">#281</a>)</li>
<li><a
href="f2a41b7c11"><code>f2a41b7</code></a>
Bump <code>@​types/node</code> from 24.9.0 to 24.10.0 in the dev-minor
group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/282">#282</a>)</li>
<li><a
href="e306f83d21"><code>e306f83</code></a>
Don't overwrite env for cargo-metadata call (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/285">#285</a>)</li>
<li><a
href="c9119007a1"><code>c911900</code></a>
Merge pull request <a
href="https://redirect.github.com/swatinem/rust-cache/issues/284">#284</a>
from Swatinem/dependabot/github_actions/actions-baeb0...</li>
<li><a
href="3aaed5547e"><code>3aaed55</code></a>
Bump the actions group with 2 updates</li>
<li><a
href="972b315a82"><code>972b315</code></a>
Merge pull request <a
href="https://redirect.github.com/swatinem/rust-cache/issues/283">#283</a>
from Swatinem/dependabot/github_actions/actions-b360d...</li>
<li><a
href="07caf06f7a"><code>07caf06</code></a>
Bump taiki-e/install-action from 2.62.45 to 2.62.49 in the actions
group</li>
<li>Additional commits viewable in <a
href="f13886b937...779680da71">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.1&new-version=2.8.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-12-02 17:44:42 +03:00
dependabot[bot]
db40df4ed9 build(deps): bump tracing-subscriber from 0.3.20 to 0.3.22 (#2248)
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from
0.3.20 to 0.3.22.
<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.22</h2>
<h4>Important</h4>
<p>The previous release [0.3.21] was yanked as it depended explicitly on
[tracing-0.1.42], which was yanked due to a breaking change (see <a
href="https://redirect.github.com/tokio-rs/tracing/issues/3424">#3424</a>
for
details). This release contains all the changes from the previous
release, plus
an update to the newer version of <code>tracing</code>.</p>
<h3>Changed</h3>
<ul>
<li><code>tracing</code>: updated to 0.1.43 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3427">#3427</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/3424">#3424</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3424">tokio-rs/tracing#3424</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3427">#3427</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3427">tokio-rs/tracing#3427</a>
[0.3.21]: <a
href="https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.21">https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.21</a>
[tracing-0.1.42]: <a
href="https://github.com/tokio-rs/tracing/releases/tag/tracing-0.1.42">https://github.com/tokio-rs/tracing/releases/tag/tracing-0.1.42</a></p>
<h2>tracing-subscriber 0.3.21</h2>
<h3>Fixed</h3>
<ul>
<li>Change registry exit to decrement local span ref only (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3331">#3331</a>)</li>
<li>Make Layered propagate <code>on_register_dispatch</code> (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3379">#3379</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>tracing</code>: updated to 0.1.42 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3418">#3418</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Remove <code>clone_span</code> on enter (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3289">#3289</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>Fix a few small things in the format module (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3339">#3339</a>)</li>
<li>Fix extra closing brace in layer docs (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3350">#3350</a>)</li>
<li>Fix link in <code>FmtSpan</code> docs (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3411">#3411</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/3289">#3289</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3289%5D(https://redirect.github.com/tokio-rs/tracing/issues/3289)">tokio-rs/tracing#3289</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3331">#3331</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3331%5D(https://redirect.github.com/tokio-rs/tracing/issues/3331)">tokio-rs/tracing#3331</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3339">#3339</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3339%5D(https://redirect.github.com/tokio-rs/tracing/issues/3339)">tokio-rs/tracing#3339</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3350">#3350</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3350%5D(https://redirect.github.com/tokio-rs/tracing/issues/3350)">tokio-rs/tracing#3350</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3379">#3379</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3379%5D(https://redirect.github.com/tokio-rs/tracing/issues/3379)">tokio-rs/tracing#3379</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3411">#3411</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3411%5D(https://redirect.github.com/tokio-rs/tracing/issues/3411)">tokio-rs/tracing#3411</a>
<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3418">#3418</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/%5B#3418%5D(https://redirect.github.com/tokio-rs/tracing/issues/3418)">tokio-rs/tracing#3418</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc44064b3a"><code>cc44064</code></a>
chore: prepare tracing-subscriber 0.3.22 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3428">#3428</a>)</li>
<li><a
href="64e1c8d3ae"><code>64e1c8d</code></a>
chore: prepare tracing 0.1.43 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3427">#3427</a>)</li>
<li><a
href="7c44f7bb21"><code>7c44f7b</code></a>
tracing: revert &quot;make <code>valueset</code> macro sanitary&quot;
(<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3425">#3425</a>)</li>
<li><a
href="cdaf661c13"><code>cdaf661</code></a>
chore: prepare tracing-mock 0.1.0-beta.2 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3422">#3422</a>)</li>
<li><a
href="a164fd3021"><code>a164fd3</code></a>
chore: prepare tracing-journald 0.3.2 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3421">#3421</a>)</li>
<li><a
href="405397b8cc"><code>405397b</code></a>
chore: prepare tracing-appender 0.2.4 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3420">#3420</a>)</li>
<li><a
href="a9eeed7394"><code>a9eeed7</code></a>
chore: prepare tracing-subscriber 0.3.21 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3419">#3419</a>)</li>
<li><a
href="5bd5505478"><code>5bd5505</code></a>
chore: prepare tracing 0.1.42 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3418">#3418</a>)</li>
<li><a
href="55086231ec"><code>5508623</code></a>
chore: prepare tracing-attributes 0.1.31 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3417">#3417</a>)</li>
<li><a
href="d92b4c0feb"><code>d92b4c0</code></a>
chore: prepare tracing-core 0.1.35 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3414">#3414</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.20...tracing-subscriber-0.3.22">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.20&new-version=0.3.22)](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-12-02 17:44:00 +03:00
dependabot[bot]
fae7688ed8 build(deps): bump kasuari from 0.4.10 to 0.4.11 (#2249)
Bumps [kasuari](https://github.com/ratatui/kasuari) from 0.4.10 to
0.4.11.
<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.11</h2>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump actions/checkout from 5 to 6 in the
github-actions group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/42">#42</a>)</li>
<li><em>(deps)</em> bump hashbrown from 0.16.0 to 0.16.1 in the
rust-dependencies group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/43">#43</a>)</li>
<li>enable trusted publishing and normalize release-plz workflow (<a
href="https://redirect.github.com/ratatui/kasuari/pull/44">#44</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.10...v0.4.11">0.4.11</a>
- 2025-11-29</h2>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump actions/checkout from 5 to 6 in the
github-actions group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/42">#42</a>)</li>
<li><em>(deps)</em> bump hashbrown from 0.16.0 to 0.16.1 in the
rust-dependencies group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/43">#43</a>)</li>
<li>enable trusted publishing and normalize release-plz workflow (<a
href="https://redirect.github.com/ratatui/kasuari/pull/44">#44</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="dfde5428e6"><code>dfde542</code></a>
chore: release v0.4.11 (<a
href="https://redirect.github.com/ratatui/kasuari/issues/45">#45</a>)</li>
<li><a
href="e0143cfc9a"><code>e0143cf</code></a>
build(deps): bump actions/checkout from 5 to 6 in the github-actions
group (<a
href="https://redirect.github.com/ratatui/kasuari/issues/42">#42</a>)</li>
<li><a
href="87b93a0dde"><code>87b93a0</code></a>
build(deps): bump hashbrown from 0.16.0 to 0.16.1 in the
rust-dependencies gr...</li>
<li><a
href="f8fd0abdcb"><code>f8fd0ab</code></a>
chore: enable trusted publishing and normalize release-plz workflow (<a
href="https://redirect.github.com/ratatui/kasuari/issues/44">#44</a>)</li>
<li><a
href="376ec2bb56"><code>376ec2b</code></a>
build(deps): bump document-features from 0.2.11 to 0.2.12 in the
rust-depende...</li>
<li>See full diff in <a
href="https://github.com/ratatui/kasuari/compare/v0.4.10...v0.4.11">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.10&new-version=0.4.11)](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-12-02 17:43:29 +03:00
dependabot[bot]
2c17beaee4 build(deps): bump fakeit from 1.3.1 to 1.4.0 (#2250)
Bumps [fakeit](https://github.com/PumpkinSeed/fakeit) from 1.3.1 to
1.4.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f33e977442"><code>f33e977</code></a>
Bump version in cargo lock</li>
<li><a
href="d3ccee7287"><code>d3ccee7</code></a>
Bump the version</li>
<li><a
href="3844cbc04c"><code>3844cbc</code></a>
Merge pull request <a
href="https://redirect.github.com/PumpkinSeed/fakeit/issues/37">#37</a>
from joshka/joshka/push-xvwtqpvvsnvx</li>
<li><a
href="c33ef2828e"><code>c33ef28</code></a>
remove libmath and its stale rand deps</li>
<li><a
href="0821f8c368"><code>0821f8c</code></a>
Cargo.lock bump</li>
<li><a
href="785ef4d27a"><code>785ef4d</code></a>
Bump version</li>
<li><a
href="c56643d4a0"><code>c56643d</code></a>
Merge pull request <a
href="https://redirect.github.com/PumpkinSeed/fakeit/issues/36">#36</a>
from PumpkinSeed/rustfmt</li>
<li><a
href="8f272d7a6d"><code>8f272d7</code></a>
Change the MSRV</li>
<li><a
href="114d603f1c"><code>114d603</code></a>
Rustfmt</li>
<li><a
href="144b618085"><code>144b618</code></a>
Bump the version</li>
<li>Additional commits viewable in <a
href="https://github.com/PumpkinSeed/fakeit/compare/v1.3.1...v1.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fakeit&package-manager=cargo&previous-version=1.3.1&new-version=1.4.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-12-02 17:43:05 +03:00
Josh McKinney
24e3133456 feat: add Rect::resize() method (#2240)
Fixes: https://github.com/ratatui/ratatui/issues/1440
2025-11-30 12:00:03 -08:00
Josh McKinney
96d097ef76 feat: implement Rect ops for moving (#1596)
feat: implement Rect ops for moving

Implemented `Add`, `AddAssign`, `Sub`, and `SubAssign` on `Rect` for
`Offset`. This makes it possible to move rects

```rust
let rect = Rect::new(1, 2, 3, 4);
let moved = rect + Offset(1, 2);
let moved = rect - Offset(1, 2);
let moved = rect + Offset(-1, -2);
```

Additionally Rect, Size, Offset, and Position now all have MIN and MAX
consts.
2025-11-30 11:57:08 -08:00
dependabot[bot]
a6356c157c build(deps): bump octocrab from 0.47.1 to 0.48.0 (#2230)
Bumps [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.47.1 to
0.48.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.48.0</h2>
<h3>Added</h3>
<ul>
<li>fetch contributor repository permission (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/825">#825</a>)</li>
<li>[<strong>breaking</strong>] Use
<code>Option&lt;AuthorAssociation&gt;</code> over <code>String</code> in
<code>Issue</code> struct (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/822">#822</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>add missing issue event types (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/821">#821</a>)</li>
<li>Remove fields deleted in October 2025 API changes (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/826">#826</a>)</li>
<li>Bump jsonwebtoken to v10 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/814">#814</a>)</li>
<li>Feature/set http headers <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/808">#808</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/819">#819</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.47.1...v0.48.0">0.48.0</a>
- 2025-11-18</h2>
<h3>Added</h3>
<ul>
<li>fetch contributor repository permission (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/825">#825</a>)</li>
<li>[<strong>breaking</strong>] Use
<code>Option&lt;AuthorAssociation&gt;</code> over <code>String</code> in
<code>Issue</code> struct (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/822">#822</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>add missing issue event types (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/821">#821</a>)</li>
<li>Remove fields deleted in October 2025 API changes (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/826">#826</a>)</li>
<li>Bump jsonwebtoken to v10 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/814">#814</a>)</li>
<li>Feature/set http headers <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/808">#808</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/819">#819</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9fc79f7bef"><code>9fc79f7</code></a>
chore: release v0.48.0 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/823">#823</a>)</li>
<li><a
href="819a1f1a44"><code>819a1f1</code></a>
models: add missing issue event types (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/821">#821</a>)</li>
<li><a
href="730b70f1a9"><code>730b70f</code></a>
Remove fields deleted in October 2025 API changes (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/826">#826</a>)</li>
<li><a
href="8cecdae759"><code>8cecdae</code></a>
Bump jsonwebtoken to v10 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/814">#814</a>)</li>
<li><a
href="8be15f41ef"><code>8be15f4</code></a>
feat: fetch contributor repository permission (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/825">#825</a>)</li>
<li><a
href="610775a98d"><code>610775a</code></a>
Feature/set http headers <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/808">#808</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/819">#819</a>)</li>
<li><a
href="edc6cdefc4"><code>edc6cde</code></a>
feat!: Use <code>Option\&lt;AuthorAssociation&gt;</code> over
<code>String</code> in <code>Issue</code> struct (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/822">#822</a>)</li>
<li>See full diff in <a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.47.1...v0.48.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.47.1&new-version=0.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>
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-11-30 01:36:19 -08:00
Josh McKinney
0fbefe9389 chore(ci): don't fail on cargo-deny advisories (#2237)
Instead of failing on advisories, run the cargo-deny check, and report
the failure.

Uses the cargo-deny-action instead of installing this manually.


https://github.com/EmbarkStudios/cargo-deny-action/tree/v2?tab=readme-ov-file#recommended-pipeline-if-using-advisories-to-avoid-sudden-breakages
(bumped to use rust stable, and log level info)
2025-11-30 12:26:16 +03:00
dependabot[bot]
12c49c0eac build(deps): bump DavidAnson/markdownlint-cli2-action from 20.0.0 to 21.0.0 (#2207)
Bumps
[DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action)
from 20.0.0 to 21.0.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="30a0e04f18"><code>30a0e04</code></a>
Update to version 21.0.0.</li>
<li><a
href="6d4a055237"><code>6d4a055</code></a>
Freshen generated index.js file.</li>
<li><a
href="d9bf3fbe88"><code>d9bf3fb</code></a>
Bump markdownlint-cli2 from 0.18.1 to 0.19.0</li>
<li><a
href="29b4789128"><code>29b4789</code></a>
Bump <code>@​eslint/js</code> from 9.39.0 to 9.39.1</li>
<li><a
href="6d600f113b"><code>6d600f1</code></a>
Bump eslint from 9.39.0 to 9.39.1</li>
<li><a
href="15b21a00af"><code>15b21a0</code></a>
Bump <code>@​eslint/js</code> from 9.38.0 to 9.39.0</li>
<li><a
href="b259d54d28"><code>b259d54</code></a>
Bump eslint from 9.38.0 to 9.39.0</li>
<li><a
href="451cad2cde"><code>451cad2</code></a>
Bump eslint-plugin-unicorn from 61.0.2 to 62.0.0</li>
<li><a
href="c076bbe50e"><code>c076bbe</code></a>
Bump <code>@​stylistic/eslint-plugin</code> from 5.4.0 to 5.5.0</li>
<li><a
href="ef464f44a2"><code>ef464f4</code></a>
Bump <code>@​eslint/js</code> from 9.37.0 to 9.38.0</li>
<li>Additional commits viewable in <a
href="992badcdf2...30a0e04f18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DavidAnson/markdownlint-cli2-action&package-manager=github_actions&previous-version=20.0.0&new-version=21.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-11-29 15:55:16 -08:00
Serge Barral
f18bcbf06b feat(canvas)!: Add quadrant, sextant and octant markers (#2235)
The octant marker is an alternative to the Braille marker with the same
resolution, but offering densely packed, regular pseudo-pixels, without
visible bands between rows and columns. 

Quadrant and Sextants are also added to support 2x2 and 2x3.

Sextant and Octant unicode characters that are less widely supported at
the moment, which is why `Braille` was left as the default.

BREAKING CHANGE: addition of new variants to `Marker` and removal of
no longer used constants in `ratatui::symbols::braille`.
2025-11-29 15:37:53 -08:00
Jagoda Estera Ślązak
ee673476d3 feat(symbols)!: Make Marker non-exhaustive (#2236)
This will allow us to add new markers without causing further breaking
changes.

BREAKING CHANGE: `Marker` is now non-exhaustive
2025-11-29 10:35:30 +01:00
dependabot[bot]
3ba3735650 build(deps): bump termion from 4.0.5 to 4.0.6 (#2227)
Bumps termion from 4.0.5 to 4.0.6.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=termion&package-manager=cargo&previous-version=4.0.5&new-version=4.0.6)](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-11-28 18:07:57 +01:00
dependabot[bot]
bf268937d4 build(deps): bump dtolnay/rust-toolchain (#2233)
Bumps
[dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from
0f44b27771c32bda9f458f75a1e241b09791b331 to
0b1efabc08b657293548b77fb76cc02d26091c7e.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0b1efabc08"><code>0b1efab</code></a>
Update actions/checkout@v5 -&gt; v6</li>
<li>See full diff in <a
href="0f44b27771...0b1efabc08">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>
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-11-25 09:27:20 +01:00
Jagoda Estera Ślązak
26b05dee59 feat(chart): Render Braille over Blocks in Charts and Canvas (#2165)
This makes it possible to stack charts, and write text over block symbols in
Charts and Canvas while still showing the block symbols behind the text.

Co-authored-by: Lunderberg <eldritch.cheese@gmail.com>
2025-11-25 09:23:54 +01:00
dependabot[bot]
3a945dfe06 build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (#2232)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0
to 6.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>v6.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>v6-beta by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li>
<li>update readme/changelog for v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p>
<h2>v6-beta</h2>
<h2>What's Changed</h2>
<p>Updated persist-credentials to store the credentials under
<code>$RUNNER_TEMP</code> instead of directly in the local git
config.</p>
<p>This requires a minimum Actions Runner version of <a
href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a>
to access the persisted credentials for <a
href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker
container action</a> scenarios.</p>
<h2>v5.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</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>V6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>V5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<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.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</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>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1af3b93b68"><code>1af3b93</code></a>
update readme/changelog for v6 (<a
href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li>
<li><a
href="71cf2267d8"><code>71cf226</code></a>
v6-beta (<a
href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
<li><a
href="069c695914"><code>069c695</code></a>
Persist creds to a separate file (<a
href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li>
<li><a
href="ff7abcd0c3"><code>ff7abcd</code></a>
Update README to include Node.js 24 support details and requirements (<a
href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li>
<li>See full diff in <a
href="08c6903cd8...1af3b93b68">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=5.0.0&new-version=6.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: Orhun Parmaksız <orhun@archlinux.org>
2025-11-24 19:28:25 +03:00
dependabot[bot]
8f6782acd5 build(deps): bump hashbrown from 0.16.0 to 0.16.1 (#2228)
Bumps [hashbrown](https://github.com/rust-lang/hashbrown) from 0.16.0 to
0.16.1.
<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.1</h2>
<h3>Added</h3>
<ul>
<li>Added <code>HashTable</code> methods related to the raw bucket index
(<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/657">#657</a>)</li>
<li>Added <code>VacantEntryRef::insert_with_key</code> (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/579">#579</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Removed specialization for <code>Copy</code> types (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/662">#662</a>)</li>
<li>The <code>get_many_mut</code> family of methods have been renamed to
<code>get_disjoint_mut</code>
to match the standard library. The old names are still present for now,
but
deprecated. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/648">#648</a>)</li>
<li>Recognize and use over-sized allocations when using custom
allocators. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/523">#523</a>)</li>
<li>Depend on <code>serde_core</code> instead of <code>serde</code>. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/649">#649</a>)</li>
<li>Optimized <code>collect</code> on rayon parallel iterators. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/652">#652</a>)</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.16.0...v0.16.1">0.16.1</a>
- 2025-11-20</h2>
<h3>Added</h3>
<ul>
<li>Added <code>HashTable</code> methods related to the raw bucket index
(<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/657">#657</a>)</li>
<li>Added <code>VacantEntryRef::insert_with_key</code> (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/579">#579</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Removed specialization for <code>Copy</code> types (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/662">#662</a>)</li>
<li>The <code>get_many_mut</code> family of methods have been renamed to
<code>get_disjoint_mut</code>
to match the standard library. The old names are still present for now,
but
deprecated. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/648">#648</a>)</li>
<li>Recognize and use over-sized allocations when using custom
allocators. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/523">#523</a>)</li>
<li>Depend on <code>serde_core</code> instead of <code>serde</code>. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/649">#649</a>)</li>
<li>Optimized <code>collect</code> on rayon parallel iterators. (<a
href="https://redirect.github.com/rust-lang/hashbrown/issues/652">#652</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1876e4f027"><code>1876e4f</code></a>
Add PR link for <code>get_disjoint_mut</code> rename</li>
<li><a
href="2e363b6f12"><code>2e363b6</code></a>
Update CHANGELOG for version 0.16.1</li>
<li><a
href="88d54a540f"><code>88d54a5</code></a>
chore: release v0.16.1</li>
<li><a
href="21be06c3ac"><code>21be06c</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/hashbrown/issues/657">#657</a>
from cuviper/table-bucket</li>
<li><a
href="af971f3735"><code>af971f3</code></a>
Add <code>T</code> to bucket iterators and inline their methods</li>
<li><a
href="7ccb6d6ffc"><code>7ccb6d6</code></a>
Add <code>HashTable::iter_buckets</code> and
<code>iter_hash_buckets</code></li>
<li><a
href="aeb7996601"><code>aeb7996</code></a>
Add <code>HashTable::get_bucket_entry_unchecked</code></li>
<li><a
href="e885a4ea47"><code>e885a4e</code></a>
<code>get_bucket_entry -&gt; Result\&lt;OccupiedEntry,
AbsentEntry&gt;</code></li>
<li><a
href="dabfbef806"><code>dabfbef</code></a>
Add <code>get_bucket_unchecked</code> and
<code>get_bucket_unchecked_mut</code></li>
<li><a
href="42d9377a3f"><code>42d9377</code></a>
Make <code>HashTable</code> entries use <code>Tag</code> instead of a
full hash</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/hashbrown/compare/v0.16.0...v0.16.1">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.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>
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-11-24 19:27:54 +03:00
dependabot[bot]
dd6d315c7b build(deps): bump zizmorcore/zizmor-action from 0.2.0 to 0.3.0 (#2231)
Bumps
[zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action)
from 0.2.0 to 0.3.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.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>README: fix troubleshooting link by <a
href="https://github.com/woodruffw"><code>@​woodruffw</code></a> in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/50">zizmorcore/zizmor-action#50</a></li>
<li>README: add a troubleshooting section about Advanced Security by <a
href="https://github.com/woodruffw"><code>@​woodruffw</code></a> in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/51">zizmorcore/zizmor-action#51</a></li>
<li>feat: Support a config option by <a
href="https://github.com/naokihaba"><code>@​naokihaba</code></a> in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/56">zizmorcore/zizmor-action#56</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/naokihaba"><code>@​naokihaba</code></a>
made their first contribution in <a
href="https://redirect.github.com/zizmorcore/zizmor-action/pull/56">zizmorcore/zizmor-action#56</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/zizmorcore/zizmor-action/compare/v0.2.0...v0.3.0">https://github.com/zizmorcore/zizmor-action/compare/v0.2.0...v0.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e639db9933"><code>e639db9</code></a>
remove mise.toml (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/57">#57</a>)</li>
<li><a
href="f4409e3039"><code>f4409e3</code></a>
feat: Support a config option (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/56">#56</a>)</li>
<li><a
href="1aba86d8e1"><code>1aba86d</code></a>
chore(deps): bump github/codeql-action in the github-actions group (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/54">#54</a>)</li>
<li><a
href="da5ac40c54"><code>da5ac40</code></a>
README: add a troubleshooting section about Advanced Security (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/51">#51</a>)</li>
<li><a
href="cc28a584f0"><code>cc28a58</code></a>
README: fix troubleshooting link (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/50">#50</a>)</li>
<li><a
href="c323c83e3a"><code>c323c83</code></a>
chore(deps): bump zizmorcore/zizmor-action from 0.1.2 to 0.2.0 in the
github-...</li>
<li><a
href="0696496a48"><code>0696496</code></a>
chore(deps): bump github/codeql-action in the github-actions group (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/48">#48</a>)</li>
<li><a
href="873539476a"><code>8735394</code></a>
docs: bump action pins (<a
href="https://redirect.github.com/zizmorcore/zizmor-action/issues/46">#46</a>)</li>
<li>See full diff in <a
href="e673c3917a...e639db9933">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.2.0&new-version=0.3.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-11-24 19:02:14 +03:00
dependabot[bot]
fe410c6645 build(deps): bump clap from 4.5.51 to 4.5.53 (#2229)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.51 to 4.5.53.
<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.53</h2>
<h2>[4.5.53] - 2025-11-19</h2>
<h3>Features</h3>
<ul>
<li>Add <code>default_values_if</code>,
<code>default_values_ifs</code></li>
</ul>
<h2>v4.5.52</h2>
<h2>[4.5.52] - 2025-11-17</h2>
<h3>Fixes</h3>
<ul>
<li>Don't panic when <code>args_conflicts_with_subcommands</code>
conflicts with an <code>ArgGroup</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.53] - 2025-11-19</h2>
<h3>Features</h3>
<ul>
<li>Add <code>default_values_if</code>,
<code>default_values_ifs</code></li>
</ul>
<h2>[4.5.52] - 2025-11-17</h2>
<h3>Fixes</h3>
<ul>
<li>Don't panic when <code>args_conflicts_with_subcommands</code>
conflicts with an <code>ArgGroup</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3716f9f428"><code>3716f9f</code></a>
chore: Release</li>
<li><a
href="613b69a6b7"><code>613b69a</code></a>
docs: Update changelog</li>
<li><a
href="d117f7acde"><code>d117f7a</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6028">#6028</a>
from epage/arg</li>
<li><a
href="cb8255d2f3"><code>cb8255d</code></a>
feat(builder): Allow quoted id's for arg macro</li>
<li><a
href="1036060f13"><code>1036060</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6025">#6025</a>
from AldaronLau/typos-in-faq</li>
<li><a
href="2fcafc0aee"><code>2fcafc0</code></a>
docs: Fix minor grammar issues in FAQ</li>
<li><a
href="a380b65fe9"><code>a380b65</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6023">#6023</a>
from epage/template</li>
<li><a
href="4d7ab1483c"><code>4d7ab14</code></a>
chore: Update from _rust/main template</li>
<li><a
href="b8a7ea49d9"><code>b8a7ea4</code></a>
chore(deps): Update Rust Stable to v1.87 (<a
href="https://redirect.github.com/clap-rs/clap/issues/18">#18</a>)</li>
<li><a
href="f9842b3b3f"><code>f9842b3</code></a>
chore: Avoid MSRV problems out of the box</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.51...clap_complete-v4.5.53">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.51&new-version=4.5.53)](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-11-24 19:00:45 +03:00
dependabot[bot]
5895340cb3 build(deps): bump taiki-e/install-action from 2.62.52 to 2.62.57 (#2234)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.52 to 2.62.57.
<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.57</h2>
<ul>
<li>
<p>Update <code>cargo-deny@latest</code> to 0.18.6.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.5.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.2.</p>
</li>
</ul>
<h2>2.62.56</h2>
<ul>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.4.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.72.0.</p>
</li>
</ul>
<h2>2.62.55</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.1.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.5.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.11.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 39.0.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.7.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.5.1.</p>
</li>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.3.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.114.</p>
</li>
</ul>
<h2>2.62.54</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.6.</p>
</li>
<li>
<p>Update <code>hyperfine@latest</code> to 1.20.0.</p>
</li>
</ul>
<h2>2.62.53</h2>
<ul>
<li>
<p>Update <code>mdbook@latest</code> to 0.5.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.10.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.38.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.62.57] - 2025-11-24</h2>
<ul>
<li>
<p>Update <code>cargo-deny@latest</code> to 0.18.6.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.5.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.2.</p>
</li>
</ul>
<h2>[2.62.56] - 2025-11-23</h2>
<ul>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.4.</p>
</li>
<li>
<p>Update <code>rclone@latest</code> to 1.72.0.</p>
</li>
</ul>
<h2>[2.62.55] - 2025-11-21</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.1.</p>
</li>
<li>
<p>Update <code>editorconfig-checker@latest</code> to 3.5.0.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.11.</p>
</li>
<li>
<p>Update <code>wasmtime@latest</code> to 39.0.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.7.</p>
</li>
<li>
<p>Update <code>mdbook@latest</code> to 0.5.1.</p>
</li>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.3.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.114.</p>
</li>
</ul>
<h2>[2.62.54] - 2025-11-19</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.6.</p>
</li>
<li>
<p>Update <code>hyperfine@latest</code> to 1.20.0.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="763e3324d4"><code>763e332</code></a>
Release 2.62.57</li>
<li><a
href="4af8b97fbd"><code>4af8b97</code></a>
Update <code>cargo-deny@latest</code> to 0.18.6</li>
<li><a
href="a35850f875"><code>a35850f</code></a>
Update <code>cargo-shear@latest</code> to 1.6.5</li>
<li><a
href="810fa5b442"><code>810fa5b</code></a>
Update <code>cargo-binstall@latest</code> to 1.16.2</li>
<li><a
href="f79fe7514d"><code>f79fe75</code></a>
Release 2.62.56</li>
<li><a
href="35828c1ac9"><code>35828c1</code></a>
Update <code>cargo-shear@latest</code> to 1.6.4</li>
<li><a
href="6de94973ee"><code>6de9497</code></a>
Update <code>rclone@latest</code> to 1.72.0</li>
<li><a
href="132c875eef"><code>132c875</code></a>
Release 2.62.55</li>
<li><a
href="560f08d34e"><code>560f08d</code></a>
Update <code>cargo-binstall@latest</code> to 1.16.1</li>
<li><a
href="fcce1e7255"><code>fcce1e7</code></a>
Update <code>editorconfig-checker@latest</code> to 3.5.0</li>
<li>Additional commits viewable in <a
href="537c30d2b4...763e3324d4">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.52&new-version=2.62.57)](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-11-24 18:55:17 +03:00
Josh McKinney
e869cb9750 feat: add Size::area() (#2226)
Add Size::area() returning u32 to avoid u16 overflow
Fixes https://github.com/ratatui/ratatui/issues/2204
2025-11-24 10:09:31 +03:00
Paul Harrison
b1d47e7718 docs: Discourage use of Buffer's pos_of, index_of (#2225)
These methods assume that the backing store of any buffer / area is linearly indexable. There are other ways that we might want to experiment in the future with how to store the values (trees, 2D allocated areas that are non-contiguous etc.). The index <-> pos conversion there isn't particularly useful. This should be an internal implementation detail of the buffer, rather than something that we expose, but we're not deprecating this for now at least.
2025-11-23 20:22:13 -08:00
WaterWhisperer
94ba82e9ca test(gauge): add benchmarks for gauge (#2221) 2025-11-23 11:37:55 -08:00
Orhun Parmaksız
500f6c5a52 chore(deps): bump fakeit to 1.3.1 (#2218)
fixes #2215
2025-11-22 14:03:16 -08:00
0xb002f0
b6588fd1fa feat: implement From<Size> for (u16, u16) (#2223) 2025-11-22 13:52:10 -08:00
Paul Harrison
c7c3498025 refactor: use saturating_add in Rect::new (#2216) 2025-11-19 21:06:27 -08:00
Matthias Beyer
b65788ce14 docs(examples): remove duplicated link (#2212) 2025-11-18 19:33:37 +03:00
dependabot[bot]
5d0a362f3e build(deps): bump crate-ci/typos from 1.39.0 to 1.39.2 (#2208)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.39.0 to
1.39.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.39.2</h2>
<h2>[1.39.2] - 2025-11-13</h2>
<h3>Fixes</h3>
<ul>
<li>Don't offer <code>entry</code> as a correction for
<code>entrys</code></li>
</ul>
<h2>v1.39.1</h2>
<h2>[1.39.1] - 2025-11-12</h2>
<h3>Features</h3>
<ul>
<li>Make <code>--help</code> more vibrant</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.39.2] - 2025-11-13</h2>
<h3>Fixes</h3>
<ul>
<li>Don't offer <code>entry</code> as a correction for
<code>entrys</code></li>
</ul>
<h2>[1.39.1] - 2025-11-12</h2>
<h3>Features</h3>
<ul>
<li>Make <code>--help</code> more vibrant</li>
</ul>
<h2>[1.39.0] - 2025-10-31</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1383">October
2025</a> changes</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>When a typo is pluralized, prefer pluralized corrections</li>
</ul>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="626c4bedb7"><code>626c4be</code></a>
chore: Release</li>
<li><a
href="c6b458db05"><code>c6b458d</code></a>
docs: Update changelog</li>
<li><a
href="eed04198a6"><code>eed0419</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1423">#1423</a>
from epage/entrys</li>
<li><a
href="40383f41a2"><code>40383f4</code></a>
fix(dict): Don't offer 'entry' as a correction for 'entrys'</li>
<li><a
href="1af53e3774"><code>1af53e3</code></a>
chore: Release</li>
<li><a
href="e5d291b81a"><code>e5d291b</code></a>
docs: Update changelog</li>
<li><a
href="55474f5ff9"><code>55474f5</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1417">#1417</a>
from starsep/colorful_help</li>
<li><a
href="78b9375950"><code>78b9375</code></a>
feat: Enable colors for typos --help</li>
<li><a
href="308f8f5788"><code>308f8f5</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1409">#1409</a>
from crate-ci/renovate/actions-download-artifact-6.x</li>
<li><a
href="cf03418f50"><code>cf03418</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1410">#1410</a>
from crate-ci/renovate/actions-setup-python-6.x</li>
<li>Additional commits viewable in <a
href="07d900b8fa...626c4bedb7">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.39.0&new-version=1.39.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-11-17 18:32:32 +03:00
dependabot[bot]
7762effd93 build(deps): bump taiki-e/install-action from 2.62.49 to 2.62.52 (#2206)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.49 to 2.62.52.
<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.52</h2>
<ul>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.113.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.5.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.3.</p>
</li>
</ul>
<h2>2.62.51</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.39.2.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.4.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.9.</p>
</li>
<li>
<p>Update <code>protoc@latest</code> to 3.33.1.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.43.1.</p>
</li>
</ul>
<h2>2.62.50</h2>
<ul>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.4.</p>
</li>
<li>
<p>Update <code>coreutils@latest</code> to 0.4.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.62.52] - 2025-11-17</h2>
<ul>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.113.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.16.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.5.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.3.</p>
</li>
</ul>
<h2>[2.62.51] - 2025-11-14</h2>
<ul>
<li>
<p>Update <code>typos@latest</code> to 1.39.2.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.4.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.9.</p>
</li>
<li>
<p>Update <code>protoc@latest</code> to 3.33.1.</p>
</li>
<li>
<p>Update <code>just@latest</code> to 1.43.1.</p>
</li>
</ul>
<h2>[2.62.50] - 2025-11-12</h2>
<ul>
<li>
<p>Update <code>wasmtime@latest</code> to 38.0.4.</p>
</li>
<li>
<p>Update <code>coreutils@latest</code> to 0.4.0.</p>
</li>
</ul>
<h2>[2.62.49] - 2025-11-09</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.11.</p>
</li>
<li>
<p>Update <code>cargo-auditable@latest</code> to 0.7.2.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.2.</p>
</li>
</ul>
<h2>[2.62.48] - 2025-11-08</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="537c30d2b4"><code>537c30d</code></a>
Release 2.62.52</li>
<li><a
href="6881535782"><code>6881535</code></a>
Update <code>cargo-nextest@latest</code> to 0.9.113</li>
<li><a
href="4b1e2228ab"><code>4b1e222</code></a>
Update <code>cargo-binstall@latest</code> to 1.16.0</li>
<li><a
href="28efaede1c"><code>28efaed</code></a>
Update <code>mise@latest</code> to 2025.11.5</li>
<li><a
href="b9f2331284"><code>b9f2331</code></a>
Update <code>cargo-shear@latest</code> to 1.6.3</li>
<li><a
href="0be4756f42"><code>0be4756</code></a>
Release 2.62.51</li>
<li><a
href="e1c1ebb6a3"><code>e1c1ebb</code></a>
Update changelog</li>
<li><a
href="d78637d17c"><code>d78637d</code></a>
Update <code>typos@latest</code> to 1.39.2</li>
<li><a
href="107556f337"><code>107556f</code></a>
Update <code>mise@latest</code> to 2025.11.4</li>
<li><a
href="2913759b20"><code>2913759</code></a>
Update <code>uv@latest</code> to 0.9.9</li>
<li>Additional commits viewable in <a
href="44c6d64aa6...537c30d2b4">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.49&new-version=2.62.52)](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-11-17 18:32:01 +03:00
dependabot[bot]
718dcd6ccb build(deps): bump dtolnay/rust-toolchain from 6d653acede28d24f02e3cd41383119e8b1b35921 to 0f44b27771c32bda9f458f75a1e241b09791b331 (#2205)
Bumps
[dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from
6d653acede28d24f02e3cd41383119e8b1b35921 to
0f44b27771c32bda9f458f75a1e241b09791b331.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0f44b27771"><code>0f44b27</code></a>
Add 1.91.1 patch release</li>
<li>See full diff in <a
href="6d653acede...0f44b27771">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-11-17 18:31:12 +03:00
Josh McKinney
1dc18bf3cf feat(calendar): add width and height functions (#2198)
Fixes https://github.com/ratatui/ratatui/issues/2016

---------

Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-11-15 16:04:46 -08:00
b-guild
90a77aaf8b feat(Direction): add Direction::perpendicular(self) (#2197) 2025-11-11 21:15:58 -08:00
dependabot[bot]
d709b0380f build(deps): bump duct from 1.1.0 to 1.1.1 (#2192)
Bumps [duct](https://github.com/oconnor663/duct.rs) from 1.1.0 to 1.1.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9414b8ff71"><code>9414b8f</code></a>
version 1.1.1</li>
<li><a
href="5436d0838b"><code>5436d08</code></a>
fix test_pipe_inheritance on macOS</li>
<li><a
href="0348c93566"><code>0348c93</code></a>
test_pipe_inheritance (failing on macOS)</li>
<li>See full diff in <a
href="https://github.com/oconnor663/duct.rs/compare/1.1.0...1.1.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=duct&package-manager=cargo&previous-version=1.1.0&new-version=1.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-11-11 11:24:09 +03:00
dependabot[bot]
f8c1006058 build(deps): bump octocrab from 0.47.0 to 0.47.1 (#2193)
[//]: # (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 [octocrab](https://github.com/XAMPPRocky/octocrab) from 0.47.0 to
0.47.1.
<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.1</h2>
<h3>Added</h3>
<ul>
<li>add missing list workflows filters (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/820">#820</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Modify <code>_put</code> method documentation (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/818">#818</a>)</li>
<li>Feature/interactions 537 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/817">#817</a>)</li>
<li>Added Feature/classrooms <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/524">#524</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/815">#815</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.47.0...v0.47.1">0.47.1</a>
- 2025-11-03</h2>
<h3>Added</h3>
<ul>
<li>add missing list workflows filters (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/820">#820</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Modify <code>_put</code> method documentation (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/818">#818</a>)</li>
<li>Feature/interactions 537 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/817">#817</a>)</li>
<li>Added Feature/classrooms <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/524">#524</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/pull/815">#815</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6e4ae2659e"><code>6e4ae26</code></a>
chore: release v0.47.1 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/816">#816</a>)</li>
<li><a
href="8114a6bc42"><code>8114a6b</code></a>
feat: add missing list workflows filters (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/820">#820</a>)</li>
<li><a
href="8918c90564"><code>8918c90</code></a>
docs: Modify <code>_put</code> method documentation (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/818">#818</a>)</li>
<li><a
href="14a95d00f4"><code>14a95d0</code></a>
Feature/interactions 537 (<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/817">#817</a>)</li>
<li><a
href="e95fc40ddd"><code>e95fc40</code></a>
Added Feature/classrooms <a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/524">#524</a>
(<a
href="https://redirect.github.com/XAMPPRocky/octocrab/issues/815">#815</a>)</li>
<li>See full diff in <a
href="https://github.com/XAMPPRocky/octocrab/compare/v0.47.0...v0.47.1">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.47.0&new-version=0.47.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-11-10 21:18:06 +03:00
dependabot[bot]
c60fc65915 build(deps): bump taiki-e/install-action from 2.62.45 to 2.62.49 (#2194)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.45 to 2.62.49.
<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.49</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.11.</p>
</li>
<li>
<p>Update <code>cargo-auditable@latest</code> to 0.7.2.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.2.</p>
</li>
</ul>
<h2>2.62.48</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.3.</p>
</li>
<li>
<p>Update <code>cargo-audit@latest</code> to 0.22.0.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.1.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.8.</p>
</li>
<li>
<p>Update <code>cargo-udeps@latest</code> to 0.1.60.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.3.</p>
</li>
</ul>
<h2>2.62.47</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.111.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.2.</p>
</li>
</ul>
<h2>2.62.46</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.5.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.37.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.2.</p>
</li>
<li>
<p>Update <code>knope@latest</code> to 0.21.5.</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>coreutils@latest</code> to 0.4.0.</li>
</ul>
<h2>[2.62.49] - 2025-11-09</h2>
<ul>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.11.</p>
</li>
<li>
<p>Update <code>cargo-auditable@latest</code> to 0.7.2.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.2.</p>
</li>
</ul>
<h2>[2.62.48] - 2025-11-08</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.3.</p>
</li>
<li>
<p>Update <code>cargo-audit@latest</code> to 0.22.0.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.1.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.8.</p>
</li>
<li>
<p>Update <code>cargo-udeps@latest</code> to 0.1.60.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.3.</p>
</li>
</ul>
<h2>[2.62.47] - 2025-11-05</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.20.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.111.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.2.</p>
</li>
</ul>
<h2>[2.62.46] - 2025-11-04</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.5.</p>
</li>
<li>
<p>Update <code>syft@latest</code> to 1.37.0.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="44c6d64aa6"><code>44c6d64</code></a>
Release 2.62.49</li>
<li><a
href="3a701df4c2"><code>3a701df</code></a>
Update <code>cargo-binstall@latest</code> to 1.15.11</li>
<li><a
href="4242e04eb8"><code>4242e04</code></a>
Update <code>cargo-auditable@latest</code> to 0.7.2</li>
<li><a
href="3df5533ef8"><code>3df5533</code></a>
Update <code>vacuum@latest</code> to 0.20.2</li>
<li><a
href="e797ba6a25"><code>e797ba6</code></a>
Release 2.62.48</li>
<li><a
href="bcf91e02ac"><code>bcf91e0</code></a>
Update <code>mise@latest</code> to 2025.11.3</li>
<li><a
href="e78113b60c"><code>e78113b</code></a>
Update <code>cargo-audit@latest</code> to 0.22.0</li>
<li><a
href="0ef486444e"><code>0ef4864</code></a>
Update <code>vacuum@latest</code> to 0.20.1</li>
<li><a
href="5eda7b1985"><code>5eda7b1</code></a>
Update <code>uv@latest</code> to 0.9.8</li>
<li><a
href="3853a413e6"><code>3853a41</code></a>
Update <code>cargo-udeps@latest</code> to 0.1.60</li>
<li>Additional commits viewable in <a
href="81ee1d48d9...44c6d64aa6">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.45&new-version=2.62.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-11-10 20:37:50 +03:00
dependabot[bot]
6c2f276d1c build(deps): bump trybuild from 1.0.113 to 1.0.114 (#2191)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.113 to
1.0.114.
<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.114</h2>
<ul>
<li>Normalize indentation of rustc suggestion lines (<a
href="https://redirect.github.com/dtolnay/trybuild/issues/319">#319</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="51f9418017"><code>51f9418</code></a>
Release 1.0.114</li>
<li><a
href="b4f6299028"><code>b4f6299</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/trybuild/issues/319">#319</a>
from dtolnay/suggestion</li>
<li><a
href="781a773986"><code>781a773</code></a>
Normalize indentation of rustc suggestion lines</li>
<li><a
href="c610b402ae"><code>c610b40</code></a>
Add test that reproduces misalignment of help under note</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.113...1.0.114">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.113&new-version=1.0.114)](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-11-10 20:37:06 +03:00
dependabot[bot]
4cb1b06371 build(deps): bump rust-lang/crates-io-auth-action from 1.0.2 to 1.0.3 (#2195)
Bumps
[rust-lang/crates-io-auth-action](https://github.com/rust-lang/crates-io-auth-action)
from 1.0.2 to 1.0.3.
<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.3</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): update dependency eslint to v9.38.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/88">rust-lang/crates-io-auth-action#88</a></li>
<li>chore(deps): update dependency msw to v2.11.6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/89">rust-lang/crates-io-auth-action#89</a></li>
<li>chore(deps): update dependency typescript-eslint to v8.46.2 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/90">rust-lang/crates-io-auth-action#90</a></li>
<li>refactor: Migrate from tsup to tsdown 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/92">rust-lang/crates-io-auth-action#92</a></li>
<li>chore(deps): update dependency typescript-eslint to v8.46.3 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/97">rust-lang/crates-io-auth-action#97</a></li>
<li>chore(deps): update dependency globals to v16.5.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/96">rust-lang/crates-io-auth-action#96</a></li>
<li>chore(deps): update dependency msw to v2.12.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/98">rust-lang/crates-io-auth-action#98</a></li>
<li>chore(deps): update lycheeverse/lychee-action action to v2.7.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/94">rust-lang/crates-io-auth-action#94</a></li>
<li>chore(deps): update dependency eslint to v9.39.1 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/93">rust-lang/crates-io-auth-action#93</a></li>
<li>chore(deps): update dependency vitest to v4 by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/91">rust-lang/crates-io-auth-action#91</a></li>
<li>update tsdown to version 0.16 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/100">rust-lang/crates-io-auth-action#100</a></li>
<li>chore(deps): lock file maintenance by <a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot] in
<a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/pull/95">rust-lang/crates-io-auth-action#95</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/crates-io-auth-action/compare/v1.0.2...v1.0.3">https://github.com/rust-lang/crates-io-auth-action/compare/v1.0.2...v1.0.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7e9a28ede"><code>b7e9a28</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/95">#95</a>
from rust-lang/renovate/lock-file-maintenance</li>
<li><a
href="7ac4f7f0b8"><code>7ac4f7f</code></a>
chore(deps): lock file maintenance</li>
<li><a
href="eeaaca05a4"><code>eeaaca0</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/100">#100</a>
from rust-lang/update-tsdown-to-version-0-16</li>
<li><a
href="9002361790"><code>9002361</code></a>
update tsdown to version 0.16</li>
<li><a
href="a06c97ab62"><code>a06c97a</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/91">#91</a>
from rust-lang/renovate/major-vitest-monorepo</li>
<li><a
href="2d6d1934da"><code>2d6d193</code></a>
chore(deps): update dependency vitest to v4</li>
<li><a
href="5c091fa7bf"><code>5c091fa</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/93">#93</a>
from rust-lang/renovate/eslint-monorepo</li>
<li><a
href="14c141348e"><code>14c1413</code></a>
chore(deps): update dependency eslint to v9.39.1</li>
<li><a
href="8a0dbdbd2a"><code>8a0dbdb</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/94">#94</a>
from rust-lang/renovate/github-actions</li>
<li><a
href="2c172cf087"><code>2c172cf</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/crates-io-auth-action/issues/96">#96</a>
from rust-lang/renovate/globals-16.x-lockfile</li>
<li>Additional commits viewable in <a
href="041cce5b4b...b7e9a28ede">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.2&new-version=1.0.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-11-10 20:24:05 +03:00
dependabot[bot]
09b943d5b9 build(deps): bump crate-ci/typos from 1.38.1 to 1.39.0 (#2181)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.38.1 to
1.39.0.
<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.39.0</h2>
<h2>[1.39.0] - 2025-10-31</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1383">October
2025</a> changes</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>When a typo is pluralized, prefer pluralized corrections</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.39.0] - 2025-10-31</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1383">October
2025</a> changes</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>When a typo is pluralized, prefer pluralized corrections</li>
</ul>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="07d900b8fa"><code>07d900b</code></a>
chore: Release</li>
<li><a
href="fcce1f892d"><code>fcce1f8</code></a>
chore: Release</li>
<li><a
href="85692fd91b"><code>85692fd</code></a>
docs: Update changelog</li>
<li><a
href="da7527cc35"><code>da7527c</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1406">#1406</a>
from epage/oct</li>
<li><a
href="9046b5b2e9"><code>9046b5b</code></a>
feat(dict): October additions</li>
<li><a
href="9a86c0a0c0"><code>9a86c0a</code></a>
docs: Update screenshot</li>
<li>See full diff in <a
href="80c8a4945e...07d900b8fa">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.38.1&new-version=1.39.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 <orhunparmaksiz@gmail.com>
2025-11-03 18:41:31 +03:00
dependabot[bot]
ad56456e23 build(deps): bump taiki-e/install-action from 2.62.38 to 2.62.45 (#2182)
Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.38 to 2.62.45.
<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.45</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.2.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.10.</p>
</li>
<li>
<p>Update <code>ubi@latest</code> to 0.8.4.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.1.</p>
</li>
<li>
<p>Update <code>cargo-semver-checks@latest</code> to 0.45.0.</p>
</li>
</ul>
<h2>2.62.44</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.110.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.39.0.</p>
</li>
</ul>
<h2>2.62.43</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.9.7.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.21.</p>
</li>
</ul>
<h2>2.62.42</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.20.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.109.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.4.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.6.</p>
</li>
</ul>
<h2>2.62.41</h2>
<ul>
<li>
<p>Update <code>osv-scanner@latest</code> to 2.2.4.</p>
</li>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.1.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.2.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.19.</p>
</li>
</ul>
<h2>2.62.40</h2>
<ul>
<li>Update <code>wasm-bindgen@latest</code> to 0.2.105.</li>
</ul>
<h2>2.62.39</h2>
<ul>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.1.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.6.1.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.9.</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>
<h2>[2.62.45] - 2025-11-02</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.16.2.</p>
</li>
<li>
<p>Update <code>cargo-binstall@latest</code> to 1.15.10.</p>
</li>
<li>
<p>Update <code>ubi@latest</code> to 0.8.4.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.11.1.</p>
</li>
<li>
<p>Update <code>cargo-semver-checks@latest</code> to 0.45.0.</p>
</li>
</ul>
<h2>[2.62.44] - 2025-11-01</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.11.0.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.110.</p>
</li>
<li>
<p>Update <code>typos@latest</code> to 1.39.0.</p>
</li>
</ul>
<h2>[2.62.43] - 2025-10-31</h2>
<ul>
<li>
<p>Update <code>uv@latest</code> to 0.9.7.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.10.21.</p>
</li>
</ul>
<h2>[2.62.42] - 2025-10-30</h2>
<ul>
<li>
<p>Update <code>mise@latest</code> to 2025.10.20.</p>
</li>
<li>
<p>Update <code>cargo-nextest@latest</code> to 0.9.109.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.19.4.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.6.</p>
</li>
</ul>
<h2>[2.62.41] - 2025-10-29</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="81ee1d48d9"><code>81ee1d4</code></a>
Release 2.62.45</li>
<li><a
href="7e77e5bd52"><code>7e77e5b</code></a>
Update <code>zizmor@latest</code> to 1.16.2</li>
<li><a
href="cbe581c5e1"><code>cbe581c</code></a>
Update <code>cargo-binstall@latest</code> to 1.15.10</li>
<li><a
href="f545311470"><code>f545311</code></a>
Update <code>ubi@latest</code> to 0.8.4</li>
<li><a
href="83d4502be0"><code>83d4502</code></a>
Update <code>mise@latest</code> to 2025.11.1</li>
<li><a
href="2daecf63c1"><code>2daecf6</code></a>
Update <code>cargo-semver-checks@latest</code> to 0.45.0</li>
<li><a
href="47be02f2de"><code>47be02f</code></a>
Release 2.62.44</li>
<li><a
href="5f7c916518"><code>5f7c916</code></a>
Update <code>mise@latest</code> to 2025.11.0</li>
<li><a
href="3e60733ebb"><code>3e60733</code></a>
Update <code>cargo-nextest@latest</code> to 0.9.110</li>
<li><a
href="2ef505df34"><code>2ef505d</code></a>
Update <code>typos@latest</code> to 1.39.0</li>
<li>Additional commits viewable in <a
href="c5b1b6f479...81ee1d48d9">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.38&new-version=2.62.45)](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-11-03 18:34:59 +03:00
dependabot[bot]
6957bce264 build(deps): bump clap from 4.5.50 to 4.5.51 (#2185)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.50 to 4.5.51.
<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.51</h2>
<h2>[4.5.51] - 2025-10-29</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Correctly calculate padding for short flags that
take a value</li>
<li><em>(help)</em> Don't panic on short flags using
<code>ArgAction::Count</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.51] - 2025-10-29</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Correctly calculate padding for short flags that
take a value</li>
<li><em>(help)</em> Don't panic on short flags using
<code>ArgAction::Count</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b49dae25ec"><code>b49dae2</code></a>
chore: Release</li>
<li><a
href="d37b0b57ab"><code>d37b0b5</code></a>
docs: Update changelog</li>
<li><a
href="3398b6ab10"><code>3398b6a</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6009">#6009</a>
from gtema/complete_try_generate</li>
<li><a
href="21fc9e46d4"><code>21fc9e4</code></a>
feat(clap-complete): Introduce fallible generator</li>
<li><a
href="bd01bdc0ff"><code>bd01bdc</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6012">#6012</a>
from epage/sub</li>
<li><a
href="ed0c63deba"><code>ed0c63d</code></a>
docs(derive): Specify arg_required_else_help is set for users</li>
<li><a
href="e2188d9af3"><code>e2188d9</code></a>
chore(deps): Update Rust Stable to v1.87 (<a
href="https://redirect.github.com/clap-rs/clap/issues/6004">#6004</a>)</li>
<li><a
href="e01f2b7640"><code>e01f2b7</code></a>
docs: Cleanup unused links</li>
<li><a
href="6b12a81baf"><code>6b12a81</code></a>
chore: Release</li>
<li><a
href="8dd92a792d"><code>8dd92a7</code></a>
docs: Update changelog</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.50...clap_complete-v4.5.51">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.50&new-version=4.5.51)](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-11-03 18:34:29 +03:00
dependabot[bot]
06f0c67131 build(deps): bump trybuild from 1.0.112 to 1.0.113 (#2184)
Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.112 to
1.0.113.
<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.113</h2>
<ul>
<li>Update <code>target-triple</code> dependency to v1</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f224ff80dc"><code>f224ff8</code></a>
Release 1.0.113</li>
<li><a
href="f19d0bd11d"><code>f19d0bd</code></a>
Update target-triple dependency to v1</li>
<li>See full diff in <a
href="https://github.com/dtolnay/trybuild/compare/1.0.112...1.0.113">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.112&new-version=1.0.113)](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-11-03 18:34:08 +03:00
dependabot[bot]
f10a9e8308 build(deps): bump kasuari from 0.4.9 to 0.4.10 (#2183)
Bumps [kasuari](https://github.com/ratatui/kasuari) from 0.4.9 to
0.4.10.
<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.10</h2>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump thiserror from 2.0.16 to 2.0.17 in the
rust-dependencies group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/36">#36</a>)</li>
<li><em>(features)</em> improve feature flags docs (<a
href="https://redirect.github.com/ratatui/kasuari/pull/35">#35</a>)</li>
<li>Fixed a bug that lead to the leaking of <code>Symbol</code>s in the
objective function. (<a
href="https://redirect.github.com/ratatui/kasuari/pull/37">#37</a>)</li>
<li>Bump MSRV to 1.85 to use clamp functions in const context (<a
href="https://redirect.github.com/ratatui/kasuari/pull/39">#39</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>bump the MSRV to 1.85 and rely on the standard
<code>f64::clamp</code> in const contexts</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.9...v0.4.10">0.4.10</a>
- 2025-11-02</h2>
<h3>Other</h3>
<ul>
<li><em>(deps)</em> bump thiserror from 2.0.16 to 2.0.17 in the
rust-dependencies group (<a
href="https://redirect.github.com/ratatui/kasuari/pull/36">#36</a>)</li>
<li><em>(features)</em> improve feature flags docs (<a
href="https://redirect.github.com/ratatui/kasuari/pull/35">#35</a>)</li>
<li>Fixed a bug that lead to the leaking of <code>Symbol</code>s in the
objective function. (<a
href="https://redirect.github.com/ratatui/kasuari/pull/37">#37</a>)</li>
<li>Bump MSRV to 1.85 to use clamp functions in const context (<a
href="https://redirect.github.com/ratatui/kasuari/pull/39">#39</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>bump the MSRV to 1.85 and rely on the standard
<code>f64::clamp</code> in const contexts</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="20e044f28d"><code>20e044f</code></a>
chore: release v0.4.10 (<a
href="https://redirect.github.com/ratatui/kasuari/issues/40">#40</a>)</li>
<li><a
href="3365fcfa78"><code>3365fcf</code></a>
build(deps): bump thiserror from 2.0.16 to 2.0.17 in the
rust-dependencies gr...</li>
<li><a
href="0dabc89b59"><code>0dabc89</code></a>
docs(features): improve feature flags docs (<a
href="https://redirect.github.com/ratatui/kasuari/issues/35">#35</a>)</li>
<li><a
href="c9689a278c"><code>c9689a2</code></a>
Fixed a bug that lead to the leaking of <code>Symbol</code>s in the
objective function. ...</li>
<li><a
href="1c16c27ef5"><code>1c16c27</code></a>
Bump MSRV to 1.85 to use clamp functions in const context (<a
href="https://redirect.github.com/ratatui/kasuari/issues/39">#39</a>)</li>
<li>See full diff in <a
href="https://github.com/ratatui/kasuari/compare/v0.4.9...v0.4.10">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.9&new-version=0.4.10)](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-11-03 18:33:39 +03:00
Josh McKinney
4c3c0540cd feat(serde): Handle null modifiers in serde Style (#2172)
Allow `Style`'s `add_modifier` and `sub_modifier` fields to
deserialize from `null`
2025-11-01 17:47:56 -07:00
Josh McKinney
f919b25ea6 fix: string_to_string lint is now part of implicit_clone (#2173) 2025-11-02 00:48:44 +01:00
Orhun Parmaksız
714c6584c3 chore(workspace): use ratatui dependency from the workspace (#2169)
Fix #2166
2025-11-01 15:55:40 -07:00
Orhun Parmaksız
3812f69997 chore(cargo): update the documentation metadata for crates (#2170)
also follows the same format for the entries (`name` -> `version` ->
`description` -> etc. in order)
2025-11-01 12:36:37 -07:00
Orhun Parmaksız
16b76e36ee fix(demo): update the width of demo2 tape (#2164)
![](https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif?raw=true)

fixes #1721
2025-11-01 14:00:11 +03:00
48 changed files with 1918 additions and 624 deletions

View File

@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Check semver

View File

@@ -29,15 +29,15 @@ jobs:
name: Check Formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: nightly
components: rustfmt
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: taplo-cli
- run: cargo xtask format --check
@@ -48,27 +48,32 @@ jobs:
name: Check Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: crate-ci/typos@80c8a4945eec0f6d464eaf9e65ed98ef085283d1 # master
- uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06 # master
# Check for any disallowed dependencies in the codebase due to license / security issues.
# See <https://github.com/EmbarkStudios/cargo-deny>
dependencies:
name: Check Dependencies
cargo-deny:
runs-on: ubuntu-latest
strategy:
matrix:
checks:
- advisories
- bans licenses sources
# Prevent sudden announcement of a new advisory from failing ci:
continue-on-error: ${{ matrix.checks == 'advisories' }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: EmbarkStudios/cargo-deny-action@76cd80eb775d7bbbd2d80292136d74d39e1b4918 # v2
with:
toolchain: stable
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
with:
tool: cargo-deny
- run: cargo deny --log-level info --all-features check
rust-toolchain: stable
log-level: info
arguments: --all-features --exclude-unpublished
command: check ${{ matrix.checks }}
# Check for any unused dependencies in the codebase.
# See <https://github.com/bnjbvr/cargo-machete/>
@@ -76,7 +81,7 @@ jobs:
name: Check Unused Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: bnjbvr/cargo-machete@7959c845782fed02ee69303126d4a12d64f1db18 # v0.9.1
@@ -95,14 +100,14 @@ jobs:
toolchain: ["stable", "beta"]
continue-on-error: ${{ matrix.toolchain == 'beta' }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: ${{ matrix.toolchain }}
components: clippy
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask clippy
env:
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
@@ -112,10 +117,10 @@ jobs:
name: Check Markdown
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: DavidAnson/markdownlint-cli2-action@992badcdf24e3b8eb7e87ff9287fe931bcb00c6e # v20
- uses: DavidAnson/markdownlint-cli2-action@07035fd053f7be764496c0f8d8f9f41f98305101 # v21
with:
globs: |
'**/*.md'
@@ -127,19 +132,19 @@ jobs:
name: Coverage Report
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
components: llvm-tools
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: cargo-llvm-cov
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask coverage
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5
- uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
@@ -151,19 +156,19 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
toolchain: ["1.85.0", "stable"]
toolchain: ["1.86.0", "stable"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: ${{ matrix.toolchain }}
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask check --all-features
env:
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
@@ -172,14 +177,14 @@ jobs:
name: Build No-Std
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
targets: x86_64-unknown-none
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # 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
@@ -195,11 +200,11 @@ jobs:
name: Check README
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: cargo-rdme
- run: cargo xtask readme --check
@@ -212,19 +217,19 @@ jobs:
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: nightly
- uses: dtolnay/install@74f735cdf643820234e37ae1c4089a08fd266d8a # master
with:
crate: cargo-docs-rs
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask docs
# Run cargo test on the documentation of the crate. This will catch any code examples that don't
@@ -233,16 +238,16 @@ jobs:
name: Test Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask test-docs
# Run cargo test on the libraries of the crate.
@@ -252,18 +257,18 @@ jobs:
strategy:
fail-fast: false
matrix:
toolchain: ["1.85.0", "stable"]
toolchain: ["1.86.0", "stable"]
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
- uses: taiki-e/install-action@d850aa816998e5cf15f67a78c7b933f2a5033f8a # v2
with:
tool: cargo-hack
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask test-libs
# Run cargo test on all the backends.
@@ -280,11 +285,11 @@ jobs:
- os: windows-latest
backend: termion
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
- uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- run: cargo xtask test-backend ${{ matrix.backend }}

View File

@@ -23,18 +23,18 @@ jobs:
if: ${{ github.repository_owner == 'ratatui' }}
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
- uses: rust-lang/crates-io-auth-action@041cce5b4b821e6b0ebc9c9c38b58cac4e34dcc2 # v1
- uses: rust-lang/crates-io-auth-action@b7e9a28eded4986ec6b1fa40eeee8f8f165559ec # v1
id: auth
- name: Run release-plz
uses: release-plz/action@d529f731ae3e89610ada96eda34e5c6ba3b12214 # v0.5
uses: release-plz/action@487eb7b5c085a664d5c5ca05f4159bd9b591182a # v0.5
with:
command: release
env:
@@ -54,16 +54,16 @@ jobs:
cancel-in-progress: false
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
uses: dtolnay/rust-toolchain@0b1efabc08b657293548b77fb76cc02d26091c7e # master
with:
toolchain: stable
- name: Run release-plz
uses: release-plz/action@d529f731ae3e89610ada96eda34e5c6ba3b12214 # v0.5
uses: release-plz/action@487eb7b5c085a664d5c5ca05f4159bd9b591182a # v0.5
with:
command: release-pr
env:

View File

@@ -18,9 +18,9 @@ jobs:
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Run zizmor 🌈
uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0
uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0

View File

@@ -18,7 +18,7 @@ This is a quick summary of the sections below:
- `FrameExt` trait for `unstable-widget-ref` feature
- `List::highlight_symbol` now accepts `Into<Line>` instead of `&str`
- 'layout::Alignment' is renamed to 'layout::HorizontalAlignment'
- The MSRV is now 1.85.0
- MSRV is now 1.86.0
- `Backend` now requires an associated `Error` type and `clear_region` method
- `TestBackend` now uses `core::convert::Infallible` for error handling instead of `std::io::Error`
- Disabling `default-features` will now disable layout cache, which can have a negative impact on performance
@@ -27,6 +27,9 @@ This is a quick summary of the sections below:
- Disabling `default-features` suppresses the error message if `show_cursor()` fails when dropping
`Terminal`
- Support a broader range for `unicode-width` version
- `Marker` is now non-exhaustive
- `symbols::braille::BLANK` and `symbols::braille::DOTS` have been removed in favor of an ordered
array of all Braille characters
- [v0.29.0](#v0290)
- `Sparkline::data` takes `IntoIterator<Item = SparklineBar>` instead of `&[u64]` and is no longer
const
@@ -92,6 +95,24 @@ This is a quick summary of the sections below:
## v0.30.0 Unreleased
### `Marker` is now non-exhaustive ([#2236])
[#2236]: https://github.com/ratatui/ratatui/pull/2236
The `Marker` enum is now marked as `#[non_exhaustive]`, if you were matching on `Marker` exhaustively,
you will need to add a wildcard arm:
```diff
match marker {
Marker::Dot => { /* ... */ }
Marker::Block => { /* ... */ }
Marker::Bar => { /* ... */ }
Marker::Braille => { /* ... */ }
Marker::HalfBlock => { /* ... */ }
+ _ => { /* ... */ }
}
```
### `Flex::SpaceAround` now mirrors flexbox: space between items is twice the size of the outer gaps ([#1952])
[#1952]: https://github.com/ratatui/ratatui/pull/1952
@@ -235,11 +256,11 @@ instead.
+ fn run(mut terminal: DefaultTerminal) -> io::Result<()> {
```
### The MSRV is now 1.85.0 ([#1860])
### MSRV is now 1.86.0 ([#2230])
[#1860]: https://github.com/ratatui/ratatui/pull/1860
[#2230]: https://github.com/ratatui/ratatui/pull/2230
The minimum supported Rust version (MSRV) is now 1.85.0.
The minimum supported Rust version (MSRV) is now 1.86.0.
### `layout::Alignment` is renamed to `layout::HorizontalAlignment` ([#1735])
@@ -1087,7 +1108,7 @@ previously did not need to use type annotations to fail to compile. To fix this,
[#133]: https://github.com/ratatui/ratatui/issues/133
Code using the `Block` marker that previously rendered using a half block character (`'▀'``) now
Code using the `Block` marker that previously rendered using a half block character (`'▀'`) now
renders using the full block character (`'█'`). A new marker variant`Bar` is introduced to replace
the existing code.

View File

@@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file.
<!-- ignore lint rules that are often triggered by content generated from commits / git-cliff -->
<!-- markdownlint-disable line-length no-bare-urls ul-style emphasis-style -->
## [v0.30.0-beta.0](https://github.com/ratatui/ratatui/releases/tag/v0.30.0-beta.0) - 2025-10-28
> _"Rats don't just survive; they discover; they create. ... I mean, just look at what they do with

738
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,7 @@ readme = "README.md"
license = "MIT"
exclude = ["assets/*", ".github", "Makefile.toml", "CONTRIBUTING.md", "*.log", "tags"]
edition = "2024"
rust-version = "1.85.0"
rust-version = "1.86.0"
[workspace.dependencies]
anstyle = "1"
@@ -33,7 +33,7 @@ bitflags = "2.10"
clap = { version = "4.5", features = ["derive"] }
color-eyre = "0.6"
compact_str = { version = "0.9", default-features = false }
criterion = { version = "0.7", features = ["html_reports"] }
criterion = { version = "0.8", features = ["html_reports"] }
crossterm = "0.29"
document-features = "0.2"
fakeit = "1"
@@ -45,18 +45,18 @@ itertools = { version = "0.14", default-features = false, features = ["use_alloc
kasuari = { version = "0.4", default-features = false }
line-clipping = "0.3"
lru = "0.16"
octocrab = "0.47"
octocrab = "0.49"
palette = "0.7"
pretty_assertions = "1"
rand = "0.9"
rand_chacha = "0.9"
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" }
ratatui = { path = "ratatui", version = "0.30.0-beta.1" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-beta.1" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-beta.1" }
ratatui-macros = { path = "ratatui-macros", version = "0.7.0-beta.1" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-beta.1" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-beta.1" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-beta.1" }
rstest = "0.26"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
@@ -107,6 +107,7 @@ empty_line_after_doc_comments = "warn"
equatable_if_let = "warn"
fn_to_numeric_cast_any = "warn"
format_push_string = "warn"
implicit_clone = "warn"
map_err_ignore = "warn"
missing_const_for_fn = "warn"
mixed_read_write_in_expression = "warn"
@@ -118,6 +119,5 @@ redundant_type_annotations = "warn"
rest_pat_in_fully_bound_structs = "warn"
string_lit_chars_any = "warn"
string_slice = "warn"
string_to_string = "warn"
unnecessary_self_imports = "warn"
use_self = "warn"

View File

@@ -206,7 +206,7 @@ Shows how to use the [tracing](https://crates.io/crates/tracing) crate to log to
## User Input
Shows how to handle user input. [Source](./apps/user-input/). [Source](./apps/user-input/).
Shows how to handle user input. [Source](./apps/user-input/).
![User input demo][user-input.gif]

View File

@@ -122,8 +122,12 @@ impl App {
Marker::Dot => Marker::Braille,
Marker::Braille => Marker::Block,
Marker::Block => Marker::HalfBlock,
Marker::HalfBlock => Marker::Bar,
Marker::HalfBlock => Marker::Quadrant,
Marker::Quadrant => Marker::Sextant,
Marker::Sextant => Marker::Octant,
Marker::Octant => Marker::Bar,
Marker::Bar => Marker::Dot,
_ => unreachable!(),
};
}

View File

@@ -123,9 +123,9 @@ impl InputForm {
frame.render_widget(&self.age, age_area);
let cursor_position = match self.focus {
Focus::FirstName => first_name_area.offset(self.first_name.cursor_offset()),
Focus::LastName => last_name_area.offset(self.last_name.cursor_offset()),
Focus::Age => age_area.offset(self.age.cursor_offset()),
Focus::FirstName => first_name_area + self.first_name.cursor_offset(),
Focus::LastName => last_name_area + self.last_name.cursor_offset(),
Focus::Age => age_area + self.age.cursor_offset(),
};
frame.set_cursor_position(cursor_position);
}

View File

@@ -6,7 +6,8 @@ Set Theme "Aardvark Blue"
# 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 Width 1120
# Please note that based on the width the demo may wrap and look corrupted.
Set Width 1160
Set Height 480
Set Padding 0
Hide

View File

@@ -1,13 +1,13 @@
[package]
name = "ratatui-core"
version = "0.1.0-beta.1"
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-beta.0"
documentation = "https://docs.rs/ratatui-core"
readme = "README.md"
authors.workspace = true
documentation.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true

View File

@@ -216,6 +216,9 @@ impl Buffer {
///
/// Global coordinates are offset by the Buffer's area offset (`x`/`y`).
///
/// Usage discouraged, as it exposes `self.content` as a linearly indexable array, which limits
/// potential future abstractions. See <https://github.com/ratatui/ratatui/issues/1122>.
///
/// # Examples
///
/// ```
@@ -269,10 +272,13 @@ impl Buffer {
Some(y * width + x)
}
/// Returns the (global) coordinates of a cell given its index
/// Returns the (global) coordinates of a cell given its index.
///
/// Global coordinates are offset by the Buffer's area offset (`x`/`y`).
///
/// Usage discouraged, as it exposes `self.content` as a linearly indexable array, which limits
/// potential future abstractions. See <https://github.com/ratatui/ratatui/issues/1122>.
///
/// # Examples
///
/// ```

View File

@@ -316,6 +316,7 @@ mod direction;
mod flex;
mod layout;
mod margin;
mod offset;
mod position;
mod rect;
mod size;
@@ -326,6 +327,7 @@ pub use direction::Direction;
pub use flex::Flex;
pub use layout::{Layout, Spacing};
pub use margin::Margin;
pub use offset::Offset;
pub use position::Position;
pub use rect::{Columns, Offset, Positions, Rect, Rows};
pub use rect::{Columns, Positions, Rect, Rows};
pub use size::Size;

View File

@@ -12,11 +12,27 @@ use strum::{Display, EnumString};
#[derive(Debug, Default, Display, EnumString, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum Direction {
/// Layout segments are arranged side by side (left to right).
Horizontal,
/// Layout segments are arranged top to bottom (default).
#[default]
Vertical,
}
impl Direction {
/// The perpendicular direction to this direction.
///
/// `Horizontal` returns `Vertical`, and `Vertical` returns `Horizontal`.
#[inline]
#[must_use = "returns the perpendicular direction"]
pub const fn perpendicular(self) -> Self {
match self {
Self::Horizontal => Self::Vertical,
Self::Vertical => Self::Horizontal,
}
}
}
#[cfg(test)]
mod tests {
use alloc::string::ToString;
@@ -37,4 +53,11 @@ mod tests {
assert_eq!("Vertical".parse::<Direction>(), Ok(Direction::Vertical));
assert_eq!("".parse::<Direction>(), Err(ParseError::VariantNotFound));
}
#[test]
fn other() {
use Direction::*;
assert_eq!(Horizontal.perpendicular(), Vertical);
assert_eq!(Vertical.perpendicular(), Horizontal);
}
}

View File

@@ -0,0 +1,66 @@
use crate::layout::Position;
/// Amounts by which to move a [`Rect`](crate::layout::Rect).
///
/// Positive numbers move to the right/bottom and negative to the left/top.
///
/// See [`Rect::offset`](crate::layout::Rect::offset) for usage.
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Offset {
/// How much to move on the X axis
pub x: i32,
/// How much to move on the Y axis
pub y: i32,
}
impl Offset {
/// A zero offset
pub const ZERO: Self = Self::new(0, 0);
/// The minimum offset
pub const MIN: Self = Self::new(i32::MIN, i32::MIN);
/// The maximum offset
pub const MAX: Self = Self::new(i32::MAX, i32::MAX);
/// Creates a new `Offset` with the given values.
pub const fn new(x: i32, y: i32) -> Self {
Self { x, y }
}
}
impl From<Position> for Offset {
fn from(position: Position) -> Self {
Self {
x: i32::from(position.x),
y: i32::from(position.y),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn new_sets_components() {
assert_eq!(Offset::new(-3, 7), Offset { x: -3, y: 7 });
}
#[test]
fn constants_match_expected_values() {
assert_eq!(Offset::ZERO, Offset::new(0, 0));
assert_eq!(Offset::MIN, Offset::new(i32::MIN, i32::MIN));
assert_eq!(Offset::MAX, Offset::new(i32::MAX, i32::MAX));
}
#[test]
fn from_position_converts_coordinates() {
let position = Position::new(4, 9);
let offset = Offset::from(position);
assert_eq!(offset, Offset::new(4, 9));
}
}

View File

@@ -1,7 +1,8 @@
#![warn(missing_docs)]
use core::fmt;
use core::ops::{Add, AddAssign, Sub, SubAssign};
use crate::layout::Rect;
use crate::layout::{Offset, Rect};
/// Position in the terminal coordinate system.
///
@@ -23,10 +24,18 @@ use crate::layout::Rect;
/// - [`from(Rect)`](Self::from) - Create from [`Rect`] (uses top-left corner)
/// - [`into((u16, u16))`] - Convert to `(u16, u16)` tuple
///
/// # Movement
///
/// - [`offset`](Self::offset) - Move by an [`Offset`]
/// - [`Add<Offset>`](core::ops::Add) and [`Sub<Offset>`](core::ops::Sub) - Shift by offsets with
/// clamping
/// - [`AddAssign<Offset>`](core::ops::AddAssign) and [`SubAssign<Offset>`](core::ops::SubAssign) -
/// In-place shifting
///
/// # Examples
///
/// ```
/// use ratatui_core::layout::{Position, Rect};
/// use ratatui_core::layout::{Offset, Position, Rect};
///
/// // the following are all equivalent
/// let position = Position { x: 1, y: 2 };
@@ -36,6 +45,10 @@ use crate::layout::Rect;
///
/// // position can be converted back into the components when needed
/// let (x, y) = position.into();
///
/// // movement by offsets
/// let position = Position::new(5, 5) + Offset::new(2, -3);
/// assert_eq!(position, Position::new(7, 2));
/// ```
///
/// For comprehensive layout documentation and examples, see the [`layout`](crate::layout) module.
@@ -57,12 +70,27 @@ pub struct Position {
impl Position {
/// Position at the origin, the top left edge at 0,0
pub const ORIGIN: Self = Self { x: 0, y: 0 };
pub const ORIGIN: Self = Self::new(0, 0);
/// Position at the minimum x and y values
pub const MIN: Self = Self::ORIGIN;
/// Position at the maximum x and y values
pub const MAX: Self = Self::new(u16::MAX, u16::MAX);
/// Create a new position
pub const fn new(x: u16, y: u16) -> Self {
Self { x, y }
}
/// Moves the position by the given offset.
///
/// Positive offsets move right and down, negative offsets move left and up. Values that would
/// move the position outside the `u16` range are clamped to the nearest edge.
#[must_use = "method returns the modified value"]
pub fn offset(self, offset: Offset) -> Self {
self + offset
}
}
impl From<(u16, u16)> for Position {
@@ -89,6 +117,68 @@ impl fmt::Display for Position {
}
}
impl Add<Offset> for Position {
type Output = Self;
/// Moves the position by the given offset.
///
/// Values that would move the position outside the `u16` range are clamped to the nearest
/// edge.
fn add(self, offset: Offset) -> Self {
let max = i32::from(u16::MAX);
let x = i32::from(self.x).saturating_add(offset.x).clamp(0, max) as u16;
let y = i32::from(self.y).saturating_add(offset.y).clamp(0, max) as u16;
Self { x, y }
}
}
impl Add<Position> for Offset {
type Output = Position;
/// Moves the position by the given offset.
///
/// Values that would move the position outside the `u16` range are clamped to the nearest
/// edge.
fn add(self, position: Position) -> Position {
position + self
}
}
impl Sub<Offset> for Position {
type Output = Self;
/// Moves the position by the inverse of the given offset.
///
/// Values that would move the position outside the `u16` range are clamped to the nearest
/// edge.
fn sub(self, offset: Offset) -> Self {
let max = i32::from(u16::MAX);
let x = i32::from(self.x).saturating_sub(offset.x).clamp(0, max) as u16;
let y = i32::from(self.y).saturating_sub(offset.y).clamp(0, max) as u16;
Self { x, y }
}
}
impl AddAssign<Offset> for Position {
/// Moves the position in place by the given offset.
///
/// Values that would move the position outside the `u16` range are clamped to the nearest
/// edge.
fn add_assign(&mut self, offset: Offset) {
*self = *self + offset;
}
}
impl SubAssign<Offset> for Position {
/// Moves the position in place by the inverse of the given offset.
///
/// Values that would move the position outside the `u16` range are clamped to the nearest
/// edge.
fn sub_assign(&mut self, offset: Offset) {
*self = *self - offset;
}
}
#[cfg(test)]
mod tests {
use alloc::string::ToString;
@@ -98,15 +188,15 @@ mod tests {
#[test]
fn new() {
let position = Position::new(1, 2);
assert_eq!(position.x, 1);
assert_eq!(position.y, 2);
assert_eq!(position, Position { x: 1, y: 2 });
}
#[test]
fn from_tuple() {
let position = Position::from((1, 2));
assert_eq!(position.x, 1);
assert_eq!(position.y, 2);
assert_eq!(position, Position { x: 1, y: 2 });
}
#[test]
@@ -121,8 +211,8 @@ mod tests {
fn from_rect() {
let rect = Rect::new(1, 2, 3, 4);
let position = Position::from(rect);
assert_eq!(position.x, 1);
assert_eq!(position.y, 2);
assert_eq!(position, Position { x: 1, y: 2 });
}
#[test]
@@ -130,4 +220,34 @@ mod tests {
let position = Position::new(1, 2);
assert_eq!(position.to_string(), "(1, 2)");
}
#[test]
fn offset_moves_position() {
let position = Position::new(2, 3).offset(Offset::new(5, 7));
assert_eq!(position, Position::new(7, 10));
}
#[test]
fn offset_clamps_to_bounds() {
let position = Position::new(1, 1).offset(Offset::MAX);
assert_eq!(position, Position::MAX);
}
#[test]
fn add_and_subtract_offset() {
let position = Position::new(10, 10) + Offset::new(-3, 4) - Offset::new(5, 20);
assert_eq!(position, Position::new(2, 0));
}
#[test]
fn add_assign_and_sub_assign_offset() {
let mut position = Position::new(5, 5);
position += Offset::new(2, 3);
position -= Offset::new(10, 1);
assert_eq!(position, Position::new(0, 7));
}
}

View File

@@ -3,10 +3,11 @@ use core::array::TryFromSliceError;
use core::cmp::{max, min};
use core::fmt;
use crate::layout::{Margin, Position, Size};
pub use self::iter::{Columns, Positions, Rows};
use crate::layout::{Margin, Offset, Position, Size};
mod iter;
pub use iter::*;
mod ops;
use super::{Constraint, Flex, Layout};
@@ -45,6 +46,7 @@ use super::{Constraint, Flex, Layout};
///
/// - [`inner`](Self::inner), [`outer`](Self::outer) - Apply margins to shrink or expand
/// - [`offset`](Self::offset) - Move the rectangle by a relative amount
/// - [`resize`](Self::resize) - Change the rectangle size while keeping the bottom/right in range
/// - [`union`](Self::union) - Combine with another rectangle to create a bounding box
/// - [`intersection`](Self::intersection) - Find the overlapping area with another rectangle
/// - [`clamp`](Self::clamp) - Constrain the rectangle to fit within another
@@ -66,21 +68,67 @@ use super::{Constraint, Flex, Layout};
///
/// # Examples
///
/// To create a new `Rect`, use [`Rect::new`]. The size of the `Rect` will be clamped to keep the
/// right and bottom coordinates within `u16`. Note that this clamping does not occur when creating
/// a `Rect` directly.
///
/// ```rust
/// use ratatui_core::layout::Rect;
///
/// let rect = Rect::new(1, 2, 3, 4);
/// assert_eq!(
/// rect,
/// Rect {
/// x: 1,
/// y: 2,
/// width: 3,
/// height: 4
/// }
/// );
/// ```
///
/// You can also create a `Rect` from a [`Position`] and a [`Size`].
///
/// ```rust
/// use ratatui_core::layout::{Position, Rect, Size};
///
/// // Create a rectangle manually
/// let rect = Rect::new(10, 5, 80, 20);
/// assert_eq!(rect.x, 10);
/// assert_eq!(rect.y, 5);
/// assert_eq!(rect.width, 80);
/// assert_eq!(rect.height, 20);
/// let position = Position::new(1, 2);
/// let size = Size::new(3, 4);
/// let rect = Rect::from((position, size));
/// assert_eq!(
/// rect,
/// Rect {
/// x: 1,
/// y: 2,
/// width: 3,
/// height: 4
/// }
/// );
/// ```
///
/// // Create from position and size
/// let rect = Rect::from((Position::new(10, 5), Size::new(80, 20)));
/// To move a `Rect` without modifying its size, add or subtract an [`Offset`] to it.
///
/// ```rust
/// use ratatui_core::layout::{Offset, Rect};
///
/// let rect = Rect::new(1, 2, 3, 4);
/// let offset = Offset::new(5, 6);
/// let moved_rect = rect + offset;
/// assert_eq!(moved_rect, Rect::new(6, 8, 3, 4));
/// ```
///
/// To resize a `Rect` while ensuring it stays within bounds, use [`Rect::resize`]. The size is
/// clamped so that `right()` and `bottom()` do not exceed `u16::MAX`.
///
/// ```rust
/// use ratatui_core::layout::{Rect, Size};
///
/// let rect = Rect::new(u16::MAX - 1, u16::MAX - 1, 1, 1).resize(Size::new(10, 10));
/// assert_eq!(rect, Rect::new(u16::MAX - 1, u16::MAX - 1, 1, 1));
/// ```
///
/// For comprehensive layout documentation and examples, see the [`layout`](crate::layout) module.
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Rect {
@@ -94,30 +142,6 @@ pub struct Rect {
pub height: u16,
}
/// Amounts by which to move a [`Rect`](crate::layout::Rect).
///
/// Positive numbers move to the right/bottom and negative to the left/top.
///
/// See [`Rect::offset`]
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Offset {
/// How much to move on the X axis
pub x: i32,
/// How much to move on the Y axis
pub y: i32,
}
impl Offset {
/// A zero offset
pub const ZERO: Self = Self { x: 0, y: 0 };
/// Creates a new `Offset` with the given values.
pub const fn new(x: i32, y: i32) -> Self {
Self { x, y }
}
}
impl fmt::Display for Rect {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}x{}+{}+{}", self.width, self.height, self.x, self.y)
@@ -133,6 +157,12 @@ impl Rect {
height: 0,
};
/// The minimum possible Rect
pub const MIN: Self = Self::ZERO;
/// The maximum possible Rect
pub const MAX: Self = Self::new(0, 0, u16::MAX, u16::MAX);
/// Creates a new `Rect`, with width and height limited to keep both bounds within `u16`.
///
/// If the width or height would cause the right or bottom coordinate to be larger than the
@@ -147,15 +177,8 @@ impl Rect {
/// let rect = Rect::new(1, 2, 3, 4);
/// ```
pub const fn new(x: u16, y: u16, width: u16, height: u16) -> Self {
// these calculations avoid using min so that this function can be const
let max_width = u16::MAX - x;
let max_height = u16::MAX - y;
let width = if width > max_width { max_width } else { width };
let height = if height > max_height {
max_height
} else {
height
};
let width = x.saturating_add(width) - x;
let height = y.saturating_add(height) - y;
Self {
x,
y,
@@ -260,13 +283,19 @@ impl Rect {
/// See [`Offset`] for details.
#[must_use = "method returns the modified value"]
pub fn offset(self, offset: Offset) -> Self {
self + offset
}
/// Resizes the `Rect`, clamping to keep the right and bottom within `u16::MAX`.
///
/// The position is preserved. If the requested size would push the `Rect` beyond the bounds of
/// `u16`, the width or height is reduced so that [`right`](Self::right) and
/// [`bottom`](Self::bottom) remain within range.
#[must_use = "method returns the modified value"]
pub const fn resize(self, size: Size) -> Self {
Self {
x: i32::from(self.x)
.saturating_add(offset.x)
.clamp(0, i32::from(u16::MAX - self.width)) as u16,
y: i32::from(self.y)
.saturating_add(offset.y)
.clamp(0, i32::from(u16::MAX - self.height)) as u16,
width: self.x.saturating_add(size.width).saturating_sub(self.x),
height: self.y.saturating_add(size.height).saturating_sub(self.y),
..self
}
}
@@ -811,6 +840,16 @@ mod tests {
assert!(!Rect::new(1, 2, 3, 4).intersects(Rect::new(5, 6, 7, 8)));
}
#[rstest]
#[case::corner(Rect::new(0, 0, 10, 10), Rect::new(10, 10, 20, 20))]
#[case::edge(Rect::new(0, 0, 10, 10), Rect::new(10, 0, 20, 10))]
#[case::no_intersect(Rect::new(0, 0, 10, 10), Rect::new(11, 11, 20, 20))]
#[case::contains(Rect::new(0, 0, 20, 20), Rect::new(5, 5, 10, 10))]
fn mutual_intersect(#[case] rect0: Rect, #[case] rect1: Rect) {
assert_eq!(rect0.intersection(rect1), rect1.intersection(rect0));
assert_eq!(rect0.intersects(rect1), rect1.intersects(rect0));
}
// the bounds of this rect are x: [1..=3], y: [2..=5]
#[rstest]
#[case::inside_top_left(Rect::new(1, 2, 3, 4), Position { x: 1, y: 2 }, true)]
@@ -857,6 +896,18 @@ mod tests {
);
}
#[test]
fn resize_updates_size() {
let rect = Rect::new(10, 20, 5, 5).resize(Size::new(30, 40));
assert_eq!(rect, Rect::new(10, 20, 30, 40));
}
#[test]
fn resize_clamps_at_bounds() {
let rect = Rect::new(u16::MAX - 2, u16::MAX - 3, 1, 1).resize(Size::new(10, 10));
assert_eq!(rect, Rect::new(u16::MAX - 2, u16::MAX - 3, 2, 3));
}
#[test]
fn can_be_const() {
const RECT: Rect = Rect {

View File

@@ -0,0 +1,136 @@
use core::ops::{Add, AddAssign, Neg, Sub, SubAssign};
use super::{Offset, Rect};
impl Neg for Offset {
type Output = Self;
/// Negates the offset.
///
/// # Panics
///
/// Panics if the negated value overflows (i.e. `x` or `y` is `i32::MIN`).
fn neg(self) -> Self {
Self {
x: self.x.neg(),
y: self.y.neg(),
}
}
}
impl Add<Offset> for Rect {
type Output = Self;
/// Moves the rect by an offset without changing its size.
///
/// If the offset would move the any of the rect's edges outside the bounds of `u16`, the
/// rect's position is clamped to the nearest edge.
fn add(self, offset: Offset) -> Self {
let max_x = i32::from(u16::MAX - self.width);
let max_y = i32::from(u16::MAX - self.height);
let x = i32::from(self.x).saturating_add(offset.x).clamp(0, max_x) as u16;
let y = i32::from(self.y).saturating_add(offset.y).clamp(0, max_y) as u16;
Self { x, y, ..self }
}
}
impl Add<Rect> for Offset {
type Output = Rect;
/// Moves the rect by an offset without changing its size.
///
/// If the offset would move the any of the rect's edges outside the bounds of `u16`, the
/// rect's position is clamped to the nearest edge.
fn add(self, rect: Rect) -> Rect {
rect + self
}
}
impl Sub<Offset> for Rect {
type Output = Self;
/// Subtracts an offset from the rect without changing its size.
///
/// If the offset would move the any of the rect's edges outside the bounds of `u16`, the
/// rect's position is clamped to the nearest
fn sub(self, offset: Offset) -> Self {
// Note this cannot be simplified to `self + -offset` because `Offset::MIN` would overflow
let max_x = i32::from(u16::MAX - self.width);
let max_y = i32::from(u16::MAX - self.height);
let x = i32::from(self.x).saturating_sub(offset.x).clamp(0, max_x) as u16;
let y = i32::from(self.y).saturating_sub(offset.y).clamp(0, max_y) as u16;
Self { x, y, ..self }
}
}
impl AddAssign<Offset> for Rect {
/// Moves the rect by an offset in place without changing its size.
///
/// If the offset would move the any of the rect's edges outside the bounds of `u16`, the
/// rect's position is clamped to the nearest edge.
fn add_assign(&mut self, offset: Offset) {
*self = *self + offset;
}
}
impl SubAssign<Offset> for Rect {
/// Moves the rect by an offset in place without changing its size.
///
/// If the offset would move the any of the rect's edges outside the bounds of `u16`, the
/// rect's position is clamped to the nearest edge.
fn sub_assign(&mut self, offset: Offset) {
*self = *self - offset;
}
}
#[cfg(test)]
mod tests {
use rstest::rstest;
use super::*;
#[rstest]
#[case::zero(Rect::new(3, 4, 5, 6), Offset::ZERO, Rect::new(3, 4, 5, 6))]
#[case::positive(Rect::new(3, 4, 5, 6), Offset::new(1, 2), Rect::new(4, 6, 5, 6))]
#[case::negative(Rect::new(3, 4, 5, 6), Offset::new(-1, -2), Rect::new(2, 2, 5, 6))]
#[case::saturate_negative(Rect::new(3, 4, 5, 6), Offset::MIN, Rect::new(0, 0, 5, 6))]
#[case::saturate_positive(Rect::new(3, 4, 5, 6), Offset::MAX, Rect::new(u16::MAX- 5, u16::MAX - 6, 5, 6))]
fn add_offset(#[case] rect: Rect, #[case] offset: Offset, #[case] expected: Rect) {
assert_eq!(rect + offset, expected);
assert_eq!(offset + rect, expected);
}
#[rstest]
#[case::zero(Rect::new(3, 4, 5, 6), Offset::ZERO, Rect::new(3, 4, 5, 6))]
#[case::positive(Rect::new(3, 4, 5, 6), Offset::new(1, 2), Rect::new(2, 2, 5, 6))]
#[case::negative(Rect::new(3, 4, 5, 6), Offset::new(-1, -2), Rect::new(4, 6, 5, 6))]
#[case::saturate_negative(Rect::new(3, 4, 5, 6), Offset::MAX, Rect::new(0, 0, 5, 6))]
#[case::saturate_positive(Rect::new(3, 4, 5, 6), -Offset::MAX, Rect::new(u16::MAX - 5, u16::MAX - 6, 5, 6))]
fn sub_offset(#[case] rect: Rect, #[case] offset: Offset, #[case] expected: Rect) {
assert_eq!(rect - offset, expected);
}
#[rstest]
#[case::zero(Rect::new(3, 4, 5, 6), Offset::ZERO, Rect::new(3, 4, 5, 6))]
#[case::positive(Rect::new(3, 4, 5, 6), Offset::new(1, 2), Rect::new(4, 6, 5, 6))]
#[case::negative(Rect::new(3, 4, 5, 6), Offset::new(-1, -2), Rect::new(2, 2, 5, 6))]
#[case::saturate_negative(Rect::new(3, 4, 5, 6), Offset::MIN, Rect::new(0, 0, 5, 6))]
#[case::saturate_positive(Rect::new(3, 4, 5, 6), Offset::MAX, Rect::new(u16::MAX - 5, u16::MAX - 6, 5, 6))]
fn add_assign_offset(#[case] rect: Rect, #[case] offset: Offset, #[case] expected: Rect) {
let mut rect = rect;
rect += offset;
assert_eq!(rect, expected);
}
#[rstest]
#[case::zero(Rect::new(3, 4, 5, 6), Offset::ZERO, Rect::new(3, 4, 5, 6))]
#[case::positive(Rect::new(3, 4, 5, 6), Offset::new(1, 2), Rect::new(2, 2, 5, 6))]
#[case::negative(Rect::new(3, 4, 5, 6), Offset::new(-1, -2), Rect::new(4, 6, 5, 6))]
#[case::saturate_negative(Rect::new(3, 4, 5, 6), Offset::MAX, Rect::new(0, 0, 5, 6))]
#[case::saturate_positive(Rect::new(3, 4, 5, 6), -Offset::MAX, Rect::new(u16::MAX - 5, u16::MAX - 6, 5, 6))]
fn sub_assign_offset(#[case] rect: Rect, #[case] offset: Offset, #[case] expected: Rect) {
let mut rect = rect;
rect -= offset;
assert_eq!(rect, expected);
}
}

View File

@@ -24,14 +24,20 @@ use crate::layout::Rect;
/// - [`from(Rect)`](Self::from) - Create from [`Rect`] (uses width and height)
/// - [`into((u16, u16))`] - Convert to `(u16, u16)` tuple
///
/// # Computation
///
/// - [`area`](Self::area) - Compute the total number of cells covered by the size
///
/// # Examples
///
/// ```rust
/// use ratatui_core::layout::{Rect, Size};
///
/// let size = Size::new(80, 24);
/// assert_eq!(size.area(), 1920);
/// let size = Size::from((80, 24));
/// let size = Size::from(Rect::new(0, 0, 80, 24));
/// assert_eq!(size.area(), 1920);
/// ```
///
/// For comprehensive layout documentation and examples, see the [`layout`](crate::layout) module.
@@ -48,10 +54,24 @@ impl Size {
/// A zero sized Size
pub const ZERO: Self = Self::new(0, 0);
/// The minimum possible Size
pub const MIN: Self = Self::ZERO;
/// The maximum possible Size
pub const MAX: Self = Self::new(u16::MAX, u16::MAX);
/// Create a new `Size` struct
pub const fn new(width: u16, height: u16) -> Self {
Self { width, height }
}
/// Compute the total area of the size as a `u32`.
///
/// The multiplication uses `u32` to avoid overflow when the width and height are at their
/// `u16` maximum values.
pub const fn area(self) -> u32 {
self.width as u32 * self.height as u32
}
}
impl From<(u16, u16)> for Size {
@@ -60,6 +80,12 @@ impl From<(u16, u16)> for Size {
}
}
impl From<Size> for (u16, u16) {
fn from(size: Size) -> Self {
(size.width, size.height)
}
}
impl From<Rect> for Size {
fn from(rect: Rect) -> Self {
rect.as_size()
@@ -92,6 +118,14 @@ mod tests {
assert_eq!(size.height, 20);
}
#[test]
fn to_tuple() {
let size = Size::from((10, 20));
let (width, height) = size.into();
assert_eq!(size.width, width);
assert_eq!(size.height, height);
}
#[test]
fn from_rect() {
let size = Size::from(Rect::new(0, 0, 10, 20));
@@ -103,4 +137,11 @@ mod tests {
fn display() {
assert_eq!(Size::new(10, 20).to_string(), "10x20");
}
#[test]
fn area() {
assert_eq!(Size::new(10, 20).area(), 200);
assert_eq!(Size::new(0, 0).area(), 0);
assert_eq!(Size::new(u16::MAX, u16::MAX).area(), 4_294_836_225_u32);
}
}

View File

@@ -250,17 +250,41 @@ pub struct Style {
/// The modifiers to add.
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Modifier::is_empty")
serde(
default,
skip_serializing_if = "Modifier::is_empty",
deserialize_with = "deserialize_modifier"
)
)]
pub add_modifier: Modifier,
/// The modifiers to remove.
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Modifier::is_empty")
serde(
default,
skip_serializing_if = "Modifier::is_empty",
deserialize_with = "deserialize_modifier"
)
)]
pub sub_modifier: Modifier,
}
#[cfg(feature = "serde")]
/// Deserialize a [`Modifier`] while treating missing or `null` values as empty.
///
/// This helper is used with serde to coerce absent or `null` modifier fields to
/// [`Modifier::empty`], allowing configuration files to omit these fields
/// without triggering deserialization errors.
fn deserialize_modifier<'de, D>(deserializer: D) -> Result<Modifier, D::Error>
where
D: serde::Deserializer<'de>,
{
use serde::Deserialize;
Option::<Modifier>::deserialize(deserializer)
.map(|modifier| modifier.unwrap_or_else(Modifier::empty))
}
/// A custom debug implementation that prints only the fields that are not the default, and unwraps
/// the `Option`s.
impl fmt::Debug for Style {
@@ -409,6 +433,22 @@ impl Style {
self
}
/// Returns `true` if the style has the given modifier set.
///
/// ## Examples
///
/// ```rust
/// use ratatui_core::style::{Modifier, Style};
///
/// let style = Style::default().add_modifier(Modifier::BOLD | Modifier::ITALIC);
/// assert!(style.has_modifier(Modifier::BOLD));
/// assert!(style.has_modifier(Modifier::ITALIC));
/// assert!(!style.has_modifier(Modifier::UNDERLINED));
/// ```
pub const fn has_modifier(self, modifier: Modifier) -> bool {
self.add_modifier.contains(modifier) && !self.sub_modifier.contains(modifier)
}
/// Results in a combined style that is equivalent to applying the two individual styles to
/// a style one after the other.
///
@@ -788,6 +828,28 @@ mod tests {
assert_eq!(ALL, ALL_SHORT);
}
#[test]
fn has_modifier_checks() {
// basic presence
let style = Style::new().add_modifier(Modifier::BOLD | Modifier::ITALIC);
assert!(style.has_modifier(Modifier::BOLD));
assert!(style.has_modifier(Modifier::ITALIC));
assert!(!style.has_modifier(Modifier::UNDERLINED));
// removal prevents the modifier from being reported as present
let style = Style::new()
.add_modifier(Modifier::BOLD | Modifier::ITALIC)
.remove_modifier(Modifier::ITALIC);
assert!(style.has_modifier(Modifier::BOLD));
assert!(!style.has_modifier(Modifier::ITALIC));
// patching with a style that removes a modifier clears it
let style = Style::new().add_modifier(Modifier::BOLD | Modifier::ITALIC);
let patched = style.patch(Style::new().remove_modifier(Modifier::ITALIC));
assert!(patched.has_modifier(Modifier::BOLD));
assert!(!patched.has_modifier(Modifier::ITALIC));
}
#[rstest]
#[case(Style::new().black(), Color::Black)]
#[case(Style::new().red(), Color::Red)]
@@ -989,4 +1051,19 @@ mod tests {
let deserialized: Style = serde_json::from_str(&json_str).unwrap();
assert_eq!(deserialized, style);
}
#[cfg(feature = "serde")]
#[test]
fn deserialize_null_modifiers() {
let json_value = serde_json::json!({
"add_modifier": serde_json::Value::Null,
"sub_modifier": serde_json::Value::Null
});
let json_str = serde_json::to_string(&json_value).unwrap();
let style: Style = serde_json::from_str(&json_str).unwrap();
assert!(style.add_modifier.is_empty());
assert!(style.sub_modifier.is_empty());
}
}

View File

@@ -10,5 +10,6 @@ pub mod half_block;
pub mod line;
pub mod marker;
pub mod merge;
pub mod pixel;
pub mod scrollbar;
pub mod shade;

View File

@@ -1,7 +1,21 @@
pub const BLANK: u16 = 0x2800;
pub const DOTS: [[u16; 2]; 4] = [
[0x0001, 0x0008],
[0x0002, 0x0010],
[0x0004, 0x0020],
[0x0040, 0x0080],
//! Braille symbols.
//!
//! Note that the symbols are not listed according to their unicode codepoint but according to the
//! corresponding bit pattern in row-major order.
pub const BRAILLE: [char; 256] = [
'', '⠁', '⠈', '⠉', '⠂', '⠃', '⠊', '⠋', '⠐', '⠑', '⠘', '⠙', '⠒', '⠓', '⠚', '⠛', '⠄', '⠅', '⠌',
'⠍', '⠆', '⠇', '⠎', '⠏', '⠔', '⠕', '⠜', '⠝', '⠖', '⠗', '⠞', '⠟', '⠠', '⠡', '⠨', '⠩', '⠢', '⠣',
'⠪', '⠫', '⠰', '⠱', '⠸', '⠹', '⠲', '⠳', '⠺', '⠻', '⠤', '⠥', '⠬', '⠭', '⠦', '⠧', '⠮', '⠯', '⠴',
'⠵', '⠼', '⠽', '⠶', '⠷', '⠾', '⠿', '⡀', '⡁', '⡈', '⡉', '⡂', '⡃', '⡊', '⡋', '⡐', '⡑', '⡘', '⡙',
'⡒', '⡓', '⡚', '⡛', '⡄', '⡅', '⡌', '⡍', '⡆', '⡇', '⡎', '⡏', '⡔', '⡕', '⡜', '⡝', '⡖', '⡗', '⡞',
'⡟', '⡠', '⡡', '⡨', '⡩', '⡢', '⡣', '⡪', '⡫', '⡰', '⡱', '⡸', '⡹', '⡲', '⡳', '⡺', '⡻', '⡤', '⡥',
'⡬', '⡭', '⡦', '⡧', '⡮', '⡯', '⡴', '⡵', '⡼', '⡽', '⡶', '⡷', '⡾', '⡿', '⢀', '⢁', '⢈', '⢉', '⢂',
'⢃', '⢊', '⢋', '⢐', '⢑', '⢘', '⢙', '⢒', '⢓', '⢚', '⢛', '⢄', '⢅', '⢌', '⢍', '⢆', '⢇', '⢎', '⢏',
'⢔', '⢕', '⢜', '⢝', '⢖', '⢗', '⢞', '⢟', '⢠', '⢡', '⢨', '⢩', '⢢', '⢣', '⢪', '⢫', '⢰', '⢱', '⢸',
'⢹', '⢲', '⢳', '⢺', '⢻', '⢤', '⢥', '⢬', '⢭', '⢦', '⢧', '⢮', '⢯', '⢴', '⢵', '⢼', '⢽', '⢶', '⢷',
'⢾', '⢿', '⣀', '⣁', '⣈', '⣉', '⣂', '⣃', '⣊', '⣋', '⣐', '⣑', '⣘', '⣙', '⣒', '⣓', '⣚', '⣛', '⣄',
'⣅', '⣌', '⣍', '⣆', '⣇', '⣎', '⣏', '⣔', '⣕', '⣜', '⣝', '⣖', '⣗', '⣞', '⣟', '⣠', '⣡', '⣨', '⣩',
'⣢', '⣣', '⣪', '⣫', '⣰', '⣱', '⣸', '⣹', '⣲', '⣳', '⣺', '⣻', '⣤', '⣥', '⣬', '⣭', '⣦', '⣧', '⣮',
'⣯', '⣴', '⣵', '⣼', '⣽', '⣶', '⣷', '⣾', '⣿',
];

View File

@@ -4,6 +4,7 @@ pub const DOT: &str = "•";
/// Marker to use when plotting data points
#[derive(Debug, Default, Display, EnumString, Clone, Copy, Eq, PartialEq, Hash)]
#[non_exhaustive]
pub enum Marker {
/// One point per cell in shape of dot (`•`)
#[default]
@@ -25,6 +26,33 @@ pub enum Marker {
/// a grid that is double the resolution of the terminal. Because each terminal cell is
/// generally about twice as tall as it is wide, this allows for a square grid of pixels.
HalfBlock,
/// Use quadrant characters to represent data points.
///
/// Quadrant characters display densely packed and regularly spaced pseudo-pixels with a 2x2
/// resolution per character, without visible bands between cells.
Quadrant,
/// Use sextant characters from the [Unicode Symbols for Legacy Computing
/// Supplement](https://en.wikipedia.org/wiki/Symbols_for_Legacy_Computing_Supplement) to
/// represent data points.
///
/// Sextant characters display densely packed and regularly spaced pseudo-pixels with a 2x3
/// resolution per character, without visible bands between cells.
///
/// Note: the Symbols for Legacy Computing Supplement block is a relatively recent addition to
/// unicode that is less broadly supported than Braille dots. If your terminal does not support
/// this, you will see unicode replacement characters (`<60>`) instead of sextants (`🬌`, `🬲`, `🬑`).
Sextant,
/// Use octant characters from the [Unicode Symbols for Legacy Computing
/// Supplement](https://en.wikipedia.org/wiki/Symbols_for_Legacy_Computing_Supplement) to
/// represent data points.
///
/// Octant characters have the same 2x4 resolution as Braille characters but display densely
/// packed and regularly spaced pseudo-pixels, without visible bands between cells.
///
/// Note: the Symbols for Legacy Computing Supplement block is a relatively recent addition to
/// unicode that is less broadly supported than Braille dots. If your terminal does not support
/// this, you will see unicode replacement characters (`<60>`) instead of octants (`𜴇`, `𜷀`, `𜴷`).
Octant,
}
#[cfg(test)]

View File

@@ -0,0 +1,30 @@
//! Pseudo-pixel symbols: quadrant, sextant and octant characters.
//!
//! Note that the symbols are not listed according to their unicode codepoint but according to the
//! corresponding bit pattern in row-major order.
pub const QUADRANTS: [char; 16] = [
' ', '▘', '▝', '▀', '▖', '▌', '▞', '▛', '▗', '▚', '▐', '▜', '▄', '▙', '▟', '█',
];
pub const SEXTANTS: [char; 64] = [
' ', '🬀', '🬁', '🬂', '🬃', '🬄', '🬅', '🬆', '🬇', '🬈', '🬉', '🬊', '🬋', '🬌', '🬍', '🬎', '🬏', '🬐', '🬑',
'🬒', '🬓', '▌', '🬔', '🬕', '🬖', '🬗', '🬘', '🬙', '🬚', '🬛', '🬜', '🬝', '🬞', '🬟', '🬠', '🬡', '🬢', '🬣',
'🬤', '🬥', '🬦', '🬧', '▐', '🬨', '🬩', '🬪', '🬫', '🬬', '🬭', '🬮', '🬯', '🬰', '🬱', '🬲', '🬳', '🬴', '🬵',
'🬶', '🬷', '🬸', '🬹', '🬺', '🬻', '█',
];
pub const OCTANTS: [char; 256] = [
' ', '𜺨', '𜺫', '🮂', '𜴀', '▘', '𜴁', '𜴂', '𜴃', '𜴄', '▝', '𜴅', '𜴆', '𜴇', '𜴈', '▀', '𜴉', '𜴊', '𜴋',
'𜴌', '🯦', '𜴍', '𜴎', '𜴏', '𜴐', '𜴑', '𜴒', '𜴓', '𜴔', '𜴕', '𜴖', '𜴗', '𜴘', '𜴙', '𜴚', '𜴛', '𜴜', '𜴝',
'𜴞', '𜴟', '🯧', '𜴠', '𜴡', '𜴢', '𜴣', '𜴤', '𜴥', '𜴦', '𜴧', '𜴨', '𜴩', '𜴪', '𜴫', '𜴬', '𜴭', '𜴮', '𜴯',
'𜴰', '𜴱', '𜴲', '𜴳', '𜴴', '𜴵', '🮅', '𜺣', '𜴶', '𜴷', '𜴸', '𜴹', '𜴺', '𜴻', '𜴼', '𜴽', '𜴾', '𜴿', '𜵀',
'𜵁', '𜵂', '𜵃', '𜵄', '▖', '𜵅', '𜵆', '𜵇', '𜵈', '▌', '𜵉', '𜵊', '𜵋', '𜵌', '▞', '𜵍', '𜵎', '𜵏', '𜵐',
'▛', '𜵑', '𜵒', '𜵓', '𜵔', '𜵕', '𜵖', '𜵗', '𜵘', '𜵙', '𜵚', '𜵛', '𜵜', '𜵝', '𜵞', '𜵟', '𜵠', '𜵡', '𜵢',
'𜵣', '𜵤', '𜵥', '𜵦', '𜵧', '𜵨', '𜵩', '𜵪', '𜵫', '𜵬', '𜵭', '𜵮', '𜵯', '𜵰', '𜺠', '𜵱', '𜵲', '𜵳', '𜵴',
'𜵵', '𜵶', '𜵷', '𜵸', '𜵹', '𜵺', '𜵻', '𜵼', '𜵽', '𜵾', '𜵿', '𜶀', '𜶁', '𜶂', '𜶃', '𜶄', '𜶅', '𜶆', '𜶇',
'𜶈', '𜶉', '𜶊', '𜶋', '𜶌', '𜶍', '𜶎', '𜶏', '▗', '𜶐', '𜶑', '𜶒', '𜶓', '▚', '𜶔', '𜶕', '𜶖', '𜶗', '▐',
'𜶘', '𜶙', '𜶚', '𜶛', '▜', '𜶜', '𜶝', '𜶞', '𜶟', '𜶠', '𜶡', '𜶢', '𜶣', '𜶤', '𜶥', '𜶦', '𜶧', '𜶨', '𜶩',
'𜶪', '𜶫', '▂', '𜶬', '𜶭', '𜶮', '𜶯', '𜶰', '𜶱', '𜶲', '𜶳', '𜶴', '𜶵', '𜶶', '𜶷', '𜶸', '𜶹', '𜶺', '𜶻',
'𜶼', '𜶽', '𜶾', '𜶿', '𜷀', '𜷁', '𜷂', '𜷃', '𜷄', '𜷅', '𜷆', '𜷇', '𜷈', '𜷉', '𜷊', '𜷋', '𜷌', '𜷍', '𜷎',
'𜷏', '𜷐', '𜷑', '𜷒', '𜷓', '𜷔', '𜷕', '𜷖', '𜷗', '𜷘', '𜷙', '𜷚', '▄', '𜷛', '𜷜', '𜷝', '𜷞', '▙', '𜷟',
'𜷠', '𜷡', '𜷢', '▟', '𜷣', '▆', '𜷤', '𜷥', '█',
];

View File

@@ -72,7 +72,7 @@ fn outer() {
#[test]
fn offset() {
let base = Rect::new(2, 2, 5, 3);
let moved = base.offset(Offset { x: 4, y: 2 });
let moved = base + Offset::new(4, 2);
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
Filled { symbol: "" }.render(base, &mut buf);

View File

@@ -1,8 +1,8 @@
[package]
name = "ratatui-crossterm"
version = "0.1.0-beta.0"
version = "0.1.0-beta.1"
description = "Crossterm backend for the Ratatui Terminal UI library."
documentation = "https://docs.rs/ratatui-crossterm/"
documentation = "https://docs.rs/ratatui-crossterm"
readme = "README.md"
authors.workspace = true
repository.workspace = true

View File

@@ -1,9 +1,9 @@
[package]
name = "ratatui-macros"
version = "0.7.0-beta.0"
version = "0.7.0-beta.1"
description = "Macros for Ratatui"
edition.workspace = true
authors = ["The Ratatui Developers"]
description = "Macros for Ratatui"
license = "MIT"
repository = "https://github.com/ratatui/ratatui"
documentation = "https://docs.rs/ratatui-macros"

View File

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

View File

@@ -1,8 +1,8 @@
[package]
name = "ratatui-termwiz"
version = "0.1.0-beta.0"
version = "0.1.0-beta.1"
description = "Termwiz backend for the Ratatui Terminal UI library."
documentation = "https://docs.rs/ratatui-termwiz/"
documentation = "https://docs.rs/ratatui-termwiz"
readme = "README.md"
authors.workspace = true
repository.workspace = true

View File

@@ -1,12 +1,12 @@
[package]
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-beta.0"
version = "0.3.0-beta.1"
description = "A collection of Ratatui widgets for building terminal user interfaces using Ratatui."
documentation = "https://docs.rs/ratatui-widgets"
readme = "README.md"
authors.workspace = true
documentation.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
@@ -68,7 +68,7 @@ unicode-width.workspace = true
color-eyre.workspace = true
crossterm.workspace = true
pretty_assertions.workspace = true
ratatui = { path = "../ratatui" }
ratatui.workspace = true
rstest.workspace = true
[lints]

View File

@@ -53,7 +53,7 @@ fn render(frame: &mut Frame, selected_tab: usize) {
frame.render_widget(title.centered(), top);
render_content(frame, main, selected_tab);
render_tabs(frame, main.offset(Offset { x: 1, y: 0 }), selected_tab);
render_tabs(frame, main + Offset::new(1, 0), selected_tab);
}
/// Render the tabs.

View File

@@ -1951,18 +1951,18 @@ mod tests {
let mut offset = Offset::ZERO;
for (border_type_1, border_type_2) in iproduct!(border_types, border_types) {
let title = format!("{border_type_1} + {border_type_2}");
let title_area = Rect::new(0, 0, 43, 1).offset(offset);
let title_area = Rect::new(0, 0, 43, 1) + offset;
title.render(title_area, &mut buffer);
offset.y += 1;
for (rect_1, rect_2) in rects {
Block::bordered()
.border_type(border_type_1)
.merge_borders(strategy)
.render(rect_1.offset(offset), &mut buffer);
.render(rect_1 + offset, &mut buffer);
Block::bordered()
.border_type(border_type_2)
.merge_borders(strategy)
.render(rect_2.offset(offset), &mut buffer);
.render(rect_2 + offset, &mut buffer);
}
offset.y += 9;
}

View File

@@ -104,6 +104,36 @@ impl<'a, DS: DateStyler> Monthly<'a, DS> {
self
}
/// Return the width required to render the calendar.
#[must_use]
pub fn width(&self) -> u16 {
const DAYS_PER_WEEK: u16 = 7;
const GUTTER_WIDTH: u16 = 1;
const DAY_WIDTH: u16 = 2;
let mut width = DAYS_PER_WEEK * (GUTTER_WIDTH + DAY_WIDTH);
if let Some(block) = &self.block {
let (left, right) = block.horizontal_space();
width = width.saturating_add(left).saturating_add(right);
}
width
}
/// Return the height required to render the calendar.
#[must_use]
pub fn height(&self) -> u16 {
let mut height = u16::from(sunday_based_weeks(self.display_date))
.saturating_add(u16::from(self.show_month.is_some()))
.saturating_add(u16::from(self.show_weekday.is_some()));
if let Some(block) = &self.block {
let (top, bottom) = block.vertical_space();
height = height.saturating_add(top).saturating_add(bottom);
}
height
}
/// Return a style with only the background from the default style
const fn default_bg(&self) -> Style {
match self.default_style.bg {
@@ -200,6 +230,22 @@ impl<DS: DateStyler> Monthly<'_, DS> {
}
}
/// Compute how many Sunday-based week rows are needed to render `display_date`.
///
/// Mirrors the rendering logic by taking the difference between the first and last day
/// Sunday-based week numbers (inclusive).
fn sunday_based_weeks(display_date: Date) -> u8 {
let first_of_month = display_date
.replace_day(1)
.expect("valid first day of month");
let last_of_month = first_of_month
.replace_day(first_of_month.month().length(first_of_month.year()))
.expect("valid last of month");
let first_week = first_of_month.sunday_based_week();
let last_week = last_of_month.sunday_based_week();
last_week.saturating_sub(first_week) + 1
}
/// Provides a method for styling a given date. [Monthly] is generic on this trait, so any type
/// that implements this trait can be used.
pub trait DateStyler {
@@ -268,10 +314,11 @@ impl Default for CalendarEventStore {
#[cfg(test)]
mod tests {
use ratatui_core::style::Color;
use ratatui_core::style::{Color, Style};
use time::Month;
use super::*;
use crate::block::{Block, Padding};
#[test]
fn event_store() {
@@ -325,4 +372,87 @@ mod tests {
// This should not panic, even if the buffer has zero size.
calendar.render(buffer.area, &mut buffer);
}
#[test]
fn calendar_width_reflects_grid_layout() {
let date = Date::from_calendar_date(2023, Month::January, 1).unwrap();
let calendar = Monthly::new(date, CalendarEventStore::default());
assert_eq!(calendar.width(), 21);
}
#[test]
fn calendar_height_counts_weeks_and_headers() {
let date = Date::from_calendar_date(2015, Month::February, 1).unwrap();
let base_calendar = Monthly::new(date, CalendarEventStore::default());
assert_eq!(base_calendar.height(), 4);
let decorated_calendar = Monthly::new(date, CalendarEventStore::default())
.show_month_header(Style::default())
.show_weekdays_header(Style::default());
assert_eq!(decorated_calendar.height(), 6);
}
#[test]
fn calendar_dimensions_examples() {
// Feb 2015 starts Sunday and spans 4 rows.
let feb_2015 = Date::from_calendar_date(2015, Month::February, 1).unwrap();
let cal = Monthly::new(feb_2015, CalendarEventStore::default());
assert_eq!(cal.width(), 21, "4w base width");
assert_eq!(cal.height(), 4, "Feb 2015 rows");
let cal = Monthly::new(feb_2015, CalendarEventStore::default())
.show_month_header(Style::default())
.show_weekdays_header(Style::default());
assert_eq!(cal.height(), 6, "Headers add 2 rows");
let block = Block::bordered().padding(Padding::new(2, 3, 1, 2));
let cal = Monthly::new(feb_2015, CalendarEventStore::default()).block(block);
assert_eq!(cal.width(), 28, "Padding widens width");
assert_eq!(cal.height(), 9, "Padding grows height");
// Feb 2024 starts Thursday and spans 5 rows.
let feb_2024 = Date::from_calendar_date(2024, Month::February, 1).unwrap();
let cal = Monthly::new(feb_2024, CalendarEventStore::default());
assert_eq!(cal.width(), 21, "5w base width");
assert_eq!(cal.height(), 5, "Feb 2024 rows");
let cal = Monthly::new(feb_2024, CalendarEventStore::default())
.show_month_header(Style::default())
.show_weekdays_header(Style::default());
assert_eq!(cal.height(), 7, "Headers add 2 rows (5w)");
let cal = Monthly::new(feb_2024, CalendarEventStore::default()).block(Block::bordered());
assert_eq!(cal.width(), 23, "Border adds 2 cols");
assert_eq!(cal.height(), 7, "Border adds 2 rows");
// Apr 2023 starts Saturday and spans 6 rows.
let apr_2023 = Date::from_calendar_date(2023, Month::April, 1).unwrap();
let cal = Monthly::new(apr_2023, CalendarEventStore::default());
assert_eq!(cal.width(), 21, "6w base width");
assert_eq!(cal.height(), 6, "Apr 2023 rows");
let cal = Monthly::new(apr_2023, CalendarEventStore::default())
.show_month_header(Style::default())
.show_weekdays_header(Style::default());
assert_eq!(cal.height(), 8, "Headers add 2 rows (6w)");
let block = Block::bordered().padding(Padding::symmetric(1, 1));
let cal = Monthly::new(apr_2023, CalendarEventStore::default()).block(block);
assert_eq!(cal.width(), 25, "Symmetric padding width");
assert_eq!(cal.height(), 10, "Symmetric padding height");
}
#[test]
fn sunday_based_weeks_shapes() {
let sunday_start =
Date::from_calendar_date(2015, Month::February, 11).expect("valid test date");
let saturday_start =
Date::from_calendar_date(2023, Month::April, 9).expect("valid test date");
let leap_year =
Date::from_calendar_date(2024, Month::February, 29).expect("valid test date");
assert_eq!(sunday_based_weeks(sunday_start), 4);
assert_eq!(sunday_based_weeks(saturday_start), 6);
assert_eq!(sunday_based_weeks(leap_year), 5);
}
}

View File

@@ -14,7 +14,6 @@
//! You can also implement your own custom [`Shape`]s.
use alloc::boxed::Box;
use alloc::string::String;
use alloc::vec;
use alloc::vec::Vec;
use core::fmt;
@@ -24,6 +23,8 @@ use itertools::Itertools;
use ratatui_core::buffer::Buffer;
use ratatui_core::layout::Rect;
use ratatui_core::style::{Color, Style};
use ratatui_core::symbols::braille::BRAILLE;
use ratatui_core::symbols::pixel::{OCTANTS, QUADRANTS, SEXTANTS};
use ratatui_core::symbols::{self, Marker};
use ratatui_core::text::Line as TextLine;
use ratatui_core::widgets::Widget;
@@ -69,11 +70,20 @@ pub struct Label<'a> {
/// multiple shapes on the canvas in specific order.
#[derive(Debug)]
struct Layer {
// A string of characters representing the grid. This will be wrapped to the width of the grid
// when rendering
string: String,
// Colors for foreground and background of each cell
colors: Vec<(Color, Color)>,
contents: Vec<LayerCell>,
}
/// A cell within a layer.
///
/// If a [`Context`] contains multiple layers, then the symbol, foreground, and background colors
/// for a character will be determined by the top-most layer that provides a value for that
/// character. For example, a chart drawn with [`Marker::Block`] may provide the background color,
/// and a later chart drawn with [`Marker::Braille`] may provide the symbol and foreground color.
#[derive(Debug)]
struct LayerCell {
symbol: Option<char>,
fg: Option<Color>,
bg: Option<Color>,
}
/// A grid of cells that can be painted on.
@@ -100,73 +110,111 @@ trait Grid: fmt::Debug {
fn reset(&mut self);
}
/// The `BrailleGrid` is a grid made up of cells each containing a Braille pattern.
/// The pattern and color of a `PatternGrid` cell.
#[derive(Copy, Clone, Debug, Default)]
struct PatternCell {
/// The pattern of a grid character.
///
/// The pattern is stored in the lower bits in a row-major order. For instance, for a 2x4
/// pattern marker, bits 0 to 7 of this field should represent the following pseudo-pixels:
///
/// | 0 1 |
/// | 2 3 |
/// | 4 5 |
/// | 6 7 |
pattern: u8,
/// The color of a cell only supports foreground colors for now as there's no way to
/// individually set the background color of each pseudo-pixel in a pattern character.
color: Option<Color>,
}
/// The `PatternGrid` is a grid made up of cells each containing a `W`x`H` pattern character.
///
/// This makes it possible to draw shapes with a resolution of 2x4 dots per cell. This is useful
/// when you want to draw shapes with a high resolution. Font support for Braille patterns is
/// required to see the dots. If your terminal or font does not support this unicode block, you
/// will see unicode replacement characters (<28>) instead of braille dots.
/// This makes it possible to draw shapes with a resolution of e.g. 2x4 (Braille or unicode octant)
/// per cell.
/// Font support for the relevant pattern character is required. If your terminal or font does not
/// support the relevant unicode block, you will see unicode replacement characters (<28>) instead.
///
/// This grid type only supports a single foreground color for each 2x4 dots cell. There is no way
/// to set the individual color of each dot in the braille pattern.
/// This grid type only supports a single foreground color for each `W`x`H` pattern character.
/// There is no way to set the individual color of each pseudo-pixel.
#[derive(Debug)]
struct BrailleGrid {
struct PatternGrid<const W: usize, const H: usize> {
/// Width of the grid in number of terminal columns
width: u16,
/// Height of the grid in number of terminal rows
height: u16,
/// Represents the unicode braille patterns. Will take a value between `0x2800` and `0x28FF`
/// this is converted to an utf16 string when converting to a layer. See
/// <https://en.wikipedia.org/wiki/Braille_Patterns> for more info.
utf16_code_points: Vec<u16>,
/// The color of each cell only supports foreground colors for now as there's no way to
/// individually set the background color of each dot in the braille pattern.
colors: Vec<Color>,
/// Pattern and color of the cells.
cells: Vec<PatternCell>,
/// Lookup table mapping patterns to characters.
char_table: &'static [char],
}
impl BrailleGrid {
/// Create a new `BrailleGrid` with the given width and height measured in terminal columns and
/// rows respectively.
fn new(width: u16, height: u16) -> Self {
impl<const W: usize, const H: usize> PatternGrid<W, H> {
/// Statically check that the dimension of the pattern is supported.
const _PATTERN_DIMENSION_CHECK: usize = u8::BITS as usize - W * H;
/// Create a new `PatternGrid` with the given width and height measured in terminal columns
/// and rows respectively.
fn new(width: u16, height: u16, char_table: &'static [char]) -> Self {
// Cause a static error if the pattern doesn't fit within 8 bits.
let _ = Self::_PATTERN_DIMENSION_CHECK;
let length = usize::from(width) * usize::from(height);
Self {
width,
height,
utf16_code_points: vec![symbols::braille::BLANK; length],
colors: vec![Color::Reset; length],
cells: vec![PatternCell::default(); length],
char_table,
}
}
}
impl Grid for BrailleGrid {
impl<const W: usize, const H: usize> Grid for PatternGrid<W, H> {
fn resolution(&self) -> (f64, f64) {
(f64::from(self.width) * 2.0, f64::from(self.height) * 4.0)
(
f64::from(self.width) * W as f64,
f64::from(self.height) * H as f64,
)
}
fn save(&self) -> Layer {
let string = String::from_utf16(&self.utf16_code_points).unwrap();
// the background color is always reset for braille patterns
let colors = self.colors.iter().map(|c| (*c, Color::Reset)).collect();
Layer { string, colors }
let contents = self
.cells
.iter()
.map(|&cell| {
let symbol = match cell.pattern {
// Skip rendering blank patterns to allow layers underneath
// to show through.
0 => None,
idx => Some(self.char_table[idx as usize]),
};
LayerCell {
symbol,
fg: cell.color,
// Patterns only affect foreground.
bg: None,
}
})
.collect();
Layer { contents }
}
fn reset(&mut self) {
self.utf16_code_points.fill(symbols::braille::BLANK);
self.colors.fill(Color::Reset);
self.cells.fill_with(Default::default);
}
fn paint(&mut self, x: usize, y: usize, color: Color) {
let index = y
.saturating_div(4)
.saturating_div(H)
.saturating_mul(self.width as usize)
.saturating_add(x.saturating_div(2));
.saturating_add(x.saturating_div(W));
// using get_mut here because we are indexing the vector with usize values
// and we want to make sure we don't panic if the index is out of bounds
if let Some(c) = self.utf16_code_points.get_mut(index) {
*c |= symbols::braille::DOTS[y % 4][x % 2];
}
if let Some(c) = self.colors.get_mut(index) {
*c = color;
if let Some(cell) = self.cells.get_mut(index) {
cell.pattern |= 1u8 << ((x % W) + W * (y % H));
cell.color = Some(color);
}
}
}
@@ -181,12 +229,16 @@ struct CharGrid {
width: u16,
/// Height of the grid in number of terminal rows
height: u16,
/// Represents a single character for each cell
cells: Vec<char>,
/// The color of each cell
colors: Vec<Color>,
cells: Vec<Option<Color>>,
/// The character to use for every cell - e.g. a block, dot, etc.
cell_char: char,
/// If true, apply the color to the background as well as the foreground. This is used for
/// [`Marker::Block`], so that it will overwrite any previous foreground character, but also
/// leave a background that can be overlaid with an additional foreground character.
apply_color_to_bg: bool,
}
impl CharGrid {
@@ -197,9 +249,16 @@ impl CharGrid {
Self {
width,
height,
cells: vec![' '; length],
colors: vec![Color::Reset; length],
cells: vec![None; length],
cell_char,
apply_color_to_bg: false,
}
}
fn apply_color_to_bg(self) -> Self {
Self {
apply_color_to_bg: true,
..self
}
}
}
@@ -211,14 +270,20 @@ impl Grid for CharGrid {
fn save(&self) -> Layer {
Layer {
string: self.cells.iter().collect(),
colors: self.colors.iter().map(|c| (*c, Color::Reset)).collect(),
contents: self
.cells
.iter()
.map(|&color| LayerCell {
symbol: color.map(|_| self.cell_char),
fg: color,
bg: color.filter(|_| self.apply_color_to_bg),
})
.collect(),
}
}
fn reset(&mut self) {
self.cells.fill(' ');
self.colors.fill(Color::Reset);
self.cells.fill(None);
}
fn paint(&mut self, x: usize, y: usize, color: Color) {
@@ -226,10 +291,7 @@ impl Grid for CharGrid {
// using get_mut here because we are indexing the vector with usize values
// and we want to make sure we don't panic if the index is out of bounds
if let Some(c) = self.cells.get_mut(index) {
*c = self.cell_char;
}
if let Some(c) = self.colors.get_mut(index) {
*c = color;
*c = Some(color);
}
}
}
@@ -244,7 +306,7 @@ impl Grid for CharGrid {
/// and lower half of each cell. This allows us to draw shapes with a resolution of 1x2 "pixels" per
/// cell.
///
/// This allows for more flexibility than the `BrailleGrid` which only supports a single
/// This allows for more flexibility than the `PatternGrid` which only supports a single
/// foreground color for each 2x4 dots cell, and the `CharGrid` which only supports a single
/// character for each cell.
#[derive(Debug)]
@@ -254,7 +316,7 @@ struct HalfBlockGrid {
/// Height of the grid in number of terminal rows
height: u16,
/// Represents a single color for each "pixel" arranged in column, row order
pixels: Vec<Vec<Color>>,
pixels: Vec<Vec<Option<Color>>>,
}
impl HalfBlockGrid {
@@ -264,7 +326,7 @@ impl HalfBlockGrid {
Self {
width,
height,
pixels: vec![vec![Color::Reset; width as usize]; (height as usize) * 2],
pixels: vec![vec![None; width as usize]; (height as usize) * 2],
}
}
}
@@ -302,45 +364,34 @@ impl Grid for HalfBlockGrid {
.tuples()
.flat_map(|(upper_row, lower_row)| zip(upper_row, lower_row));
// then we work out what character to print for each pair of pixels
let string = vertical_color_pairs
.clone()
.map(|(upper, lower)| match (upper, lower) {
(Color::Reset, Color::Reset) => ' ',
(Color::Reset, _) => symbols::half_block::LOWER,
(_, Color::Reset) => symbols::half_block::UPPER,
(&lower, &upper) => {
if lower == upper {
symbols::half_block::FULL
} else {
symbols::half_block::UPPER
}
}
})
.collect();
// then we convert these each vertical pair of pixels into a foreground and background color
let colors = vertical_color_pairs
// Then we determine the character to print for each pair, along with the color of the
// foreground and background.
let contents = vertical_color_pairs
.map(|(upper, lower)| {
let (fg, bg) = match (upper, lower) {
(Color::Reset, Color::Reset) => (Color::Reset, Color::Reset),
(Color::Reset, &lower) => (lower, Color::Reset),
(&upper, Color::Reset) => (upper, Color::Reset),
(&upper, &lower) => (upper, lower),
let (symbol, fg, bg) = match (upper, lower) {
(None, None) => (None, None, None),
(None, Some(lower)) => (Some(symbols::half_block::LOWER), Some(*lower), None),
(Some(upper), None) => (Some(symbols::half_block::UPPER), Some(*upper), None),
(Some(upper), Some(lower)) if lower == upper => {
(Some(symbols::half_block::FULL), Some(*upper), Some(*lower))
}
(Some(upper), Some(lower)) => {
(Some(symbols::half_block::UPPER), Some(*upper), Some(*lower))
}
};
(fg, bg)
LayerCell { symbol, fg, bg }
})
.collect();
Layer { string, colors }
Layer { contents }
}
fn reset(&mut self) {
self.pixels.fill(vec![Color::Reset; self.width as usize]);
self.pixels.fill(vec![None; self.width as usize]);
}
fn paint(&mut self, x: usize, y: usize, color: Color) {
self.pixels[y][x] = color;
self.pixels[y][x] = Some(color);
}
}
@@ -462,7 +513,17 @@ impl<'a, 'b> From<&'a mut Context<'b>> for Painter<'a, 'b> {
/// this as similar to the `Frame` struct that is used to draw widgets on the terminal.
#[derive(Debug)]
pub struct Context<'a> {
// Width of the canvas in cells.
//
// This is NOT the resolution in dots/pixels as this varies by marker type.
width: u16,
// Height of the canvas in cells.
//
// This is NOT the resolution in dots/pixels as this varies by marker type.
height: u16,
// Canvas coordinate system width
x_bounds: [f64; 2],
// Canvas coordinate system height
y_bounds: [f64; 2],
grid: Box<dyn Grid>,
dirty: bool,
@@ -501,17 +562,10 @@ impl<'a> Context<'a> {
y_bounds: [f64; 2],
marker: Marker,
) -> Self {
let dot = symbols::DOT.chars().next().unwrap();
let block = symbols::block::FULL.chars().next().unwrap();
let bar = symbols::bar::HALF.chars().next().unwrap();
let grid: Box<dyn Grid> = match marker {
Marker::Dot => Box::new(CharGrid::new(width, height, dot)),
Marker::Block => Box::new(CharGrid::new(width, height, block)),
Marker::Bar => Box::new(CharGrid::new(width, height, bar)),
Marker::Braille => Box::new(BrailleGrid::new(width, height)),
Marker::HalfBlock => Box::new(HalfBlockGrid::new(width, height)),
};
let grid = Self::marker_to_grid(width, height, marker);
Self {
width,
height,
x_bounds,
y_bounds,
grid,
@@ -521,6 +575,30 @@ impl<'a> Context<'a> {
}
}
fn marker_to_grid(width: u16, height: u16, marker: Marker) -> Box<dyn Grid> {
let dot = symbols::DOT.chars().next().unwrap();
let block = symbols::block::FULL.chars().next().unwrap();
let bar = symbols::bar::HALF.chars().next().unwrap();
match marker {
Marker::Block => Box::new(CharGrid::new(width, height, block).apply_color_to_bg()),
Marker::Bar => Box::new(CharGrid::new(width, height, bar)),
Marker::Braille => Box::new(PatternGrid::<2, 4>::new(width, height, &BRAILLE)),
Marker::HalfBlock => Box::new(HalfBlockGrid::new(width, height)),
Marker::Quadrant => Box::new(PatternGrid::<2, 2>::new(width, height, &QUADRANTS)),
Marker::Sextant => Box::new(PatternGrid::<2, 3>::new(width, height, &SEXTANTS)),
Marker::Octant => Box::new(PatternGrid::<2, 4>::new(width, height, &OCTANTS)),
Marker::Dot | _ => Box::new(CharGrid::new(width, height, dot)),
}
}
/// Change the marker being used in this context.
///
/// This will save the last layer if necessary and reset the grid to use the new marker.
pub fn marker(&mut self, marker: Marker) {
self.finish();
self.grid = Self::marker_to_grid(self.width, self.height, marker);
}
/// Draw the given [`Shape`] in this context
pub fn draw<S>(&mut self, shape: &S)
where
@@ -573,16 +651,25 @@ impl<'a> Context<'a> {
///
/// By default the grid is made of Braille patterns but you may change the marker to use a different
/// set of symbols. If your terminal or font does not support this unicode block, you will see
/// unicode replacement characters (<28>) instead of braille dots. The Braille patterns provide a more
/// fine grained result (2x4 dots) but you might want to use a simple dot, block, or bar instead by
/// calling the [`marker`] method if your target environment does not support those symbols.
/// unicode replacement characters (<28>) instead of braille dots. The Braille patterns (as well the
/// octant character patterns) provide a more fine grained result with a 2x4 resolution per
/// character, but you might want to use a simple dot, block, or bar instead by calling the
/// [`marker`] method if your target environment does not support those symbols.
///
/// See [Unicode Braille Patterns](https://en.wikipedia.org/wiki/Braille_Patterns) for more info.
///
/// The `Octant` marker is similar to the `Braille` marker but, instead of sparse dots, displays
/// densely packed and regularly spaced pseudo-pixels, without visible bands between rows and
/// columns. However, it uses characters that are not yet as widely supported as the Braille
/// unicode block.
///
/// The `Quadrant` and `Sextant` markers are in turn akin to the `Octant` marker, but with a 2x2
/// and 2x3 resolution, respectively.
///
/// The `HalfBlock` marker is useful when you want to draw shapes with a higher resolution than a
/// `CharGrid` but lower than a `BrailleGrid`. This grid type supports a foreground and background
/// color for each terminal cell. This allows for more flexibility than the `BrailleGrid` which only
/// supports a single foreground color for each 2x4 dots cell.
/// `CharGrid` but lower than a `PatternGrid`. This grid type supports a foreground and background
/// color for each terminal cell. This allows for more flexibility than the `PatternGrid` which
/// only supports a single foreground color for each 2x4 dots cell.
///
/// The Canvas widget is used by calling the [`Canvas::paint`] method and passing a closure that
/// will be used to draw on the canvas. The closure will be passed a [`Context`] object that can be
@@ -723,7 +810,7 @@ where
/// The [`HalfBlock`] marker is useful when you want to draw shapes with a higher resolution
/// than with a grid of characters (e.g. with [`Block`] or [`Dot`]) but lower than with
/// [`Braille`]. This grid type supports a foreground and background color for each terminal
/// cell. This allows for more flexibility than the `BrailleGrid` which only supports a single
/// cell. This allows for more flexibility than the `PatternGrid` which only supports a single
/// foreground color for each 2x4 dots cell.
///
/// [`Braille`]: ratatui_core::symbols::Marker::Braille
@@ -802,19 +889,21 @@ where
// Retrieve painted points for each layer
for layer in ctx.layers {
for (index, (ch, colors)) in layer.string.chars().zip(layer.colors).enumerate() {
if ch != ' ' && ch != '\u{2800}' {
let (x, y) = (
(index % width) as u16 + canvas_area.left(),
(index / width) as u16 + canvas_area.top(),
);
let cell = buf[(x, y)].set_char(ch);
if colors.0 != Color::Reset {
cell.set_fg(colors.0);
}
if colors.1 != Color::Reset {
cell.set_bg(colors.1);
}
for (index, layer_cell) in layer.contents.iter().enumerate() {
let (x, y) = (
(index % width) as u16 + canvas_area.left(),
(index / width) as u16 + canvas_area.top(),
);
let cell = &mut buf[(x, y)];
if let Some(symbol) = layer_cell.symbol {
cell.set_char(symbol);
}
if let Some(fg) = layer_cell.fg {
cell.set_fg(fg);
}
if let Some(bg) = layer_cell.bg {
cell.set_bg(bg);
}
}
}
@@ -847,12 +936,76 @@ where
mod tests {
use indoc::indoc;
use ratatui_core::buffer::Cell;
use rstest::rstest;
use super::*;
// helper to test the canvas checks that drawing a vertical and horizontal line
// results in the expected output
fn test_marker(marker: Marker, expected: &str) {
#[rstest]
#[case::block(Marker::Block, indoc!(
"
█xxxx
█xxxx
█xxxx
█xxxx
█████"
))]
#[case::half_block(Marker::HalfBlock, indoc!(
"
█xxxx
█xxxx
█xxxx
█xxxx
█▄▄▄▄"
))]
#[case::bar(Marker::Bar, indoc!(
"
▄xxxx
▄xxxx
▄xxxx
▄xxxx
▄▄▄▄▄"
))]
#[case::braille(Marker::Braille, indoc!(
"
⡇xxxx
⡇xxxx
⡇xxxx
⡇xxxx
⣇⣀⣀⣀⣀"
))]
#[case::quadrant(Marker::Quadrant, indoc!(
"
▌xxxx
▌xxxx
▌xxxx
▌xxxx
▙▄▄▄▄"
))]
#[case::sextant(Marker::Sextant, indoc!(
"
▌xxxx
▌xxxx
▌xxxx
▌xxxx
🬲🬭🬭🬭🬭"
))]
#[case::octant(Marker::Octant, indoc!(
"
▌xxxx
▌xxxx
▌xxxx
▌xxxx
𜷀▂▂▂▂"
))]
#[case::dot(Marker::Dot, indoc!(
"
•xxxx
•xxxx
•xxxx
•xxxx
•••••"
))]
fn test_horizontal_with_vertical(#[case] marker: Marker, #[case] expected: &'static str) {
let area = Rect::new(0, 0, 5, 5);
let mut buf = Buffer::filled(area, Cell::new("x"));
let horizontal_line = Line {
@@ -881,71 +1034,104 @@ mod tests {
assert_eq!(buf, Buffer::with_lines(expected.lines()));
}
#[test]
fn test_bar_marker() {
test_marker(
Marker::Bar,
indoc!(
#[rstest]
#[case::block(Marker::Block, indoc!(
"
xxxx
▄xxxx
xxxx
▄xxxx
▄▄▄▄▄"
),
);
}
#[test]
fn test_block_marker() {
test_marker(
Marker::Block,
indoc!(
xxx
x█x█x
xxxx
x█x█x
█xxx█"))]
#[case::half_block(Marker::HalfBlock,
indoc!(
"
█xxxx
█xxxx
xxxx
█xxxx
███"
),
);
}
#[test]
fn test_braille_marker() {
test_marker(
Marker::Braille,
indoc!(
█xxx
x█xx
xxxx
x█xx
xxx")
)]
#[case::bar(Marker::Bar, indoc!(
"
xxxx
⡇xxxx
xxxx
⡇xxxx
⣇⣀⣀⣀⣀"
),
);
}
#[test]
fn test_dot_marker() {
test_marker(
Marker::Dot,
indoc!(
xxx
x▄x▄x
xxxx
x▄x▄x
▄xxx▄"))]
#[case::braille(Marker::Braille, indoc!(
"
xxxx
•xxxx
xxxx
•xxxx
•••••"
),
);
xxx
x⢣x⡜x
xxxx
x⡜x⢣x
⡜xxx⢣"
))]
#[case::quadrant(Marker::Quadrant, indoc!(
"
▚xxx▞
x▚x▞x
xx█xx
x▞x▚x
▞xxx▚"
))]
#[case::sextant(Marker::Sextant, indoc!(
"
🬧xxx🬔
x🬧x🬔x
xx█xx
x🬘x🬣x
🬘xxx🬣"
))]
#[case::octant(Marker::Octant, indoc!(
"
▚xxx▞
x▚x▞x
xx█xx
x▞x▚x
▞xxx▚"
))]
#[case::dot(Marker::Dot, indoc!(
"
•xxx•
x•x•x
xx•xx
x•x•x
•xxx•"
))]
fn test_diagonal_lines(#[case] marker: Marker, #[case] expected: &'static str) {
let area = Rect::new(0, 0, 5, 5);
let mut buf = Buffer::filled(area, Cell::new("x"));
let diagonal_up = Line {
x1: 0.0,
y1: 0.0,
x2: 10.0,
y2: 10.0,
color: Color::Reset,
};
let diagonal_down = Line {
x1: 0.0,
y1: 10.0,
x2: 10.0,
y2: 0.0,
color: Color::Reset,
};
Canvas::default()
.marker(marker)
.paint(|ctx| {
ctx.draw(&diagonal_down);
ctx.draw(&diagonal_up);
})
.x_bounds([0.0, 10.0])
.y_bounds([0.0, 10.0])
.render(area, &mut buf);
assert_eq!(buf, Buffer::with_lines(expected.lines()));
}
// The canvas methods work a lot with arithmetic so here we enter various width and height
// values to check if there are any integer overflows we just initialize the canvas painters
#[test]
fn check_canvas_paint_max() {
let mut b_grid = BrailleGrid::new(u16::MAX, 2);
let mut b_grid = PatternGrid::<2, 4>::new(u16::MAX, 2, &OCTANTS);
let mut c_grid = CharGrid::new(u16::MAX, 2, 'd');
let max = u16::MAX as usize;
@@ -964,7 +1150,7 @@ mod tests {
// We delibately cause integer overflow to check if we don't panic and don't get weird behavior
#[test]
fn check_canvas_paint_overflow() {
let mut b_grid = BrailleGrid::new(u16::MAX, 3);
let mut b_grid = PatternGrid::<2, 4>::new(u16::MAX, 3, &BRAILLE);
let mut c_grid = CharGrid::new(u16::MAX, 3, 'd');
let max = u16::MAX as usize + 10;

View File

@@ -115,7 +115,7 @@ mod tests {
"█ █",
"██████████",
]);
expected.set_style(buffer.area, Style::new().red());
expected.set_style(buffer.area, Style::new().red().on_red());
expected.set_style(buffer.area.inner(Margin::new(1, 1)), Style::reset());
assert_eq!(buffer, expected);
}

View File

@@ -1017,16 +1017,18 @@ impl Widget for &Chart<'_> {
}
}
for dataset in &self.datasets {
Canvas::default()
.background_color(self.style.bg.unwrap_or(Color::Reset))
.x_bounds(self.x_axis.bounds)
.y_bounds(self.y_axis.bounds)
.marker(dataset.marker)
.paint(|ctx| {
Canvas::default()
.background_color(self.style.bg.unwrap_or(Color::Reset))
.x_bounds(self.x_axis.bounds)
.y_bounds(self.y_axis.bounds)
.paint(|ctx| {
for dataset in &self.datasets {
ctx.marker(dataset.marker);
let color = dataset.style.fg.unwrap_or(Color::Reset);
ctx.draw(&Points {
coords: dataset.data,
color: dataset.style.fg.unwrap_or(Color::Reset),
color,
});
match dataset.graph_type {
GraphType::Line => {
@@ -1036,7 +1038,7 @@ impl Widget for &Chart<'_> {
y1: data[0].1,
x2: data[1].0,
y2: data[1].1,
color: dataset.style.fg.unwrap_or(Color::Reset),
color,
});
}
}
@@ -1047,15 +1049,15 @@ impl Widget for &Chart<'_> {
y1: 0.0,
x2: *x,
y2: *y,
color: dataset.style.fg.unwrap_or(Color::Reset),
color,
});
}
}
GraphType::Scatter => {}
}
})
.render(graph_area, buf);
}
}
})
.render(graph_area, buf);
if let Some(Position { x, y }) = layout.title_x {
let title = self.x_axis.title.as_ref().unwrap();
@@ -1548,6 +1550,62 @@ mod tests {
assert_eq!(buffer, expected);
}
#[rstest]
#[case::dot(symbols::Marker::Dot, '•')]
#[case::dot(symbols::Marker::Braille, '⢣')]
fn overlapping_lines(#[case] marker: symbols::Marker, #[case] symbol: char) {
let data_diagonal_up = [(0.0, 0.0), (5.0, 5.0)];
let data_diagonal_down = [(0.0, 5.0), (5.0, 0.0)];
let lines = vec![
Dataset::default()
.data(&data_diagonal_up)
.marker(symbols::Marker::Block)
.graph_type(GraphType::Line)
.blue(),
Dataset::default()
.data(&data_diagonal_down)
.marker(marker)
.graph_type(GraphType::Line)
.red(),
];
let chart = Chart::new(lines)
.x_axis(Axis::default().bounds([0.0, 5.0]))
.y_axis(Axis::default().bounds([0.0, 5.0]));
let area = Rect::new(0, 0, 5, 5);
let mut buffer = Buffer::empty(area);
chart.render(buffer.area, &mut buffer);
#[rustfmt::skip]
let mut expected = Buffer::with_lines([
format!("{symbol}"),
format!(" {symbol}"),
format!(" {symbol} "),
format!("{symbol} "),
format!("{symbol}"),
]);
for i in 0..5 {
// The Marker::Dot and Marker::Braille tiles have the
// foreground set to Red.
expected.set_style(Rect::new(i, i, 1, 1), Style::new().fg(Color::Red));
// The Marker::Block tiles have both the foreground and
// background set to Blue.
expected.set_style(
Rect::new(i, 4 - i, 1, 1),
Style::new().fg(Color::Blue).bg(Color::Blue),
);
}
// Where the Marker::Dot/Braille overlaps with Marker::Block,
// the background is set to blue from the Block, but the
// foreground is set to red from the Dot/Braille. This allows
// two line plots to overlap, so long as one of them is a
// Block.
expected.set_style(
Rect::new(2, 2, 1, 1),
Style::new().fg(Color::Red).bg(Color::Blue),
);
assert_eq!(buffer, expected);
}
#[test]
fn render_in_minimal_buffer() {
let mut buffer = Buffer::empty(Rect::new(0, 0, 1, 1));

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-beta.0"
version = "0.30.0-beta.1"
authors.workspace = true
documentation.workspace = true
repository.workspace = true
@@ -32,6 +32,10 @@ default = ["crossterm", "underline-color", "all-widgets", "macros", "layout-cach
#! Generally an application will only use one backend, so you should only enable one of the following features:
## enables the [`CrosstermBackend`](backend::CrosstermBackend) backend and adds a dependency on [`crossterm`].
crossterm = ["std", "dep:ratatui-crossterm"]
## selects the crossterm 0.28.x backend implementation
crossterm_0_28 = ["crossterm", "ratatui-crossterm/crossterm_0_28"]
## selects the crossterm 0.29.x backend implementation (default)
crossterm_0_29 = ["crossterm", "ratatui-crossterm/crossterm_0_29"]
## enables the [`TermionBackend`](backend::TermionBackend) backend and adds a dependency on [`termion`].
termion = ["std", "dep:ratatui-termion"]
## enables the [`TermwizBackend`](backend::TermwizBackend) backend and adds a dependency on [`termwiz`].

View File

@@ -3,6 +3,7 @@ pub mod main {
pub mod block;
pub mod buffer;
pub mod constraints;
pub mod gauge;
pub mod line;
pub mod list;
pub mod paragraph;
@@ -25,4 +26,5 @@ criterion::criterion_main!(
table::benches,
text::benches,
constraints::benches,
gauge::benches,
);

View File

@@ -52,7 +52,7 @@ fn barchart(c: &mut Criterion) {
group.finish();
}
/// Render the widget in a classical size buffer
/// Render the widget in a classical size buffer.
fn render(bencher: &mut Bencher, barchart: &BarChart) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
// We use `iter_batched` to clone the value in the setup function.

View File

@@ -36,7 +36,7 @@ fn block(c: &mut Criterion) {
group.finish();
}
/// render the block into a buffer of the given `size`
/// Render the block into a buffer of the given `size`.
fn render(bencher: &mut Bencher, block: &Block, size: Rect) {
let mut buffer = Buffer::empty(size);
// We use `iter_batched` to clone the value in the setup function.

View File

@@ -0,0 +1,58 @@
use criterion::{BatchSize, Criterion, criterion_group};
use ratatui::buffer::Buffer;
use ratatui::layout::Rect;
use ratatui::style::Style;
use ratatui::widgets::{Block, Gauge, Widget};
/// Benchmark for rendering a gauge.
fn gauge(c: &mut Criterion) {
let mut group = c.benchmark_group("gauge");
let (width, height) = (200, 50); // 1080p fullscreen with medium font
let buffer_size = Rect::new(0, 0, width, height);
// Render an empty gauge
group.bench_with_input(
format!("render_empty/{width}x{height}"),
&Gauge::default(),
|b, gauge| {
let mut buffer = Buffer::empty(buffer_size);
// We use `iter_batched` to clone the value in the setup function because
// `Widget::render` consumes the widget.
b.iter_batched(
|| gauge.to_owned(),
|bench_gauge| {
bench_gauge.render(buffer.area, &mut buffer);
},
BatchSize::SmallInput,
);
},
);
// Render with all features
group.bench_with_input(
format!("render_all_feature/{width}x{height}"),
&Gauge::default()
.block(Block::bordered().title("Progress"))
.gauge_style(Style::new().white().on_black().italic())
.percent(20)
.label("20%")
.use_unicode(true),
|b, gauge| {
let mut buffer = Buffer::empty(buffer_size);
// We use `iter_batched` to clone the value in the setup function because
// `Widget::render` consumes the widget.
b.iter_batched(
|| gauge.to_owned(),
|bench_gauge| {
bench_gauge.render(buffer.area, &mut buffer);
},
BatchSize::SmallInput,
);
},
);
group.finish();
}
criterion_group!(benches, gauge);

View File

@@ -39,7 +39,7 @@ fn list(c: &mut Criterion) {
group.finish();
}
/// render the list into a common size buffer
/// Render the list into a common size buffer.
fn render(bencher: &mut Bencher, list: &List) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
// We use `iter_batched` to clone the value in the setup function.

View File

@@ -67,7 +67,7 @@ fn paragraph(c: &mut Criterion) {
group.finish();
}
/// render the paragraph into a buffer with the given width
/// Render the paragraph into a buffer with the given width.
fn render(bencher: &mut Bencher, paragraph: &Paragraph, width: u16) {
let mut buffer = Buffer::empty(Rect::new(0, 0, width, PARAGRAPH_DEFAULT_HEIGHT));
// We use `iter_batched` to clone the value in the setup function.

View File

@@ -25,7 +25,7 @@ fn sparkline(c: &mut Criterion) {
group.finish();
}
/// render the block into a buffer of the given `size`
/// Render the block into a buffer of the given `size`.
fn render(bencher: &mut Bencher, sparkline: &Sparkline) {
let mut buffer = Buffer::empty(Rect::new(0, 0, 200, 50));
// We use `iter_batched` to clone the value in the setup function.

View File

@@ -46,7 +46,7 @@ fn text(c: &mut Criterion) {
group.finish();
}
/// Renders the text into a buffer of the given `size`
/// Render the text into a buffer of the given `size`.
fn render(bencher: &mut Bencher, text: &Text, size: Rect) {
let mut buffer = Buffer::empty(size);
// We use `iter_batched` to clone the value in the setup function.

View File

@@ -2,6 +2,7 @@
[default.extend-words]
ratatui = "ratatui"
sectore = "sectore" # https://github.com/sectore
[type.md]
extend-ignore-re = [