Skip to content

Conversation

@Omega359
Copy link

@Omega359 Omega359 commented Nov 25, 2025

PR to refactor and update your upstream PR. I took the liberty of merging up to latest main. Let me know what you think.

The biggest changes are

  • Removal of ConfiguredZone
  • All returned timestamps are in the session time zone
  • Fixed some issues with things besides strings not being properly updated to use session time zone

All my changes are in abbf107

Jefffrey and others added 9 commits November 27, 2025 18:55
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="https://github.com/Swatinem/rust-cache/commit/779680da715d629ac1d338a641029a2f4372abb5"><code>779680d</code></a>
2.8.2</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/2ea64efb2551baf97fd9611d09c8af70b088ceae"><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="https://github.com/Swatinem/rust-cache/commit/8930d9c33e314043c13794316986491e42a060d9"><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="https://github.com/Swatinem/rust-cache/commit/c071727fc96109277f0135b3f13503db23b6cc1b"><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="https://github.com/Swatinem/rust-cache/commit/f2a41b7c112cd43711cfd57f0a59eca88ec14a64"><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="https://github.com/Swatinem/rust-cache/commit/e306f83d219f81032ad45ba2a7b1af20cc228e62"><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="https://github.com/Swatinem/rust-cache/commit/c9119007a19252f0981aef1785db9b0dd6f373c0"><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="https://github.com/Swatinem/rust-cache/commit/3aaed5547eb4ccbf48b9a4d7dd62a50e04f7019d"><code>3aaed55</code></a>
Bump the actions group with 2 updates</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/972b315a8225e8594dddc2b92e6333d1d1d3059c"><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="https://github.com/Swatinem/rust-cache/commit/07caf06f7a4b787ad36bd267269f3c0dfa29744b"><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="https://github.com/swatinem/rust-cache/compare/f13886b937689c021905a6b90929199931d60db1...779680da715d629ac1d338a641029a2f4372abb5">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>
…che#18964)

Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.57 to 2.62.58.
<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.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>mise@latest</code> to 2025.11.9.</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>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/taiki-e/install-action/commit/1ee706eb04986370fc60419ba172594c51067f29"><code>1ee706e</code></a>
Release 2.62.58</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/72c518bd2fde5ff7f6a14c1308a297c015fa93da"><code>72c518b</code></a>
Update <code>cargo-shear@latest</code> to 1.6.6</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/8364b405ea3dc577d29043ce2283a61ecaf93ca8"><code>8364b40</code></a>
Update <code>mise@latest</code> to 2025.11.8</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/0b4ffaedc6b3f76c6ef52101a31ee191a92cc167"><code>0b4ffae</code></a>
Update <code>zizmor@latest</code> to 1.17.0</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/e5bd4b3e44f4ec562bc2b46fcd528e699f28e0d5"><code>e5bd4b3</code></a>
Update <code>uv@latest</code> to 0.9.12</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/d63b95630a91978f264615601ba86598f4c9b106"><code>d63b956</code></a>
Update <code>editorconfig-checker@latest</code> to 3.6.0</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/180a885d991969c84ebdd3d4cef645533ac39872"><code>180a885</code></a>
Update <code>wasmtime@latest</code> to 39.0.1</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/9bc3cf8cc9ccfdbab6c1d5c1f1c414c24cf32dd6"><code>9bc3cf8</code></a>
Update <code>release-plz@latest</code> to 0.3.149</li>
<li>See full diff in <a
href="https://github.com/taiki-e/install-action/compare/763e3324d4fd026c9bd284c504378585777a87d5...1ee706eb04986370fc60419ba172594c51067f29">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.58)](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>
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="https://github.com/crate-ci/typos/commit/2d0ce569feab1f8752f1dde43cc2f2aa53236e06"><code>2d0ce56</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/efbd900f8db9952781b6bd1ad83baa38ebd153e3"><code>efbd900</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/863fd15db8bf16bfe9117ec1a83ea7b6e802e9f3"><code>863fd15</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/9a27b16791dd73549457a07f247bc4920f787919"><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="https://github.com/crate-ci/typos/commit/3dbd9d4eacab7f22586ea581e4d403c3ca9dbbb7"><code>3dbd9d4</code></a>
feat(dict): November additions</li>
<li><a
href="https://github.com/crate-ci/typos/commit/a1a16c7b7c25d1c27cc750525aada8b9ae68b716"><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="https://github.com/crate-ci/typos/commit/cb8d2e78ff23c82fca05340ed256b04513d022b9"><code>cb8d2e7</code></a>
docs: Bump GitHub checkout action in 'github-action.md'</li>
<li><a
href="https://github.com/crate-ci/typos/commit/9f99fb8dfe87b8a3441863fb2e5d5da88a2aa9a2"><code>9f99fb8</code></a>
docs(ref): Clarify extend-words / extend-identifiers</li>
<li>See full diff in <a
href="https://github.com/crate-ci/typos/compare/626c4bedb751ce0b7f03262ca97ddda9a076ae1c...2d0ce569feab1f8752f1dde43cc2f2aa53236e06">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>
## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes #.

## Rationale for this change
Having it as a macro makes the code hard to read and to change /
refactor / optimize the code.
I hope this makes it easier for others to contribute as well.

## What changes are included in this PR?

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
…apache#18967)

## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes #.

## Rationale for this change

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.
-->

There was a copy/paste error - it was initialized from
proto_opts.has_header instead

## What changes are included in this PR?

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

Now the setting is initialized from `protobuf::CsvOptions::double_quote`

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

## Are there any user-facing changes?

No
<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->

---------

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
…8973)

## Which issue does this PR close?

- Fixes part of apache#18881

## Rationale for this change

Replace #[allow] with #[expect] to enable automatic detection when lint
suppressions are no longer needed.

## What changes are included in this PR?

 Replace 4 #[allow] attributes with #[expect] in datafusion-catalog
  - Add #![deny(clippy::allow_attributes)] lint rule to lib.rs
  - Convert unused_variables and clippy::too_many_arguments suppressions

## Are these changes tested?

yes

## Are there any user-facing changes?

 No user-facing changes.
## Which issue does this PR close?

This addresses part of apache#15804
but does not close it.

## Rationale for this change

Now that we are on MSRV 1.88 we can use rust edition 2024, which brings
let chains and other nice features. It also improves `unsafe` checking.
In order to introduce these changes in slower way instead of one massive
PR that is too difficult to manage we are updating a few crates at a
time.

## What changes are included in this PR?

Updates 6 crates to 2024.

- common
- common-runtime
- doc
- expr-common
- macros
- proto-common

## Are these changes tested?

Existing unit tests. There are no functional code changes.

## Are there any user-facing changes?

None.
…che#18978)

Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.62.58 to 2.62.59.
<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.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>
</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>wasm-bindgen@latest</code> to 0.2.106.</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>
<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>Update <code>cargo-shear@latest</code> to 1.6.4.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/taiki-e/install-action/commit/b4b80945859e8ef89a9732a0f46499a443b196fe"><code>b4b8094</code></a>
Release 2.62.59</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/812d1ba6738f71c3dc888e7f3228465551ab10e2"><code>812d1ba</code></a>
Update changelog</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/3d348f5824348b47ded5ce20d6ed9e0c1aab55ba"><code>3d348f5</code></a>
Update <code>mise@latest</code> to 2025.11.10</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/85debb04fce96f3a7b0c53853d3502584b8dc5e2"><code>85debb0</code></a>
Update <code>mise@latest</code> to 2025.11.9</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/b21ab5b468360f3365d7e4dcb6625f51bd55c9ca"><code>b21ab5b</code></a>
Update <code>uv@latest</code> to 0.9.13</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/4d8280b5fa26cc38acac46b0756d6445df6cffd4"><code>4d8280b</code></a>
Update <code>typos@latest</code> to 1.40.0</li>
<li>See full diff in <a
href="https://github.com/taiki-e/install-action/compare/1ee706eb04986370fc60419ba172594c51067f29...b4b80945859e8ef89a9732a0f46499a443b196fe">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.58&new-version=2.62.59)](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>
kumarUjjawal and others added 2 commits November 29, 2025 12:38
## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes apache#18108

## Rationale for this change

Literal 0/1 percentiles don’t need percentile buffering; using min/max
keeps results identical.

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.
-->

## What changes are included in this PR?

- Add a simplify hook so percentile_cont(..., 0|1) rewrites to min/max,
preserving distinct/filter/null handling and casting ints to Float64.
- Add targeted tests for the rewrite and for the no‑rewrite path.

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

## Are these changes tested?

Added tests 

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->

---------

Co-authored-by: Martin Grigorov <martin-g@users.noreply.github.com>
Co-authored-by: Jeffrey Vo <jeffrey.vo.australia@gmail.com>
…e#18986)

## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Part of apache#18881.

## Rationale for this change

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.
-->

> #[expect] attributes suppress the lint emission, but emit a warning,
if the expectation is unfulfilled. This can be useful to be notified
when the lint is no longer triggered.
> \-
https://rust-lang.github.io/rust-clippy/master/index.html?search=clippy%3A%3Aupper_case_acronyms

This is helpful to identify when the lint is no longer needed across
`functions-*` crates.

## What changes are included in this PR?

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

Added `#![deny(clippy::allow_attributes)]` to all `functions-*` crates.
Also, the following lints are removed:

+
[`clippy::upper_case_acronyms`](https://rust-lang.github.io/rust-clippy/master/index.html?search=clippy%3A%3Aupper_case_acronyms)
is removed for
https://github.com/apache/datafusion/blob/487de9db6a546671011d28540ec639d4cf212288/datafusion/functions-aggregate/src/regr.rs#L88-L129
because it resulted in
  ```
  warning: this lint expectation is unfulfilled
    --> datafusion/functions-aggregate/src/regr.rs:89:10
     |
  89 | #[expect(clippy::upper_case_acronyms)]
     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: `#[warn(unfulfilled_lint_expectations)]` on by default
  
  warning: `datafusion-functions-aggregate` (lib) generated 1 warning
  ```
The rationale is the following: The default value of
`avoid-breaking-exported-api` is `true` so lint is suppressed.
[Ref](https://github.com/rust-lang/rust-clippy/blob/92b4b68683249c781c3acad742fc6e57c4140ad9/clippy_lints/src/upper_case_acronyms.rs#L128-L132).
Setting `avoid-breaking-exported-api` to `false` raises multiple
warnings as datafusion does not strictly follow [`UpperCamelCase` naming
convention](https://rust-lang.github.io/api-guidelines/naming.html#casing-conforms-to-rfc-430-c-case).
+
[`clippy::too_many_arguments`](https://rust-lang.github.io/rust-clippy/master/index.html?search=clippy%3A%3Atoo_many_arguments#too_many_arguments)
is removed for
https://github.com/apache/datafusion/blob/487de9db6a546671011d28540ec639d4cf212288/datafusion/functions/src/regex/regexpinstr.rs#L289-L297
as default value of `too-many-arguments-threshold` is 7 and
`regexp_instr_inner` takes on 6 arguments.
+
[`rustdoc::redundant_explicit_links`](https://doc.rust-lang.org/rustdoc/lints.html#redundant_explicit_links)
is removed for (1)
https://github.com/apache/datafusion/blob/487de9db6a546671011d28540ec639d4cf212288/datafusion/functions/src/macros.rs#L79-L104
and (2)
https://github.com/apache/datafusion/blob/487de9db6a546671011d28540ec639d4cf212288/datafusion/functions/src/macros.rs#L106-L120
as it looks like computed automatic link for
``[`ScalarUDF`](datafusion_expr::ScalarUDF)`` is not the same as the
explicit link. Any concerns with this one?
+
[`rustdoc::private_intra_doc_links`](https://doc.rust-lang.org/rustdoc/lints.html#private_intra_doc_links)
is removed for (1)
https://github.com/apache/datafusion/blob/487de9db6a546671011d28540ec639d4cf212288/datafusion/functions-aggregate/src/approx_percentile_cont.rs#L242-L281
and (2)
https://github.com/apache/datafusion/blob/487de9db6a546671011d28540ec639d4cf212288/datafusion/functions-aggregate/src/approx_percentile_cont_with_weight.rs#L254-L259
since lint detects when [intra-doc
links](https://doc.rust-lang.org/rustdoc/write-documentation/linking-to-items-by-name.html)
from public to private items but `TDigest::to_scalar_state()` is public,
so we have the opposite case: from private to public items.

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

+ Ran `sh ci/scripts/rust_docs.sh` with no warnings/errors.
+ Ran `sh ci/scripts/rust_clippy.sh` with no warnings/errors.

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->

No.
ShashidharM0118 and others added 30 commits December 19, 2025 13:39
## Which issue does this PR close?

Closes apache#19396.

## Rationale for this change

Previously, when a `DefaultListFilesCache` was created with a TTL (e.g.,
`DefaultListFilesCache::new(1024, Some(Duration::from_secs(1)))`) and
passed to `CacheManagerConfig` without explicitly setting
`list_files_cache_ttl`, the cache's TTL would be unexpectedly unset
(overwritten to `None`).

This happened because `CacheManager::try_new()` always called
`update_cache_ttl(config.list_files_cache_ttl)`, even when the config
value was `None`.

## What changes are included in this PR?

- Modified `CacheManager::try_new()` to only update the cache's TTL if
`config.list_files_cache_ttl` is explicitly set (`Some(value)`). If the
config TTL is `None`, the cache's existing TTL is preserved.
- Added two test cases:
- `test_ttl_preserved_when_not_set_in_config`: Verifies that TTL is
preserved when not set in config
- `test_ttl_overridden_when_set_in_config`: Verifies that TTL can still
be overridden when explicitly set in config

## Are these changes tested?

Yes

## Are there any user-facing changes?

Yes
## Summary

This PR adds protobuf serialization/deserialization support for
`HashExpr`, enabling distributed query execution to serialize hash
expressions used in hash joins and repartitioning.

This is a followup to apache#18393 which introduced `HashExpr` but did not add
serialization support.
This causes errors when serialization is triggered on a query that
pushes down dynamic filters from a `HashJoinExec`.

As of  apache#18393 `HashJoinExec` produces filters of the form:

```sql
CASE (hash_repartition % 2)
    WHEN 0 THEN 
        a >= ab AND a <= ab AND 
        b >= bb AND b <= bb AND 
        hash_lookup(a,b)
    WHEN 1 THEN 
        a >= aa AND a <= aa AND 
        b >= ba AND b <= ba AND 
        hash_lookup(a,b)
    ELSE 
        FALSE
END
```

Where `hash_lookup` is an expression that holds a reference to a given
partitions hash join hash table and will check for membership.

Since we created these new expressions but didn't make any of them
serializable any attempt to do a distributed query or similar would run
into errors.

In apache#19300 we fixed
`hash_lookup` by replacing it with `true` since it can't be serialized
across the wire (we'd have to send the entire hash table). The logic was
that this preserves the bounds checks, which as still valuable.

This PR handles `hash_repartition` which determines which partition (and
hence which branch of the `CASE` expression) the row belongs to. For
this expression we *can* serialize it, so that's what I'm doing in this
PR.

### Key Changes

- **SeededRandomState wrapper**: Added a `SeededRandomState` struct that
wraps `ahash::RandomState` while preserving the seeds used to create it.
This is necessary because `RandomState` doesn't expose seeds after
creation, but we need them for serialization.

- **Updated seed constants**: Changed `HASH_JOIN_SEED` and
`REPARTITION_RANDOM_STATE` constants to use `SeededRandomState` instead
of raw `RandomState`.

- **HashExpr enhancements**: 
  - Changed `HashExpr` to use `SeededRandomState`
  - Added getter methods: `on_columns()`, `seeds()`, `description()`
  - Exported `HashExpr` and `SeededRandomState` from the joins module

- **Protobuf support**:
- Added `PhysicalHashExprNode` message to `datafusion.proto` with fields
for `on_columns`, seeds (4 `u64` values), and `description`
  - Implemented serialization in `to_proto.rs`
  - Implemented deserialization in `from_proto.rs`

## Test plan

- [x] Added roundtrip test in `roundtrip_physical_plan.rs` that creates
a `HashExpr`, serializes it, deserializes it, and verifies the result
- [x] All existing hash join tests pass (583 tests)
- [x] All proto roundtrip tests pass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…he#19400)

## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

close apache#19398 

## Rationale for this change

see issue apache#19398

## What changes are included in this PR?

impl `try_swapping_with_projection` for `CooperativeExec` and
`CoalesceBatchesExec`

## Are these changes tested?

add test case

## Are there any user-facing changes?
…pache#19412)

## Which issue does this PR close?

Closes apache#19410

## Rationale for this change

This PR fixes a regression introduced in apache#18831 where queries using
GROUP BY with ORDER BY positional reference to an aliased aggregate fail
with:

```
Error during planning: Column in ORDER BY must be in GROUP BY or an aggregate function
```

**Failing query (now fixed):**
```sql
with t as (select 'foo' as x)
select x, count(*) as "Count"
from t
group by x
order by 2 desc;
```

## What changes are included in this PR?

**Root cause:** When building the list of valid columns for ORDER BY
validation in `select.rs`, alias names were converted to `Column` using
`.into()`, which calls `from_qualified_name()` and normalizes
identifiers to lowercase. However, ORDER BY positional references
resolve to columns using schema field names, which preserve case. This
caused a mismatch (e.g., `Column("Count")` vs `Column("count")`).

**Fix:** Use `Column::new_unqualified()` instead of `.into()` to
preserve the exact case of alias names, matching how the schema stores
field names.

## Are these changes tested?

Yes, added a regression test to `order.slt`.

## Are there any user-facing changes?

No, this is a bug fix that restores expected behavior.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
## Which issue does this PR close?

- Closes apache#19269.

## Rationale for this change
See to issue apache#19269 for deeper rationale.

DF did not have the notion that being partitioned on a superset of the
required partitioning satisfied the condition. Having this logic will
eliminate unnecessary repartitions and in turn other operators like
partial aggregations.

I introduced this behavior with the `repartition_subset_satisfactions`
flag (default false) as there are some cases where repartitioning may
still be wanted when we satisfy partitioning via this subset property.
In particular, if when partitioned via Hash(a) there is data skew but
when partitioned on Hash(a, b) there is better distribution, a user may
want to turn this optimization off.

I also made it the case such that if we satisfy repartitioning via a
subset but the current amount of partitions < target_partitions, then we
will still repartition to maintain and increase parallelism in the
system when possible.

## What changes are included in this PR?

- Modified `satisfy()` logic to check for subsets and return an enum of
type of match: exact, subset, none
- Do in `EnforceDistribution`, where `satisfy()` is called, do not allow
subset logic for partitioned join operators as partitioning on each side
much match exactly, thus need to repartition if subset logic is true
- Created unit and sqllogictests

## Are these changes tested?
- Unit test
- sqllogictest
- tpch correctness

### Benchmarks
I did not see any drastic changes in benches, but the shuffle
eliminations will be great improvements for distributed DF.

<img width="628" height="762" alt="Screenshot 2025-12-12 at 8 28 15 PM"
src="https://github.com/user-attachments/assets/4b42945f-34e0-46c9-a4ce-e7ccdd0c0603"
/>

<img width="490" height="746" alt="Screenshot 2025-12-12 at 8 30 15 PM"
src="https://github.com/user-attachments/assets/846aef1b-8c5d-462d-83e7-7fa1e2a9372e"
/>

## Are there any user-facing changes?

Yes, users will now have the `repartition_subset_satisfications` option
as described in this PR

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
…5% faster (apache#19413)

## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Part of apache#18411
- Closes apache#19344
- Closes apache#19364

Note this is an alternate to
apache#19364

## Rationale for this change

@camuel found a query where DuckDB's raw grouping is is faster. 

I looked into it and much of the difference can be explained by better
vectorization in the comparisons and short string optimizations

## What changes are included in this PR?

Optimize (will comment inline)

## Are these changes tested?

By CI. See also benchmark results below. I tested manually as well

Create Data:
```shell
nice tpchgen-cli --tables=lineitem --format=parquet --scale-factor 100
```

Run query:
```shell
hyperfine --warmup 3 " datafusion-cli   -c \"select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;\" "
```

Before (main): 1.368s
```shell
Benchmark 1:  datafusion-cli   -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
  Time (mean ± σ):      1.393 s ±  0.020 s    [User: 16.778 s, System: 0.688 s]
  Range (min … max):    1.368 s …  1.438 s    10 runs
```

After (this PR) 1.022s
```shell
Benchmark 1:  ./datafusion-cli-multi-gby-try2   -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
  Time (mean ± σ):      1.022 s ±  0.015 s    [User: 11.685 s, System: 0.644 s]
  Range (min … max):    1.005 s …  1.052 s    10 runs
```

I have a PR that improves string view hashing performance too, see
- apache#19374

## Are there any user-facing changes?
Faster performance
…19374)

## Which issue does this PR close?

- builds on apache#19373
- part of apache#18411
- Broken out of apache#19344
- Closes apache#19344

## Rationale for this change

While looking at performance as part of
apache#18411, I noticed we could
speed up string view hashing by optimizing for small strings

## What changes are included in this PR?

Optimize StringView hashing, specifically by using the inlined view for
short strings

## Are these changes tested?

Functionally by existing coverage

Performance by benchmarks (added in
apache#19373) which show
* 15%-20% faster for mixed short/long strings
* 50%-70% faster for "short" arrays where we know there are no strings
longer than 12 bytes

```
utf8_view (small): multiple, no nulls        1.00     47.9±1.71µs        ? ?/sec    4.00    191.6±1.15µs        ? ?/sec
utf8_view (small): multiple, nulls           1.00     78.4±0.48µs        ? ?/sec    3.08    241.6±1.11µs        ? ?/sec
utf8_view (small): single, no nulls          1.00     13.9±0.19µs        ? ?/sec    4.29     59.7±0.30µs        ? ?/sec
utf8_view (small): single, nulls             1.00     23.8±0.20µs        ? ?/sec    3.10     73.7±1.03µs        ? ?/sec
utf8_view: multiple, no nulls                1.00    235.4±2.14µs        ? ?/sec    1.11    262.2±1.34µs        ? ?/sec
utf8_view: multiple, nulls                   1.00    227.2±2.11µs        ? ?/sec    1.34    303.9±2.23µs        ? ?/sec
utf8_view: single, no nulls                  1.00     71.6±0.74µs        ? ?/sec    1.05     75.2±1.27µs        ? ?/sec
utf8_view: single, nulls                     1.00     71.5±1.92µs        ? ?/sec    1.28     91.6±4.65µs  
```


<details><summary>Details</summary>
<p>

```
Gnuplot not found, using plotters backend
utf8_view: single, no nulls
                        time:   [20.872 µs 20.906 µs 20.944 µs]
                        change: [−15.863% −15.614% −15.331%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  8 (8.00%) high mild
  5 (5.00%) high severe

utf8_view: single, nulls
                        time:   [22.968 µs 23.050 µs 23.130 µs]
                        change: [−17.796% −17.384% −16.918%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  3 (3.00%) high mild
  4 (4.00%) high severe

utf8_view: multiple, no nulls
                        time:   [66.005 µs 66.155 µs 66.325 µs]
                        change: [−19.077% −18.785% −18.512%] (p = 0.00 < 0.05)
                        Performance has improved.

utf8_view: multiple, nulls
                        time:   [72.155 µs 72.375 µs 72.649 µs]
                        change: [−17.944% −17.612% −17.266%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  6 (6.00%) high mild
  5 (5.00%) high severe

utf8_view (small): single, no nulls
                        time:   [6.1401 µs 6.1563 µs 6.1747 µs]
                        change: [−69.623% −69.484% −69.333%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  3 (3.00%) high mild
  3 (3.00%) high severe

utf8_view (small): single, nulls
                        time:   [10.234 µs 10.250 µs 10.270 µs]
                        change: [−53.969% −53.815% −53.666%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high severe

utf8_view (small): multiple, no nulls
                        time:   [20.853 µs 20.905 µs 20.961 µs]
                        change: [−66.006% −65.883% −65.759%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  7 (7.00%) high mild
  2 (2.00%) high severe

utf8_view (small): multiple, nulls
                        time:   [32.519 µs 32.600 µs 32.675 µs]
                        change: [−53.937% −53.581% −53.232%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
```

</p>
</details> 

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
…hAggregateStream (apache#19287)

## Which issue does this PR close?

- Closes apache#19286.
- Related to apache#13123

## Rationale for this change

GroupedHashAggregateStream currently always reports that it can spill to
the memory tracking subsystem even though this is dependent on the
aggregation mode and the grouping order.
The optimistic logic in `group_aggregate_batch` does not correctly take
the spilling preconditions into account which can lead to excessive
memory use.

In order to to resolve this, this PR implements disk spilling for all
grouping modes.

## What changes are included in this PR?

- Correctly set `MemoryConsumer::can_spill` to reflect actual spilling
behaviour
- Ensure optimistic out-of-memory tolerance in `group_aggregate_batch`
is aligned with disk spilling or early emission logic
- Implement output order respecting disk spilling for partially and
fully sorted inputs.

## Are these changes tested?

Added additional test case to demonstrate problem.
Added test case to check that output order is respected after spilling.

## Are there any user-facing changes?

Yes, memory exhaustion may be reported much earlier in the query
pipeline than is currently the case. In my local tests with a per
consumer memory limit of 32MiB, grouped aggregation would consume 480MiB
in practice. This was then reported by ExternalSortExec which choked on
trying to reserve that much memory.
…nd TaskContext (apache#19281)

## Which issue does this PR close?

Addresses part of apache#18671 but
does not close it.

## Rationale for this change

This is the major change to address the requirements of apache#18671. This PR
combines all of the previous PRs in the issue and uses them in
`FFI_TableProvider` and `FFI_ExecutionPlan`. With this change the only
remaining thing to close the issue is to remove the core crate. That is
a large PR that mostly just changes import paths and will be a follow
up.

## What changes are included in this PR?

- Update all structs in the FFI crate to use the `FFI_PhysicalExpr`,
`FFI_Session`, `FFI_TaskContext`, and `FFI_LogicalExtensionCodec`.
- Remove creation of `SessionContext` within the FFI crate
- Updates unit tests

## Are these changes tested?

Unit tests are added. Coverage report:
<img width="685" height="804" alt="Screenshot 2025-12-11 at 10 42 21 AM"
src="https://github.com/user-attachments/assets/415822ec-909e-4abe-98de-ae32eb5ec9c3"
/>

## Are there any user-facing changes?

Yes.

There is one major change to using the FFI crate that downstream users
will need to implement. Now when creating a table provider, catalog
provider, etc you need to provide a `TaskContextProvider` and an
optional `LogicalExtensionCodec`. The upgrade guide has been updated.
…pache#19405)

## Which issue does this PR close?

- Closes apache#19333

## Rationale for this change

The test suite for `ParquetOpener` exhibited substantial code
duplication across multiple test functions. Each test was constructing
`ParquetOpener` instances with largely identical field values, resulting
in verbose and repetitive code that hindered maintainability and
obscured the distinguishing characteristics of each test case.


## What changes are included in this PR?

- Added `ParquetOpenerBuilder` struct in the test module
(`#[cfg(test)]`) with sensible defaults matching the original test code
patterns
- Refactored 8 test functions to use the builder pattern:
  - `test_prune_on_statistics`
  - `test_prune_on_partition_statistics_with_dynamic_expression`
  - `test_prune_on_partition_values_and_file_statistics`
  - `test_prune_on_partition_value_and_data_value`
  - `test_opener_pruning_skipped_on_static_filters`
  - `test_reverse_scan_row_groups`
  - `test_reverse_scan_single_row_group`
  - `test_reverse_scan_with_row_selection`
- Reduced code from ~28 lines per test to ~6-8 lines, highlighting only
the fields that differ

## Are these changes tested?
Yes

## Are there any user-facing changes?
No
## Which issue does this PR close?

N/A

## Rationale for this change

I want to optimize the range for int64 and I need benches before

## What changes are included in this PR?

add benchmark for `range` and `generate_series` for Int64 

## Are these changes tested?

N/A

## Are there any user-facing changes?

Nope
)

## Which issue does this PR close?

N/A

## Rationale for this change

using more efficient extend

## What changes are included in this PR?

replace manual loop with `extend`

## Are these changes tested?

existing tests

## Are there any user-facing changes?

Nope
## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes apache#18893.

## Rationale for this change

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.
-->

## What changes are included in this PR?

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
…e#19399)

Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.64.0 to 2.64.2.
<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.64.2</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.19.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.12.</p>
</li>
</ul>
<h2>2.64.1</h2>
<ul>
<li>
<p>Update <code>tombi@latest</code> to 0.7.8.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.11.</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.64.2] - 2025-12-19</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.19.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.12.</p>
</li>
</ul>
<h2>[2.64.1] - 2025-12-18</h2>
<ul>
<li>
<p>Update <code>tombi@latest</code> to 0.7.8.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.11.</p>
</li>
</ul>
<h2>[2.64.0] - 2025-12-17</h2>
<ul>
<li>
<p><code>tool</code> input option now supports whitespace (space, tab,
and line) or comma separated list. Previously, only comma-separated list
was supported. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1366">#1366</a>)</p>
</li>
<li>
<p>Support <code>prek</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1357">#1357</a>,
thanks <a href="https://github.com/j178"><code>@​j178</code></a>)</p>
</li>
<li>
<p>Support <code>mdbook-mermaid</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1359">#1359</a>,
thanks <a
href="https://github.com/CommanderStorm"><code>@​CommanderStorm</code></a>)</p>
</li>
<li>
<p>Support <code>martin</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1364">#1364</a>,
thanks <a
href="https://github.com/CommanderStorm"><code>@​CommanderStorm</code></a>)</p>
</li>
<li>
<p>Update <code>trivy@latest</code> to 0.68.2.</p>
</li>
<li>
<p>Update <code>xh@latest</code> to 0.25.3.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.10.</p>
</li>
<li>
<p>Update <code>uv@latest</code> to 0.9.18.</p>
</li>
<li>
<p>Update <code>cargo-shear@latest</code> to 1.9.1.</p>
</li>
</ul>
<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>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/taiki-e/install-action/commit/60581cd7025e0e855cebd745379013e286d9c787"><code>60581cd</code></a>
Release 2.64.2</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/c9fb49d91e88ccf5e88fb6d5d174ee664b3c825a"><code>c9fb49d</code></a>
Update <code>zizmor@latest</code> to 1.19.0</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/f4fd0f6b10b71be4ca5b027d2a48f27aeb948db7"><code>f4fd0f6</code></a>
Update <code>mise@latest</code> to 2025.12.12</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/ca44e2a6d435c2fa24b2d4b63fc366fdcab90221"><code>ca44e2a</code></a>
Release 2.64.1</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/cb8922a6d07b524703bfba4b32de265fe917577c"><code>cb8922a</code></a>
Update <code>tombi@latest</code> to 0.7.8</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/a16c289c87d9573c5d0ca86f8ea0db4fa677af09"><code>a16c289</code></a>
tools: Make tool name branch/tag push atomic</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/029c22f1bfbd03d7a8861260d8ceb4bb25697f24"><code>029c22f</code></a>
Update <code>mise@latest</code> to 2025.12.11</li>
<li>See full diff in <a
href="https://github.com/taiki-e/install-action/compare/69e777b377e4ec209ddad9426ae3e0c1008b0ef3...60581cd7025e0e855cebd745379013e286d9c787">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.64.0&new-version=2.64.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>
## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes apache#19157 

## Rationale for this change

<!--
Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.
-->
The `crc32` UDF was using the default return_type implementation which
does not preserve nullability information [Spark
CRC32](https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/hash.scala#L213-L240)
* Only returns the data type (Int64)
* Doesn't consider nullability of inputs
* Would always mark output as non-nullable


## What changes are included in this PR?

<!--
There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.
-->
* Implemented `return_field_from_args`: Creates a field with Int64 type
and correctly propagates nullability from input fields and scalar
arguments
* Updated `return_type`: Now returns an error directing users to use
return_field_from_args instead
* Added necessary imports: `Field`, `FieldRef`, and `ReturnFieldArgs` to
support the new implementation
* Added comprehensive nullability tests: Verifies that nullable inputs,
non-nullable inputs, and null scalar literals are handled correctly

## Are these changes tested?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
-->
* Non-nullable Binary input produces non-nullable Int64 output
* Nullable Binary input produces nullable Int64 output
* Null scalar literal (e.g., crc32(NULL)) produces nullable Int64 output
* Data type is correctly set to Int64 in all cases

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->

<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
This is a bug fix that corrects schema metadata only, it does not change
the actual computation or introduce any breaking changes to the API.
…19299)

## Which issue does this PR close?

None, as this PR is rather self-describing.

## Rationale for this change

We recently encountered stack overflow issues in the physical planner's
`create_physical_expr` function, when dealing with deeply nested
expression trees.

In the rest of the codebase, it seems the `recursive::recursive`
attribute is used to prevent this.

## What changes are included in this PR?

This PR adds the `recursive::recursive` attribute on
`create_physical_expr` whenever the `recursive_protection` feature is
enabled.

## Are these changes tested?

Yes, but mostly for the sake of manually testing the change.

I don't think it should be merged, as it has to be `#[ignore]`d anyway,
as the `recursive_protection` is not enabled in tests (which means it
would systematically crash).

I've left it in this PR however, to make review / manual testing easier.

## Are there any user-facing changes?

None.

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Bumps [aws-config](https://github.com/smithy-lang/smithy-rs) from 1.8.11
to 1.8.12.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/smithy-lang/smithy-rs/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-config&package-manager=cargo&previous-version=1.8.11&new-version=1.8.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [log](https://github.com/rust-lang/log) from 0.4.28 to 0.4.29.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/log/releases">log's
releases</a>.</em></p>
<blockquote>
<h2>0.4.29</h2>
<h2>MSRV</h2>
<p>This release increases <code>log</code>'s MSRV from
<code>1.61.0</code> to <code>1.68.0</code>.</p>
<h2>What's Changed</h2>
<ul>
<li>docs: Add missing impls from README.md by <a
href="https://github.com/AldaronLau"><code>@​AldaronLau</code></a> in <a
href="https://redirect.github.com/rust-lang/log/pull/703">rust-lang/log#703</a></li>
<li>Point to new URLs for favicon and logo by <a
href="https://github.com/AldaronLau"><code>@​AldaronLau</code></a> in <a
href="https://redirect.github.com/rust-lang/log/pull/704">rust-lang/log#704</a></li>
<li>perf: reduce llvm-lines of FromStr for <code>Level</code> and
<code>LevelFilter</code> by <a
href="https://github.com/dishmaker"><code>@​dishmaker</code></a> in <a
href="https://redirect.github.com/rust-lang/log/pull/709">rust-lang/log#709</a></li>
<li>Replace serde with serde_core by <a
href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
in <a
href="https://redirect.github.com/rust-lang/log/pull/712">rust-lang/log#712</a></li>
<li>Fix clippy lints by <a
href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
in <a
href="https://redirect.github.com/rust-lang/log/pull/713">rust-lang/log#713</a></li>
<li>Use GitHub Actions to install Rust and cargo-hack by <a
href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
in <a
href="https://redirect.github.com/rust-lang/log/pull/715">rust-lang/log#715</a></li>
<li>Exclude old unstable_kv features from testing matrix by <a
href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
in <a
href="https://redirect.github.com/rust-lang/log/pull/716">rust-lang/log#716</a></li>
<li>Fix up CI by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/rust-lang/log/pull/718">rust-lang/log#718</a></li>
<li>Prepare for 0.4.29 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/rust-lang/log/pull/719">rust-lang/log#719</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/AldaronLau"><code>@​AldaronLau</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/log/pull/703">rust-lang/log#703</a></li>
<li><a href="https://github.com/dishmaker"><code>@​dishmaker</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/log/pull/709">rust-lang/log#709</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/log/compare/0.4.28...0.4.29">https://github.com/rust-lang/log/compare/0.4.28...0.4.29</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/log/blob/master/CHANGELOG.md">log's
changelog</a>.</em></p>
<blockquote>
<h2>[0.4.29] - 2025-12-02</h2>
<h2>What's Changed</h2>
<ul>
<li>perf: reduce llvm-lines of FromStr for <code>Level</code> and
<code>LevelFilter</code> by <a
href="https://github.com/dishmaker"><code>@​dishmaker</code></a> in <a
href="https://redirect.github.com/rust-lang/log/pull/709">rust-lang/log#709</a></li>
<li>Replace serde with serde_core by <a
href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
in <a
href="https://redirect.github.com/rust-lang/log/pull/712">rust-lang/log#712</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/AldaronLau"><code>@​AldaronLau</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/log/pull/703">rust-lang/log#703</a></li>
<li><a href="https://github.com/dishmaker"><code>@​dishmaker</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/log/pull/709">rust-lang/log#709</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/log/compare/0.4.28...0.4.29">https://github.com/rust-lang/log/compare/0.4.28...0.4.29</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-lang/log/commit/b1e2df7bce7a1b685aa9bfd1db0a5cac1f0fc27d"><code>b1e2df7</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/log/issues/719">#719</a>
from rust-lang/cargo/0.4.29</li>
<li><a
href="https://github.com/rust-lang/log/commit/3fe1a546dc323e614c35d136920a112406910e06"><code>3fe1a54</code></a>
prepare for 0.4.29 release</li>
<li><a
href="https://github.com/rust-lang/log/commit/7a432d9ab570c49d42fcbd1c3b9e1e300064c2b9"><code>7a432d9</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/log/issues/718">#718</a>
from rust-lang/ci/msrv</li>
<li><a
href="https://github.com/rust-lang/log/commit/0689d568479bb578f66e48df43628cc04aa6269b"><code>0689d56</code></a>
rebump msrv to 1.68.0</li>
<li><a
href="https://github.com/rust-lang/log/commit/46b448e2a76a14210a7270ec11ad97cb9cbda6dc"><code>46b448e</code></a>
try drop msrv back to 1.61.0</li>
<li><a
href="https://github.com/rust-lang/log/commit/929ab3812e86915bb5edb65609cd6d5cb17939fb"><code>929ab38</code></a>
fix up doc test feature gate</li>
<li><a
href="https://github.com/rust-lang/log/commit/957cece4780cb006cbe2f819bd2f893822aad7cb"><code>957cece</code></a>
bump serde-dependent crates</li>
<li><a
href="https://github.com/rust-lang/log/commit/bea40c847c77ecb7b7e9f2d858a21edaa2aa6159"><code>bea40c8</code></a>
bump msrv to 1.68.0</li>
<li><a
href="https://github.com/rust-lang/log/commit/c540184ee9581d7373135f5511b6b174b5cee2d6"><code>c540184</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/log/issues/716">#716</a>
from rust-lang/ci-smaller-matrix2</li>
<li><a
href="https://github.com/rust-lang/log/commit/c971e636c4b44ff01ff21e6aa82607272d2d0bf2"><code>c971e63</code></a>
Merge branch 'master' into ci-smaller-matrix2</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/log/compare/0.4.28...0.4.29">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=log&package-manager=cargo&previous-version=0.4.28&new-version=0.4.29)](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>
…e#19451)

Bumps
[taiki-e/install-action](https://github.com/taiki-e/install-action) from
2.64.2 to 2.65.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/install-action/releases">taiki-e/install-action's
releases</a>.</em></p>
<blockquote>
<h2>2.65.1</h2>
<ul>
<li>
<p>Update <code>tombi@latest</code> to 0.7.9.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.21.6.</p>
</li>
<li>
<p>Update <code>prek@latest</code> to 0.2.23.</p>
</li>
</ul>
<h2>2.65.0</h2>
<ul>
<li>
<p>Support <code>cargo-insta</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1372">#1372</a>,
thanks <a
href="https://github.com/CommanderStorm"><code>@​CommanderStorm</code></a>)</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.21.2.</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.65.1] - 2025-12-21</h2>
<ul>
<li>
<p>Update <code>tombi@latest</code> to 0.7.9.</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.21.6.</p>
</li>
<li>
<p>Update <code>prek@latest</code> to 0.2.23.</p>
</li>
</ul>
<h2>[2.65.0] - 2025-12-20</h2>
<ul>
<li>
<p>Support <code>cargo-insta</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1372">#1372</a>,
thanks <a
href="https://github.com/CommanderStorm"><code>@​CommanderStorm</code></a>)</p>
</li>
<li>
<p>Update <code>vacuum@latest</code> to 0.21.2.</p>
</li>
</ul>
<h2>[2.64.2] - 2025-12-19</h2>
<ul>
<li>
<p>Update <code>zizmor@latest</code> to 1.19.0.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.12.</p>
</li>
</ul>
<h2>[2.64.1] - 2025-12-18</h2>
<ul>
<li>
<p>Update <code>tombi@latest</code> to 0.7.8.</p>
</li>
<li>
<p>Update <code>mise@latest</code> to 2025.12.11.</p>
</li>
</ul>
<h2>[2.64.0] - 2025-12-17</h2>
<ul>
<li>
<p><code>tool</code> input option now supports whitespace (space, tab,
and line) or comma separated list. Previously, only comma-separated list
was supported. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1366">#1366</a>)</p>
</li>
<li>
<p>Support <code>prek</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1357">#1357</a>,
thanks <a href="https://github.com/j178"><code>@​j178</code></a>)</p>
</li>
<li>
<p>Support <code>mdbook-mermaid</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1359">#1359</a>,
thanks <a
href="https://github.com/CommanderStorm"><code>@​CommanderStorm</code></a>)</p>
</li>
<li>
<p>Support <code>martin</code>. (<a
href="https://redirect.github.com/taiki-e/install-action/pull/1364">#1364</a>,
thanks <a
href="https://github.com/CommanderStorm"><code>@​CommanderStorm</code></a>)</p>
</li>
<li>
<p>Update <code>trivy@latest</code> to 0.68.2.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/taiki-e/install-action/commit/b9c5db3aef04caffaf95a1d03931de10fb2a140f"><code>b9c5db3</code></a>
Release 2.65.1</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/7796c0f3bbb4224effb7b9a5b719c58e4dcfffcd"><code>7796c0f</code></a>
Update changelog</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/f071f24b175c459aa9e08923b0660736cbb4a0c2"><code>f071f24</code></a>
Update <code>tombi@latest</code> to 0.7.9</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/874ad324364a4db3fb02c1f5e2b88535e22494a0"><code>874ad32</code></a>
Update <code>vacuum@latest</code> to 0.21.6</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/51bd7eff063004d77f2538d773da6664a6d8ce4d"><code>51bd7ef</code></a>
Update <code>vacuum@latest</code> to 0.21.5</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/e3a472337e859edcca3c6b097ee68fda61485251"><code>e3a4723</code></a>
Update <code>prek@latest</code> to 0.2.23</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/bfc291e1e39400b67eda124e4a7b4380e93b3390"><code>bfc291e</code></a>
Release 2.65.0</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/4620a85cf9e526d28a9eab84e396df233006dbda"><code>4620a85</code></a>
Update changelog</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/09980ef8ed3fa65b50d6c1a4756890d5298af699"><code>09980ef</code></a>
Support <code>cargo-insta</code> (<a
href="https://redirect.github.com/taiki-e/install-action/issues/1372">#1372</a>)</li>
<li><a
href="https://github.com/taiki-e/install-action/commit/e6fc9bc5a659502256890b92f1759f4b02235b76"><code>e6fc9bc</code></a>
Update <code>vacuum@latest</code> to 0.21.2</li>
<li>Additional commits viewable in <a
href="https://github.com/taiki-e/install-action/compare/60581cd7025e0e855cebd745379013e286d9c787...b9c5db3aef04caffaf95a1d03931de10fb2a140f">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.64.2&new-version=2.65.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>
…ache#19455)

Bumps
[sphinx-reredirects](https://github.com/documatt/sphinx-reredirects)
from 1.0.0 to 1.1.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/documatt/sphinx-reredirects/blob/main/docs/changelog.rst">sphinx-reredirects's
changelog</a>.</em></p>
<blockquote>
<p>1.1.0 (2025-12-22)</p>
<hr />
<ul>
<li>support Sphinx 9.0 and above</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/documatt/sphinx-reredirects/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sphinx-reredirects&package-manager=pip&previous-version=1.0.0&new-version=1.1.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>
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.44.3 to 1.45.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mitsuhiko/insta/releases">insta's
releases</a>.</em></p>
<blockquote>
<h2>1.45.0</h2>
<h2>Release Notes</h2>
<ul>
<li>Add external diff tool support via <code>INSTA_DIFF_TOOL</code>
environment variable. When set, insta uses the specified tool (e.g.,
<code>delta</code>, <code>difftastic</code>) to display snapshot diffs
instead of the built-in diff. The tool is invoked as <code>&lt;tool&gt;
&lt;old_file&gt; &lt;new_file&gt;</code>. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/844">#844</a></li>
<li>Add <code>test.disable_nextest_doctest</code> config option to
<code>insta.yaml</code>, allowing users to silence the nextest doctest
warning via config instead of passing <code>--dnd</code> every time. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/842">#842</a></li>
<li>Skip non-insta snapshot files in unreferenced detection. Projects
using both insta and other snapshot tools (like vitest or jest) can now
use <code>--unreferenced=reject</code> without false positives on
<code>.snap</code> files from other tools. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/846">#846</a></li>
<li>Collect warnings from tests for display after run. Ensures
deprecation warnings are visible even when nextest suppresses
stdout/stderr from passing tests. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/840">#840</a></li>
<li>Update TOML serialization to be up-to-date and backwards-compatible.
<a
href="https://redirect.github.com/mitsuhiko/insta/issues/834">#834</a></li>
<li>Support <code>clippy::needless_raw_strings</code> lint by only using
raw strings when content contains backslashes or quotes. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/828">#828</a></li>
</ul>
<h2>Install cargo-insta 1.45.0</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-installer.ps1
| iex&quot;
</code></pre>
<h2>Download cargo-insta 1.45.0</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Platform</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-aarch64-apple-darwin.tar.xz">cargo-insta-aarch64-apple-darwin.tar.xz</a></td>
<td>Apple Silicon macOS</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-apple-darwin.tar.xz">cargo-insta-x86_64-apple-darwin.tar.xz</a></td>
<td>Intel macOS</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-pc-windows-msvc.zip">cargo-insta-x86_64-pc-windows-msvc.zip</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-unknown-linux-gnu.tar.xz">cargo-insta-x86_64-unknown-linux-gnu.tar.xz</a></td>
<td>x64 Linux</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-unknown-linux-musl.tar.xz">cargo-insta-x86_64-unknown-linux-musl.tar.xz</a></td>
<td>x64 MUSL Linux</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.45.0/cargo-insta-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
</tbody>
</table>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md">insta's
changelog</a>.</em></p>
<blockquote>
<h2>1.45.0</h2>
<ul>
<li>Add external diff tool support via <code>INSTA_DIFF_TOOL</code>
environment variable. When set, insta uses the specified tool (e.g.,
<code>delta</code>, <code>difftastic</code>) to display snapshot diffs
instead of the built-in diff. The tool is invoked as <code>&lt;tool&gt;
&lt;old_file&gt; &lt;new_file&gt;</code>. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/844">#844</a></li>
<li>Add <code>test.disable_nextest_doctest</code> config option to
<code>insta.yaml</code>, allowing users to silence the nextest doctest
warning via config instead of passing <code>--dnd</code> every time. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/842">#842</a></li>
<li>Skip non-insta snapshot files in unreferenced detection. Projects
using both insta and other snapshot tools (like vitest or jest) can now
use <code>--unreferenced=reject</code> without false positives on
<code>.snap</code> files from other tools. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/846">#846</a></li>
<li>Collect warnings from tests for display after run. Ensures
deprecation warnings are visible even when nextest suppresses
stdout/stderr from passing tests. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/840">#840</a></li>
<li>Update TOML serialization to be up-to-date and backwards-compatible.
<a
href="https://redirect.github.com/mitsuhiko/insta/issues/834">#834</a></li>
<li>Support <code>clippy::needless_raw_strings</code> lint by only using
raw strings when content contains backslashes or quotes. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/828">#828</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mitsuhiko/insta/commit/681a02612b2030e7fb39fe216dba0a1a9c5c46c9"><code>681a026</code></a>
Release 1.45.0 (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/847">#847</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/ad233cd21b1022559377072af5bc9b1e0e2fec4a"><code>ad233cd</code></a>
Skip non-insta snapshot files in unreferenced detection (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/846">#846</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/d8e8dfe7aa5cdc720239398648bc97f9eabb965c"><code>d8e8dfe</code></a>
Collect warnings from tests for display after run (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/840">#840</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/521812cb86d758d08b0e76051437df2337775d86"><code>521812c</code></a>
Support clippy::needless_raw_strings lint (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/828">#828</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/5822a95759c8b528bf0b64f997d312c523acc523"><code>5822a95</code></a>
Add external diff tool support via INSTA_DIFF_TOOL (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/844">#844</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/e50388f534145e353c435420e322bd6ac9cc8bf2"><code>e50388f</code></a>
Add config file support for disable_nextest_doctest (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/842">#842</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/5aadfe480601b77bfd27420a7553fd2480b67fed"><code>5aadfe4</code></a>
Up-to-date, backwards-compatible TOML (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/834">#834</a>)</li>
<li>See full diff in <a
href="https://github.com/mitsuhiko/insta/compare/1.44.3...1.45.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=insta&package-manager=cargo&previous-version=1.44.3&new-version=1.45.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>
* refactor: simplify ToTimestamp* constructors using macros for consist…
…he#19409)

## Which issue does this PR close?

* Part of apache#19250 

## Rationale for this change

This PR enables support for the `power()` function with negative scale
decimals (e.g., `1e4` represented as `1` with scale `-4`) and log for
decimal32 decimal64 .

## What changes are included in this PR?

- **Updated `pow_decimal_int` logic:** Added support for negative
scaling factors. When the adjustment factor is negative, the function
now multiplies by instead of dividing.
- For decimals with negative scale, the value is first converted to f64
to compute the logarithm.

## Are these changes tested?

Yes.

* Verified locally using `sqllogictest`.
* Covers cases such as `SELECT power(1e4, 2)` which previously returned
a "Negative scale is not supported" error.

---------

Co-authored-by: Oleks V <comphead@users.noreply.github.com>
## Which issue does this PR close?

Closes apache#18671 

## Rationale for this change

With the latest changes for apache#18671 we no longer require `datafusion`
crate as a dependency. This will reduce build times for users. Also it
guarantees we do not accidentally introduce code that will create a
`SessionContext` or any other large binary inside our FFI
implementations.

## What changes are included in this PR?

- Remove `datafusion` crate from Cargo.toml
- Update paths
- Apply consistent formatting

## Are these changes tested?

Existing unit tests.

## Are there any user-facing changes?

No. This only updates paths.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.