Skip to content
Snippets Groups Projects
  1. Aug 07, 2024
  2. Aug 06, 2024
  3. Aug 05, 2024
    • Przemek Rzad's avatar
      Remove unused feature gated code from the minimal template (#5237) · 035211d7
      Przemek Rzad authored
      - Progresses https://github.com/paritytech/polkadot-sdk/issues/5226
      
      There is no actual `try-runtime` or `runtime-benchmarks` functionality
      in the minimal template at the moment.
    • Alexandru Gheorghe's avatar
      make polkadot-parachain startup errors pretty (#5214) · 0cc3e170
      Alexandru Gheorghe authored
      
      The errors on polkadot-parachain are not printed with their full display
      context(what is marked with `#[error(`) because main returns plain
      Result and the error will be shown in its Debug format, that's not
      consistent with how the polkadot binary behave and is not user friendly
      since it does not tell them why they got the error.
      
      Fix it by using `color_eyre` as polkadot already does it. 
      
      Fixes: https://github.com/paritytech/polkadot-sdk/issues/5211
      
      ## Output before
      ```
      Error: NetworkKeyNotFound("/acala/data/Collator2/chains/mandala-tc9/network/secret_ed25519")
      ```
      
      ## Output after
      ```
      Error: 
         0: Starting an authorithy without network key in /home/alexggh/.local/share/polkadot-parachain/chains/asset-hub-kusama/network/secret_ed25519.
            
             This is not a safe operation because other authorities in the network may depend on your node having a stable identity.
            
             Otherwise these other authorities may not being able to reach you.
            
             If it is the first time running your node you could use one of the following methods:
            
             1. [Preferred] Separately generate the key with: <NODE_BINARY> key generate-node-key --base-path <YOUR_BASE_PATH>
            
             2. [Preferred] Separately generate the key with: <NODE_BINARY> key generate-node-key --file <YOUR_PATH_TO_NODE_KEY>
            
             3. [Preferred] Separately generate the key with: <NODE_BINARY> key generate-node-key --default-base-path
            
             4. [Unsafe] Pass --unsafe-force-node-key-generation and make sure you remove it for subsequent node restarts
      
      ```
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
    • Sergej Sakac's avatar
      Coretime auto-renew (#4424) · f170af61
      Sergej Sakac authored
      
      This PR adds functionality that allows tasks to enable auto-renewal.
      Each task eligible for renewal can enable auto-renewal.
      
      A new storage value is added to track all the cores with auto-renewal
      enabled and the associated task running on the core. The `BoundedVec` is
      sorted by `CoreIndex` to make disabling auto-renewal more efficient.
      
      Cores are renewed at the start of a new bulk sale. If auto-renewal
      fails(e.g. due to the sovereign account of the task not holding
      sufficient balance), an event will be emitted, and the renewal will
      continue for the other cores.
      
      The two added extrinsics are:
      - `enable_auto_renew`: Extrinsic for enabling auto renewal.
      - `disable_auto_renew`: Extrinsic for disabling auto renewal.
      
      TODOs:
      - [x] Write benchmarks for the newly added extrinsics.
      
      Closes: #4351
      
      ---------
      
      Co-authored-by: default avatarDónal Murray <donalm@seadanda.dev>
    • Alexandru Vasile's avatar
      network/strategy: Backoff and ban overloaded peers to avoid submitting the... · 6619277b
      Alexandru Vasile authored
      network/strategy: Backoff and ban overloaded peers to avoid submitting the same request multiple times (#5029)
      
      This PR avoids submitting the same block or state request multiple times
      to the same slow peer.
      
      Previously, we submitted the same request to the same slow peer, which
      resulted in reputation bans on the slow peer side.
      Furthermore, the strategy selected the same slow peer multiple times to
      submit queries to, although a better candidate may exist.
      
      Instead, in this PR we:
      - introduce a `DisconnectedPeers` via LRU with 512 peer capacity to only
      track the state of disconnected peers with a request in flight
      - when the `DisconnectedPeers` detects a peer disconnected with a
      request in flight, the peer is backed off
        - on the first disconnection: 60 seconds
        - on second disconnection: 120 seconds
      - on the third disconnection the peer is banned, and the peer remains
      banned until the peerstore decays its reputation
        
      This PR lifts the pressure from overloaded nodes that cannot process
      requests in due time.
      And if a peer is detected to be slow after backoffs, the peer is banned.
      
      Theoretically, submitting the same request multiple times can still
      happen when:
      - (a) we backoff and ban the peer 
      - (b) the network does not discover other peers -- this may also be a
      test net
      - (c) the peer gets reconnected after the reputation decay and is still
      slow to respond
      
      
      
      Aims to improve:
      - https://github.com/paritytech/polkadot-sdk/issues/4924
      - https://github.com/paritytech/polkadot-sdk/issues/531
      
      Next Steps:
      - Investigate the network after this is deployed, possibly bumping the
      keep-alive timeout or seeing if there's something else misbehaving
      
      
      
      
      This PR builds on top of:
      - https://github.com/paritytech/polkadot-sdk/pull/4987
      
      
      ### Testing Done
      - Added a couple of unit tests where test harness were set in place
      
      - Local testnet
      
      ```bash
      13:13:25.102 DEBUG tokio-runtime-worker sync::persistent_peer_state: Added first time peer 12D3KooWHdiAxVd8uMQR1hGWXccidmfCwLqcMpGwR6QcTP6QRMuD
      
      13:14:39.102 DEBUG tokio-runtime-worker sync::persistent_peer_state: Remove known peer 12D3KooWHdiAxVd8uMQR1hGWXccidmfCwLqcMpGwR6QcTP6QRMuD state: DisconnectedPeerState { num_disconnects: 2, last_disconnect: Instant { tv_sec: 93355, tv_nsec: 942016062 } }, should ban: false
      
      13:16:49.107 DEBUG tokio-runtime-worker sync::persistent_peer_state: Remove known peer 12D3KooWHdiAxVd8uMQR1hGWXccidmfCwLqcMpGwR6QcTP6QRMuD state: DisconnectedPeerState { num_disconnects: 3, last_disconnect: Instant { tv_sec: 93485, tv_nsec: 947551051 } }, should ban: true
      
      13:16:49.108  WARN tokio-runtime-worker peerset: Report 12D3KooWHdiAxVd8uMQR1hGWXccidmfCwLqcMpGwR6QcTP6QRMuD: -2147483648 to -2147483648. Reason: Slow peer after backoffs. Banned, disconnecting.
      ```
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
    • Kian Paimani's avatar
      Fix frame crate usage doc (#5222) · ad1e556e
      Kian Paimani authored
    • Sebastian Kunert's avatar
      beefy: Tolerate pruned state on runtime API call (#5197) · 2abd03ef
      Sebastian Kunert authored
      While working on #5129 I noticed that after warp sync, nodes would
      print:
      ```
      2024-07-29 17:59:23.898 ERROR ⋮beefy: 🥩 Error: ConsensusReset. Restarting voter.    
      ```
      
      After some debugging I found that we enter the following loop:
      1. Wait for beefy pallet to be available: Pallet is detected available
      directly after warp sync since we are at the tip.
      2. Wait for headers from tip to beefy genesis to be available: During
      this time we don't process finality notifications, since we later want
      to inspect all the headers for authority set changes.
      3. Gap sync finishes, route to beefy genesis is available.
      4. The worker starts acting, tries to fetch beefy genesis block. It
      fails, since we are acting on old finality notifications where the state
      is already pruned.
      5. Whole beefy subsystem is being restarted, loading the state from db
      again and iterating a lot of headers.
      
      This already happened before #5129.
  4. Aug 02, 2024
    • Alexandru Vasile's avatar
      rpc: Enable ChainSpec for polkadot-parachain (#5205) · ce6938ae
      Alexandru Vasile authored
      
      This PR enables the `chainSpec_v1` class for the polkadot-parachian. 
      The chainSpec is part of the rpc-v2 which is spec-ed at:
      https://github.com/paritytech/json-rpc-interface-spec/blob/main/src/api/chainSpec.md.
      
      This also paves the way for enabling a future `chainSpec_unstable_spec`
      on all nodes.
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/5191
      
      cc @paritytech/subxt-team
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
    • Francisco Aguirre's avatar
      Add an adapter for configuring AssetExchanger (#5130) · 8ccb6b33
      Francisco Aguirre authored
      
      Added a new adapter to xcm-builder, the `SingleAssetExchangeAdapter`.
      This adapter makes it easy to use `pallet-asset-conversion` for
      configuring the `AssetExchanger` XCM config item.
      
      I also took the liberty of adding a new function to the `AssetExchange`
      trait, with the following signature:
      
      ```rust
      fn quote_exchange_price(give: &Assets, want: &Assets, maximal: bool) -> Option<Assets>;
      ```
      
      The signature is meant to be fairly symmetric to that of
      `exchange_asset`.
      The way they interact can be seen in the doc comment for it in the
      `AssetExchange` trait.
      
      This is a breaking change but is needed for
      https://github.com/paritytech/polkadot-sdk/pull/5131.
      Another idea is to create a new trait for this but that would require
      setting it in the XCM config which is also breaking.
      
      Old PR: https://github.com/paritytech/polkadot-sdk/pull/4375.
      
      ---------
      
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
  5. Aug 01, 2024
  6. Jul 31, 2024
    • Alexandru Vasile's avatar
      litep2p/discovery: Publish authority records with external addresses only (#5176) · 7d0aa896
      Alexandru Vasile authored
      This PR reduces the occurrences for identified observed addresses.
      
      Litep2p discovers its external addresses by inspecting the
      `IdentifyInfo::ObservedAddress` field reported by other peers.
      After we get 5 confirmations of the same external observed address (the
      address the peer dialed to reach us), the address is reported through
      the network layer.
      
      The PR effectively changes this from 5 to 2.
      This has a subtle implication on freshly started nodes for the
      authority-discovery discussed below.
      
      The PR also makes the authority discovery a bit more robust by not
      publishing records if the node doesn't have addresses yet to report.
      This aims to fix a scenario where:
      - the litep2p node has started, it has some pending observed addresses
      but less than 5
      - the authorit-discovery publishes a record, but at this time the node
      doesn't have any addresses discovered and the record is published
      without addresses -> this means other nodes w...
    • thiolliere's avatar
      Run UI tests in CI for some other crates (#5167) · 39daa61e
      thiolliere authored
      
      The test name is `test-frame-ui` I don't know if I can also change it to
      `test-ui` without breaking other stuff. So I kept the name unchanged.
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  7. Jul 30, 2024
  8. Jul 29, 2024
    • Pankaj's avatar
      Remove pallet::getter usage from proxy (#4963) · 839ead34
      Pankaj authored
      
      ISSUE
      Link to the issue:
      https://github.com/paritytech/polkadot-sdk/issues/3326
      
      Deliverables
      
      [Deprecation] remove pallet::getter usage from pallet-proxy
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
    • polka.dom's avatar
      Remove pallet::getter macro usage from pallet-election-provider-multi-phase (#4487) · 3886ed1d
      polka.dom authored
      
      As per #3326, removes pallet::getter macro usage from the
      election-provider-multi-phase pallet. The syntax `StorageItem::<T,
      I>::get()` should be used instead.
      
      cc @muraca
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
    • Yuri Volkov's avatar
      Review-bot@2.6.0 (#5177) · 71cb378f
      Yuri Volkov authored
    • girazoki's avatar
      add possibility to inject non-authorities session-keys in genesis (#5078) · d6f59871
      girazoki authored
      
      Add the possibility of injecting session-keys in genesis for
      non-validators. Currently all keys injected in genesis were considered
      as part of the initial validators set, this PR allows to inject a new
      vector with non-authority keys
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    • dependabot[bot]'s avatar
      Bump serde_json from 1.0.120 to 1.0.121 in the known_good_semver group (#5169) · 4def82e7
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 1 update:
      [serde_json](https://github.com/serde-rs/json).
      
      Updates `serde_json` from 1.0.120 to 1.0.121
      <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.121</h2>
      <ul>
      <li>Optimize position search in error path (<a
      href="https://redirect.github.com/serde-rs/json/issues/1160">#1160</a>,
      thanks <a
      href="https://github.com/purplesyringa"><code>@​purplesyringa</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/json/commit/eca2658a22cb39952783cb6914eb18242659f66a"><code>eca2658</code></a>
      Release 1.0.121</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/b0d678cfb473386830d559b6ab255d9e21ba39c5"><code>b0d678c</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1160">#1160</a>
      from iex-rs/efficient-position</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/b1edc7d13f72880fd0ac569403a409e5f7961d5f"><code>b1edc7d</code></a>
      Optimize position search in error path</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/40dd7f5e862436f02471fe076f3486c55e472bc2"><code>40dd7f5</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1159">#1159</a>
      from iex-rs/fix-recursion</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/6a306e6ee9f47f3b37088217ffe3ebe9bbb54e5a"><code>6a306e6</code></a>
      Move call to tri! out of check_recursion!</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/3f1c6de4af28b1f6c5100da323f2bffaf7c2083f"><code>3f1c6de</code></a>
      Ignore byte_char_slices clippy lint in test</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/3fd6f5f49dc1c732d9b1d7dfece4f02c0d440d39"><code>3fd6f5f</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1153">#1153</a>
      from dpathakj/master</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/fcb5e83e44abe0f9c27c755a240a6ad56312c090"><code>fcb5e83</code></a>
      Correct documentation URL for Value's Index impl.</li>
      <li>See full diff in <a
      href="https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.120&new-version=1.0.121)](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: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarBastian Köcher <info@kchr.de>
    • Bastian Köcher's avatar
    • Przemek Rzad's avatar
      Various corrections in the documentation (#5154) · de73c77c
      Przemek Rzad authored
      An attempt to improve [the
      docs](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html)
      by applying various corrections:
      
      - grammar/stylistics,
      - formatting,
      - broken links,
      - broken markdown table,
      - outdated vscode setting name,
      - typos,
      - consistency,
      - etc.
      
      Part of https://github.com/paritytech/eng-automation/issues/10
    • Niklas Adolfsson's avatar
      rpc v2: `submitAndWatch` replace old messages if it's lagging (#4901) · fc10887d
      Niklas Adolfsson authored
      Close https://github.com/paritytech/polkadot-sdk/issues/3076
      
      The fix is really just that older messages are replaced if the client
      can't keep up with the server instead.
      Because I wanted the same functionality as `pipe_from_stream` for both
      pending/subscription I added two wrapper types on-top of the types from
      jsonrpsee to make it nicer.
      
      I added a trait `Buffer` so I could still use pipe_from_stream but that
      abstraction is a little leaky but only to avoid adding an identical
      method/function with another strategy...
    • Alexandru Gheorghe's avatar
      [2 / 5] Make approval-distribution logic runnable on a separate thread (#4845) · 0636ffdc
      Alexandru Gheorghe authored
      
      This is part of the work to further optimize the approval subsystems, if
      you want to understand the full context start with reading
      https://github.com/paritytech/polkadot-sdk/pull/4849#issue-2364261568,
      
      # Description
      
      This PR contain changes to make possible the run of multiple instances
      of approval-distribution, so that we can parallelise the work. This does
      not contain any functional changes it just decouples the subsystem from
      the subsystem Context and introduces more specific trait dependencies
      for each function instead of all of them requiring a context.
      
      It does not have any dependency of the follow PRs, so it can be merged
      independently of them.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
    • dependabot[bot]'s avatar
      Bump bs58 from 0.5.0 to 0.5.1 (#5170) · 9b4acf27
      dependabot[bot] authored
      
      Bumps [bs58](https://github.com/Nullus157/bs58-rs) from 0.5.0 to 0.5.1.
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/Nullus157/bs58-rs/blob/main/CHANGELOG.md">bs58's
      changelog</a>.</em></p>
      <blockquote>
      <h2>0.5.1 - 2024-03-19</h2>
      <ul>
      <li>Make it possible to decode in <code>const</code>-context (by <a
      href="https://github.com/joncinque"><code>@​joncinque</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/7d3c9282d2595612e5474df93dd0e017db9b684f"><code>7d3c928</code></a>
      Merge pull request <a
      href="https://redirect.github.com/Nullus157/bs58-rs/issues/116">#116</a>
      from joncinque/const</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/d3fb50ebad42ff34454e3b49c9e93e85df08d835"><code>d3fb50e</code></a>
      Merge pull request <a
      href="https://redirect.github.com/Nullus157/bs58-rs/issues/117">#117</a>
      from Nemo157/criterion-update</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/9038a36ae66f0f5d2b74f7a4f3a630873c71d0a1"><code>9038a36</code></a>
      Update dependencies</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/13af427722e681d1ba9c922380663eea2f865d4d"><code>13af427</code></a>
      Update criterion to fix cargo-deny issues</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/b6ad26a72010dec7caf18cf4cb4e1e7131ef57e6"><code>b6ad26a</code></a>
      Prepare to release 0.5.1</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/e18e057bf86e67e028ed6da0ee4f1850978d2301"><code>e18e057</code></a>
      Move const-compatible API onto <code>decode::DecodeBuilder</code>
      directly</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/e65bfa72a23c57fbc05cad66c9b667c6eae946fa"><code>e65bfa7</code></a>
      decode: Add const-compatible decoder</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/2b0d73b9955f6a745f9b6fbb387bba2b96ea89fd"><code>2b0d73b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/Nullus157/bs58-rs/issues/113">#113</a>
      from Nemo157/cli-version-bump</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/be42edf49589d3f5135871ab129bfff4ded21d67"><code>be42edf</code></a>
      Prepare for 0.1.2 cli release</li>
      <li><a
      href="https://github.com/Nullus157/bs58-rs/commit/6bdc4b2c673f334de0dd316f2e7d988d0db5cb52"><code>6bdc4b2</code></a>
      Merge pull request <a
      href="https://redirect.github.com/Nullus157/bs58-rs/issues/112">#112</a>
      from Nemo157/cli-dep-update</li>
      <li>Additional commits viewable in <a
      href="https://github.com/Nullus157/bs58-rs/compare/0.5.0...0.5.1">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bs58&package-manager=cargo&previous-version=0.5.0&new-version=0.5.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore this major version` will close this PR and stop
      Dependabot creating any more for this major version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this minor version` will close this PR and stop
      Dependabot creating any more for this minor version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this dependency` will close this PR and stop
      Dependabot creating any more for this dependency (unless you reopen the
      PR or upgrade to it yourself)
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>