Skip to content

Conversation

mordamax
Copy link
Contributor

@mordamax mordamax commented Oct 6, 2025

Merging from master

alvicsam and others added 30 commits September 19, 2025 08:34
PR pins hash versions for all actions

cc paritytech/devops#4319
…s for a new reserve (#8108)

# Description

Solves: #8099

Based on the documentation and existing code, the usable balance is
computed with the following formula:

```rs
// If Fortitude == Polite 
let usable_balance = free - max(frozen - reserved, existential balance)
```

### The problem:

If an account's `free balance` is lower than `frozen balance`, no
reserves will be allowed even though the `usable balance` is enough to
cover the reserve, resulting in a `LiquidityRestrictions` error, which
should not happen.

### Visual example of how `usable/spendable` balance works:  
```bash
|__total__________________________________|
|__on_hold__|_____________free____________|
|__________frozen___________|
|__on_hold__|__ed__|
            |__untouchable__|__spendable__|
```

## Integration

No action is required, the changes only change existing code, it does
not add or change any API.

## Review Notes

From my understanding, the function `ensure_can_withdraw` is incorrect,
and instead of checking that the new `free` balance is higher or equal
to the `frozen` balance, it should make sure the `new free` balance is
higher or equal to the `usable` balance.

---------

Co-authored-by: Kian Paimani <[email protected]>
)

Bumps the ci_dependencies group with 14 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.7` |
`5.0.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact)
| `4.3.1` | `4.6.2` |
|
[actions/download-artifact](https://github.com/actions/download-artifact)
| `4.1.8` | `5.0.0` |
| [docker/login-action](https://github.com/docker/login-action) |
`3.3.0` | `3.5.0` |
| [actions/setup-node](https://github.com/actions/setup-node) | `4.1.0`
| `5.0.0` |
| [actions/cache](https://github.com/actions/cache) | `4.2.2` | `4.2.4`
|
|
[lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action)
| `2.4.1` | `2.6.1` |
| [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) |
`2.8.0` | `2.8.1` |
|
[actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain)
| `1.13.0` | `1.15.0` |
| [actions/github-script](https://github.com/actions/github-script) |
`7.1.0` | `8.0.0` |
| [actions/setup-python](https://github.com/actions/setup-python) |
`5.6.0` | `6.0.0` |
|
[aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials)
| `4.2.1` | `5.0.0` |
|
[actions/attest-build-provenance](https://github.com/actions/attest-build-provenance)
| `2.4.0` | `3.0.0` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `46.0.5` | `47.0.0` |


Updates `actions/checkout` from 4.1.7 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
<li>Prepare v5.0.0 release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li>
</ul>
<h2>⚠️ Minimum Compatible Runner Version</h2>
<p><strong>v2.327.1</strong><br />
<a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<p>Make sure your runner is updated to this version or newer to use this
release.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
<li>Prepare release v4.3.0 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2237">actions/checkout#2237</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/motss"><code>@​motss</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li><a href="https://github.com/mouismail"><code>@​mouismail</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li><a href="https://github.com/benwells"><code>@​benwells</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4...v4.3.0">https://github.com/actions/checkout/compare/v4...v4.3.0</a></p>
<h2>v4.2.2</h2>
<h2>What's Changed</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4.2.1...v4.2.2">https://github.com/actions/checkout/compare/v4.2.1...v4.2.2</a></p>
<h2>v4.2.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Jcambass"><code>@​Jcambass</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1919">actions/checkout#1919</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4.2.0...v4.2.1">https://github.com/actions/checkout/compare/v4.2.0...v4.2.1</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
<li>README: Suggest <code>user.email</code> to be
<code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li>
</ul>
<h2>v4.1.4</h2>
<ul>
<li>Disable <code>extensions.worktreeConfig</code> when disabling
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1692">actions/checkout#1692</a></li>
<li>Add dependabot config by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1688">actions/checkout#1688</a></li>
<li>Bump the minor-actions-dependencies group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1693">actions/checkout#1693</a></li>
<li>Bump word-wrap from 1.2.3 to 1.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1643">actions/checkout#1643</a></li>
</ul>
<h2>v4.1.3</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/08c6903cd8c0fde910a37f88322edcfb5dd907a8"><code>08c6903</code></a>
Prepare v5.0.0 release (<a
href="https://redirect.github.com/actions/checkout/issues/2238">#2238</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/9f265659d3bb64ab1440b03b12f4d47a24320917"><code>9f26565</code></a>
Update actions checkout to use node 24 (<a
href="https://redirect.github.com/actions/checkout/issues/2226">#2226</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/08eba0b27e820071cde6df949e0beb9ba4906955"><code>08eba0b</code></a>
Prepare release v4.3.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2237">#2237</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/631c7dc4f80f88219c5ee78fee08c6b62fac8da1"><code>631c7dc</code></a>
Update package dependencies (<a
href="https://redirect.github.com/actions/checkout/issues/2236">#2236</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/8edcb1bdb4e267140fa742c62e395cd74f332709"><code>8edcb1b</code></a>
Update CODEOWNERS for actions (<a
href="https://redirect.github.com/actions/checkout/issues/2224">#2224</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/09d2acae674a48949e3602304ab46fd20ae0c42f"><code>09d2aca</code></a>
Update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/2194">#2194</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/85e6279cec87321a52edac9c87bce653a07cf6c2"><code>85e6279</code></a>
Adjust positioning of user email note and permissions heading (<a
href="https://redirect.github.com/actions/checkout/issues/2044">#2044</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/009b9ae9e446ad8d9b8c809870b0fbcc5e03573e"><code>009b9ae</code></a>
Documentation update - add recommended permissions to Readme (<a
href="https://redirect.github.com/actions/checkout/issues/2043">#2043</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/cbb722410c2e876e24abbe8de2cc27693e501dcb"><code>cbb7224</code></a>
Update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/1977">#1977</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/3b9b8c884f6b4bb4d5be2779c26374abadae0871"><code>3b9b8c8</code></a>
docs: update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/1971">#1971</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/checkout/compare/v4.1.7...08c6903cd8c0fde910a37f88322edcfb5dd907a8">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/upload-artifact` from 4.3.1 to 4.6.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v4.6.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to use artifact 2.3.2 package &amp; prepare for new
upload-artifact release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/685">actions/upload-artifact#685</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/685">actions/upload-artifact#685</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4...v4.6.2">https://github.com/actions/upload-artifact/compare/v4...v4.6.2</a></p>
<h2>v4.6.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to use artifact 2.2.2 package by <a
href="https://github.com/yacaovsnc"><code>@​yacaovsnc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/673">actions/upload-artifact#673</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4...v4.6.1">https://github.com/actions/upload-artifact/compare/v4...v4.6.1</a></p>
<h2>v4.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Expose env vars to control concurrency and timeout by <a
href="https://github.com/yacaovsnc"><code>@​yacaovsnc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/662">actions/upload-artifact#662</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4...v4.6.0">https://github.com/actions/upload-artifact/compare/v4...v4.6.0</a></p>
<h2>v4.5.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: deprecated <code>Node.js</code> version in action by <a
href="https://github.com/hamirmahal"><code>@​hamirmahal</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/578">actions/upload-artifact#578</a></li>
<li>Add new <code>artifact-digest</code> output by <a
href="https://github.com/bdehamer"><code>@​bdehamer</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/656">actions/upload-artifact#656</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/hamirmahal"><code>@​hamirmahal</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/578">actions/upload-artifact#578</a></li>
<li><a href="https://github.com/bdehamer"><code>@​bdehamer</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/656">actions/upload-artifact#656</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4.4.3...v4.5.0">https://github.com/actions/upload-artifact/compare/v4.4.3...v4.5.0</a></p>
<h2>v4.4.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Undo indirect dependency updates from <a
href="https://redirect.github.com/actions/upload-artifact/issues/627">#627</a>
by <a href="https://github.com/joshmgross"><code>@​joshmgross</code></a>
in <a
href="https://redirect.github.com/actions/upload-artifact/pull/632">actions/upload-artifact#632</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4.4.2...v4.4.3">https://github.com/actions/upload-artifact/compare/v4.4.2...v4.4.3</a></p>
<h2>v4.4.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@actions/artifact</code> to 2.1.11 by <a
href="https://github.com/robherley"><code>@​robherley</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/627">actions/upload-artifact#627</a>
<ul>
<li>Includes fix for relative symlinks not resolving properly</li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4.4.1...v4.4.2">https://github.com/actions/upload-artifact/compare/v4.4.1...v4.4.2</a></p>
<h2>v4.4.1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/upload-artifact/commit/ea165f8d65b6e75b540449e92b4886f43607fa02"><code>ea165f8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/685">#685</a>
from salmanmkc/salmanmkc/3-new-upload-artifacts-release</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/08396203c179e13c71b9754ce3472ed71842eec0"><code>0839620</code></a>
Prepare for new release of actions/upload-artifact with new toolkit
cache ver...</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1"><code>4cec3d8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/673">#673</a>
from actions/yacaovsnc/artifact_2.2.2</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/e9fad966ccdffceea5de0445882c9455934bcf8e"><code>e9fad96</code></a>
license cache update for artifact</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/b26fd06e9da88a61ada55f23d7863325b1f115d3"><code>b26fd06</code></a>
Update to use artifact 2.2.2 package</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08"><code>65c4c4a</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/662">#662</a>
from actions/yacaovsnc/add_variable_for_concurrency_a...</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/020761922861c5b0a0a9b98ae4adccf1f675862c"><code>0207619</code></a>
move files back to satisfy licensed ci</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/1ecca81102de35b6c140e930a09ea6144c27abf1"><code>1ecca81</code></a>
licensed cache updates</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/97422693d3a0493fc2d725fe8c0ac1c1097e9128"><code>9742269</code></a>
Expose env vars to controll concurrency and timeout</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/6f51ac03b9356f520e9adb1b1b7802705f340c2b"><code>6f51ac0</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/656">#656</a>
from bdehamer/bdehamer/artifact-digest</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/upload-artifact/compare/v4.3.1...ea165f8d65b6e75b540449e92b4886f43607fa02">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/download-artifact` from 4.1.8 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/407">actions/download-artifact#407</a></li>
<li>BREAKING fix: inconsistent path behavior for single artifact
downloads by ID by <a
href="https://github.com/GrantBirki"><code>@​GrantBirki</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/416">actions/download-artifact#416</a></li>
</ul>
<h2>v5.0.0</h2>
<h3>🚨 Breaking Change</h3>
<p>This release fixes an inconsistency in path behavior for single
artifact downloads by ID. <strong>If you're downloading single artifacts
by ID, the output path may change.</strong></p>
<h4>What Changed</h4>
<p>Previously, <strong>single artifact downloads</strong> behaved
differently depending on how you specified the artifact:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (direct)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/my-artifact/</code> (nested)</li>
</ul>
<p>Now both methods are consistent:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (unchanged)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/</code> (fixed - now direct)</li>
</ul>
<h4>Migration Guide</h4>
<h5>✅ No Action Needed If:</h5>
<ul>
<li>You download artifacts by <strong>name</strong></li>
<li>You download <strong>multiple</strong> artifacts by ID</li>
<li>You already use <code>merge-multiple: true</code> as a
workaround</li>
</ul>
<h5>⚠️ Action Required If:</h5>
<p>You download <strong>single artifacts by ID</strong> and your
workflows expect the nested directory structure.</p>
<p><strong>Before v5 (nested structure):</strong></p>
<pre lang="yaml"><code>- uses: actions/download-artifact@v4
  with:
    artifact-ids: 12345
    path: dist
# Files were in: dist/my-artifact/
</code></pre>
<blockquote>
<p>Where <code>my-artifact</code> is the name of the artifact you
previously uploaded</p>
</blockquote>
<p><strong>To maintain old behavior (if needed):</strong></p>
<pre lang="yaml"><code>&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/634f93cb2916e3fdff6788551b99b062d0335ce0"><code>634f93c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/416">#416</a>
from actions/single-artifact-id-download-path</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b19ff4302770b82aa4694b63703b547756dacce6"><code>b19ff43</code></a>
refactor: resolve download path correctly in artifact download tests
(mainly ...</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e262cbee4ab8c473c61c59a81ad8e9dc760e90db"><code>e262cbe</code></a>
bundle dist</li>
<li><a
href="https://github.com/actions/download-artifact/commit/bff23f9308ceb2f06d673043ea6311519be6a87b"><code>bff23f9</code></a>
update docs</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fff8c148a8fdd56aa81fcb019f0b5f6c65700c4d"><code>fff8c14</code></a>
fix download path logic when downloading a single artifact by id</li>
<li><a
href="https://github.com/actions/download-artifact/commit/448e3f862ab3ef47aa50ff917776823c9946035b"><code>448e3f8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/407">#407</a>
from actions/nebuk89-patch-1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/47225c44b359a5155efdbbbc352041b3e249fb1b"><code>47225c4</code></a>
Update README.md</li>
<li><a
href="https://github.com/actions/download-artifact/commit/d3f86a106a0bac45b974a628896c90dbdf5c8093"><code>d3f86a1</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/404">#404</a>
from actions/robherley/v4.3.0</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fc02353415da80201a0da48ab47022efd7725d11"><code>fc02353</code></a>
prep for v4.3.0 release</li>
<li><a
href="https://github.com/actions/download-artifact/commit/77454371a433f370a16d329ef7db197f700a7a8f"><code>7745437</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/402">#402</a>
from actions/joshmgross/download-by-id-example</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/download-artifact/compare/v4.1.8...634f93cb2916e3fdff6788551b99b062d0335ce0">compare
view</a></li>
</ul>
</details>
<br />

Updates `docker/login-action` from 3.3.0 to 3.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/login-action/releases">docker/login-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.0</h2>
<ul>
<li>Support dual-stack endpoints for AWS ECR by <a
href="https://github.com/Spacefish"><code>@​Spacefish</code></a> <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/login-action/pull/874">docker/login-action#874</a>
<a
href="https://redirect.github.com/docker/login-action/pull/876">docker/login-action#876</a></li>
<li>Bump <code>@​aws-sdk/client-ecr</code> to 3.859.0 in <a
href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a>
<a
href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li>
<li>Bump <code>@​aws-sdk/client-ecr-public</code> to 3.859.0 in <a
href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a>
<a
href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.57.0 to 0.62.1 in
<a
href="https://redirect.github.com/docker/login-action/pull/870">docker/login-action#870</a></li>
<li>Bump form-data from 2.5.1 to 2.5.5 in <a
href="https://redirect.github.com/docker/login-action/pull/875">docker/login-action#875</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v3.4.0...v3.5.0">https://github.com/docker/login-action/compare/v3.4.0...v3.5.0</a></p>
<h2>v3.4.0</h2>
<ul>
<li>Bump <code>@​actions/core</code> from 1.10.1 to 1.11.1 in <a
href="https://redirect.github.com/docker/login-action/pull/791">docker/login-action#791</a></li>
<li>Bump <code>@​aws-sdk/client-ecr</code> to 3.766.0 in <a
href="https://redirect.github.com/docker/login-action/pull/789">docker/login-action#789</a>
<a
href="https://redirect.github.com/docker/login-action/pull/856">docker/login-action#856</a></li>
<li>Bump <code>@​aws-sdk/client-ecr-public</code> to 3.758.0 in <a
href="https://redirect.github.com/docker/login-action/pull/789">docker/login-action#789</a>
<a
href="https://redirect.github.com/docker/login-action/pull/856">docker/login-action#856</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.35.0 to 0.57.0 in
<a
href="https://redirect.github.com/docker/login-action/pull/801">docker/login-action#801</a>
<a
href="https://redirect.github.com/docker/login-action/pull/806">docker/login-action#806</a>
<a
href="https://redirect.github.com/docker/login-action/pull/858">docker/login-action#858</a></li>
<li>Bump cross-spawn from 7.0.3 to 7.0.6 in <a
href="https://redirect.github.com/docker/login-action/pull/814">docker/login-action#814</a></li>
<li>Bump https-proxy-agent from 7.0.5 to 7.0.6 in <a
href="https://redirect.github.com/docker/login-action/pull/823">docker/login-action#823</a></li>
<li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a
href="https://redirect.github.com/docker/login-action/pull/777">docker/login-action#777</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v3.3.0...v3.4.0">https://github.com/docker/login-action/compare/v3.3.0...v3.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/login-action/commit/184bdaa0721073962dff0199f1fb9940f07167d1"><code>184bdaa</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/878">#878</a>
from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li>
<li><a
href="https://github.com/docker/login-action/commit/5c6bc94683baa064818f51e7417087c2ac58b32c"><code>5c6bc94</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/caf405864315c6006c5581b540e5047cf728b4e7"><code>caf4058</code></a>
build(deps): bump the aws-sdk-dependencies group with 2 updates</li>
<li><a
href="https://github.com/docker/login-action/commit/ef38ec311a7df3f01475313e7c5bb584b74b112a"><code>ef38ec3</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/860">#860</a>
from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li>
<li><a
href="https://github.com/docker/login-action/commit/d52e8ef81c0de894e9c95bed8de0ee5955ec7eb7"><code>d52e8ef</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/9644ab7025be3206ff4b12f1531a1b6919022b00"><code>9644ab7</code></a>
build(deps): bump the aws-sdk-dependencies group with 2 updates</li>
<li><a
href="https://github.com/docker/login-action/commit/7abd1d512621d8896b31f4ea992d207f15915ad6"><code>7abd1d5</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/875">#875</a>
from docker/dependabot/npm_and_yarn/form-data-2.5.5</li>
<li><a
href="https://github.com/docker/login-action/commit/1a81202c4fda440f3b33eca3381d5d39c7efe85e"><code>1a81202</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/876">#876</a>
from crazy-max/aws-public-dual-stack</li>
<li><a
href="https://github.com/docker/login-action/commit/d1ab30dc54161cbfd704562857677edf4dd7837a"><code>d1ab30d</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/f25ff28d1c8cd9a7c35896711238fed682755e1c"><code>f25ff28</code></a>
support dual-stack for aws public ecr</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/login-action/compare/v3.3.0...184bdaa0721073962dff0199f1fb9940f07167d1">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-node` from 4.1.0 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-node/releases">actions/setup-node's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Enhance caching in setup-node with automatic package manager
detection by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1348">actions/setup-node#1348</a></li>
</ul>
<p>This update, introduces automatic caching when a valid
<code>packageManager</code> field is present in your
<code>package.json</code>. This aims to improve workflow performance and
make dependency management more seamless.
To disable this automatic caching, set <code>package-manager-cache:
false</code></p>
<pre lang="yaml"><code>steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
  with:
    package-manager-cache: false
</code></pre>
<ul>
<li>Upgrade action to use node24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1325">actions/setup-node#1325</a></li>
</ul>
<p>Make sure your runner is on version v2.327.1 or later to ensure
compatibility with this release. <a
href="https://github.com/actions/runner/releases/tag/v2.327.1">See
Release Notes</a></p>
<h3>Dependency Upgrades</h3>
<ul>
<li>Upgrade <code>@​octokit/request-error</code> and
<code>@​actions/github</code> by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1227">actions/setup-node#1227</a></li>
<li>Upgrade uuid from 9.0.1 to 11.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1273">actions/setup-node#1273</a></li>
<li>Upgrade undici from 5.28.5 to 5.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1295">actions/setup-node#1295</a></li>
<li>Upgrade form-data to bring in fix for critical vulnerability by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-node/pull/1332">actions/setup-node#1332</a></li>
<li>Upgrade actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-node/pull/1345">actions/setup-node#1345</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1348">actions/setup-node#1348</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1325">actions/setup-node#1325</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v4...v5.0.0">https://github.com/actions/setup-node/compare/v4...v5.0.0</a></p>
<h2>v4.4.0</h2>
<h2>What's Changed</h2>
<h3>Bug fixes:</h3>
<ul>
<li>Make eslint-compact matcher compatible with Stylelint by <a
href="https://github.com/FloEdelmann"><code>@​FloEdelmann</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/98">actions/setup-node#98</a></li>
<li>Add support for indented eslint output by <a
href="https://github.com/fregante"><code>@​fregante</code></a> in <a
href="https://redirect.github.com/actions/setup-node/pull/1245">actions/setup-node#1245</a></li>
</ul>
<h3>Enhancement:</h3>
<ul>
<li>Support private mirrors by <a
href="https://github.com/marco-ippolito"><code>@​marco-ippolito</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1240">actions/setup-node#1240</a></li>
</ul>
<h3>Dependency update:</h3>
<ul>
<li>Upgrade <code>@​action/cache</code> from 4.0.2 to 4.0.3 by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-node/pull/1262">actions/setup-node#1262</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/FloEdelmann"><code>@​FloEdelmann</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/98">actions/setup-node#98</a></li>
<li><a href="https://github.com/fregante"><code>@​fregante</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1245">actions/setup-node#1245</a></li>
<li><a
href="https://github.com/marco-ippolito"><code>@​marco-ippolito</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-node/pull/1240">actions/setup-node#1240</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-node/compare/v4...v4.4.0">https://github.com/actions/setup-node/compare/v4...v4.4.0</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-node/commit/a0853c24544627f65ddf259abe73b1d18a591444"><code>a0853c2</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/actions/setup-node/issues/1345">#1345</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/b7234cc9fe124f0f4932554b4e5284543083ae7b"><code>b7234cc</code></a>
Upgrade action to use node24 (<a
href="https://redirect.github.com/actions/setup-node/issues/1325">#1325</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/d7a11313b581b306c961b506cfc8971208bb03f6"><code>d7a1131</code></a>
Enhance caching in setup-node with automatic package manager detection
(<a
href="https://redirect.github.com/actions/setup-node/issues/1348">#1348</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/5e2628c959b9ade56971c0afcebbe5332d44b398"><code>5e2628c</code></a>
Bumps form-data (<a
href="https://redirect.github.com/actions/setup-node/issues/1332">#1332</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/65beceff8e91358525397bdce9103d999507ab03"><code>65becef</code></a>
Bump undici from 5.28.5 to 5.29.0 (<a
href="https://redirect.github.com/actions/setup-node/issues/1295">#1295</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/7e24a656e1c7a0d6f3eaef8d8e84ae379a5b035b"><code>7e24a65</code></a>
Bump uuid from 9.0.1 to 11.1.0 (<a
href="https://redirect.github.com/actions/setup-node/issues/1273">#1273</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/08f58d1471bff7f3a07d167b4ad7df25d5fcfcb6"><code>08f58d1</code></a>
Bump <code>@​octokit/request-error</code> and
<code>@​actions/github</code> (<a
href="https://redirect.github.com/actions/setup-node/issues/1227">#1227</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/49933ea5288caeca8642d1e84afbd3f7d6820020"><code>49933ea</code></a>
Bump <code>@​action/cache</code> from 4.0.2 to 4.0.3 (<a
href="https://redirect.github.com/actions/setup-node/issues/1262">#1262</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/e3ce749e201f52acbab9862647a7b9bd3e37cf76"><code>e3ce749</code></a>
feat: support private mirrors (<a
href="https://redirect.github.com/actions/setup-node/issues/1240">#1240</a>)</li>
<li><a
href="https://github.com/actions/setup-node/commit/40337cb8f758cccdfe3475af609daa63f81c7e23"><code>40337cb</code></a>
Add support for indented eslint output (<a
href="https://redirect.github.com/actions/setup-node/issues/1245">#1245</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/setup-node/compare/v4.1.0...a0853c24544627f65ddf259abe73b1d18a591444">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/cache` from 4.2.2 to 4.2.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
<li>Upgrade <code>@actions/cache</code> to <code>4.0.5</code> and move
<code>@protobuf-ts/plugin</code> to dev depdencies by <a
href="https://github.com/Link"><code>@​Link</code></a>- in <a
href="https://redirect.github.com/actions/cache/pull/1634">actions/cache#1634</a></li>
<li>Prepare release <code>4.2.4</code> by <a
href="https://github.com/Link"><code>@​Link</code></a>- in <a
href="https://redirect.github.com/actions/cache/pull/1636">actions/cache#1636</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v4...v4.2.4">https://github.com/actions/cache/compare/v4...v4.2.4</a></p>
<h2>v4.2.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to use <code>@​actions/cache</code> 4.0.3 package &amp;
prepare for new release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a>
(SAS tokens for cache entries are now masked in debug logs)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v4.2.2...v4.2.3">https://github.com/actions/cache/compare/v4.2.2...v4.2.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>4.2.4</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.5</li>
</ul>
<h3>4.2.3</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in
debug logs for cache entries)</li>
</ul>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<h3>4.1.2</h3>
<ul>
<li>Add GitHub Enterprise Cloud instances hostname filters to inform API
endpoint choices - <a
href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li>
<li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a
href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li>
</ul>
<h3>4.1.1</h3>
<ul>
<li>Restore original behavior of <code>cache-hit</code> output - <a
href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li>
</ul>
<h3>4.1.0</h3>
<ul>
<li>Ensure <code>cache-hit</code> output is set when a cache is missed -
<a
href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li>
<li>Deprecate <code>save-always</code> input - <a
href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li>
</ul>
<h3>4.0.2</h3>
<ul>
<li>Fixed restore <code>fail-on-cache-miss</code> not working.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/cache/commit/0400d5f644dc74513175e3cd8d07132dd4860809"><code>0400d5f</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1636">#1636</a>
from actions/Link-/release-4.2.4</li>
<li><a
href="https://github.com/actions/cache/commit/374a27f26986edd8c430f386d152a856e179c0ae"><code>374a27f</code></a>
Prepare release 4.2.4</li>
<li><a
href="https://github.com/actions/cache/commit/358a7306cd9d78ceffc19271e69cd8528462fccf"><code>358a730</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1634">#1634</a>
from actions/Link-/optimise-deps</li>
<li><a
href="https://github.com/actions/cache/commit/2ee706ef74683b68fd97d45e549070fc28642768"><code>2ee706e</code></a>
Fix with another approach</li>
<li><a
href="https://github.com/actions/cache/commit/94f7b5d9135a3af2d928e87120da293c9a920f90"><code>94f7b5d</code></a>
Fix bundle exec</li>
<li><a
href="https://github.com/actions/cache/commit/c36116c3f4852e9868973e98be949d101f296afa"><code>c36116c</code></a>
Fix the workflow to use licensed from source</li>
<li><a
href="https://github.com/actions/cache/commit/320fe7d56bfd8d9e7b7694dce399643f5b61d580"><code>320fe7d</code></a>
Update the licensed workflow to use the latest version</li>
<li><a
href="https://github.com/actions/cache/commit/d81cc477d92d48462edee5b1e53b15613993e818"><code>d81cc47</code></a>
Add licensed output</li>
<li><a
href="https://github.com/actions/cache/commit/de243982c557f21f36de55f0c01cd6a8e7a6aa71"><code>de24398</code></a>
Add licensed output</li>
<li><a
href="https://github.com/actions/cache/commit/e7b6a9cc9d34d03fd2bf2834b35a8b9e82faa8e5"><code>e7b6a9c</code></a>
<code>@​protobuf-ts/plugin</code> to dev dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/cache/compare/v4.2.2...0400d5f644dc74513175e3cd8d07132dd4860809">compare
view</a></li>
</ul>
</details>
<br />

Updates `lycheeverse/lychee-action` from 2.4.1 to 2.6.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lycheeverse/lychee-action/releases">lycheeverse/lychee-action's
releases</a>.</em></p>
<blockquote>
<h2>Version 2.6.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update lycheeVersion to v0.20.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/306">lycheeverse/lychee-action#306</a>,
which contains a hotfix for <a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/305">lycheeverse/lychee-action#305</a>.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lycheeverse/lychee-action/compare/v2...v2.6.1">https://github.com/lycheeverse/lychee-action/compare/v2...v2.6.1</a></p>
<h2>Version 2.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update lychee version to v0.20.0 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/304">lycheeverse/lychee-action#304</a></li>
<li>Bump actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/303">lycheeverse/lychee-action#303</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lycheeverse/lychee-action/compare/v2...v2.6.0">https://github.com/lycheeverse/lychee-action/compare/v2...v2.6.0</a></p>
<h2>Version 2.5.0</h2>
<h2>Summary</h2>
<p>Most notably with this release the deprecated
<code>--exclude-mail</code> flag was removed and the behavior of the
<code>--accept</code> flag was updated. Previously, status codes such as
200 OK were always accepted. Now they are only accepted by default. This
means providing the argument <code>--accept 201</code> now rejects
status code 200 OK.</p>
<h2>What's Changed</h2>
<ul>
<li>Update lycheeVersion to v0.19.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/300">lycheeverse/lychee-action#300</a></li>
<li>See the lychee changes here: <a
href="https://github.com/lycheeverse/lychee/releases/tag/lychee-v0.19.1">https://github.com/lycheeverse/lychee/releases/tag/lychee-v0.19.1</a>,
<a
href="https://github.com/lycheeverse/lychee/releases/tag/lychee-v0.19.0">https://github.com/lycheeverse/lychee/releases/tag/lychee-v0.19.0</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lycheeverse/lychee-action/compare/v2...v2.5.0">https://github.com/lycheeverse/lychee-action/compare/v2...v2.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/885c65f3dc543b57c898c8099f4e08c8afd178a2"><code>885c65f</code></a>
[create-pull-request] automated change (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/306">#306</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/01a5c94d8e012550040658854b90a7a7301e75ca"><code>01a5c94</code></a>
Update lycheeVersion to v0.20.0 (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/304">#304</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/147829136ad8e72b5a1e57d782626a0ebd8d1d16"><code>1478291</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/303">#303</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/0c3ab057b2b5547f06cdb168502f7a2c7491497f"><code>0c3ab05</code></a>
Remove deprecrated flag <code>--exclude-mail</code></li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/5c4ee84814c983aa7164eaee476f014e53ff3963"><code>5c4ee84</code></a>
[create-pull-request] automated change (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/300">#300</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/74c50ae9cb26a12ef66ad5769546fe0848ae9596"><code>74c50ae</code></a>
[create-pull-request] automated change (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/296">#296</a>)</li>
<li>See full diff in <a
href="https://github.com/lycheeverse/lychee-action/compare/82202e5e9c2f4ef1a55a3d02563e1cb6041e5332...885c65f3dc543b57c898c8099f4e08c8afd178a2">compare
view</a></li>
</ul>
</details>
<br />

Updates `Swatinem/rust-cache` from 2.8.0 to 2.8.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/swatinem/rust-cache/releases">Swatinem/rust-cache's
releases</a>.</em></p>
<blockquote>
<h2>v2.8.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Set empty <code>CARGO_ENCODED_RUSTFLAGS</code> in workspace metadata
retrieval by <a href="https://github.com/ark0f"><code>@​ark0f</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/249">Swatinem/rust-cache#249</a></li>
<li>chore(deps): update dependencies by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/251">Swatinem/rust-cache#251</a></li>
<li>chore: fix dependabot groups by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/253">Swatinem/rust-cache#253</a></li>
<li>Bump the prd-patch group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/254">Swatinem/rust-cache#254</a></li>
<li>chore(dependabot): regenerate and commit dist/ by <a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/257">Swatinem/rust-cache#257</a></li>
<li>Bump <code>@​types/node</code> from 22.16.3 to 24.2.1 in the
dev-major group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/255">Swatinem/rust-cache#255</a></li>
<li>Bump typescript from 5.8.3 to 5.9.2 in the dev-minor group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/256">Swatinem/rust-cache#256</a></li>
<li>Bump actions/setup-node from 4 to 5 in the actions group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/259">Swatinem/rust-cache#259</a></li>
<li>Update README.md by <a
href="https://github.com/Propfend"><code>@​Propfend</code></a> in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/234">Swatinem/rust-cache#234</a></li>
<li>Bump <code>@​types/node</code> from 24.2.1 to 24.3.0 in the
dev-minor group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/258">Swatinem/rust-cache#258</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ark0f"><code>@​ark0f</code></a> made
their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/249">Swatinem/rust-cache#249</a></li>
<li><a
href="https://github.com/reneleonhardt"><code>@​reneleonhardt</code></a>
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/251">Swatinem/rust-cache#251</a></li>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/254">Swatinem/rust-cache#254</a></li>
<li><a href="https://github.com/Propfend"><code>@​Propfend</code></a>
made their first contribution in <a
href="https://redirect.github.com/Swatinem/rust-cache/pull/234">Swatinem/rust-cache#234</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Swatinem/rust-cache/compare/v2...v2.8.1">https://github.com/Swatinem/rust-cache/compare/v2...v2.8.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md">Swatinem/rust-cache's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>2.8.1</h2>
<ul>
<li>Set empty <code>CARGO_ENCODED_RUSTFLAGS</code> when retrieving
metadata</li>
<li>Various dependency updates</li>
</ul>
<h2>2.8.0</h2>
<ul>
<li>Add support for <code>warpbuild</code> cache provider</li>
<li>Add new <code>cache-workspace-crates</code> feature</li>
</ul>
<h2>2.7.8</h2>
<ul>
<li>Include CPU arch in the cache key</li>
</ul>
<h2>2.7.7</h2>
<ul>
<li>Also cache <code>cargo install</code> metadata</li>
</ul>
<h2>2.7.6</h2>
<ul>
<li>Allow opting out of caching $CARGO_HOME/bin</li>
<li>Add runner OS in cache key</li>
<li>Adds an option to do lookup-only of the cache</li>
</ul>
<h2>2.7.5</h2>
<ul>
<li>Support Cargo.lock format cargo-lock v4</li>
<li>Only run macOsWorkaround() on macOS</li>
</ul>
<h2>2.7.3</h2>
<ul>
<li>Work around upstream problem that causes cache saving to hang for
minutes.</li>
</ul>
<h2>2.7.2</h2>
<ul>
<li>Only key by <code>Cargo.toml</code> and <code>Cargo.lock</code>
files of workspace members.</li>
</ul>
<h2>2.7.1</h2>
<ul>
<li>Update toml parser to fix parsing errors.</li>
</ul>
<h2>2.7.0</h2>
<ul>
<li>Properly cache <code>trybuild</code> tests.</li>
</ul>
<h2>2.6.2</h2>
<ul>
<li>Fix <code>toml</code> parsing.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/f13886b937689c021905a6b90929199931d60db1"><code>f13886b</code></a>
2.8.1</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/5abb1e2a952b26091780363e982e1b3d4e723898"><code>5abb1e2</code></a>
update dependencies, prepare for release</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/3c68c31fe524e6e5812dcac1b1c0b2674d48561f"><code>3c68c31</code></a>
Bump <code>@​types/node</code> from 24.2.1 to 24.3.0 in the dev-minor
group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/258">#258</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/5467cca14cd6cc7e39c8858aa15bb7e461b62340"><code>5467cca</code></a>
Update README.md (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/234">#234</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/94b28bf00e42c2b783e7dd289d30da129b46838b"><code>94b28bf</code></a>
Bump actions/setup-node from 4 to 5 in the actions group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/259">#259</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/cb8ffc21fa260a61d7c314b390985a11fcddf81a"><code>cb8ffc2</code></a>
Bump typescript from 5.8.3 to 5.9.2 in the dev-minor group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/256">#256</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/c4f0bbdf5846e024d8af89d412e3719a8309d98a"><code>c4f0bbd</code></a>
Bump <code>@​types/node</code> from 22.16.3 to 24.2.1 in the dev-major
group (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/255">#255</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/d8c50633615b3d561c0cf8a54dcbbfe4ef1fc47d"><code>d8c5063</code></a>
chore(dependabot): regenerate and commit dist/ (<a
href="https://redirect.github.com/swatinem/rust-cache/issues/257">#257</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/267a8a94c98a1d6542d1ea6c13b41d0fa1184dcb"><code>267a8a9</code></a>
Merge pull request <a
href="https://redirect.github.com/swatinem/rust-cache/issues/254">#254</a>
from Swatinem/dependabot/npm_and_yarn/prd-patch-d0e2e...</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/46cb408fbabd8fd4b4735721e2a4c85d0f392686"><code>46cb408</code></a>
Bump the prd-patch group with 2 updates</li>
<li>Additional commits viewable in <a
href="https://github.com/swatinem/rust-cache/compare/98c8021b550208e191a6a3145459bfc9fb29c4c0...f13886b937689c021905a6b90929199931d60db1">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions-rust-lang/setup-rust-toolchain` from 1.13.0 to 1.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/releases">actions-rust-lang/setup-rust-toolchain's
releases</a>.</em></p>
<blockquote>
<h2>v1.15.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/71">actions-rust-lang/setup-rust-toolchain#71</a></li>
<li>README should direct users to actions/checkout@5. by <a
href="https://github.com/martinfrances107"><code>@​martinfrances107</code></a>
in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/72">actions-rust-lang/setup-rust-toolchain#72</a></li>
<li>enhancement: Add option to specify rust-toolchain.toml path by <a
href="https://github.com/Kubaryt"><code>@​Kubaryt</code></a> in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/69">actions-rust-lang/setup-rust-toolchain#69</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/martinfrances107"><code>@​martinfrances107</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/72">actions-rust-lang/setup-rust-toolchain#72</a></li>
<li><a href="https://github.com/Kubaryt"><code>@​Kubaryt</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/69">actions-rust-lang/setup-rust-toolchain#69</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.14.1...v1.15.0">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.14.1...v1.15.0</a></p>
<h2>v1.14.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Pin <code>Swatinem/rust-cache</code> action to a full commit SHA by
<a href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a> in
<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/68">actions-rust-lang/setup-rust-toolchain#68</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/68">actions-rust-lang/setup-rust-toolchain#68</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.14.0...v1.14.1">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.14.0...v1.14.1</a></p>
<h2>v1.14.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add new parameters <code>cache-all-crates</code> and
<code>cache-workspace-crates</code> that are propagated to
<code>Swatinem/rust-cache</code> as <code>cache-all-crates</code> and
<code>cache-workspace-crates</code>
Solves <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/67">#67</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.13.0...v1.14.0">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.13.0...v1.14.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md">actions-rust-lang/setup-rust-toolchain's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</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/en/1.0.0/">Keep a Changelog</a>,
and this project adheres to <a
href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p>
<h2>[Unreleased]</h2>
<h2>[1.15.0] - 2025-09-14</h2>
<ul>
<li>Add support for non-root source directory.
Accept source code and <code>rust-toolchain.toml</code> file in
subdirectories of the repository.
Adds a new parameter <code>rust-src-dir</code> that controls the lookup
for toolchain files and sets a default value for the
<code>cache-workspace</code> input. (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/69">#69</a>
by <a href="https://github.com/Kubaryt"><code>@​Kubaryt</code></a>)</li>
</ul>
<h2>[1.14.1] - 2025-08-28</h2>
<ul>
<li>Pin <code>Swatinem/rust-cache</code> action to a full commit SHA (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/68">#68</a>
by <a
href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a>)</li…
Actions that use parity-publish don't need cache in PR since they only
install the crate. PR disables saving caches for those actions in PR,
they'll only consume it from master.

cc paritytech/devops#4317
Right now `pallet-revive-fixtures` is always trying to build the
fixtures. It requires `solc` and other stuff for compilation. If you are
not requiring the fixtures, because you for example only run `cargo
check`, this pull request introduces `SKIP_PALLET_REVIVE_FIXTURES`. When
the environment variable is set, the compilation of the fixtures is
skipped. It will set the fixtures to `None` and they will panic at
runtime.
…funds as an EOA account (#9717)

fixes #9570

---------

Co-authored-by: Robert van Eerdewijk <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexander Theißen <[email protected]>
Right now we have only 2 XCMP signals: `SuspendChannel` and
`ResumeChannel` and we can write at most 1 per page.

Let's also add a limit when reading the signals in a page. Even if now 1
is enough, since in the future we might add more signals, let's have a
limit of 3 per page.

---------

Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Needed to let us test a manual slash on Westend relay-chain and see what
happens in terms of UI, indexers etc on the revamped [PJS's staking
async
page](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fwestend-asset-hub-rpc.polkadot.io#/staking-async)
🍿

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Description

Improve the usage of the `inbound_queue::BenchmarkHelper` to decouple
the mocks from the benchmark.
This change will enable any user to benchmark custom messages since now
it's harcoded to the register_token_message only

---------

Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
ci-unified v202509220255, updated forklift to 0.14.3
possible [AWS Deadlock
#23](paritytech/forklift#23) fix
Fixes funding issues in benchmarks that were failing on Asset Hub Kusama
with "Funds are unavailable" errors.



Two root causes exist:  
- The `funded_account()` function calculated deposits based on the
current queue state, but `GeometricDepositBase` leads to exponential
growth: `deposit = base * (1 + increase_factor)^{queue_len}`.
-  We did not account for transaction fees.  

Solution:  
- Calculate deposits using the worst-case scenario with the maximum
queue size (`T::MaxSubmissions::get()`) to ensure sufficient funding,
regardless of changes in queue state during benchmark execution.
- Estimate total transaction fees as 1% of the minimum balance
multiplied by the number of operations.


This should provide a more robust fix than
#9772 and allow to fix
EPMB on KAHM (see polkadot-fellows/runtimes#916
- once/if we merge the current PR, we need to backport to `2507`, bump
EPMB crate and update 916 accordingly)

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…8053)

## Description

This PR adds a simple hook to `snowbridge-pallet-outbound-queue-v2`
which allows to perform actions whenever there is a new commitment in
this pallet.

---------

Co-authored-by: Adrian Catangiu <[email protected]>
Closes #9341

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Javier Viola <[email protected]>
This PR adds the collator selection pallet as well as other pallets
needed for its functionality to the Yet Another Parachain runtime.

Along with that, the YAP runtime is a little bit refactored to adopt the
latest FRAMEwork changes.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Description

Fixes a bug where Snowbridge Inbound V2 tips were not paid out to the
relayer.

## Review Notes

Any tips added to a message in the Inbound Queue v2 (Ethereum to
Polkadot direction), were burned and added to storage, but never paid
out to the relayer. This PR fixes this bug by adding the tip to the
relayer fee.

---------

Co-authored-by: Branislav Kontur <[email protected]>
Before this pull request, FRAME was executing all pallets
`on_initialize` and then register the weight, including the weight of
`on_runtime_upgrade`. Thus, other pallets were not aware on how much
weight was already used when they were executing their `on_initialize`
code. As some pallets are doing some work in `on_initialize`, they need
to be aware of how much weight is still left.
To register the weight after each `on_initialize` call, a new trait is
added. This new trait is implemented for tuples of types that implement
`OnInitialize` and then it registers the weight after each call to
`on_initialize`.

`pallet-scheduler` is changed to take the remaining weight into account
and to not just assume that its configured weight is always available.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This PR bumps the `libp2p_disconnects_litep2p_substream` test timeout
from 5 seconds to 1 minute.

Under load, the test may not have sufficient time to establish
connectivity and complete the test within the allotted time.

cc @paritytech/networking

Signed-off-by: Alexandru Vasile <[email protected]>
... to be used in polkadot foundry to make sure EVM state is in sync
with pallet-revive state.

Fixes: paritytech/foundry-polkadot#275

---------

Signed-off-by: Alexandru Gheorghe <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexander Theißen <[email protected]>
This PR adds the `--locked` option to the cargo doc tests.

Detected by running the CI on PR:
https://github.com/paritytech/polkadot-sdk/actions/runs/17972092266/job/51117118432

```rust
error[E0277]: the trait bound `BoundedVec<u8, v3::MaxPalletNameLen>: JsonSchema` is not satisfied
   --> polkadot/xcm/src/v3/mod.rs:228:12
    |
228 |     pub name: BoundedVec<u8, MaxPalletNameLen>,
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `JsonSchema` is not implemented for `BoundedVec<u8, v3::MaxPalletNameLen>`
    |
note: there are multiple different versions of crate `schemars` in the dependency graph
   --> /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/schemars-0.8.22/src/lib.rs:133:1
    |
133 | pub trait JsonSchema {
    | ^^^^^^^^^^^^^^^^^^^^ this is the required trait
    |
   ::: polkadot/xcm/src/v3/junction.rs:49:44
    |
49  | #[cfg_attr(feature = "json-schema", derive(schemars::JsonSchema))]
    |                                            -------- one version of crate `schemars` used here, as a direct dependency of the current crate
    |
   ::: polkadot/xcm/src/lib.rs:31:5
```

Thanks @bkchr for the suggestion here 🙏 

This has been detected while working on:
- #9418

Signed-off-by: Alexandru Vasile <[email protected]>
Closes #7259.

TODO
- [x] prdoc
- [x] upgrade from sync backing

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: Javier Viola <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Javier Viola <[email protected]>
Fixes bug in revm gasmetering where the initial charge was less than the
adjusted charge.

---------

Co-authored-by: Robert van Eerdewijk <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PG Herveou <[email protected]>
Follow-up to #9677 . I think it would be good to add our view on the
slot duration, as it is often confused with the actual block production
interval. This short addition should clarify things a bit.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
This PR add  support for `perfmap` in wasmtime executor.

For more technical details refer to this
[doc](https://docs.wasmtime.dev/examples-profiling-perf.html#profiling-with-perfmap).

Instruction on how to configure profiling on substrate nodes (tested
with cumulus benchmarks) is
[here](https://hackmd.io/o_Ghc86OT4KzCE4x04MeOg?view#Getting-the-right-flamegraph).

The following environment variable needs to be set when executing the
node binary:
```
export WASMTIME_PROFILING_STRATEGY=perfmap
```

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
fixes #9576

---------

Co-authored-by: Robert van Eerdewijk <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexander Theißen <[email protected]>
…alidator-side (#9458)

Implements priority handling of invulnerable AH collators which consists
of:
1. Connection management - there is a connection limit in the networking
stack of 100 peers after which no new connections are accepted. To make
sure that the invulnerable collators can always connect to the
validators permissionless collators are getting disconnected one the
connection count is close to the limit.
2. Collations from permissionless collators are held off for some time
before processing so that the invulnerables have got a chance to put a
collation on their own.

TODOs:
- [x] Add the invulnerables list.
- [x] Test if the change works for collators claiming positions further
into the CQ.
- [x] Find a good value for `HOLD_OFF_DURATION` and test it on a
testnet.
- [x] Safetynet: Add a command line parameter which overrides
`HOLD_OFF_DURATION`.
- [x] Make the hold off more idiomatic.
- [x] Hold off per relay parent.
- [x] Fix failing tests.

---------

Co-authored-by: Andrei Sandu <[email protected]>
Currently the runtime is responsible to remove statements from the
store. this is the only for the statements to expire and not grow
indefinitely until the store gobal limits.

If we use a statements store with 4GiB of statements, the method
`statements` and `remove` to query and remove statements from the
offchain worker is unusable given `statements` cannot be called.

I introduce the method `remove_by` which is safe.

Later we can also introduce a method `valid_statement_change` which
resize the usage of the statement store of one account given a new
usage. But I don't have time for this now.

There are some other possibilities (both implemented in different commit
of #9827):
* Do no make the runtime responsible of cleaning the store: make the
statement store clean the statements after some duration like 7 days.
* Make the user responsible to refresh their statements. The statement
store would clean statements by order of insertion. User with remaining
allowance must resubmit their statements regularly. (the pace depends on
how fast the allowance of user is changing in the runtime).

---------

Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: georgepisaltu <[email protected]>
# Description

This PR builds on my previous
[PR](#9233) and addresses
feedback from Basti’s comment
[here](#9283 (comment)).

To prevent the same situation from recurring in the future, I’ve
introduced a new **lint check** in **Zepter**, which is now also
integrated into the CI workflow. The purpose of this check is to
automatically detect and block cases where the same dependency is
declared both under `[dependencies]` and `[dev-dependencies]`.
`Asset` was requiring that all the assets are sorted at decoding. This
is quite confusing for people writingg frontends, because this is not
really documented anywhere. There are also only at max 20 assets
available, we can just make everyones life easier and always sort the
assets after decoding.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Description
This PR is part of #9765.
This PR introduces `pallet-oracle`, a new FRAME pallet that provides a
decentralized and trustworthy way to bring external, off-chain data onto
the blockchain. The pallet allows a configurable set of oracle operators
to feed data, such as prices, into the system, which can then be
consumed by other pallets.

## Integration

### For Runtime Developers

To integrate `pallet-oracle` into your runtime:

1. **Add dependency to your runtime's `Cargo.toml`**:

   ```toml
   pallet-oracle = { version = "1.0.0", default-features = false }
   ```

2. **Implement the `Config` trait** in your runtime:

   ```rust
   impl pallet_oracle::Config for Runtime {
       type OnNewData = ();
       type CombineData = pallet_oracle::DefaultCombineData;
       type Time = Timestamp;
       type OracleKey = AssetId;  // Your key type
       type OracleValue = Price;     // Your value type
       type RootOperatorAccountId = RootOperatorAccountId;
       type Members = OracleMembers;
type WeightInfo = pallet_oracle::weights::SubstrateWeight<Runtime>;
       type MaxHasDispatchedSize = ConstU32<100>;
       type MaxFeedValues = ConstU32<50>;
   }
   ```

3. **Add to `construct_runtime!`**:

   ```rust
   construct_runtime!(
       pub enum Runtime {
           // ... other pallets
           Oracle: pallet_oracle,
       }
   );
   ```

### For Pallet Developers

Other pallets can consume oracle data using the `DataProvider` trait:

```rust
use pallet_oracle::traits::DataProvider;

// Get current price
if let Some(price) = <pallet_oracle::Pallet<T> as DataProvider<CurrencyId, Price>>::get(&currency_id) {
    // Use the price data
}
```

## Review Notes

### Key Features

- **Decentralized Data Feeding**: Uses `SortedMembers` trait to manage
oracle operators, allowing integration with `pallet-membership`
- **Flexible Data Aggregation**: Configurable `CombineData`
implementation with default median-based aggregation
- **Timestamped Data**: All data includes timestamps for freshness
validation
- **Root Operator Support**: Special account that can bypass membership
checks for emergency data updates
- **Data Provider Traits**: Implements `DataProvider` and
`DataProviderExtended` for easy consumption by other pallets

### Implementation Details

The pallet uses a two-tier storage approach:

- `RawValues`: Stores individual operator submissions with timestamps
- `Values`: Stores aggregated values after applying the `CombineData`
logic

### Security Considerations

- Only authorized members can feed data (enforced via `SortedMembers`)
- Root operator can bypass membership checks for emergency situations
- One submission per operator per block to prevent spam
- Configurable limits on maximum feed values per transaction

### Testing

The pallet includes comprehensive tests covering:

- Basic data feeding and retrieval
- Member management and authorization
- Data aggregation logic
- Edge cases and error conditions
- Benchmarking for weight calculation

### Files Added

- `substrate/frame/honzon/oracle/` - Complete pallet implementation
- `substrate/frame/honzon/oracle/README.md` - Comprehensive
documentation
- Integration into umbrella workspace and node runtime
- Runtime API for off-chain access to oracle data

### Breaking Changes

None - this is a new pallet addition.

### Migration Guide

No migration required - this is a new feature.

# Checklist

- [x] My PR includes a detailed description as outlined in the
"Description" and its two subsections above.
- [x] My PR follows the [labeling
requirements](https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process)
of this project (at minimum one label for `T` required)
- External contributors: ask maintainers to put the right label on your
PR.
- [ ] I have made corresponding changes to the documentation (if
applicable)
- [x] I have added tests that prove my fix is effective or that my
feature works (if applicable)

---------

Co-authored-by: Bryan Chen <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Update eth-rpc metadata files

the metadata should have been updated here
#9759
where a new variant was added to an enum used by the runtime api

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
alexggh and others added 27 commits September 29, 2025 13:58
... to be used in polkadot foundry to make sure EVM state is in sync
with pallet-revive state.

Fixes: paritytech/foundry-polkadot#277

---------

Signed-off-by: Alexandru Gheorghe <[email protected]>
Co-authored-by: Alexander Theißen <[email protected]>
#8757)

We always allowed signing transactions using an Bitcoin/Eth style
SECP256k1 key. The account in this case is simply the blake2 hash of the
public key.

This address derivation is problematic: It requires the public key in
order to derive the account id. On Ethereum you simply can't know the
public key of an address. This is why the mapping in pallet_revive is
defined as `address <-> account_id`.

This PR adds a new signature variant that allows signing a transaction
with an account id as origin that matches this mapping.

## Why is this important?

### Example1 
A wallet contains an SECP256k1 key and wants to interact with native
Polkadot APIs. It can sign the transaction using this key. However,
without this change the origin of that transaction will be different
than the one it would appear under if it had signed an Ethereum
transaction.

### Example2
A chain using an Ethereum style address (like Mythical) wants to send
some tokens to one of their users account on AssetHub. How would they
know what is the address of that user on AssetHub? With this change they
can just pad the address with `0xEE` and rely on the fact that the user
can interact with AssetHub using their existing key.

## Why a new variant?
We can't modify the existing variant. Otherwise the same signature would
suddenly map to a different account making people lose access to their
funds. Instead, we add a new variant that adds control over an
additional account for the same signature.

## A new `KeccakSigner` and `KeccakSignature`

After considering feedback by @moliholy I am convinced that we should
use keccak instead of blake2b for this new `MultiSignature` variant.
Reasoning is that this will make it much simpler for Ethereum tooling to
generate such signatures. Since this signature is specifically created
for Ethereum interop it just makes sense to also use keccak here.

To that end I made the `ecdsa::{KeccakSigner, KeccakSignature}` generic
over their hash algorithm. Please note that I am using tags here and not
the `Hasher` trait directly. This makes things more complicated but it
was necessary: All Hasher implementations are in higher level crates and
can't be directly referenced here. But I would have to reference it in
order to make this a non breaking change. The `Signer` and `Signature`
types behave exactly the same way as before.

---------

Co-authored-by: joe petrowski <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Description

Adds `generateAncestryProof` to the mmr RPC. An RPC method for
generating ancestry proofs is required for cross-chain slashing by
cross-chain fishermen Snowfork/snowbridge#1493.
Consequently, this PR also adds the mmr runtime api method
`generate_ancestry_proof`. While such a method was already exposed by
the beefy-mmr runtime api, this PR opts for moving it to the mmr runtime
api instead due to the following considerations:
1. Invoking beefy-mmr's `generate_proof` method via RPC would require
adding the offchain-db extension to the beefy-rpc, which is a more
invasive change with boilerplate that's not needed since the mmr RPC
already uses the offchain-db extension for generating leaf proofs.
2. Since the ancestry proofs are for MMR, it is more natural to expose
the method directly on the mmr runtime api - the beefy-mmr pallet's
`generate_proof` method is merely a wrapper around the mmr pallet's
`generate_ancestry_proof` method.

Some other misc. changes documented under `Review Notes`.

## Integration

The integration is the same as for the beefy-mmr runtime api's
`generate_proof` method.

~~The integration is the same as for the beefy-mmr runtime api's
`generate_proof` method, except that the optional `at` specifier is
removed for the method here since the method is idempotent wrt. the
block height invoked at, so long as `at` >= `best_known_block_number`.
Removing the specifier reduces likelihood of spurious errors from
incorrect usage. I can revert the `at` specifier removal however if
desired for compatibility.~~

For example use, see Snowfork/snowbridge#1493.

## Review Notes

- Adds `generate_ancestry_proof` method to mmr runtime api
(Lederstrumpf@682eb4a)
- Adds `mmr_generateAncestryProof` rpc method
(Lederstrumpf@5d0eac9,
Lederstrumpf@5d0eac9f1f)
- Adds new `InvalidEquivocationProofSessionMember` error to beefy pallet
(Lederstrumpf@682eb4a141) (note:
this change is unrelated to the PR's main purpose, but helps
implementers with more granular error reporting. I'm open to removing
this change).
- Deprecates
`pallet_beefy::generate_ancestry_proof::generate_ancestry_proof` and
`pallet_beefy::AncestryHelper::generate_proof`. Deprecation penciled in
for September 2025 - I'm open to change this date or undo the
deprecation.
(Lederstrumpf@6619169ecd)
- ~~Removes `at` specifier for `pallet_mmr::generate_ancestry_proof`
(Lederstrumpf@bcadda2)
(as mentioned in the `Integration` section, fine to undo)~~ *(Update:
reverted removal of `at` specifier to allow fork handling).*

PR can be tested using Snowfork/snowbridge#1493.

If PR's approach is accepted, will open the associated PRs in
https://github.com/polkadot-fellows/runtimes &
https://github.com/polkadot-js/api.

---------

Co-authored-by: Adrian Catangiu <[email protected]>
…r pallets (#9780)

Replaces #9590.

The audit of #9590 showed that holding the txfee as held balance and
especially playing around with `providers` causes a lot of troubles.

This PR is a much lighter change. It keeps the original withdraw/deposit
pattern. It simply stores the withdrawn `Credit` and allows other
pallets to withdraw from it.

It is also better in terms of performance since all tx signers share a
single storage item (instead of a named hold per account).

---------

Co-authored-by: joe petrowski <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>
Bumps the ci_dependencies group with 2 updates:
[actions/cache](https://github.com/actions/cache) and
[actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain).

Updates `actions/cache` from 4.2.4 to 4.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add note on runner versions by <a
href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li>
<li>Prepare <code>v4.3.0</code> release by <a
href="https://github.com/Link"><code>@​Link</code></a>- in <a
href="https://redirect.github.com/actions/cache/pull/1655">actions/cache#1655</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v4...v4.3.0">https://github.com/actions/cache/compare/v4...v4.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>4.3.0</h3>
<ul>
<li>Bump <code>@actions/cache</code> to <a
href="https://redirect.github.com/actions/toolkit/pull/2132">v4.1.0</a></li>
</ul>
<h3>4.2.4</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.5</li>
</ul>
<h3>4.2.3</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in
debug logs for cache entries)</li>
</ul>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<h3>4.1.2</h3>
<ul>
<li>Add GitHub Enterprise Cloud instances hostname filters to inform API
endpoint choices - <a
href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li>
<li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a
href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li>
</ul>
<h3>4.1.1</h3>
<ul>
<li>Restore original behavior of <code>cache-hit</code> output - <a
href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li>
</ul>
<h3>4.1.0</h3>
<ul>
<li>Ensure <code>cache-hit</code> output is set when a cache is missed -
<a
href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li>
<li>Deprecate <code>save-always</code> input - <a
href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/cache/commit/0057852bfaa89a56745cba8c7296529d2fc39830"><code>0057852</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1655">#1655</a>
from actions/Link-/prepare-4.3.0</li>
<li><a
href="https://github.com/actions/cache/commit/4f5ea67f1cc87b2d4239690fa12a12fc32096d68"><code>4f5ea67</code></a>
Update licensed cache</li>
<li><a
href="https://github.com/actions/cache/commit/9fcad95d03062fb8399cdbd79ae6041c7692b6c8"><code>9fcad95</code></a>
Upgrade actions/cache to 4.1.0 and prepare 4.3.0 release</li>
<li><a
href="https://github.com/actions/cache/commit/638ed79f9dc94c1de1baef91bcab5edaa19451f4"><code>638ed79</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1642">#1642</a>
from actions/GhadimiR-patch-1</li>
<li><a
href="https://github.com/actions/cache/commit/3862dccb1765f1ff6e623be1f4fd3a5b47a30d27"><code>3862dcc</code></a>
Add note on runner versions</li>
<li>See full diff in <a
href="https://github.com/actions/cache/compare/0400d5f644dc74513175e3cd8d07132dd4860809...0057852bfaa89a56745cba8c7296529d2fc39830">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions-rust-lang/setup-rust-toolchain` from 1.15.0 to 1.15.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/releases">actions-rust-lang/setup-rust-toolchain's
releases</a>.</em></p>
<blockquote>
<h2>v1.15.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump Swatinem/rust-cache from 2.8.0 to 2.8.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/73">actions-rust-lang/setup-rust-toolchain#73</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15.0...v1.15.1">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15.0...v1.15.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md">actions-rust-lang/setup-rust-toolchain's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</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/en/1.0.0/">Keep a Changelog</a>,
and this project adheres to <a
href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p>
<h2>[Unreleased]</h2>
<h2>[1.15.1] - 2025-09-23</h2>
<ul>
<li>Update <code>Swatinem/rust-cache</code> to v2.8.1</li>
</ul>
<h2>[1.15.0] - 2025-09-14</h2>
<ul>
<li>Add support for non-root source directory.
Accept source code and <code>rust-toolchain.toml</code> file in
subdirectories of the repository.
Adds a new parameter <code>rust-src-dir</code> that controls the lookup
for toolchain files and sets a default value for the
<code>cache-workspace</code> input. (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/69">#69</a>
by <a href="https://github.com/Kubaryt"><code>@​Kubaryt</code></a>)</li>
</ul>
<h2>[1.14.1] - 2025-08-28</h2>
<ul>
<li>Pin <code>Swatinem/rust-cache</code> action to a full commit SHA (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/68">#68</a>
by <a
href="https://github.com/JohnTitor"><code>@​JohnTitor</code></a>)</li>
</ul>
<h2>[1.14.0] - 2025-08-23</h2>
<ul>
<li>Add new parameters <code>cache-all-crates</code> and
<code>cache-workspace-crates</code> that are propagated to
<code>Swatinem/rust-cache</code> as <code>cache-all-crates</code> and
<code>cache-workspace-crates</code></li>
</ul>
<h2>[1.13.0] - 2025-06-16</h2>
<ul>
<li>Add new parameter <code>cache-provider</code> that is propagated to
<code>Swatinem/rust-cache</code> as <code>cache-provider</code> (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/65">#65</a>
by <a
href="https://github.com/mindrunner"><code>@​mindrunner</code></a>)</li>
</ul>
<h2>[1.12.0] - 2025-04-23</h2>
<ul>
<li>Add support for installing rustup on Windows (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/58">#58</a>
by <a href="https://github.com/maennchen"><code>@​maennchen</code></a>)
This adds support for using Rust on the GitHub provided Windows ARM
runners.</li>
</ul>
<h2>[1.11.0] - 2025-02-24</h2>
<ul>
<li>Add new parameter <code>cache-bin</code> that is propagated to
<code>Swatinem/rust-cache</code> as <code>cache-bin</code> (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/51">#51</a>
by <a
href="https://github.com/enkhjile"><code>@​enkhjile</code></a>)</li>
<li>Add new parameter <code>cache-shared-key</code> that is propagated
to <code>Swatinem/rust-cache</code> as <code>shared-key</code> (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/52">#52</a>
by <a
href="https://github.com/skanehira"><code>@​skanehira</code></a>)</li>
</ul>
<h2>[1.10.1] - 2024-10-01</h2>
<ul>
<li>Fix problem matcher for rustfmt output.
The format has changed since <a
href="https://redirect.github.com/rust-lang/rustfmt/pull/5971">rust-lang/rustfmt#5971</a>
and now follows the form &quot;filename:line&quot;.
Thanks to <a
href="https://github.com/0xcypher02"><code>@​0xcypher02</code></a> for
pointing out the problem.</li>
</ul>
<h2>[1.10.0] - 2024-09-23</h2>
<ul>
<li>Add new parameter <code>cache-directories</code> that is propagated
to <code>Swatinem/rust-cache</code> (<a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/44">#44</a>
by <a
href="https://github.com/pranc1ngpegasus"><code>@​pranc1ngpegasus</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/02be93da58aa71fb456aa9c43b301149248829d8"><code>02be93d</code></a>
Update <code>Swatinem/rust-cache</code> to v2.8.1</li>
<li><a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/69e48024603c91b996af4004a08116c7b9bf95c1"><code>69e4802</code></a>
Merge pull request <a
href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/73">#73</a>
from actions-rust-lang/dependabot/github_actions/Swati...</li>
<li><a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/183cfebcbd070909e5077c3b4a44326e8e8418f5"><code>183cfeb</code></a>
Bump Swatinem/rust-cache from 2.8.0 to 2.8.1</li>
<li>See full diff in <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/2fcdc490d667999e01ddbbf0f2823181beef6b39...02be93da58aa71fb456aa9c43b301149248829d8">compare
view</a></li>
</ul>
</details>
<br />


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

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

---

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

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


</details>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Samusev <[email protected]>
closes #9434 

###  Description

Assets pallet includes `pallet-revive` precompiles and subsequently pull
a lot of EVM related dependencies by default. This forces downstream
users that only want `pallet-assets` functionality to pull unrelated
dependencies and causes confusion (why do we have bunch of ethereum
crates in the dependency tree of `pallet-assets`?). This extracts
precompiles into its own crate

---------

Co-authored-by: Alexander Theißen <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Close: #9870

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Use strongest compression 22 instead of just 3. See
[docs](https://docs.rs/zstd/0.13.3/zstd/stream/write/struct.Encoder.html#method.new).
Reduces our KAH compressed size by 25%.

Build time by compression level:

| Compression | Build Time | Size    | Decomp Time |
  |-------------|-----------|---------|-------------|
  | 3           | 5:54      | 3192172 | 0.013039s   |
  | 10          | 5:58      | 2716940 | 0.011962s   |
  | 22          | 6:06      | 2387562 | 0.013745s   |

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
# Description

- The current `MessageToXcm` inbound converter is somewhat verbose, with
injected types that are sparse and unorganized, This change cleans up
and refactors the code accordingly. (I can’t find the original comment,
but I vaguely recall it being mentioned by @acatangiu in a previous PR
review).

- Add more tests cover some edge cases, such as claiming assets trapped
on AH from a parachain.

---------

Co-authored-by: Adrian Catangiu <[email protected]>
Just some cleanup — not blocking the V2 release if it can’t be included
in time.

---------

Co-authored-by: Adrian Catangiu <[email protected]>
This pull request removes unused consensus-related code from the
codebase. The removed code was not referenced or required by any
existing logic or features, and its removal helps to:

- Reduce technical debt
- Simplify the codebase for future maintenance
# Description

During statement store benchmarking we experienced deadlock-like
behavior which we found happened during statement propagation. Every
second statements were propagating, locking the index which possibly
caused the deadlock. After the fix, the observed behavior no longer
occurs.

Even though there is a possibility to unsync the DB and the index for
read operations and release locks earlier, which should be harmless, it
leads to regressions. I suspect because of concurrent access to many
calls of db.get(). Checked with the benchmarks in
#9884

## Integration

This PR should not affect downstream projects.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
From @georgepisaltu :
#9864

This PR adjusts the statement store configuration, hardcoded in the
networking component of the store, to enable the store to hold greater
amounts of data, 2GiB worth of statement data to be exact.

Moreover, the networking config is adjusted to be able to process
significantly more statements, as well as preventing the store from
gossiping indefinitely after the LRU cache reaches capacity.

---------

Signed-off-by: georgepisaltu <[email protected]>
Co-authored-by: georgepisaltu <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…metrics accuracy (#9319)

# Description

The polkadot_parachain_collation_expired metric is an indicator for
parachain block confidence. However, this metric has a critical issue:
not every drop should be counted.

Lookahead collators intentionally build collations on a relay chain
block and its forks, so the drop of fork-based collations is an expected
behaviour. If we count them, the drop metrics show a picture that is
worse than in reality. To improve tracking accuracy, we should exclude
legit drops

The minor issue is also present in the expiry mechanism. It doesn't take
into account that collation was moved to a different stage, e.g., from
"fetched" to "backed", and can write a drop of fetched collation.

To solve this issue we should:

- Track relay parent finalization. 
- Record expiration metrics only when relay parent was finalized. 
- Exclude drops of fork-based collation from the metrics. 
- Send metrics only for collations that either finalized or dropped.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…9878)

# Description

`ReceiptExtractor` parses blocks and associated transactions in
pallet-revive-eth-rpc and is useful for a range of Ethereum node RPCs.
When the transactions are impersonated, they are based on a fake
signature, which can't be used with the production eth address recovery
logic. The recovery logic must be customised in cases where we
impersonate transactions, so this PR adds a custom function on the
`ReceiptExtractor` which can be used to customize address recovery.

## Integration

Developers using pallet-revive-eth-rpc as a lib should instantiate the
`ReceiptExtractor` with the custom constructor if impersonation usecases
must be supported.

## Review Notes

Relevant in context of
paritytech/foundry-polkadot#242, to implement
anvil-polkadot impersonation.

---------

Signed-off-by: Iulian Barbu <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
For all tests of revm instructions replaced `for fixture_type` with
test-case macro

---------

Co-authored-by: Robert van Eerdewijk <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
#8980 did fix the
fellowship CI but it triggers a rebuild of the fixtures every single
time you run tests. Annoying during development.

Instead of rebuilding, we just move the fixtures into the
`target/release` directory where it should be cached by the fellowship
CI.

Verifying that it works here:
polkadot-fellows/runtimes#891

Why: Re-running when the output dir changes will make it re-run every
time. Since every run changes the output dir.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
A chain needs to have the `UNINCLUDED_SEGMENT_CAPACITY` configured to
`(2 + RELAY_PARENT_OFFSET) *
BLOCK_PROCESSING_VELOCITY + 1`.

When the parachain is configured to build 12 blocks per relay parent and
the relay parent offset is 1, this number(37) is higher than the current
`PARENT_SEARCH_DEPTH=30`.

This PR raises the limit to be sufficient for the larger unincluded
segment.

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Removed eth-rpc generated metadata.
The metadata file will now be generated from the build.rs using the
AH-westend runtime

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Replacement of #9740.

Build on top of the new tx payment changes:
#9780

Started a new PR because due to the rebase on top of the new tx payment
changes this PR is substantially different and I don't want to
invalidate the existing comments on
#9740 which are not
implemented, yet.

## Overview

This will change the weight to eth fee mapping according to [this
model](https://shade-verse-e97.notion.site/Gas-Mapping-Challenges-Revised-26c8532a7ab580db8222c2ce3023669e).

## Follow ups

This only changes the estimate returned from the dry run and how the
weights are derived from an ethereum transaction. It does not change how
contracts observe the gas. This will be done in a follow up. More
specifically:

1. The `GAS` opcode should return the new gas. As of right now it
returns `ref_time.`
2. The `*_CALL` opcodes should use the passed `gas` parameter and decode
it into `Weight`. As of right now the parameter is ignored.

That said, even without those follow ups this PR should fix all
`InvalidTransaction` errors we are observing.

### Increasing the dimension of `gas_price`

We should add a configurable divisor so that the gas_price is always at
least some gwei. That makes it easier to input the values.

---------

Signed-off-by: Alexander Theißen <[email protected]>
Co-authored-by: joe petrowski <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Francisco Aguirre <[email protected]>
Co-authored-by: PG Herveou <[email protected]>
Bumped `polkavm` to the latest version. No semantic changes in that
update.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Refactor REVM implementation in `pallet-revive`

This PR removes technical debt and eliminates tight coupling to specific
REVM versions, facilitating integration with other projects (e.g.,
Foundry). After this refactoring, we primarily depend only on REVM's
[`Bytecode`](https://docs.rs/revm/latest/revm/bytecode/struct.Bytecode.html)
struct.

## Background

Most of REVM's generic type system and trait abstractions are unused or
had to be ignored to prevent bugs. Interactions with the host in
pallet-revive are handled through the `Ext` trait, making REVM's other
abstractions unnecessary or potentially harmful.

Unused REVM abstractions included:
- **Host trait**: Unused in the pallet, we relied on the `DummyHost`
default mocked implementation
- **Gas field**: Unused, the pallet uses its own gas accounting system
- **Methods from `InputsTr`**: Unused most methods had panic
implementations since they couldn't be relied upon
- **Spec**: Unused: We only maintain the latest fork for each runtime

## Changes

This refactor introduces:
- **Interpreter**: Simplified struct containing only the fields actually
needed
- **Stack**: Simplified implementation using `sp_core::*` instead of
`alloy_core::primitives::*` for better integration with the rest of the
pallet
- **Memory**: Simplified implementation providing only the methods
actually needed
- **Instructions**:
- New instructions don't rely on macros and have a simplified signature:
`Fn(&mut interpreter) -> ControlFlow<Halt>`
- Removed function pointer table lookup for instructions in favor of
match statements,
- Unified gas charging: legacy u64 gas charging is now wrapped in
`EVMGas` that implements `Token<T>` to provide the associated weight
- Removed the `InterpreterAction`, this simplify the interpreter loop
to:
```rust
loop {
	let opcode = interpreter.bytecode.opcode();
	interpreter.bytecode.relative_jump(1);
	exec_instruction(interpreter, opcode)?;
}
```
- **Error handling**: Opcode that fail return Halt::Err(DispatchError),
this remove the need from converting between InstructionResult and
`ExecError` like we were previously doing and standardize errors
generated on both backends

---------

Co-authored-by: 0xRVE <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Robert van Eerdewijk <[email protected]>
Co-authored-by: Alexander Theißen <[email protected]>
…9907)

During validation of extrinsics we currently check that the benchmarked
weight does not exceed the overall block limit for the given extrinsic
class. For the proof weight, this should also take into account the
length of the transaction. This creates parity with the checks we
already do at extrinsic application time where we take the length [into
account](https://github.com/paritytech/polkadot-sdk/blob/7086502b242c7984a13e198d2373e69a640e5c58/substrate/frame/system/src/extensions/check_weight.rs#L166-L166).

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>
…9911)

Allows calling set_evm_balance for a non-existing account on
pallet-revive.
It is needed by foundry to inject EVM accounts.
added view functions #7374
added trait `MutateLiquidity` to allow other pallets to manage liquidity
#9765

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Guillaume Thiolliere <[email protected]>
@mordamax mordamax requested a review from bee344 October 6, 2025 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.