Skip to content
Snippets Groups Projects
  1. Mar 19, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 2 updates (#3726) · e2ead888
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 2 updates:
      [serde_yaml](https://github.com/dtolnay/serde-yaml) and
      [syn](https://github.com/dtolnay/syn).
      
      Updates `serde_yaml` from 0.9.32 to 0.9.33
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/serde-yaml/releases">serde_yaml's
      releases</a>.</em></p>
      <blockquote>
      <h2>0.9.33</h2>
      <ul>
      <li>Fix quadratic parse time for YAML containing deeply nested flow
      collections (<a
      href="https://redirect.github.com/dtolnay/unsafe-libyaml/issues/26">dtolnay/unsafe-libyaml#26</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/f4c9ed92385c827a677dae60c2b5a894e24709f0"><code>f4c9ed9</code></a>
      Release 0.9.33</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/b4edaee907373ee69c6389687a35fced63d8addf"><code>b4edaee</code></a>
      Pull in yaml_parser_fetch_more_tokens fix from libyaml</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/8a5542ced61ae21d0772e504fac01bd1dbfaaa6b"><code>8a5542c</code></a>
      Resolve non_local_definitions warning in test</li>
      <li>See full diff in <a
      href="https://github.com/dtolnay/serde-yaml/compare/0.9.32...0.9.33">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.52 to 2.0.53
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/syn/releases">syn's
      releases</a>.</em></p>
      <blockquote>
      <h2>2.0.53</h2>
      <ul>
      <li>Implement Copy, Clone, and ToTokens for syn::parse::Nothing (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1597">#1597</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/32dcf8df303c7181d95325f159ffbb1870a73e70"><code>32dcf8d</code></a>
      Release 2.0.53</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/fd1f2aa9979c557e5b95c85f35b8949b8059153f"><code>fd1f2aa</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1597">#1597</a>
      from dtolnay/copyprintnothing</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/4f6c0528d63874495ce23d197a898cd63cb04d60"><code>4f6c052</code></a>
      Implement ToTokens for syn::parse::Nothing</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/3f37543794e5d43952399847a2ecbc1eb39f609f"><code>3f37543</code></a>
      Implement Copy for syn::parse::Nothing</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/36a412217d5217fab5657ab03ebcf29102d87a64"><code>36a4122</code></a>
      Update test suite to nightly-2024-03-16</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/bd931069f5adb81168e7e6186ead0663cc605257"><code>bd93106</code></a>
      Revert &quot;Temporarily disable nightly testing due to libLLVM link
      issue&quot;</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/06166a77b7d465b0e4c45e1a2162f15031d7f722"><code>06166a7</code></a>
      Update test suite to nightly-2024-03-09</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/ed545e75d8fdcab5078789ad25fc0efadc14e59b"><code>ed545e7</code></a>
      Work around doc_markdown lint in test_precedence</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/7aef1edbba28afe1bb6f9ddc0b5095dcd5135849"><code>7aef1ed</code></a>
      Temporarily disable nightly testing due to libLLVM link issue</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/556b10bf201264172e4b840f8cf1be38b8d75738"><code>556b10b</code></a>
      Update test suite to nightly-2024-03-06</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.52...2.0.53">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: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      e2ead888
  2. Mar 17, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 3 updates (#3717) · fe343cc7
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 3 updates:
      [log](https://github.com/rust-lang/log),
      [syn](https://github.com/dtolnay/syn) and
      [clap](https://github.com/clap-rs/clap).
      
      Updates `log` from 0.4.20 to 0.4.21
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/rust-lang/log/blob/master/CHANGELOG.md">log's
      changelog</a>.</em></p>
      <blockquote>
      <h2>[0.4.21] - 2024-02-27</h2>
      <h2>What's Changed</h2>
      <ul>
      <li>Minor clippy nits by <a
      href="https://github.com/nyurik"><code>@​nyurik</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/578">rust-lang/log#578</a></li>
      <li>Simplify Display impl by <a
      href="https://github.com/nyurik"><code>@​nyurik</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/579">rust-lang/log#579</a></li>
      <li>Set all crates to 2021 edition by <a
      href="https://github.com/nyurik"><code>@​nyurik</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/580">rust-lang/log#580</a></li>
      <li>Various changes based on review by <a
      href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/583">rust-lang/log#583</a></li>
      <li>Fix typo in file_static() method doc by <a
      href="https://github.com/dimo414"><code>@​dimo414</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/590">rust-lang/log#590</a></li>
      <li>Specialize empty key value pairs by <a
      href="https://github.com/EFanZh"><code>@​EFanZh</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/576">rust-lang/log#576</a></li>
      <li>Fix incorrect lifetime in Value::to_str() by <a
      href="https://github.com/peterjoel"><code>@​peterjoel</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/587">rust-lang/log#587</a></li>
      <li>Remove some API of the key-value feature by <a
      href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/585">rust-lang/log#585</a></li>
      <li>Add logcontrol-log and log-reload by <a
      href="https://github.com/swsnr"><code>@​swsnr</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/595">rust-lang/log#595</a></li>
      <li>Add Serialization section to kv::Value docs by <a
      href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/593">rust-lang/log#593</a></li>
      <li>Rename Value::to_str to to_cow_str by <a
      href="https://github.com/Thomasdezeeuw"><code>@​Thomasdezeeuw</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/592">rust-lang/log#592</a></li>
      <li>Clarify documentation and simplify initialization of
      <code>STATIC_MAX_LEVEL</code> by <a
      href="https://github.com/ptosi"><code>@​ptosi</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/594">rust-lang/log#594</a></li>
      <li>Update docs to 2021 edition, test by <a
      href="https://github.com/nyurik"><code>@​nyurik</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/577">rust-lang/log#577</a></li>
      <li>Add &quot;alterable_logger&quot; link to README.md by <a
      href="https://github.com/brummer-simon"><code>@​brummer-simon</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/589">rust-lang/log#589</a></li>
      <li>Normalize line ending by <a
      href="https://github.com/EFanZh"><code>@​EFanZh</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/602">rust-lang/log#602</a></li>
      <li>Remove <code>ok_or</code> in favor of <code>Option::ok_or</code> by
      <a
      href="https://github.com/AngelicosPhosphoros"><code>@​AngelicosPhosphoros</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/607">rust-lang/log#607</a></li>
      <li>Use <code>Acquire</code> ordering for initialization check by <a
      href="https://github.com/AngelicosPhosphoros"><code>@​AngelicosPhosphoros</code></a>
      in <a
      href="https://redirect.github.com/rust-lang/log/pull/610">rust-lang/log#610</a></li>
      <li>Get structured logging API ready for stabilization by <a
      href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
      href="https://redirect.github.com/rust-lang/log/pull/613">rust-lang/log#613</a></li>
      </ul>
      <h2>New Contributors</h2>
      <ul>
      <li><a href="https://github.com/nyurik"><code>@​nyurik</code></a> made
      their first contribution in <a
      href="https://redirect.github.com/rust-lang/log/pull/578">rust-lang/log#578</a></li>
      <li><a href="https://github.com/dimo414"><code>@​dimo414</code></a> made
      their first contribution in <a
      href="https://redirect.github.com/rust-lang/log/pull/590">rust-lang/log#590</a></li>
      <li><a href="https://github.com/peterjoel"><code>@​peterjoel</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/rust-lang/log/pull/587">rust-lang/log#587</a></li>
      <li><a href="https://github.com/ptosi"><code>@​ptosi</code></a> made
      their first contribution in <a
      href="https://redirect.github.com/rust-lang/log/pull/594">rust-lang/log#594</a></li>
      <li><a
      href="https://github.com/brummer-simon"><code>@​brummer-simon</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/rust-lang/log/pull/589">rust-lang/log#589</a></li>
      <li><a
      href="https://github.com/AngelicosPhosphoros"><code>@​AngelicosPhosphoros</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/rust-lang/log/pull/607">rust-lang/log#607</a></li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/rust-lang/log/commit/3ccdc286fef3076747fe18a2a93658ea4d4ae012"><code>3ccdc28</code></a>
      Merge pull request <a
      href="https://redirect.github.com/rust-lang/log/issues/617">#617</a>
      from rust-lang/cargo/0.4.21</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/6153cb289f0e7b80f00ae07dbe5ee41cf3d3fcb0"><code>6153cb2</code></a>
      prepare for 0.4.21 release</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/f0f74946a4bfb02cfc407795a3499c4b69d7a290"><code>f0f7494</code></a>
      Merge pull request <a
      href="https://redirect.github.com/rust-lang/log/issues/613">#613</a>
      from rust-lang/feat/kv-cleanup</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/2b220bf3b705f2abc0ee591c7eb17972a979da3a"><code>2b220bf</code></a>
      clean up structured logging example</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/646e9ab9917fb79e44b6b36b8375106a1a09766c"><code>646e9ab</code></a>
      use original Visitor name for VisitValue</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/cf85c38d3519745d60e7b891c4b2025050a8389f"><code>cf85c38</code></a>
      add needed subfeatures to kv_unstable</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/73e953905b970ef765a86bf6cbd69bc2c5e2bac4"><code>73e9539</code></a>
      fix up capturing of :err</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/31bb4b0ff36e458c6bef304a336b71f6342ddcc7"><code>31bb4b0</code></a>
      move error macros together</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/ad917118a5e781d0dd60b3a75ba519ce9839ba70"><code>ad91711</code></a>
      support field shorthand in macros</li>
      <li><a
      href="https://github.com/rust-lang/log/commit/90a347bd836873264a393a35bfd90fe478fadae2"><code>90a347b</code></a>
      restore removed APIs as deprecated</li>
      <li>Additional commits viewable in <a
      href="https://github.com/rust-lang/log/compare/0.4.20...0.4.21">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.50 to 2.0.52
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/syn/releases">syn's
      releases</a>.</em></p>
      <blockquote>
      <h2>2.0.52</h2>
      <ul>
      <li>Add an expression parser that uses match-arm's boundary rules (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1593">#1593</a>)</li>
      </ul>
      <h2>2.0.51</h2>
      <ul>
      <li>Resolve non_local_definitions warnings in generated code under rustc
      1.78-nightly</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/07ede6a6b31adeb3a18899ada1f352f63b3a36b9"><code>07ede6a</code></a>
      Release 2.0.52</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/acbcfbc8c113fa1603469c9ad329d061ee74662e"><code>acbcfbc</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1593">#1593</a>
      from dtolnay/boundary</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/4924a993dce23abe65128ac318dd662d1e2ceef2"><code>4924a99</code></a>
      Add an expression parser that uses match-arm's boundary rules</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/e06122bf2cfd31bd7f70304694477dd292fe7e1e"><code>e06122b</code></a>
      Resolve unnecessary_get_then_check clippy lint</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/018fc5a6298491525387910cb359a9ec618abe54"><code>018fc5a</code></a>
      Update test suite to nightly-2024-02-27</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/5e15a9b412cb1e2df481e3470e1be8defaee4495"><code>5e15a9b</code></a>
      Release 2.0.51</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/7e0d4e1f43a879078595f0a3876484a1920ab8f8"><code>7e0d4e1</code></a>
      Resolve non_local_definitions warning in debug impls</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/8667ad97c1d4e75ac1bb323fb5c7849269814145"><code>8667ad9</code></a>
      Ignore module_name_repetitions pedantic clippy lint in codegen</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/1fc32000e25bf8fda7371071073f91e012ddf808"><code>1fc3200</code></a>
      Update test suite to nightly-2024-02-26</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/07a2065576b27dcf0c104f56379cc446d2f3824b"><code>07a2065</code></a>
      Update test suite to nightly-2024-02-23</li>
      <li>See full diff in <a
      href="https://github.com/dtolnay/syn/compare/2.0.50...2.0.52">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `clap` from 4.5.1 to 4.5.3
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/releases">clap's
      releases</a>.</em></p>
      <blockquote>
      <h2>v4.5.3</h2>
      <h2>[4.5.3] - 2024-03-15</h2>
      <h3>Internal</h3>
      <ul>
      <li><em>(derive)</em> Update <code>heck</code></li>
      </ul>
      <h2>v4.5.2</h2>
      <h2>[4.5.2] - 2024-03-06</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(macros)</em> Silence a warning</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
      changelog</a>.</em></p>
      <blockquote>
      <h2>[4.5.3] - 2024-03-15</h2>
      <h3>Internal</h3>
      <ul>
      <li><em>(derive)</em> Update <code>heck</code></li>
      </ul>
      <h2>[4.5.2] - 2024-03-06</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(macros)</em> Silence a warning</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/clap-rs/clap/commit/4e07b438584bb8a19e37599d4c5b11797bec5579"><code>4e07b43</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/8247c7ddf05d8023729ac180d8e8df260f1da5ff"><code>8247c7d</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/677c52ce0870115845a4c42e204f6c049b81a1e7"><code>677c52c</code></a>
      chore: Update <code>heck</code> requirement (<a
      href="https://redirect.github.com/clap-rs/clap/issues/5396">#5396</a>)</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/f65d421607ba16c3175ffe76a20820f123b6c4cb"><code>f65d421</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/886b2729e419114bf42f1a92c66d346c81aa8f33"><code>886b272</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/3ba429752fdb19b7a1c2e151c41d5141ad5b9295"><code>3ba4297</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5386">#5386</a>
      from amaanq/static-var-name</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/2aea9504c4894b3bddf9cd4d2d6cba889307c157"><code>2aea950</code></a>
      fix: Use SCREAMING_SNAKE_CASE for static variable
      <code>authors</code></li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/690f5557d7f25904c31ec9f2a3c3657cbb68c98e"><code>690f555</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5382">#5382</a>
      from clap-rs/renovate/pre-commit-action-3.x</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/a2aa644368ec19026b16b870ec32dc57b325ba9b"><code>a2aa644</code></a>
      chore(deps): update compatible (dev) (<a
      href="https://redirect.github.com/clap-rs/clap/issues/5381">#5381</a>)</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/c233de53c0cca4281f444cf16d16d161bc9c3cab"><code>c233de5</code></a>
      chore(deps): update pre-commit/action action to v3.0.1</li>
      <li>Additional commits viewable in <a
      href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.1...v4.5.3">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: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      fe343cc7
  3. Mar 12, 2024
    • Koute's avatar
      Add a PolkaVM-based executor (#3458) · b0f34e4b
      Koute authored
      This PR adds a new PolkaVM-based executor to Substrate.
      
      - The executor can now be used to actually run a PolkaVM-based runtime,
      and successfully produces blocks.
      - The executor is always compiled-in, but is disabled by default.
      - The `SUBSTRATE_ENABLE_POLKAVM` environment variable must be set to `1`
      to enable the executor, in which case the node will accept both WASM and
      PolkaVM program blobs (otherwise it'll default to WASM-only). This is
      deliberately undocumented and not explicitly exposed anywhere (e.g. in
      the command line arguments, or in the API) to disincentivize anyone from
      enabling it in production. If/when we'll move this into production usage
      I'll remove the environment variable and do it "properly".
      - I did not use our legacy runtime allocator for the PolkaVM executor,
      so currently every allocation inside of the runtime will leak guest
      memory until that particular instance is destroyed. The idea here is
      that I will work on the https://github.com/polkadot-fellows/RFCs/pull/4
      which will remove the need for the legacy allocator under WASM, and that
      will also allow us to use a proper non-leaking allocator under PolkaVM.
      - I also did some minor cleanups of the WASM executor and deleted some
      dead code.
      
      No prdocs included since this is not intended to be an end-user feature,
      but an unofficial experiment, and shouldn't affect any current
      production user. Once this is production-ready a full Polkadot
      Fellowship RFC will be necessary anyway.
      b0f34e4b
  4. Mar 07, 2024
  5. Mar 05, 2024
    • Kian Paimani's avatar
      Repot all templates into a single directory (#3460) · 4c810609
      Kian Paimani authored
      The first step towards
      https://github.com/paritytech/polkadot-sdk/issues/3155
      
      Brings all templates under the following structure
      
      ```
      templates
      |   parachain
      |   |   polkadot-launch
      |   |   runtime              --> parachain-template-runtime
      |   |   pallets              --> pallet-parachain-template
      |   |   node                 --> parachain-template-node
      |   minimal
      |   |   runtime              --> minimal-template-runtime
      |   |   pallets              --> pallet-minimal-template
      |   |   node                 --> minimal-template-node
      |   solochain
      |   |   runtime              --> solochain-template-runtime
      |   |   pallets              --> pallet-template (the naming is not consistent here)
      |   |   node                 --> solochain-template-node
      ```
      
      The only note-worthy changes in this PR are: 
      
      - More `Cargo.toml` fields are forwarded to use the one from the
      workspace.
      - parachain template now has weights and benchmarks
      - adds a shell pallet to the minimal template
      - remove a few unused deps 
      
      
      A list of possible follow-ups: 
      
      - [ ] Unify READMEs, create a parent README for all
      - [ ] remove references to `docs.substrate.io` in templates
      - [ ] make all templates use `#[derive_impl]`
      - [ ] update and unify all licenses
      - [ ] Remove polkadot launch, use
      https://github.com/paritytech/polkadot-sdk/blob/35349df9/cumulus/zombienet/examples/small_network.toml
      instead.
      4c810609
  6. Feb 28, 2024
    • Oliver Tale-Yazdi's avatar
      Multi-Block-Migrations, `poll` hook and new System callbacks (#1781) · eefd5fe4
      Oliver Tale-Yazdi authored
      
      This MR is the merge of
      https://github.com/paritytech/substrate/pull/14414 and
      https://github.com/paritytech/substrate/pull/14275. It implements
      [RFC#13](https://github.com/polkadot-fellows/RFCs/pull/13), closes
      https://github.com/paritytech/polkadot-sdk/issues/198.
      
      ----- 
      
      This Merge request introduces three major topicals:
      
      1. Multi-Block-Migrations
      1. New pallet `poll` hook for periodic service work
      1. Replacement hooks for `on_initialize` and `on_finalize` in cases
      where `poll` cannot be used
      
      and some more general changes to FRAME.  
      The changes for each topical span over multiple crates. They are listed
      in topical order below.
      
      # 1.) Multi-Block-Migrations
      
      Multi-Block-Migrations are facilitated by creating `pallet_migrations`
      and configuring `System::Config::MultiBlockMigrator` to point to it.
      Executive picks this up and triggers one step of the migrations pallet
      per block.
      The chain is in lockdown mode for as long as an MBM is ongoing.
      Executive does this by polling `MultiBlockMigrator::ongoing` and not
      allowing any transaction in a block, if true.
      
      A MBM is defined through trait `SteppedMigration`. A condensed version
      looks like this:
      ```rust
      /// A migration that can proceed in multiple steps.
      pub trait SteppedMigration {
      	type Cursor: FullCodec + MaxEncodedLen;
      	type Identifier: FullCodec + MaxEncodedLen;
      
      	fn id() -> Self::Identifier;
      
      	fn max_steps() -> Option<u32>;
      
      	fn step(
      		cursor: Option<Self::Cursor>,
      		meter: &mut WeightMeter,
      	) -> Result<Option<Self::Cursor>, SteppedMigrationError>;
      }
      ```
      
      `pallet_migrations` can be configured with an aggregated tuple of these
      migrations. It then starts to migrate them one-by-one on the next
      runtime upgrade.
      Two things are important here:
      - 1. Doing another runtime upgrade while MBMs are ongoing is not a good
      idea and can lead to messed up state.
      - 2. **Pallet Migrations MUST BE CONFIGURED IN `System::Config`,
      otherwise it is not used.**
      
      The pallet supports an `UpgradeStatusHandler` that can be used to notify
      external logic of upgrade start/finish (for example to pause XCM
      dispatch).
      
      Error recovery is very limited in the case that a migration errors or
      times out (exceeds its `max_steps`). Currently the runtime dev can
      decide in `FailedMigrationHandler::failed` how to handle this. One
      follow-up would be to pair this with the `SafeMode` pallet and enact
      safe mode when an upgrade fails, to allow governance to rescue the
      chain. This is currently not possible, since governance is not
      `Mandatory`.
      
      ## Runtime API
      
      - `Core`: `initialize_block` now returns `ExtrinsicInclusionMode` to
      inform the Block Author whether they can push transactions.
      
      ### Integration
      
      Add it to your runtime implementation of `Core` and `BlockBuilder`:
      ```patch
      diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs
      @@ impl_runtime_apis! {
      	impl sp_block_builder::Core<Block> for Runtime {
      -		fn initialize_block(header: &<Block as BlockT>::Header) {
      +		fn initialize_block(header: &<Block as BlockT>::Header) -> RuntimeExecutiveMode {
      			Executive::initialize_block(header)
      		}
      
      		...
      	}
      ```
      
      # 2.) `poll` hook
      
      A new pallet hook is introduced: `poll`. `Poll` is intended to replace
      mostly all usage of `on_initialize`.
      The reason for this is that any code that can be called from
      `on_initialize` cannot be migrated through an MBM. Currently there is no
      way to statically check this; the implication is to use `on_initialize`
      as rarely as possible.
      Failing to do so can result in broken storage invariants.
      
      The implementation of the poll hook depends on the `Runtime API` changes
      that are explained above.
      
      # 3.) Hard-Deadline callbacks
      
      Three new callbacks are introduced and configured on `System::Config`:
      `PreInherents`, `PostInherents` and `PostTransactions`.
      These hooks are meant as replacement for `on_initialize` and
      `on_finalize` in cases where the code that runs cannot be moved to
      `poll`.
      The reason for this is to make the usage of HD-code (hard deadline) more
      explicit - again to prevent broken invariants by MBMs.
      
      # 4.) FRAME (general changes)
      
      ## `frame_system` pallet
      
      A new memorize storage item `InherentsApplied` is added. It is used by
      executive to track whether inherents have already been applied.
      Executive and can then execute the MBMs directly between inherents and
      transactions.
      
      The `Config` gets five new items:
      - `SingleBlockMigrations` this is the new way of configuring migrations
      that run in a single block. Previously they were defined as last generic
      argument of `Executive`. This shift is brings all central configuration
      about migrations closer into view of the developer (migrations that are
      configured in `Executive` will still work for now but is deprecated).
      - `MultiBlockMigrator` this can be configured to an engine that drives
      MBMs. One example would be the `pallet_migrations`. Note that this is
      only the engine; the exact MBMs are injected into the engine.
      - `PreInherents` a callback that executes after `on_initialize` but
      before inherents.
      - `PostInherents` a callback that executes after all inherents ran
      (including MBMs and `poll`).
      - `PostTransactions` in symmetry to `PreInherents`, this one is called
      before `on_finalize` but after all transactions.
      
      A sane default is to set all of these to `()`. Example diff suitable for
      any chain:
      ```patch
      @@ impl frame_system::Config for Test {
       	type MaxConsumers = ConstU32<16>;
      +	type SingleBlockMigrations = ();
      +	type MultiBlockMigrator = ();
      +	type PreInherents = ();
      +	type PostInherents = ();
      +	type PostTransactions = ();
       }
      ```
      
      An overview of how the block execution now looks like is here. The same
      graph is also in the rust doc.
      
      <details><summary>Block Execution Flow</summary>
      <p>
      
      ![Screenshot 2023-12-04 at 19 11
      29](https://github.com/paritytech/polkadot-sdk/assets/10380170/e88a80c4-ef11-4faa-8df5-8b33a724c054)
      
      </p>
      </details> 
      
      ## Inherent Order
      
      Moved to https://github.com/paritytech/polkadot-sdk/pull/2154
      
      ---------------
      
      
      ## TODO
      
      - [ ] Check that `try-runtime` still works
      - [ ] Ensure backwards compatibility with old Runtime APIs
      - [x] Consume weight correctly
      - [x] Cleanup
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarLiam Aharon <liam.aharon@hotmail.com>
      Co-authored-by: default avatarJuan Girini <juangirini@gmail.com>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: default avatarGavin Wood <gavin@parity.io>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      eefd5fe4
    • Liam Aharon's avatar
      Runtime Upgrade ref docs and Single Block Migration example pallet (#1554) · 12ce4f7d
      Liam Aharon authored
      Closes https://github.com/paritytech/polkadot-sdk-docs/issues/55
      
      - Changes 'current storage version' terminology to less ambiguous
      'in-code storage version' (suggestion by @ggwpez
      
      )
      - Adds a new example pallet `pallet-example-single-block-migrations`
      - Adds a new reference doc to replace
      https://docs.substrate.io/maintain/runtime-upgrades/ (temporarily living
      in the pallet while we wait for developer hub PR to merge)
      - Adds documentation for the `storage_alias` macro
      - Improves `trait Hooks` docs 
      - Improves `trait GetStorageVersion` docs
      - Update the suggested patterns for using `VersionedMigration`, so that
      version unchecked migrations are never exported
      - Prevents accidental usage of version unchecked migrations in runtimes
      
      https://github.com/paritytech/substrate/pull/14421#discussion_r1255467895
      - Unversioned migration code is kept inside `mod version_unchecked`,
      versioned code is kept in `pub mod versioned`
      - It is necessary to use modules to limit visibility because the inner
      migration must be `pub`. See
      https://github.com/rust-lang/rust/issues/30905 and
      
      https://internals.rust-lang.org/t/lang-team-minutes-private-in-public-rules/4504/40
      for more.
      
      ### todo
      
      - [x] move to reference docs to proper place within sdk-docs (now that
      https://github.com/paritytech/polkadot-sdk/pull/2102 is merged)
      - [x] prdoc
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      Co-authored-by: default avatarJuan <juangirini@gmail.com>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatargupnik <nikhilgupta.iitk@gmail.com>
      12ce4f7d
  7. Feb 23, 2024
    • Sebastian Kunert's avatar
      PoV Reclaim Runtime Side (#3002) · 3386377b
      Sebastian Kunert authored
      
      # Runtime side for PoV Reclaim
      
      ## Implementation Overview
      - Hostfunction to fetch the storage proof size has been added to the
      PVF. It uses the size tracking recorder that was introduced in my
      previous PR.
      - Mechanisms to use the reclaim HostFunction have been introduced.
      - 1. A SignedExtension that checks the node-reported proof size before
      and after application of an extrinsic. Then it reclaims the difference.
      - 2. A manual helper to make reclaiming easier when manual interaction
      is required, for example in `on_idle` or other hooks.
      - In order to utilize the manual reclaiming, I modified `WeightMeter` to
      support the reduction of consumed weight, at least for storage proof
      size.
      
      ## How to use
      To enable the general functionality for a parachain:
      1. Add the SignedExtension to your parachain runtime. 
      2. Provide the HostFunction to the node
      3. Enable proof recording during block import
      
      ## TODO
      - [x] PRDoc
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      3386377b
  8. Feb 20, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 5 updates (#3397) · d50cf140
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 5 updates:
      
      | Package | From | To |
      | --- | --- | --- |
      | [serde](https://github.com/serde-rs/serde) | `1.0.196` | `1.0.197` |
      | [serde_json](https://github.com/serde-rs/json) | `1.0.113` | `1.0.114`
      |
      | [syn](https://github.com/dtolnay/syn) | `2.0.49` | `2.0.50` |
      | [serde_yaml](https://github.com/dtolnay/serde-yaml) | `0.9.31` |
      `0.9.32` |
      | [serde_derive](https://github.com/serde-rs/serde) | `1.0.196` |
      `1.0.197` |
      
      Updates `serde` from 1.0.196 to 1.0.197
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/serde/releases">serde's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.0.197</h2>
      <ul>
      <li>Fix unused_imports warnings when compiled by rustc 1.78</li>
      <li>Optimize code size of some Display impls (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2697">#2697</a>,
      thanks <a
      href="https://github.com/nyurik"><code>@​nyurik</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/5fa711d75d91173aafc6019e03cf8af6ac9ba7b2"><code>5fa711d</code></a>
      Release 1.0.197</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/f5d8ae423aa195d3423029ff5a618266cc8ff9a5"><code>f5d8ae4</code></a>
      Resolve prelude redundant import warnings</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/1d54973b928bd8708a4ad2d90fca1203367ff580"><code>1d54973</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2697">#2697</a>
      from nyurik/format-str</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b8fafefd8588f84af54329945fab701ec414281d"><code>b8fafef</code></a>
      A few minor <code>write_str</code> optimizations and inlining</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/c42ebb8839fbd92dbda6729e8363c8d683f26306"><code>c42ebb8</code></a>
      Update ui test suite to nightly-2024-02-12</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/9e680620b595724a6abfb8e785155d02482f911a"><code>9e68062</code></a>
      Ignore incompatible_msrv clippy lint for conditionally compiled
      code</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/846f865de2e94408e0edc6a2c6863c063cd234be"><code>846f865</code></a>
      Ignore dead_code warnings in test</li>
      <li>See full diff in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.196...v1.0.197">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_json` from 1.0.113 to 1.0.114
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/json/releases">serde_json's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.0.114</h2>
      <ul>
      <li>Fix unused_imports warnings when compiled by rustc 1.78</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/json/commit/e1b3a6d8a161ff5ec4865b487d148c17d0188e3e"><code>e1b3a6d</code></a>
      Release 1.0.114</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/6fb70262e894168ac631b2232a1b7b3a7781ebe5"><code>6fb7026</code></a>
      Work around prelude redundant import warnings</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/34a04c5f7febdf80e05743e38d5cb1880a83b6f6"><code>34a04c5</code></a>
      Ignore incompatible_msrv clippy false positives in test</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/ca05f69943e18d70c2219ea41fcb67f2849b7eed"><code>ca05f69</code></a>
      Remove unused Float::is_sign_negative trait method</li>
      <li>See full diff in <a
      href="https://github.com/serde-rs/json/compare/v1.0.113...v1.0.114">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.49 to 2.0.50
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/syn/releases">syn's
      releases</a>.</em></p>
      <blockquote>
      <h2>2.0.50</h2>
      <ul>
      <li>Fix unused_imports warnings when compiled by rustc 1.78</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/0dae01509e1dfc1734b0e8097c16338b56503242"><code>0dae015</code></a>
      Release 2.0.50</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/2b493c34211a605a84eb5f1618e49818f8b654e6"><code>2b493c3</code></a>
      Update location of Pat variant aliases</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/07a435df6739d47d54e933970eddfc6764bd519d"><code>07a435d</code></a>
      Fix doc links now that crate::* is no longer imported</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/713f932b85698b1b2d561cc98e5b6f9643c9afde"><code>713f932</code></a>
      Eliminate glob imports</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/6eb82a997589cf9c5b2bb36716443a19c4440c5e"><code>6eb82a9</code></a>
      Eliminate glob imports from codegen</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/896a7306ee36a4c7dc96e1bf61e247e53df47179"><code>896a730</code></a>
      Eliminate glob imports from examples</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/866c80ce2f39e8e2e723bb5440fdd58e4e1de3b6"><code>866c80c</code></a>
      Update test suite to nightly-2024-02-18</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/d4b499e3907295a7173fbc6f8ca34388583795f6"><code>d4b499e</code></a>
      Update test suite to nightly-2024-02-17</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/38956e60405920fdf856a0128a804460913c8c0c"><code>38956e6</code></a>
      Update test suite to nightly-2024-02-16</li>
      <li>See full diff in <a
      href="https://github.com/dtolnay/syn/compare/2.0.49...2.0.50">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_yaml` from 0.9.31 to 0.9.32
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/serde-yaml/releases">serde_yaml's
      releases</a>.</em></p>
      <blockquote>
      <h2>0.9.32</h2>
      <ul>
      <li>Fix unused_imports warnings when compiled by rustc 1.78</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/ea57d8cdeb6b2d0060aaeec6c934d0f494722765"><code>ea57d8c</code></a>
      Release 0.9.32</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/a52b7ac3f42aad7f587409d2e431ed2fe5db7b31"><code>a52b7ac</code></a>
      Resolve prelude redundant import warnings</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/9e0b8d337b1c19fe250454da3bce9fc12b6cd634"><code>9e0b8d3</code></a>
      Replace curly quotes with ascii straight quotes</li>
      <li>See full diff in <a
      href="https://github.com/dtolnay/serde-yaml/compare/0.9.31...0.9.32">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_derive` from 1.0.196 to 1.0.197
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/serde/releases">serde_derive's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.0.197</h2>
      <ul>
      <li>Fix unused_imports warnings when compiled by rustc 1.78</li>
      <li>Optimize code size of some Display impls (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2697">#2697</a>,
      thanks <a
      href="https://github.com/nyurik"><code>@​nyurik</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/5fa711d75d91173aafc6019e03cf8af6ac9ba7b2"><code>5fa711d</code></a>
      Release 1.0.197</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/f5d8ae423aa195d3423029ff5a618266cc8ff9a5"><code>f5d8ae4</code></a>
      Resolve prelude redundant import warnings</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/1d54973b928bd8708a4ad2d90fca1203367ff580"><code>1d54973</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2697">#2697</a>
      from nyurik/format-str</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b8fafefd8588f84af54329945fab701ec414281d"><code>b8fafef</code></a>
      A few minor <code>write_str</code> optimizations and inlining</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/c42ebb8839fbd92dbda6729e8363c8d683f26306"><code>c42ebb8</code></a>
      Update ui test suite to nightly-2024-02-12</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/9e680620b595724a6abfb8e785155d02482f911a"><code>9e68062</code></a>
      Ignore incompatible_msrv clippy lint for conditionally compiled
      code</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/846f865de2e94408e0edc6a2c6863c063cd234be"><code>846f865</code></a>
      Ignore dead_code warnings in test</li>
      <li>See full diff in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.196...v1.0.197">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: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      d50cf140
    • Oliver Tale-Yazdi's avatar
      Lift dependencies to the workspace (Part 2/x) (#3366) · e89d0fca
      Oliver Tale-Yazdi authored
      
      Lifting some more dependencies to the workspace. Just using the
      most-often updated ones for now.
      It can be reproduced locally.
      
      ```sh
      # First you can check if there would be semver incompatible bumps (looks good in this case):
      $ zepter transpose dependency lift-to-workspace --ignore-errors syn quote thiserror "regex:^serde.*"
      
      # Then apply the changes:
      $ zepter transpose dependency lift-to-workspace --version-resolver=highest syn quote thiserror "regex:^serde.*" --fix
      
      # And format the changes:
      $ taplo format --config .config/taplo.toml
      ```
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      e89d0fca
  9. Feb 12, 2024
    • Oliver Tale-Yazdi's avatar
      Lift dependencies to the workspace (Part 1) (#2070) · e80c2473
      Oliver Tale-Yazdi authored
      Changes (partial https://github.com/paritytech/polkadot-sdk/issues/994):
      - Set log to `0.4.20` everywhere
      - Lift `log` to the workspace
      
      Starting with a simpler one after seeing
      https://github.com/paritytech/polkadot-sdk/pull/2065 from @jsdw
      
      .
      This sets the `default-features` to `false` in the root and then
      overwrites that in each create to its original value. This is necessary
      since otherwise the `default` features are additive and its impossible
      to disable them in the crate again once they are enabled in the
      workspace.
      
      I am using a tool to do this, so its mostly a test to see that it works
      as expected.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      e80c2473
  10. Feb 08, 2024
    • Oliver Tale-Yazdi's avatar
      [FRAME] Parameters pallet (#2061) · e53ebd8c
      Oliver Tale-Yazdi authored
      
      Closes #169  
      
      Fork of the `orml-parameters-pallet` as introduced by
      https://github.com/open-web3-stack/open-runtime-module-library/pull/927
      (cc @xlc)
      It greatly changes how the macros work, but keeps the pallet the same.
      The downside of my code is now that it does only support constant keys
      in the form of types, not value-bearing keys.
      I think this is an acceptable trade off, give that it can be used by
      *any* pallet without any changes.
      
      The pallet allows to dynamically set parameters that can be used in
      pallet configs while also restricting the updating on a per-key basis.
      The rust-docs contains a complete example.
      
      Changes:
      - Add `parameters-pallet`
      - Use in the kitchensink as demonstration
      - Add experimental attribute to define dynamic params in the runtime.
      - Adding a bunch of traits to `frame_support::traits::dynamic_params`
      that can be re-used by the ORML macros
      
      ## Example
      
      First to define the parameters in the runtime file. The syntax is very
      explicit about the codec index and errors if there is no.
      ```rust
      #[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::<Runtime>))]
      pub mod dynamic_params {
      	use super::*;
      
      	#[dynamic_pallet_params]
      	#[codec(index = 0)]
      	pub mod storage {
      		/// Configures the base deposit of storing some data.
      		#[codec(index = 0)]
      		pub static BaseDeposit: Balance = 1 * DOLLARS;
      
      		/// Configures the per-byte deposit of storing some data.
      		#[codec(index = 1)]
      		pub static ByteDeposit: Balance = 1 * CENTS;
      	}
      
      	#[dynamic_pallet_params]
      	#[codec(index = 1)]
      	pub mod contracts {
      		#[codec(index = 0)]
      		pub static DepositPerItem: Balance = deposit(1, 0);
      
      		#[codec(index = 1)]
      		pub static DepositPerByte: Balance = deposit(0, 1);
      	}
      }
      ```
      
      Then the pallet is configured with the aggregate:  
      ```rust
      impl pallet_parameters::Config for Runtime {
      	type AggregratedKeyValue = RuntimeParameters;
      	type AdminOrigin = EnsureRootWithSuccess<AccountId, ConstBool<true>>;
      	...
      }
      ```
      
      And then the parameters can be used in a pallet config:
      ```rust
      impl pallet_preimage::Config for Runtime {
      	type DepositBase = dynamic_params::storage::DepositBase;
      }
      ```
      
      A custom origin an be defined like this:  
      ```rust
      pub struct DynamicParametersManagerOrigin;
      
      impl EnsureOriginWithArg<RuntimeOrigin, RuntimeParametersKey> for DynamicParametersManagerOrigin {
      	type Success = ();
      
      	fn try_origin(
      		origin: RuntimeOrigin,
      		key: &RuntimeParametersKey,
      	) -> Result<Self::Success, RuntimeOrigin> {
      		match key {
      			RuntimeParametersKey::Storage(_) => {
      				frame_system::ensure_root(origin.clone()).map_err(|_| origin)?;
      				return Ok(())
      			},
      			RuntimeParametersKey::Contract(_) => {
      				frame_system::ensure_root(origin.clone()).map_err(|_| origin)?;
      				return Ok(())
      			},
      		}
      	}
      
      	#[cfg(feature = "runtime-benchmarks")]
      	fn try_successful_origin(_key: &RuntimeParametersKey) -> Result<RuntimeOrigin, ()> {
      		Ok(RuntimeOrigin::Root)
      	}
      }
      ```
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarNikhil Gupta <17176722+gupnik@users.noreply.github.com>
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      Co-authored-by: command-bot <>
      e53ebd8c
  11. Feb 06, 2024
    • Koute's avatar
      Build more runtimes targeting PolkaVM (#3209) · 402b64ca
      Koute authored
      This PR improves compatibility with RISC-V and PolkaVM, allowing more
      runtimes to successfully compile.
      
      In particular, it makes the following changes:
      
      - The `sp-mmr-primitives` and `sp-consensus-beefy` crates
      unconditionally required an `std`-only dependency; now they only require
      those dependencies when the `std` feature is actually enabled. (Our
      RISC-V target is, unlike WASM, a true `no_std` target where you can't
      accidentally use stuff from `std` anymore.)
      - One of our dependencies (the `bitvec` trace) uses a crate called
      `radium` which doesn't compile under RISC-V due to incomplete
      autodetection logic in their `build.rs` file. The good news is that this
      is already fixed in the newest upstream version of `radium`, and the
      newest version of `bitvec` uses it. The bad news is that the newest
      version of `bitvec` is not currently released on crates.io, so we can't
      use it. I've [created an
      issue](https://github.com/ferrilab/ferrilab/issues/5) asking for a new
      release, but in the meantime I forked the currently used `radium` 0.7,
      [fixed the faulty
      logic](https://github.com/paritytech/radium-0.7-fork/commit/ed66c8a294b138c67f93499644051d97d4c7fbda)
      and used cargo's patching capabilities to use it for the RISC-V runtime
      builds. This might be a little hacky, but it is the least intrusive way
      to fix the problem, doesn't affect WASM builds at all, and we can
      trivially remove it once a new `bitvec` is released.
      - The new runtimes are added to the CI to make sure their compilation
      doesn't break.
      402b64ca
  12. Feb 03, 2024
    • Koute's avatar
      Initial support for building RISC-V runtimes targeting PolkaVM (#3179) · e349fc9e
      Koute authored
      This PR adds initial support for building RISC-V runtimes targeting
      PolkaVM.
      
      - Setting the `SUBSTRATE_RUNTIME_TARGET=riscv` environment variable will
      now build a RISC-V runtime instead of a WASM runtime.
      - This only adds support for *building* runtimes; running them will need
      a PolkaVM-based executor, which I will add in a future PR.
      - Only building the minimal runtime is supported (building the Polkadot
      runtime doesn't work *yet* due to one of the dependencies).
      - The builder now sets a `substrate_runtime` cfg flag when building the
      runtimes, with the idea being that instead of doing `#[cfg(not(feature =
      "std"))]` or `#[cfg(target_arch = "wasm32")]` to detect that we're
      building a runtime you'll do `#[cfg(substrate_runtime)]`. (Switching the
      whole codebase to use this will be done in a future PR; I deliberately
      didn't do this here to keep this PR minimal and reviewable.)
      - Further renaming of things (e.g. types, environment variables and proc
      macro attributes having "wasm" in their name) to be target-agnostic will
      also be done in a future refactoring PR (while keeping backwards
      compatibility where it makes sense; I don't intend to break anyone's
      workflow or create unnecessary churn).
      - This PR also fixes two bugs in the `wasm-builder` crate:
      * The `RUSTC` environment variable is now removed when invoking the
      compiler. This prevents the toolchain version from being overridden when
      called from a `build.rs` script.
      * When parsing the `rustup toolchain list` output the `(default)` is now
      properly stripped and not treated as part of the version.
      - I've also added a minimal CI job that makes sure this doesn't break in
      the future. (cc @paritytech/ci)
      
      cc @athei
      
      
      
      ------
      
      Also, just a fun little tidbit: quickly comparing the size of the built
      runtimes it seems that the PolkaVM runtime is slightly smaller than the
      WASM one. (`production` build, with the `names` section substracted from
      the WASM's size to keep things fair, since for the PolkaVM runtime we're
      currently stripping out everything)
      
      - `.wasm`: 625505 bytes
      - `.wasm` (after wasm-opt -O3): 563205 bytes
      - `.wasm` (after wasm-opt -Os): 562987 bytes
      - `.wasm` (after wasm-opt -Oz): 536852 bytes
      - `.polkavm`: ~~580338 bytes~~ 550476 bytes (after enabling extra target
      features; I'll add those in another PR once we have an executor working)
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      e349fc9e
  13. Feb 02, 2024
    • Clara van Staden's avatar
      Removes Snowbridge parachain directory (#3186) · 2ab3f03f
      Clara van Staden authored
      Removes the `bridges/snowbridge/parachain` directory and moves
      everything up to under `snowbridge` directly. We are cleaning up our
      local dev env after merging our crates into the polkadot-sdk.
      
      ---------
      
      Co-authored-by: claravanstaden <Cats 4 life!>
      2ab3f03f
  14. Feb 01, 2024
  15. Jan 29, 2024
  16. Jan 26, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 1 update (#3069) · acfac444
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 1 update:
      [serde_yaml](https://github.com/dtolnay/serde-yaml).
      
      Updates `serde_yaml` from 0.9.27 to 0.9.30
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/serde-yaml/releases">serde_yaml's
      releases</a>.</em></p>
      <blockquote>
      <h2>0.9.30</h2>
      <ul>
      <li>Update proc-macro2 to fix caching issue when using a rustc-wrapper
      such as sccache</li>
      </ul>
      <h2>0.9.29</h2>
      <ul>
      <li>Turn on <code>deny(unsafe_op_in_unsafe_fn)</code> lint</li>
      </ul>
      <h2>0.9.28</h2>
      <ul>
      <li>Update <code>unsafe-libyaml</code> dependency to pull in unaligned
      write fix</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/09ee25156f608f95150b27edd120bd5471db3c64"><code>09ee251</code></a>
      Release 0.9.30</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/caea939ece85ab54ac41de0672d683905f1e406a"><code>caea939</code></a>
      Pull in proc-macro2 sccache fix</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/d255918c141fd72d01f169bb5aa0152234981699"><code>d255918</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/serde-yaml/issues/403">#403</a>
      from dtolnay/optionifletelse</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/8cfeedd766f83dab24d03b9fb11b72886a247425"><code>8cfeedd</code></a>
      Remove option_if_let_else clippy suppression</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/b957d2b15d7f3d96279997800fa0610b41b8fe00"><code>b957d2b</code></a>
      Release 0.9.29</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/007fc2d5c1987847a0f1ac95885c56f8e6e5f808"><code>007fc2d</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/serde-yaml/issues/401">#401</a>
      from dtolnay/unsafeop</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/5bac2475b0017d6a635d641df17165d71b951f0e"><code>5bac247</code></a>
      Fill in unsafe blocks inside unsafe functions</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/0f6dba18ab8db598c4963e9242afd490ee0202f0"><code>0f6dba1</code></a>
      Turn on deny(unsafe_op_in_unsafe_fn)</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/1b6e44837f0db0a1c15537311fed3579a7e8c6d2"><code>1b6e448</code></a>
      Release 0.9.28</li>
      <li><a
      href="https://github.com/dtolnay/serde-yaml/commit/ec1a3145d7b6b809f7b3aa2d9dcd7db30f0588d4"><code>ec1a314</code></a>
      Force unsafe-libyaml version that contains unaligned write fix</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/serde-yaml/compare/0.9.27...0.9.30">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_yaml&package-manager=cargo&previous-version=0.9.27&new-version=0.9.30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore <dependency name> major version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's major version (unless you unignore this specific
      dependency's major version or upgrade to it yourself)
      - `@dependabot ignore <dependency name> minor version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's minor version (unless you unignore this specific
      dependency's minor version or upgrade to it yourself)
      - `@dependabot ignore <dependency name>` will close this group update PR
      and stop Dependabot creating any more for the specific dependency
      (unless you unignore this specific dependency or upgrade to it yourself)
      - `@dependabot unignore <dependency name>` will remove all of the ignore
      conditions of the specified dependency
      - `@dependabot unignore <dependency name> <ignore condition>` will
      remove the ignore condition of the specified dependency and ignore
      conditions
      
      
      </details>
      
      ---------
      
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      acfac444
    • Andrei Sandu's avatar
      7f28ac62
  17. Jan 25, 2024
    • Andrei Sandu's avatar
      Add subsystem benchmarks for `availability-distribution` and... · 47e46d17
      Andrei Sandu authored
      Add subsystem benchmarks for `availability-distribution` and `biftield-distribution` (availability write) (#2970)
      
      Introduce a new test objective : `DataAvailabilityWrite`.
      
      The new benchmark measures the network and cpu usage of
      `availability-distribution`, `biftield-distribution` and
      `availability-store` subsystems from the perspective of a validator node
      during the process when candidates are made available.
      
      Additionally I refactored the networking emulation to support bandwidth
      acounting and limits of incoming and outgoing requests.
      
      Screenshot of succesful run
      
      
      <img width="1293" alt="Screenshot 2024-01-17 at 19 17 44"
      src="https://github.com/paritytech/polkadot-sdk/assets/54316454/fde11280-e25b-4dc3-9dc9-d4b9752f9b7a">
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <andrei-mihail@parity.io>
      47e46d17
  18. Jan 24, 2024
    • Branislav Kontur's avatar
      Refactor `pallet-state-trie-migration` to `fungible::*` traits (#1801) · 4374b5d5
      Branislav Kontur authored
      
      ## Summary
      
      This PR consolidates `pallet-state-trie-migration` as a part of
      https://github.com/paritytech/polkadot-sdk/issues/226 /
      https://github.com/paritytech/polkadot-sdk/issues/171:
      
      `pallet-state-trie-migration`:
      - [x] replace `Currency` with `fungible` traits
      - [x] run benchmarks
      - [x] refactor to `DefaultConfig`
      
      `pallet_nicks`:
      - [x]  remove
      
      others:
      - [x] remove `as Fn*` or `asFun*` stuff based on discussion
      [here](https://github.com/paritytech/polkadot-sdk/issues/226#issuecomment-1822861445)
      
      ---------
      
      Co-authored-by: default avatarRichard Melkonian <35300528+0xmovses@users.noreply.github.com>
      Co-authored-by: command-bot <>
      4374b5d5
  19. Jan 22, 2024
    • Davide Galassi's avatar
      Move cryptographic hashing procedures to crypto folder. (#2306) · 4c10fd2a
      Davide Galassi authored
      
      Step towards https://github.com/paritytech/polkadot-sdk/issues/1975
      
      As reported
      https://github.com/paritytech/polkadot-sdk/issues/1975#issuecomment-1774534225
      I'd like to encapsulate crypto related stuff in a dedicated folder.
      
      Currently all cryptographic primitive wrappers are all sparsed in
      `substrate/core` which contains "misc core" stuff.
      
      To simplify the process, as the first step with this PR I propose to
      move the cryptographic hashing there.
      
      The `substrate/crypto` folder was already created to contains `ec-utils`
      crate.
      
      Notes:
      - rename `sp-core-hashing` to `sp-crypto-hashing`
      - rename `sp-core-hashing-proc-macro` to `sp-crypto-hashing-proc-macro`
      - As the crates name is changed I took the freedom to restart fresh from
      version 0.1.0 for both crates
      
      ---------
      
      Co-authored-by: default avatarRobert Hambrock <roberthambrock@gmail.com>
      4c10fd2a
  20. Jan 15, 2024
    • Oliver Tale-Yazdi's avatar
      Add missing crates to the workspace (#2932) · 36a83186
      Oliver Tale-Yazdi authored
      
      Changes:
      - add missing member to the workspace
      - add CI script after the last attempt to merge it upstream failed
      https://github.com/paritytech/pipeline-scripts/pull/105
      
      Two crates are excluded from the check since they are templates
      `substrate/frame/contracts/fixtures/build` and
       `substrate/frame/contracts/fixtures/contracts/common`.
      
      Hopefully this is the last time that some crates need to be added
      manually.
      
      ![meme](https://github.com/paritytech/polkadot-sdk/assets/10380170/984843ee-1c76-4126-a4fc-ff2ba1d47377)
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      36a83186
  21. Jan 10, 2024
  22. Jan 05, 2024
    • Bastian Köcher's avatar
      `cumulus-primitives-parachain-inherent`: Split into two crates (#2803) · 930c1519
      Bastian Köcher authored
      This splits `cumulus-primitives-parachain-inherent` into two crates, the
      previous `cumulus-primitives-parachain-inherent` and a new
      `cumulus-client-parachain-inherent`. The idea behind this is to move the
      `create_at` logic into the client crate. This removes quite a lot of
      unrelated dependencies from the runtime std build and thus, makes the
      compilation faster. On my Laptop the compilation is goes down by one
      minute for `asset-hub-rococo-runtime`. I also assume that the full build
      of the entire workspace probably can be speed-up a little bit, because
      more stuff can be compiled in parallel.
      
      ---------
      
      Co-authored-by: command-bot <>
      930c1519
  23. Jan 04, 2024
  24. Dec 22, 2023
  25. Dec 21, 2023
  26. Dec 20, 2023
    • Dónal Murray's avatar
      Fix clippy lints behind feature gates and add new CI step all features (#2569) · d68868f6
      Dónal Murray authored
      
      Many clippy lints usually enforced by `-Dcomplexity` and `-Dcorrectness`
      are not caught by CI as they are gated by `features`, like
      `runtime-benchmarks`, while the clippy CI job runs with only the default
      features for all targets.
      
      This PR also adds a CI step to run clippy with `--all-features` to
      ensure the code quality is maintained behind feature gates from now on.
      
      To improve local development, clippy lints are downgraded to warnings,
      but they still will result in an error at CI due to the `-Dwarnings`
      rustflag.
      
      ---------
      
      Co-authored-by: default avatarLiam Aharon <liam.aharon@hotmail.com>
      d68868f6
  27. Dec 19, 2023
  28. Dec 14, 2023
    • Andrei Sandu's avatar
      Introduce subsystem benchmarking tool (#2528) · 8a6e9ef1
      Andrei Sandu authored
      This tool makes it easy to run parachain consensus stress/performance
      testing on your development machine or in CI.
      
      ## Motivation
      The parachain consensus node implementation spans across many modules
      which we call subsystems. Each subsystem is responsible for a small part
      of logic of the parachain consensus pipeline, but in general the most
      load and performance issues are localized in just a few core subsystems
      like `availability-recovery`, `approval-voting` or
      `dispute-coordinator`. In the absence of such a tool, we would run large
      test nets to load/stress test these parts of the system. Setting up and
      making sense of the amount of data produced by such a large test is very
      expensive, hard to orchestrate and is a huge development time sink.
      
      ## PR contents
      - CLI tool 
      - Data Availability Read test
      - reusable mockups and components needed so far
      - Documentation on how to get started
      
      ### Data Availability Read test
      
      An overseer is built ...
      8a6e9ef1
  29. Dec 13, 2023
  30. Dec 08, 2023
    • Muharem Ismailov's avatar
      Westend: Fellowship Treasury (#2532) · da40d97a
      Muharem Ismailov authored
      
      Treasury Pallet Instance for the Fellowship in Westend Collectives.
      
      In this update, we present a Treasury Pallet Instance that is under the
      control of the Fellowship body, with oversight from the Root and
      Treasurer origins. Here's how it is governed:
      - the Root origin have the authority to reject or approve spend
      proposals, with no amount limit for approvals.
      - the Treasurer origin have the authority to reject or approve spend
      proposals, with approval limits of up to 10,000,000 DOT.
      - Voice of all Fellows ranked at 3 or above can reject or approve spend
      proposals, with a maximum approval limit of 10,000 DOT.
      - Voice of Fellows ranked at 4 or above can also reject or approve spend
      proposals, with a maximum approval limit of 10,000,000 DOT.
      
      Additionally, we introduce the Asset Rate Pallet Instance to establish
      conversion rates from asset A to B. This is used to determine if a
      proposed spend amount involving a non-native asset is permissible by the
      commanding origin. The rates can be set up by the Root, Treasurer
      origins, or Voice of all Fellows.
      
      ---------
      
      Co-authored-by: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
      Co-authored-by: default avatarjoepetrowski <joe@parity.io>
      da40d97a
    • Sam Johnson's avatar
      Tasks: general system for recognizing and executing service work (#1343) · ac3f14d2
      Sam Johnson authored
      
      `polkadot-sdk` version of original tasks PR located here:
      https://github.com/paritytech/substrate/pull/14329
      
      Fixes #206
      
      ## Status
      - [x] Generic `Task` trait
      - [x] `RuntimeTask` aggregated enum, compatible with
      `construct_runtime!`
      - [x] Casting between `Task` and `RuntimeTask` without needing `dyn` or
      `Box`
      - [x] Tasks Example pallet
      - [x] Runtime tests for Tasks example pallet
      - [x] Parsing for task-related macros
      - [x] Retrofit parsing to make macros optional
      - [x] Expansion for task-related macros
      - [x] Adds support for args in tasks
      - [x] Retrofit tasks example pallet to use macros instead of manual
      syntax
      - [x] Weights
      - [x] Cleanup
      - [x] UI tests
      - [x] Docs
      
      ## Target Syntax
      Adapted from
      https://github.com/paritytech/polkadot-sdk/issues/206#issue-1865172283
      
      ```rust
      // NOTE: this enum is optional and is auto-generated by the other macros if not present
      #[pallet::task]
      pub enum Task<T: Config> {
          AddNumberIntoTotal {
              i: u32,
          }
      }
      
      /// Some running total.
      #[pallet::storage]
      pub(super) type Total<T: Config<I>, I: 'static = ()> =
      StorageValue<_, (u32, u32), ValueQuery>;
      
      /// Numbers to be added into the total.
      #[pallet::storage]
      pub(super) type Numbers<T: Config<I>, I: 'static = ()> =
      StorageMap<_, Twox64Concat, u32, u32, OptionQuery>;
      
      #[pallet::tasks_experimental]
      impl<T: Config<I>, I: 'static> Pallet<T, I> {
      	/// Add a pair of numbers into the totals and remove them.
      	#[pallet::task_list(Numbers::<T, I>::iter_keys())]
      	#[pallet::task_condition(|i| Numbers::<T, I>::contains_key(i))]
      	#[pallet::task_index(0)]
      	pub fn add_number_into_total(i: u32) -> DispatchResult {
      		let v = Numbers::<T, I>::take(i).ok_or(Error::<T, I>::NotFound)?;
      		Total::<T, I>::mutate(|(total_keys, total_values)| {
      			*total_keys += i;
      			*total_values += v;
      		});
      		Ok(())
      	}
      }
      ```
      
      ---------
      
      Co-authored-by: default avatarNikhil Gupta <17176722+gupnik@users.noreply.github.com>
      Co-authored-by: default avatarkianenigma <kian@parity.io>
      Co-authored-by: Nikhil Gupta <>
      Co-authored-by: default avatarGavin Wood <gavin@parity.io>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatargupnik <nikhilgupta.iitk@gmail.com>
      ac3f14d2
  31. Dec 07, 2023
    • Dónal Murray's avatar
      Remove `testnets-common` (#2620) · 814b938d
      Dónal Murray authored
      `testnets-common` was introduced recently to start to separate testnet
      parachain configurations from those of Polkadot and Kusama.
      
      The `locks-review` and `polkadot-review` requirements are removed from
      `parachains-common` in
      https://github.com/paritytech/polkadot-sdk/pull/2564 and there are
      [plans](https://github.com/paritytech/polkadot-sdk/pull/2564#discussion_r1410882115)
      to move the Polkadot and Kusama contents of that package to the
      fellowship, `testnets-common` is no longer needed.
      
      This PR removes the crate and replaces uses of it in
      `collectives-westend`, the only place it is currently used.
      814b938d
  32. Dec 06, 2023
    • Branislav Kontur's avatar
      Bridges subtree update (#2602) · be500fc2
      Branislav Kontur authored
      ## Summary
      
      This PR aligns Rococo/Westend bridge with latest Bridges repo
      development:
      - https://github.com/paritytech/parity-bridges-common/pull/2727
      - https://github.com/paritytech/parity-bridges-common/pull/2728
      - https://github.com/paritytech/parity-bridges-common/pull/2729
      
      
      
      
      Part of: https://github.com/paritytech/parity-bridges-common/issues/2452
      be500fc2
  33. Dec 05, 2023
    • juangirini's avatar
      Move `developer-hub` to `polkadot-sdk-docs` (#2598) · a310df26
      juangirini authored
      
      This PR is a continuation of
      https://github.com/paritytech/polkadot-sdk/pull/2102 and part of an
      initiative started here https://hackmd.io/@romanp/rJ318ZCEp
      What has been done:
      - The content under `docs/*` (with the exception of `docs/mermaid`) has
      been moved to `docs/contributor/`
      - Developer Hub has been renamed to Polkadot SDK Docs, and the crate has
      been renamed from `developer-hub` to `polkadot-sdk-docs`
      - The content under `developer-hub/*` has been moved to `docs/sdk`
      
      ---
      Original PR https://github.com/paritytech/polkadot-sdk/pull/2565, it has
      been close due to too many rebase conflicts
      
      ---------
      
      Co-authored-by: default avatarSerban Iorga <serban@parity.io>
      Co-authored-by: default avatarChevdor <chevdor@users.noreply.github.com>
      Co-authored-by: default avatarEgor_P <egor@parity.io>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      a310df26
  34. Dec 01, 2023
  35. Nov 30, 2023
    • Sebastian Kunert's avatar
      PoV Reclaim (Clawback) Node Side (#1462) · 9a650c46
      Sebastian Kunert authored
      This PR provides the infrastructure for the pov-reclaim mechanism
      discussed in #209. The goal is to provide the current proof size to the
      runtime so it can be used to reclaim storage weight.
      
      ## New Host Function
      - A new host function is provided
      [here](https://github.com/skunert/polkadot-sdk/blob/5b317fda
      
      /cumulus/primitives/pov-reclaim/src/lib.rs#L23).
      It returns the size of the current proof size to the runtime. If
      recording is not enabled, it returns 0.
      
      ## Implementation Overview
      - Implement option to enable proof recording during import in the
      client. This is currently enabled for `polkadot-parachain`,
      `parachain-template` and the cumulus test node.
      - Make the proof recorder ready for no-std. It was previously only
      enabled for std environments, but we need to record the proof size in
      `validate_block` too.
      - Provide a recorder implementation that only the records the size of
      incoming nodes and does not store the nodes itself.
      - Fix benchmarks that were broken by async backing changes
      - Provide new externalities extension that is registered by default if
      proof recording is enabled.
      - I think we should discuss the naming, pov-reclaim was more intuitive
      to me, but we could also go with clawback like in the issue.
      
      ## Impact of proof recording during import
      With proof recording: 6.3058 Kelem/s
      Without proof recording: 6.3427 Kelem/s
      
      The measured impact on the importing performance is quite low on my
      machine using the block import benchmark. With proof recording I am
      seeing a performance hit of 0.585%.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarDavide Galassi <davxy@datawok.net>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      9a650c46