Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pallet-message-queue: Fix max message size calculation #6205

Merged
merged 4 commits into from
Oct 24, 2024

Conversation

bkchr
Copy link
Member

@bkchr bkchr commented Oct 23, 2024

The max size of a message should not depend on the weight left in a given execution context. Instead the max message size depends on the service weights configured for the pallet. A message that may does not fit into on_idle is not automatically overweight, because it may can be executed successfully in on_initialize or in another block in on_idle when there is more weight left.

The max size of a message should not depend on the weight left in a given execution context.
Instead the max message size depends on the service weights configured for the pallet. A message
that may does not fit into `on_idle` is not automatically overweight, because it may can be
executed successfully in `on_initialize` or in another block in `on_idle` when there is more
weight left.
@bkchr bkchr added the T2-pallets This PR/Issue is related to a particular pallet. label Oct 23, 2024
@bkchr bkchr requested a review from a team as a code owner October 23, 2024 20:51
Copy link
Member

@ggwpez ggwpez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like this idle processing has caused more issues than advantages so far.

The hotfix looks correct, but the assumption that it will retry in the next context is not that great, since it could also retry in the same context and then keep looping around a bit...

@bkchr
Copy link
Member Author

bkchr commented Oct 23, 2024

The hotfix looks correct, but the assumption that it will retry in the next context is not that great, since it could also retry in the same context and then keep looping around a bit...

How could it retry in the same context again?

@ggwpez
Copy link
Member

ggwpez commented Oct 23, 2024

How could it retry in the same context again?

I guess eventually it should resolve if there is any on_idle weight. If the chain is constantly at 100% then dont know.

Quite a few chains seem to use it currently: https://github.com/search?q=%22IdleMaxServiceWeight+%3D%22&type=code
I will query the datalake tomorrow for OverweightEnqueued events by parachain.

@bkchr
Copy link
Member Author

bkchr commented Oct 24, 2024

I guess eventually it should resolve if there is any on_idle weight. If the chain is constantly at 100% then dont know.

The problem is OnIdle, that when you have not enough weight left. Right now the message is seen as constantly overweight, but with my fix here it is only pushed back and retried in the next block. A further optimization could be that we try other messages if they may fit.

@bkchr
Copy link
Member Author

bkchr commented Oct 24, 2024

/cmd prdoc --bump patch --audience runtime-dev

Copy link

Command "prdoc --bump patch --audience runtime-dev" has failed ❌! See logs here

@bkchr
Copy link
Member Author

bkchr commented Oct 24, 2024

/cmd prdoc --bump patch --audience runtime_dev

@bkchr bkchr enabled auto-merge October 24, 2024 22:03
@bkchr bkchr added this pull request to the merge queue Oct 24, 2024
Merged via the queue into master with commit 5d7181c Oct 24, 2024
194 of 195 checks passed
@bkchr bkchr deleted the bkchr-message-queue-stuff branch October 24, 2024 23:44
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
@bkchr bkchr added the A4-needs-backport Pull request must be backported to all maintained releases. label Oct 25, 2024
@paritytech-cmd-bot-polkadot-sdk

Successfully created backport PR for stable2407:

github-actions bot pushed a commit that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
(cherry picked from commit 5d7181c)
github-actions bot pushed a commit that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
(cherry picked from commit 5d7181c)
@paritytech-cmd-bot-polkadot-sdk

Successfully created backport PR for stable2409:

@bkchr bkchr had a problem deploying to subsystem-benchmarks October 25, 2024 13:59 — with GitHub Actions Failure
ggwpez pushed a commit that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
(cherry picked from commit 5d7181c)
@ggwpez ggwpez mentioned this pull request Oct 25, 2024
ggwpez pushed a commit that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
(cherry picked from commit 5d7181c)
@ggwpez ggwpez mentioned this pull request Oct 25, 2024
ggwpez pushed a commit that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
(cherry picked from commit 5d7181c)
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 25, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
ggwpez added a commit that referenced this pull request Oct 28, 2024
Backport #6205 into Release 1.14.

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
ggwpez added a commit that referenced this pull request Oct 29, 2024
Backport #6205 into Release 1.13.

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 29, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
mordamax pushed a commit to paritytech-stg/polkadot-sdk that referenced this pull request Oct 29, 2024
The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>
bkchr added a commit that referenced this pull request Nov 5, 2024
Backport #6205 into `stable2407` from bkchr.

See the
[documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md)
on how to use this bot.

<!--
  # To be used by other automation, do not modify:
  original-pr-number: #${pull_number}
-->

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: command-bot <>
EgorPopelyaev added a commit that referenced this pull request Nov 12, 2024
Backport #6205 into `stable2409` from bkchr.

See the
[documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md)
on how to use this bot.

<!--
  # To be used by other automation, do not modify:
  original-pr-number: #${pull_number}
-->

Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Egor_P <[email protected]>
RomarQ added a commit to moonbeam-foundation/polkadot-sdk that referenced this pull request Dec 5, 2024
* Bump prost-build from 0.12.4 to 0.13.2 (#6144)

Bumps [prost-build](https://github.com/tokio-rs/prost) from 0.12.4 to
0.13.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/prost/blob/master/CHANGELOG.md">prost-build's
changelog</a>.</em></p>
<blockquote>
<h1>Prost version 0.13.2</h1>
<p><em>PROST!</em> is a <a
href="https://developers.google.com/protocol-buffers/">Protocol
Buffers</a> implementation for the <a
href="https://www.rust-lang.org/">Rust Language</a>. <code>prost</code>
generates simple, idiomatic Rust code from <code>proto2</code> and
<code>proto3</code> files.</p>
<h2>Features</h2>
<ul>
<li>prost-build: Add protoc executable path to Config (<a
href="https://github.com/tokio-rs/prost/issues/1126">#1126</a>)</li>
<li>prost-build: Extract file descriptor loading from compile_protos()
(<a
href="https://github.com/tokio-rs/prost/issues/1067">#1067</a>)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>prost-types: Fix date-time parsing (<a
href="https://github.com/tokio-rs/prost/issues/1096">#1096</a>)</li>
<li>prost-types: '+' is not a numeric digit (<a
href="https://github.com/tokio-rs/prost/issues/1104">#1104</a>)</li>
<li>prost-types: Converting DateTime to Timestamp is fallible (<a
href="https://github.com/tokio-rs/prost/issues/1095">#1095</a>)</li>
<li>prost-types: Parse timestamp with long second fraction (<a
href="https://github.com/tokio-rs/prost/issues/1106">#1106</a>)</li>
<li>prost-types: Format negative fractional duration (<a
href="https://github.com/tokio-rs/prost/issues/1110">#1110</a>)</li>
<li>prost-types: Allow unknown local time offset (<a
href="https://github.com/tokio-rs/prost/issues/1109">#1109</a>)</li>
</ul>
<h2>Styling</h2>
<ul>
<li>Remove use of legacy numeric constants (<a
href="https://github.com/tokio-rs/prost/issues/1089">#1089</a>)</li>
<li>Move encoding functions into separate modules (<a
href="https://github.com/tokio-rs/prost/issues/1111">#1111</a>)</li>
<li>Remove needless borrow (<a
href="https://github.com/tokio-rs/prost/issues/1122">#1122</a>)</li>
</ul>
<h2>Testing</h2>
<ul>
<li>Add tests for public interface of DecodeError (<a
href="https://github.com/tokio-rs/prost/issues/1120">#1120</a>)</li>
<li>Add <code>parse_date</code> fuzzing target (<a
href="https://github.com/tokio-rs/prost/issues/1127">#1127</a>)</li>
<li>Fix build without std (<a
href="https://github.com/tokio-rs/prost/issues/1134">#1134</a>)</li>
<li>Change some proptest to kani proofs (<a
href="https://github.com/tokio-rs/prost/issues/1133">#1133</a>)</li>
<li>Add <code>parse_duration</code> fuzzing target (<a
href="https://github.com/tokio-rs/prost/issues/1129">#1129</a>)</li>
<li>fuzz: Fix building of fuzzing targets (<a
href="https://github.com/tokio-rs/prost/issues/1107">#1107</a>)</li>
<li>fuzz: Add fuzz targets to workspace (<a
href="https://github.com/tokio-rs/prost/issues/1117">#1117</a>)</li>
</ul>
<h2>Miscellaneous Tasks</h2>
<ul>
<li>Move old protobuf benchmark into prost (<a
href="https://github.com/tokio-rs/prost/issues/1100">#1100</a>)</li>
<li>Remove allow clippy::derive_partial_eq_without_eq (<a
href="https://github.com/tokio-rs/prost/issues/1115">#1115</a>)</li>
<li>Run <code>cargo test</code> without <code>all-targets</code> (<a
href="https://github.com/tokio-rs/prost/issues/1118">#1118</a>)</li>
<li>dependabot: Add github actions (<a
href="https://github.com/tokio-rs/prost/issues/1121">#1121</a>)</li>
<li>Update to cargo clippy version 1.80 (<a
href="https://github.com/tokio-rs/prost/issues/1128">#1128</a>)</li>
</ul>
<h2>Build</h2>
<ul>
<li>Use <code>proc-macro</code> in Cargo.toml (<a
href="https://github.com/tokio-rs/prost/issues/1102">#1102</a>)</li>
<li>Ignore missing features in <code>tests</code> crates (<a
href="https://github.com/tokio-rs/prost/issues/1101">#1101</a>)</li>
<li>Use separated build directory for protobuf (<a
href="https://github.com/tokio-rs/prost/issues/1103">#1103</a>)</li>
<li>protobuf: Don't install unused test proto (<a
href="https://github.com/tokio-rs/prost/issues/1116">#1116</a>)</li>
<li>protobuf: Use crate <code>cmake</code> (<a
href="https://github.com/tokio-rs/prost/issues/1137">#1137</a>)</li>
<li>deps: Update devcontainer to Debian Bookworm release (<a
href="https://github.com/tokio-rs/prost/issues/1114">#1114</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/prost/commit/57e794203106db483e5115e7e67502ef6f2c7ad8"><code>57e7942</code></a>
chore: Release version 0.13.2 (<a
href="https://github.com/tokio-rs/prost/issues/1139">#1139</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/8424775d78b13239df3cf3fe888236770a0cd839"><code>8424775</code></a>
build(protobuf): Use crate <code>cmake</code> (<a
href="https://github.com/tokio-rs/prost/issues/1137">#1137</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/21208abf667313866f79d3d1438310c4dc20bdff"><code>21208ab</code></a>
build(deps): bump model-checking/kani-github-action from 0.32 to 1.1 (<a
href="https://github.com/tokio-rs/prost/issues/1125">#1125</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/0c79864443621f20d92f9acc78a6ab0e7821dab0"><code>0c79864</code></a>
tests(fuzz): Add <code>parse_duration</code> fuzzing target (<a
href="https://github.com/tokio-rs/prost/issues/1129">#1129</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/52046b943fdf6f79461725027245f890c7b4f514"><code>52046b9</code></a>
tests: Change some proptest to kani proofs (<a
href="https://github.com/tokio-rs/prost/issues/1133">#1133</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/ee59dd5a9fe0935ad50e6ddbea5d23e3c6419468"><code>ee59dd5</code></a>
tests: Fix build without std (<a
href="https://github.com/tokio-rs/prost/issues/1134">#1134</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/e773f5f6d38f74d0efff876011a2fd0d002aed4c"><code>e773f5f</code></a>
feat(prost-build): Add protoc executable path to Config (<a
href="https://github.com/tokio-rs/prost/issues/1126">#1126</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/753bd92a85a3aa305d9d96b5c6363dc58d6356e6"><code>753bd92</code></a>
ci(clippy): Update to cargo clippy version 1.80 (<a
href="https://github.com/tokio-rs/prost/issues/1128">#1128</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/df3e58e5d113a0dcf8b6735a5d04cde2d74e5df3"><code>df3e58e</code></a>
tests(fuzz): Add <code>parse_date</code> fuzzing target (<a
href="https://github.com/tokio-rs/prost/issues/1127">#1127</a>)</li>
<li><a
href="https://github.com/tokio-rs/prost/commit/409b93214ed8d98fbb364031ccf330ce4e7caa32"><code>409b932</code></a>
style: Remove needless borrow (<a
href="https://github.com/tokio-rs/prost/issues/1122">#1122</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/prost/compare/v0.12.4...v0.13.2">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>

* Bump the ci_dependencies group across 1 directory with 5 updates (#6035)

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

| Package | From | To |
| --- | --- | --- |
|
[lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action)
| `1.10.0` | `2.0.1` |
| [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) |
`2.7.3` | `2.7.5` |
|
[docker/setup-buildx-action](https://github.com/docker/setup-buildx-action)
| `3.6.1` | `3.7.1` |
|
[docker/build-push-action](https://github.com/docker/build-push-action)
| `6.8.0` | `6.9.0` |
|
[actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain)
| `1.10.0` | `1.10.1` |


Updates `lycheeverse/lychee-action` from 1.10.0 to 2.0.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.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Don't remove the lychee config file by <a
href="https://github.com/dmathieu"><code>@​dmathieu</code></a> in <a
href="https://github.com/lycheeverse/lychee-action/pull/255">lycheeverse/lychee-action#255</a></li>
<li>Bump lycheeverse/lychee-action from 1 to 2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://github.com/lycheeverse/lychee-action/pull/252">lycheeverse/lychee-action#252</a></li>
<li>Fix variable name in docs by <a
href="https://github.com/kdeldycke"><code>@​kdeldycke</code></a> in <a
href="https://github.com/lycheeverse/lychee-action/pull/253">lycheeverse/lychee-action#253</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/dmathieu"><code>@​dmathieu</code></a>
made their first contribution in <a
href="https://github.com/lycheeverse/lychee-action/pull/255">lycheeverse/lychee-action#255</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lycheeverse/lychee-action/compare/v2...v2.0.1">https://github.com/lycheeverse/lychee-action/compare/v2...v2.0.1</a></p>
<h2>Version 2.0.0</h2>
<h2>Breaking Changes</h2>
<p><strong>Note:</strong> This release improves the action's robustness
by changing default behaviors. Changes are only required if you want to
opt out of the new failure conditions. Most users won't need to modify
their existing configurations.</p>
<h3>Fail pipeline on error by default</h3>
<p>We've changed the default behavior: pipelines will now fail on broken
links automatically. This addresses user feedback that not failing on
broken links was unexpected (see [issue <a
href="https://github.com/lycheeverse/lychee-action/issues/71">#71</a>](<a
href="https://github.com/lycheeverse/lychee-action/issues/71">lycheeverse/lychee-action#71</a>)).</p>
<p><strong>What you need to do:</strong></p>
<ul>
<li>Update to version 2 of this action to apply this change.</li>
<li>Users of the <code>lychee-action@master</code> branch don't need to
make any changes, as <code>fail: true</code> has been the default there
for a while.</li>
<li>If you prefer the old behavior, explicitly set <code>fail</code> to
<code>false</code> when updating:</li>
</ul>
<pre lang="yaml"><code>- name: Link Checker
  id: lychee
  uses: lycheeverse/lychee-action@v2
  with:
    fail: false  # Don't fail action on broken links
</code></pre>
<h3>Fail pipeline if no links were found</h3>
<p>Similar to the above change, we now fail the pipeline if no links are
found during a run. This helps warn users about potential configuration
issues.</p>
<p><strong>What you need to do:</strong></p>
<ul>
<li>If you expect links to be found in your pipeline run, you don't need
to do anything.</li>
<li>If you expect no links in your pipeline run, you can opt out like
this:</li>
</ul>
<pre lang="yaml"><code>- name: Link Checker
  id: lychee
  uses: lycheeverse/lychee-action@v2
  with:
    failIfEmpty: false  # Don't fail action if no links were found
</code></pre>
<p>For a more detailed description of the technical aspects behind these
changes, please see the full changelog below.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/2bb232618be239862e31382c5c0eaeba12e5e966"><code>2bb2326</code></a>
don't remove the lychee config file (<a
href="https://github.com/lycheeverse/lychee-action/issues/255">#255</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/731bf1a2affebd80fab6515ba61d2648a76929a4"><code>731bf1a</code></a>
Fix variable name (<a
href="https://github.com/lycheeverse/lychee-action/issues/253">#253</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/e360f3c89142a5391e094404ea45e5494f1317dd"><code>e360f3c</code></a>
Bump lycheeverse/lychee-action from 1 to 2 (<a
href="https://github.com/lycheeverse/lychee-action/issues/252">#252</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/f87f0a62993c2647717456af92593666acb3a500"><code>f87f0a6</code></a>
Update version to <code>lycheeverse/lychee-action@v2</code> in docs</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/7da8ec1fc4e01b5a12062ac6c589c10a4ce70d67"><code>7da8ec1</code></a>
Test latest lychee version tag (<a
href="https://github.com/lycheeverse/lychee-action/issues/236">#236</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/6cba5a96c25bf6571c0dc0d1521a2ddbae78ea59"><code>6cba5a9</code></a>
Bump version to 0.16.x, respect new tag names (<a
href="https://github.com/lycheeverse/lychee-action/issues/249">#249</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/e71a9a10faeb8c75aa21760b2f706f7831adadc7"><code>e71a9a1</code></a>
Split up steps in action (<a
href="https://github.com/lycheeverse/lychee-action/issues/248">#248</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/897f08a07f689df1a43076f4374af272f66a6dd1"><code>897f08a</code></a>
action.yml: fix failing CI (<a
href="https://github.com/lycheeverse/lychee-action/issues/246">#246</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/22c8e46b8f296cda676f8f92c634c4a87b436779"><code>22c8e46</code></a>
Set exit_code correctly as output (<a
href="https://github.com/lycheeverse/lychee-action/issues/245">#245</a>)</li>
<li><a
href="https://github.com/lycheeverse/lychee-action/commit/5047c2a4052946424ce139fe111135f6d7c0fe0b"><code>5047c2a</code></a>
README: update actions/cache to v4 (<a
href="https://github.com/lycheeverse/lychee-action/issues/243">#243</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/lycheeverse/lychee-action/compare/2b973e86fc7b1f6b36a93795fe2c9c6ae1118621...2bb232618be239862e31382c5c0eaeba12e5e966">compare
view</a></li>
</ul>
</details>
<br />

Updates `Swatinem/rust-cache` from 2.7.3 to 2.7.5
<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.7.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgrade checkout action from version 3 to 4 by <a
href="https://github.com/carsten-wenderdel"><code>@​carsten-wenderdel</code></a>
in <a
href="https://github.com/Swatinem/rust-cache/pull/190">Swatinem/rust-cache#190</a></li>
<li>fix: usage of <code>deprecated</code> version of <code>node</code>
by <a href="https://github.com/hamirmahal"><code>@​hamirmahal</code></a>
in <a
href="https://github.com/Swatinem/rust-cache/pull/197">Swatinem/rust-cache#197</a></li>
<li>Only run macOsWorkaround() on macOS by <a
href="https://github.com/heksesang"><code>@​heksesang</code></a> in <a
href="https://github.com/Swatinem/rust-cache/pull/206">Swatinem/rust-cache#206</a></li>
<li>Support Cargo.lock format cargo-lock v4 by <a
href="https://github.com/NobodyXu"><code>@​NobodyXu</code></a> in <a
href="https://github.com/Swatinem/rust-cache/pull/211">Swatinem/rust-cache#211</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/carsten-wenderdel"><code>@​carsten-wenderdel</code></a>
made their first contribution in <a
href="https://github.com/Swatinem/rust-cache/pull/190">Swatinem/rust-cache#190</a></li>
<li><a
href="https://github.com/hamirmahal"><code>@​hamirmahal</code></a> made
their first contribution in <a
href="https://github.com/Swatinem/rust-cache/pull/197">Swatinem/rust-cache#197</a></li>
<li><a href="https://github.com/heksesang"><code>@​heksesang</code></a>
made their first contribution in <a
href="https://github.com/Swatinem/rust-cache/pull/206">Swatinem/rust-cache#206</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Swatinem/rust-cache/compare/v2.7.3...v2.7.5">https://github.com/Swatinem/rust-cache/compare/v2.7.3...v2.7.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/82a92a6e8fbeee089604da2575dc567ae9ddeaab"><code>82a92a6</code></a>
2.7.5</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/598fe25fa107b2fd526fc6471f6e48de7cd12083"><code>598fe25</code></a>
update dependencies, rebuild</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/8f842c2d455cfe3d0d5a4b28f53f5389b51b71bf"><code>8f842c2</code></a>
Support Cargo.lock format cargo-lock v4 (<a
href="https://github.com/swatinem/rust-cache/issues/211">#211</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/96a8d65dbafbc7d145a9b2b6c3b12ee335738cd2"><code>96a8d65</code></a>
Only run macOsWorkaround() on macOS (<a
href="https://github.com/swatinem/rust-cache/issues/206">#206</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/9bdad043e88c75890e36ad3bbc8d27f0090dd609"><code>9bdad04</code></a>
fix: usage of <code>deprecated</code> version of <code>node</code> (<a
href="https://github.com/swatinem/rust-cache/issues/197">#197</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/f7a52f691454d93c6ce0dff6666a5cb399b8d06e"><code>f7a52f6</code></a>
&quot;add jsonpath test&quot;</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/2bceda39122b2cc71e6e26ad729b92b44d101f4b"><code>2bceda3</code></a>
&quot;update dependencies&quot;</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/640a22190e7a783d4c409684cea558f081f92012"><code>640a221</code></a>
Upgrade checkout action from version 3 to 4 (<a
href="https://github.com/swatinem/rust-cache/issues/190">#190</a>)</li>
<li><a
href="https://github.com/Swatinem/rust-cache/commit/158274163087d4d4d49dfcc6a39806493e413240"><code>1582741</code></a>
update dependencies</li>
<li>See full diff in <a
href="https://github.com/swatinem/rust-cache/compare/23bce251a8cd2ffc3c1075eaa2367cf899916d84...82a92a6e8fbeee089604da2575dc567ae9ddeaab">compare
view</a></li>
</ul>
</details>
<br />

Updates `docker/setup-buildx-action` from 3.6.1 to 3.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/setup-buildx-action/releases">docker/setup-buildx-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.7.1</h2>
<ul>
<li>Switch back to <code>uuid</code> package by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://github.com/docker/setup-buildx-action/pull/369">docker/setup-buildx-action#369</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/setup-buildx-action/compare/v3.7.0...v3.7.1">https://github.com/docker/setup-buildx-action/compare/v3.7.0...v3.7.1</a></p>
<h2>v3.7.0</h2>
<ul>
<li>Always set <code>buildkitd-flags</code> if opt-in by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://github.com/docker/setup-buildx-action/pull/363">docker/setup-buildx-action#363</a></li>
<li>Remove <code>uuid</code> package and switch to <code>crypto</code>
by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a>
in <a
href="https://github.com/docker/setup-buildx-action/pull/366">docker/setup-buildx-action#366</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.35.0 to 0.39.0 in
<a
href="https://github.com/docker/setup-buildx-action/pull/362">docker/setup-buildx-action#362</a></li>
<li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a
href="https://github.com/docker/setup-buildx-action/pull/354">docker/setup-buildx-action#354</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/setup-buildx-action/compare/v3.6.1...v3.7.0">https://github.com/docker/setup-buildx-action/compare/v3.6.1...v3.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/c47758b77c9736f4b2ef4073d4d51994fabfe349"><code>c47758b</code></a>
Merge pull request <a
href="https://github.com/docker/setup-buildx-action/issues/369">#369</a>
from crazy-max/revert-crypto</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/8fea3825134d99989287350b6429e3e86fa5d320"><code>8fea382</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/2874e980e877332a8fe575054d8c083109b8fede"><code>2874e98</code></a>
switch back to uuid package</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/8026d2bc3645ea78b0d2544766a1225eb5691f89"><code>8026d2b</code></a>
Merge pull request <a
href="https://github.com/docker/setup-buildx-action/issues/362">#362</a>
from docker/dependabot/npm_and_yarn/docker/actions-to...</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/e51aab53e9e6264bc11f62da6fbc352686b2147f"><code>e51aab5</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/fd7390e14dc77aa9df3fbc8a021cf91ac9fe7aa5"><code>fd7390e</code></a>
build(deps): bump <code>@​docker/actions-toolkit</code> from 0.35.0 to
0.39.0</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/910a3040053b5bd9636a487f0054cfe150829ae7"><code>910a304</code></a>
Merge pull request <a
href="https://github.com/docker/setup-buildx-action/issues/366">#366</a>
from crazy-max/remove-uuid</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/3623ee443e01d4daf9e9107d28e162a058c52ca8"><code>3623ee4</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/e0e5ecf670bf33d756abc55962778de1286f70e1"><code>e0e5ecf</code></a>
remove uuid package and switch to crypto</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/5334dd0cdd27e0ac92d6c98d35f3398fcc13195f"><code>5334dd0</code></a>
Merge pull request <a
href="https://github.com/docker/setup-buildx-action/issues/363">#363</a>
from crazy-max/set-buildkitd-flags-optin</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/setup-buildx-action/compare/988b5a0280414f521da01fcc63a27aeeb4b104db...c47758b77c9736f4b2ef4073d4d51994fabfe349">compare
view</a></li>
</ul>
</details>
<br />

Updates `docker/build-push-action` from 6.8.0 to 6.9.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/build-push-action/releases">docker/build-push-action's
releases</a>.</em></p>
<blockquote>
<h2>v6.9.0</h2>
<ul>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.38.0 to 0.39.0 in
<a
href="https://github.com/docker/build-push-action/pull/1234">docker/build-push-action#1234</a></li>
<li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a
href="https://github.com/docker/build-push-action/pull/1232">docker/build-push-action#1232</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/build-push-action/compare/v6.8.0...v6.9.0">https://github.com/docker/build-push-action/compare/v6.8.0...v6.9.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/build-push-action/commit/4f58ea79222b3b9dc2c8bbdd6debcef730109a75"><code>4f58ea7</code></a>
Merge pull request <a
href="https://github.com/docker/build-push-action/issues/1234">#1234</a>
from docker/dependabot/npm_and_yarn/docker/actions-t...</li>
<li><a
href="https://github.com/docker/build-push-action/commit/49b5ea61c60477d214908bb6e23ce05c074ef04e"><code>49b5ea6</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/build-push-action/commit/13c9fddd72db0ce3cd9d87eb53e0480d2a32a77b"><code>13c9fdd</code></a>
chore(deps): Bump <code>@​docker/actions-toolkit</code> from 0.38.0 to
0.39.0</li>
<li><a
href="https://github.com/docker/build-push-action/commit/e44afff3590e1d4f93b6adc72376512edb012a7c"><code>e44afff</code></a>
Merge pull request <a
href="https://github.com/docker/build-push-action/issues/1232">#1232</a>
from docker/dependabot/npm_and_yarn/path-to-regexp-6...</li>
<li><a
href="https://github.com/docker/build-push-action/commit/67ebad331f4ca45e39184b280dbacb11eb3beae0"><code>67ebad3</code></a>
chore(deps): Bump path-to-regexp from 6.2.2 to 6.3.0</li>
<li>See full diff in <a
href="https://github.com/docker/build-push-action/compare/32945a339266b759abcbdc89316275140b0fc960...4f58ea79222b3b9dc2c8bbdd6debcef730109a75">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions-rust-lang/setup-rust-toolchain` from 1.10.0 to 1.10.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.10.1</h2>
<ul>
<li>Fix problem matcher for rustfmt output.
The format has changed since <a
href="https://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>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1...v1.10.1">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1...v1.10.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.10.1] - 2024-10-01</h2>
<ul>
<li>Fix problem matcher for rustfmt output.
The format has changed since <a
href="https://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://github.com/actions-rust-lang/setup-rust-toolchain/issues/44">#44</a>
by <a
href="https://github.com/pranc1ngpegasus"><code>@​pranc1ngpegasus</code></a>)</li>
<li>Add new parameter <code>cache-key</code> that is propagated to
<code>Swatinem/rust-cache</code> as <code>key</code> (<a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/issues/41">#41</a>
by <a
href="https://github.com/iainlane"><code>@​iainlane</code></a>)</li>
<li>Make rustup toolchain installation more robust in light of planned
changes <a
href="https://github.com/rust-lang/rustup/issues/3635">rust-lang/rustup#3635</a>
and <a
href="https://github.com/rust-lang/rustup/pull/3985">rust-lang/rustup#3985</a></li>
<li>Allow installing multiple Rust toolchains by specifying multiple
versions in the <code>toolchain</code> input parameter.</li>
<li>Configure the <code>rustup override</code> behavior via the new
<code>override</code> input. (<a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/issues/38">#38</a>)</li>
</ul>
<h2>[1.9.0] - 2024-06-08</h2>
<ul>
<li>Add extra argument <code>cache-on-failure</code> and forward it to
<code>Swatinem/rust-cache</code>. (<a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/issues/39">#39</a>
by <a
href="https://github.com/samuelhnrq"><code>@​samuelhnrq</code></a>)<br
/>
Set the default the value to true.
This will result in more caching than previously.
This helps when large dependencies are compiled only for testing to
fail.</li>
</ul>
<h2>[1.8.0] - 2024-01-13</h2>
<ul>
<li>Allow specifying subdirectories for cache.</li>
<li>Fix toolchain file overriding.</li>
</ul>
<h2>[1.7.0] - 2024-01-11</h2>
<ul>
<li>Allow overriding the toolchain file with explicit
<code>toolchain</code> input. (<a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/issues/26">#26</a>)</li>
</ul>
<h2>[1.6.0] - 2023-12-04</h2>
<h3>Added</h3>
<ul>
<li>Allow disabling problem matchers (<a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/issues/27">#27</a>)
This can be useful when having a matrix of jobs, that produce the same
errors.</li>
</ul>
<h2>[1.5.0] - 2023-05-29</h2>
<h3>Added</h3>
<!-- 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/11df97af8e8102fd60b60a77dfbf58d40cd843b8"><code>11df97a</code></a>
Update the rustfmt problem matcher</li>
<li>See full diff in <a
href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/4d1965c9142484e48d40c19de54b5cba84953a06...11df97af8e8102fd60b60a77dfbf58d40cd843b8">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: Bastian Köcher <[email protected]>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>

* runtime: remove ttl (#5461)

Resolves https://github.com/paritytech/polkadot-sdk/issues/4776

This will enable proper core-sharing between paras, even if one of them
is not producing blocks.

TODO:
- [x] duplicate first entry in the claim queue if the queue used to be
empty
- [x] don't back anything if at the end of the block there'll be a
session change
- [x] write migration for removing the availability core storage
- [x] update and write unit tests
- [x] prdoc
- [x] add zombienet test for synchronous backing
- [x] add zombienet test for core-sharing paras where one of them is not
producing any blocks

_Important note:_
The `ttl` and `max_availability_timeouts` fields of the
HostConfiguration are not removed in this PR, due to #64.
Adding the workaround with the storage version check for every use of
the active HostConfiguration in all runtime APIs would be insane, as
it's used in almost all runtime APIs.

So even though the ttl and max_availability_timeouts fields will now be
unused, they will remain part of the host configuration.

These will be removed in a separate PR once #64 is fixed. Tracked by
https://github.com/paritytech/polkadot-sdk/issues/6067

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: command-bot <>

* [pallet-nfts, pallet_uniques] - Expose private structs (#6087)

# Description

This PR exposes pallet_nfts and pallet_uniques structs, so other pallets
can access storage to use it for extending nft functionalities.

In pallet uniques it also exposes collection and asset metadata storage
as they are private.
 
## Integration

This integration allows nfts and uniques extension pallets to use then
private - now public structs to retrieve and parse storage from
pallet_nfts. We are building cross-chain NFT pallet and in order to
transfer collection that houses multiple NFT owners we need to manually
remove NFTs and Collections from storage without signers. We would also
like to refund deposits on origin chain and we were unable to as struct
data was private.

We have built cross-chain pallet that allows to send nfts or collections
between two pallets in abstract way without having to look which pallet
parachain (If nfts or uniques) implements.

## Review Notes

Code exposes private structs to public structs. No breaking change.

Build runs fine, tests are also ok.
<img width="468" alt="screen1"
src="https://github.com/user-attachments/assets/f31f60b5-390c-4497-b46b-59dd561204ae">
<img width="664" alt="screen2"
src="https://github.com/user-attachments/assets/7e2aa71c-3bc4-49a9-8afc-47d4f45f4359">
<img width="598" alt="screen3"
src="https://github.com/user-attachments/assets/10f4e427-858f-460d-8644-f5750494edb0">



PR is tied with following issue:
Closes #5959 

# 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)
* [ ] I have added tests that prove my fix is effective or that my
feature works (if applicable)

---------

Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: command-bot <>

* [Backport] Version bumps from stable2409-1 (#6153)

This PR backports regular version bumps and prdocs reordering from the
current stable release back to master

* Fix TrustedQueryApi Error (#6170)

Related to https://github.com/paritytech/polkadot-sdk/issues/6161

This seems to fix the `JavaScript heap out of memory` error encountered
in the bridge zombienet tests lately.

This is just a partial fix, since we also need to address
https://github.com/paritytech/polkadot-sdk/issues/6133 in order to fully
fix the bridge zombienet tests

* [pallet-revive] Eth RPC integration (#5866)

This PR introduces the necessary changes to pallet-revive for
integrating with our Ethereum JSON-RPC.
The RPC proxy itself will be added in a follow up.

## Changes

- A new pallet::call `Call::eth_transact`. This is used as a wrapper to
accept unsigned Ethereum transaction, valid call will be routed to
`Call::call` or `Call::instantiate_with_code`

- A custom UncheckedExtrinsic struct, that wraps the generic one usually
and add the ability to check eth_transact calls sent from an Ethereum
JSON-RPC proxy.
- Generated types and traits to support implementing a JSON-RPC Ethereum
proxy.

## Flow Overview:
- A user submits a transaction via MetaMask or another
Ethereum-compatible wallet.
- The proxy dry run the transaction and add metadata to the call (gas
limit in Weight, storage deposit limit, and length of bytecode and
constructor input for contract instantiation)
- The raw transaction, along with the additional metadata, is submitted
to the node as an unsigned extrinsic.
- On the runtime, our custom UncheckedExtrinsic define a custom
Checkable implementation that converts the unsigned extrinsics into
checked one
 - It recovers the signer
- validates the payload, and injects signed extensions, allowing the
system to increment the nonce and charge the appropriate fees.
- re-route the call to pallet-revive::Call::call or
pallet-revive::Call::instantiateWithCode

## Dependencies

- https://github.com/koute/polkavm/pull/188

## Follow up PRs
- #5926  
- #6147 (previously #5953)
- #5502

---------

Co-authored-by: Alexander Theißen <[email protected]>
Co-authored-by: Cyrill Leutwiler <[email protected]>

* [pallet-revive] fix fixture build path (#6174)

Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Cyrill Leutwiler <[email protected]>

* `fatxpool`: `LocalTransactionPool` implemented (#6104)

[`LocalTransactionPool`
trait](https://github.com/paritytech/polkadot-sdk/blob/d5b96e9e7f24adc1799f8e426c5cb69b4f2dbf8a/substrate/client/transaction-pool/api/src/lib.rs#L408-L426)
is now implemented for `ForkAwareTransactionPool`.

Closes #5493

* Use bool::then instead of then_some with function calls (#6156)

I noticed that hardware benchmarks are being run even though we pass the
--no-hardware-benchmarks cli flag. After some debugging, the cause is an
incorrect usage of the `then_some` method.

From [std
docs](https://doc.rust-lang.org/std/primitive.bool.html#method.then_some):

> Arguments passed to then_some are eagerly evaluated; if you are
passing the result of a function call, it is recommended to use
[then](https://doc.rust-lang.org/std/primitive.bool.html#method.then),
which is lazily evaluated.

```rust
let mut a = 0;
let mut function_with_side_effects = || { a += 1; };

true.then_some(function_with_side_effects());
false.then_some(function_with_side_effects());

// `a` is incremented twice because the value passed to `then_some` is
// evaluated eagerly.
assert_eq!(a, 2);
```

This PR fixes all the similar usages of the `then_some` method across
the codebase.

polkadot address: 138eUqXvUYT3o4GdbnWQfGRzM8yDWh5Q2eFrFULL7RAXzdWD

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>

* Assets in pool with native can be used in `query_weight_to_asset_fee` (#6080)

A follow-up to https://github.com/paritytech/polkadot-sdk/pull/5599.
Assets in a pool with the native one are returned from
`query_acceptable_payment_assets`. Now those assets can be used in
`query_weight_to_asset_fee` to get the correct amount that needs to be
paid.

---------

Co-authored-by: command-bot <>

* [pallet-revive] Add pallet to AH westend (#5502)

Add pallet-revive to Westend runtime, and configure the runtime to
accept Ethereum signed transaction

* Polkadot OmniNode Docs (#6094)

provides low-level documentation on how the omni-node is meant to work.
This is meant to act as reusable material for other teams (e.g.
Papermoon and W3F) to use and integrate into the high level Polkadot
documentation.

Broadly speaking, for omni-node to have great rust-docs, we need to
focus on the following crates, all of which got a bit of love in this
PR:

1. `sp-genesis-builder`
2. `polkadot-omni-node`
3. `polkadot-omni-node-lib`
4. `frame-omni-bencher`

On top of this, we have now: 

* `polkadot_sdk_docs::guides` contains two new steps demonstrating the
most basic version of composing your pallet, putting it into a runtime,
and putting that runtime into omni-node
* `polkadot_sdk_docs::reference_docs::omni_node` to explain in more
detail how omni-node differs from the old-school node.
* `polkadot_sdk_docs::reference_docs::frame_weight_benchmarking` to
finally have a minimal reference about weights and benchmarking.
* It provides tests for some of the steps in
https://github.com/paritytech/polkadot-sdk/issues/5568


closes https://github.com/paritytech/polkadot-sdk/issues/5568
closes https://github.com/paritytech/polkadot-sdk/issues/4781

Next steps

- [x] Ensure the README of the parachain template is up-to-date.
@iulianbarbu
- [ ] Readme for `polkadot-omni-node` and similar is updated. For now,
use `cargo-readme` and copy over the rust-docs.

To build the branch locally and run this:
https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/meta_contributing/index.html#how-to-develop-locally

---------

Co-authored-by: Iulian Barbu <[email protected]>
Co-authored-by: Sebastian Kunert <[email protected]>
Co-authored-by: Michal Kucharczyk <[email protected]>

* Fix `zombienet-bridges-0001-asset-transfer-works` (#6175)

Closes https://github.com/paritytech/polkadot-sdk/issues/6161

Westend BridgeHub freezes for a while at block 3 and if we try to init
the bridge and fund the accounts during that time, it fails. So we wait
untill all the parachains produced at least 10 blocks, in order to make
sure that they work reliably.

* [pallet-revive] fix hardcoded gas in tests (#6192)

Fix hardcoded gas limits in tests

---------

Co-authored-by: GitHub Action <[email protected]>

* Added Trusted Query API implementation for Westend and Rococo relay chains (#6212)

Added missing API methods to Rococo and Westend parachains.
Preparatory work for making chopstick tests run smoothly.
Follow-up of
[PR#6039](https://github.com/paritytech/polkadot-sdk/pull/6039)

* Snowbridge: PNA Audit Better Documentation and minor Refactorings (#6216)

# Description

Snowbridge PNA has been audited. A number of issues where raised due to
not understanding the fee model for Polkadot Native Assets(PNA)
implementation. This PR addresses this by adding more comments and
better naming of private functions.

## Integration

None, documentation and private method name changes.

* Enable approval-voting-parallel by default on kusama (#6218)

The approval-voting-parallel introduced with
https://github.com/paritytech/polkadot-sdk/pull/4849 has been tested on
`versi` and approximately 3 weeks on parity's existing kusama nodes
https://github.com/paritytech/devops/issues/3583, things worked as
expected, so enable it by default on all kusama nodes in the next
release.

The next step will be enabling by default on polkadot if no issue
arrises while running on kusama.

---------

Signed-off-by: Alexandru Gheorghe <[email protected]>

* pallet macro: Support instantiable pallets in tasks (#5194)

Fix https://github.com/paritytech/polkadot-sdk/issues/5185

also implement handling of attr in expansion in construct-runtime

---------

Co-authored-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>

* Disable tests reported in #6062  (#6064)

Flaky tests reported in

#6062
#6063 (already fixed)

Thx!

* Fix a tiny typo (#6229)

Just fix a tiny typo

* pallet-message-queue: Fix max message size calculation (#6205)

The max size of a message should not depend on the weight left in a
given execution context. Instead the max message size depends on the
service weights configured for the pallet. A message that may does not
fit into `on_idle` is not automatically overweight, because it may can
be executed successfully in `on_initialize` or in another block in
`on_idle` when there is more weight left.

---------

Co-authored-by: GitHub Action <[email protected]>

* `RuntimeGenesiConfig`: json macro added (#5813)

This PR adds `build_struct_json_patch` which helps to generate a JSON
used for preset.

Here is doc and example:

https://github.com/paritytech/polkadot-sdk/blob/d868b858758d3886d16c8ba8feb3c93c188044f3/substrate/frame/support/src/generate_genesis_config.rs#L168-L266

And real-world usage:

https://github.com/paritytech/polkadot-sdk/blob/d868b858758d3886d16c8ba8feb3c93c188044f3/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/genesis_config_presets.rs#L37-L61

Closes #5700

---------

Co-authored-by: Sebastian Kunert <[email protected]>

* substrate-offchain: upgrade hyper to v1 (#5919)

Closes #4896

* pallet-revive: Add stateful address mapping (#6096)

Fixes #5576

This allows contracts to be used with an AccountId32 through normal
extrinsics and not only through the eth compat layer. It works by adding
a new extrinsic `map_account` that lets people register their
AccountId32.

---------

Co-authored-by: command-bot <>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Cyrill Leutwiler <[email protected]>

* Fix migrations for pallet-xcm (#6148)

Relates to: https://github.com/paritytech/polkadot-sdk/pull/4826
Relates to: https://github.com/paritytech/polkadot-sdk/issues/3214

## Description

`pallet-xcm` stores some operational data that uses `Versioned*` XCM
types. When we add a new XCM version (XV), we deprecate XV-2 and remove
XV-3. Without proper migration, this can lead to issues with
[undecodable
storage](https://github.com/paritytech/polkadot-sdk/actions/runs/11381324568/job/31662577532?pr=6092),
as was identified on the XCMv5 branch where XCMv2 was removed.

This PR extends the existing `MigrateToLatestXcmVersion` to include
migration for the `Queries`, `LockedFungibles`, and
`RemoteLockedFungibles` storage types. Additionally, more checks were
added to `try_state` for these types.

## TODO
- [x] create tracking issue for `polkadot-fellows`
https://github.com/polkadot-fellows/runtimes/issues/492
- [x] Add missing `MigrateToLatestXcmVersion` for westend
- [x] fix pallet-xcm `Queries`
- fails for Westend
https://github.com/paritytech/polkadot-sdk/actions/runs/11381324568/job/31662577532?pr=6092
- `V2` was removed from `Versioned*` stuff, but we have a live data with
V2 e.g. Queries - e.g. Kusama or Polkadot relay chains
```
VersionNotifier: {
        origin: {
          V2: {
            parents: 0
            interior: {
              X1: {
                Parachain: 2,124
              }
            }
          }
        }
        isActive: true
      } 
```

![image](https://github.com/user-attachments/assets/f59f761b-46a7-4def-8aea-45c4e41c0a00)
- [x] fix also for `RemoteLockedFungibles` 
- [x] fix also for `LockedFungibles`

## Follow-ups

- [ ] deploy on Westend chains before XCMv5
- [ ] https://github.com/paritytech/polkadot-sdk/issues/6188

---------

Co-authored-by: command-bot <>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Francisco Aguirre <[email protected]>

* asset-hubs: simplify xcm-config (#6222)

`ForeignCreatorsSovereignAccountOf` is used by `ForeignCreators` filter
to convert location to `AccountId`, _after_ `ForeignCreators::IsForeign`
filter passes for an (asset, location) pair.

The `IsForeign` filter is the actual differentiator, so if a location
passes it, we should support converting it to an `AccountId`.

As such, this commit replaces `ForeignCreatorsSovereignAccountOf`
converter with the more general `LocationToAccountId` converter.

Signed-off-by: Adrian Catangiu <[email protected]>

* Switch node side to v2 candidate receipts (#5679)

on top of https://github.com/paritytech/polkadot-sdk/pull/5423

This PR implements the plumbing work required for
https://github.com/paritytech/polkadot-sdk/issues/5047 . I also added
additional helper methods gated by feature "test" in primitives.

TODO:
- [x] PRDoc

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: GitHub Action <[email protected]>

* Fix a flaky zombienet test - 0004-coretime-smoke-test (#6236)

In the test log I noticed that the batch transaction which configures
the coretime chain fails. However when rerunning the transaction
manually - it worked. Then I noticed that the coretime chain is
initially registered via zombienet and then re-registered via
`0004-configure-relay.js`. Because of this there is a period of time
when it's not producing blocks and `0004-configure-broker.js` fails to
setup the coretime chain. My theory is that the transaction has failed
because the coretime chain is stalled during the re-registration.

Fixes https://github.com/paritytech/polkadot-sdk/issues/6226

* fix experimental-ump-signals tests (#6214)

Resolves https://github.com/paritytech/polkadot-sdk/issues/6200

Also sets the feature on the rococo-parachain. Will be useful for
zombienet testing

* remove parachains_assigner code (#6171)

Resolves https://github.com/paritytech/polkadot-sdk/issues/5970

Removes the code of the legacy parachains assigner, which was used prior
to coretime. Now that all networks are upgraded to use the coretime
assigner, we can remove it.

* [pallet-revive] Add Ethereum JSON-RPC server (#6147)

Redo of https://github.com/paritytech/polkadot-sdk/pull/5953

---------

Co-authored-by: Alexander Theißen <[email protected]>
Co-authored-by: GitHub Action <[email protected]>

* [pallet-revive] Update typeInfo (#6263)

Update typeinfo impl to make it transparent for subxt

see https://github.com/paritytech/subxt/pull/1845

---------

Co-authored-by: GitHub Action <[email protected]>

* pallet-revive: Trade code size for call stack depth (#6264)

This will reduce the call stack depth in order to raise the allowed code
size. Should allow around 100KB of instructions. This is necessary to
stay within the memory envelope. More code size is more appropriate for
testing right now. We will re-evaluate parameters once we have 64bit
support.

---------

Co-authored-by: GitHub Action <[email protected]>

* [pallet-revive] implement tx origin API (#6105)

Implement a syscall to retreive the transaction origin.

---------

Signed-off-by: Cyrill Leutwiler <[email protected]>
Signed-off-by: xermicus <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: command-bot <>
Co-authored-by: Alexander Theißen <[email protected]>

* Use frame umbrella crate in `pallet-proxy` and `pallet-multisig` (#5995)

A step towards https://github.com/paritytech/polkadot-sdk/issues/4782

In order to nail down the right preludes in `polkadot-sdk-frame`, we
need to migrate a number of pallets to be written with it. Moreover,
migrating our pallets to this simpler patter will encourage the
ecosystem to also follow along.

If this PR is approved and has no unwanted negative consequences, I will
make a tracking issue to migrate all pallets to this umbrella crate.

TODO: 

- [x] fix frame benchmarking template. Can we detect the umbrella crate
in there and have an `if else`? cc @ggwpez
- [x] Migrate benchmarking to v2 @re-gius a good candidate for you, you
can open a PR against my branch.
- [x] tracking issue with follow-ups

---------

Co-authored-by: Guillaume Thiolliere <[email protected]>
Co-authored-by: Giuseppe Re <[email protected]>
Co-authored-by: Dónal Murray <[email protected]>
Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>

* Migrate pallet-vesting benchmark to v2 (#6254)

Part of:

- #6202.

* Migrate pallet-timestamp benchmark to v2 (#6258)

Part of:

- #6202

---------

Co-authored-by: Dónal Murray <[email protected]>

* [Identity] Decouple usernames from identities (#5554)

This PR refactors `pallet-identity` to decouple usernames from
identities.

Main changes in this PR:
- Separate usernames from identities in storage, allowing for correct
deposit accounting
- Introduce the option for username authorities to put up a deposit to
issue a username
- Allow authorities to remove usernames by declaring the intent to do
so, then removing the username after the grace period expires
- Refactor the authority storage to be keyed by suffix rather than owner
account.
- Introduce the concept of a system provider for a username, different
from a governance allocation, allowing for usernames set by the system
and not a specific authority
- Implement multi-block migration to enable all of the changes described
above

---------

Signed-off-by: georgepisaltu <[email protected]>
Co-authored-by: Ankan <[email protected]>

* pallet-revive: Use custom target to build test fixtures (#6266)

This removes the need to use a custom toolchain to build the contract
test fixtures. Instead, we supply a custom target and use the currently
in use upstream toolchain.

---------

Co-authored-by: Jan Bujak <[email protected]>
Co-authored-by: Cyrill Leutwiler <[email protected]>
Co-authored-by: command-bot <>

* Fix review in #6258 (#6275)

Co-authored-by: Shawn Tabrizi <[email protected]>

* Refactor `pallet-grandpa` to use `v2` benchmarks (#6073)

# Description

This PR moves the `pallet-grandpa` to the `v2` of `frame_benchmarking`.
I submitted PR #6025 as an external contributor from my own fork, so I
made this one from within this repo to see how the process would change.

## Integration

N/A

## Review Notes

Same as #6025, straightforward.

---------

Co-authored-by: Shawn Tabrizi <[email protected]>

* [pallet-revive] rpc server add docker file (#6278)

Add a docker for pallet-revive eth-rpc

 Tested with 
```
sudo docker build . -t eth-rpc -f substrate/frame/revive/rpc/Dockerfile
sudo docker run --network="host" -e RUST_LOG="info,eth-rpc=debug" eth-rpc
```

---------

Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Alexander Theißen <[email protected]>

* Bump a timeout in zombienet coretime smoke test (#6268)

polkadot/zombienet_tests/smoke/0004-coretime-smoke-test.zndsl still
timeouts on CI from time to time. Bumping the timeout a bit more.

Related to https://github.com/paritytech/polkadot-sdk/issues/6226

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>

* Migrate pallet-utility to benchmark v2 (#6276)

Part of:

- #6202.

---------

Co-authored-by: Dónal Murray <[email protected]>

* [ci] Add publish docker for eth-rpc (#6286)

close https://github.com/paritytech/ci_cd/issues/1073

* Add overhead benchmark to frame-omni-bencher (#5891)

# Benchmark Overhead Command for Parachains

This implements the `benchmark overhead` command for parachains. Full
context is available at:
https://github.com/paritytech/polkadot-sdk/issues/5303. Previous attempt
was this https://github.com/paritytech/polkadot-sdk/pull/5283, but here
we have integration into frame-omni-bencher and improved tooling.

## Changes Overview

Users are now able to use `frame-omni-bencher` to generate
`extrinsic_weight.rs` and `block_weight.rs` files for their runtime. The
core logic for generating these remains untouched; this PR provides
mostly machinery to make it work for parachains at all.

Similar to the pallet benchmarks, we gain the option to benchmark based
on just a runtime:

```
frame-omni-bencher v1 benchmark overhead --runtime {{runtime}}
```

or with a spec:

```
frame-omni-bencher v1 benchmark overhead --chain {{spec}} --genesis-builder spec
```

In this case, the genesis state is generated from the runtime presets.
However, it is also possible to use `--chain` and genesis builder `spec`
to generate the genesis state from the chain spec.

Additionally, we use metadata to perform some checks based on the
pallets the runtime exposes:

- If we see the `ParaInherent` pallet, we assume that we are dealing
with a relay chain. This means that we don't need proof recording during
import (since there is no storage weight).
- If we detect the `ParachainSystem` pallet, we assume that we are
dealing with a parachain and take corresponding actions like patching a
para id into the genesis state.

On the inherent side, I am currently supplying the standard inherents
every parachain needs.

In the current state, `frame-omni-bencher` supports all system chains.
In follow-up PRs, we could add additional inherents to increase
compatibility.

Since we are building a block during the benchmark, we also need to
build an extrinsic. By default, I am leveraging subxt to build the xt
dynamically. If a chain is not compatible with the `SubstrateConfig`
that comes with `subxt`, it can provide a custom extrinsic builder to
benchmarking-cli. This requires either a custom bencher implementation
or an integration into the parachains node.

Also cumulus-test-runtime has been migrated to provide genesis configs.

## Chain Compatibility
The current version here is compatible with the system chains and common
substrate chains. The way to go for others would be to customize the
frame-omni-bencher by providing a custom extrinsicbuilder. I did an
example implementation that works for mythical:
https://github.com/skunert/mythical-bencher

## Follow-Ups
- After #6040 is finished, we should integrate this here to make the
tooling truly useful. In the current form, the state is fairly small and
not representative.

## How to Review
I recommend starting from
[here](https://github.com/paritytech/polkadot-sdk/pull/5891/files#diff-50830ff756b3ac3403b7739d66c9e3a5185dbea550669ca71b28d19c7a2a54ecR264),
this method is the main entry point for omni-bencher and `polkadot`
binary.

TBD:
- [x] PRDoc

---------

Co-authored-by: Michal Kucharczyk <[email protected]>

* [pallet-revive] code size API (#6260)

This PR implements the contract API to query the code size of a given
address.

---------

Signed-off-by: Cyrill Leutwiler <[email protected]>
Signed-off-by: xermicus <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: command-bot <>
Co-authored-by: PG Herveou <[email protected]>

* Publish `polkadot-omni-node` binary (#6057)

Closes https://github.com/paritytech/polkadot-sdk/issues/5566

Publish the `polkadot-omni-node` binary

This is a best effort. I'm not very familiar with the release /
publishing process and also not sure how to test this.
@paritytech/release-engineering can you take a look on this PR please ?

---------

Co-authored-by: EgorPopelyaev <[email protected]>

* [pallet-revive] implement the block hash API (#6246)

- Bound T::Hash to H256
- Implement the block hash API

---------

Signed-off-by: xermicus <[email protected]>
Signed-off-by: Cyrill Leutwiler <[email protected]>
Co-authored-by: command-bot <>
Co-authored-by: GitHub Action <[email protected]>

* [pallet-revive] Add metrics to eth-rpc (#6288)

Add metrics for eth-rpc

---------

Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Alexander Theißen <[email protected]>

* Remove `riscv` feature flag (#6305)

Since https://github.com/paritytech/polkadot-sdk/pull/6266 we no longer
require a custom toolchain to build the `pallet-revive-fixtures`. Hence
we no longer have to guard the build behind a feature flag.

---------

Co-authored-by: GitHub Action <[email protected]>

* `candidate-validation`: RFC103 implementation (#5847)

Part of https://github.com/paritytech/polkadot-sdk/issues/5047
On top of https://github.com/paritytech/polkadot-sdk/pull/5679

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: GitHub Action <[email protected]>

* Update Treasury to Support Relay Chain Block Number Provider (#3970)

The goal of this PR is to have the treasury pallet work on a parachain
which does not produce blocks on a regular schedule, thus can use the
relay chain as a block provider.

Because blocks are not produced regularly, we cannot make the assumption
that block number increases monotonically, and thus have new logic to
handle multiple spend periods passing between blocks.

---------

Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Muharem <[email protected]>

* collation-generation: use v2 receipts (#5908)

Part of https://github.com/paritytech/polkadot-sdk/issues/5047

Plus some cleanups

---------

Signed-off-by: Andrei Sandu <[email protected]>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: GitHub Action <[email protected]>

* [eth-rpc] Fixes (#6317)

Various fixes for the release of eth-rpc & ah-westend-runtime

- Bump asset-hub westend spec version
- Fix the status of the Receipt to properly report failed transactions
- Fix value conversion between native and eth decimal representation

---------

Co-authored-by: GitHub Action <[email protected]>

* Refactor pallet `claims` (#6318)

- [x] Removing `without_storage_info` and adding bounds on the stored
types for pallet `claims` - issue
https://github.com/paritytech/polkadot-sdk/issues/6289
- [x] Migrating to benchmarking V2 -
https://gi…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A4-needs-backport Pull request must be backported to all maintained releases. T2-pallets This PR/Issue is related to a particular pallet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants