Skip to content
Snippets Groups Projects
  1. Feb 16, 2025
    • dependabot[bot]'s avatar
      Bump enumflags2 from 0.7.7 to 0.7.11 (#7426) · 0f2024f5
      dependabot[bot] authored
      
      Bumps [enumflags2](https://github.com/meithecatte/enumflags2) from 0.7.7
      to 0.7.11.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/meithecatte/enumflags2/releases">enumflags2's
      releases</a>.</em></p>
      <blockquote>
      <h2>Release 0.7.10</h2>
      <ul>
      <li>Fix a case where the <code>#[bitflags]</code> macro would access the
      crate through <code>enumflags2::...</code> instead of
      <code>::enumflags2::...</code>. This makes the generated code more
      robust and avoids triggering the <code>unused_qualifications</code>
      lint. (<a
      href="https://redirect.github.com/meithecatte/enumflags2/issues/58">#58</a>)</li>
      <li>Rework the proc-macro to use <code>syn</code> with the
      <code>derive</code> feature (as opposed to <code>full</code>). This
      reduces the <code>cargo build</code> time for <code>enumflags2</code> by
      about 20%.</li>
      </ul>
      <h2>Release 0.7.9</h2>
      <ul>
      <li>The <code>BitFlag</code> trait now includes convenience re-exports
      for the constructors of <code>BitFlags</code>. This lets you do
      <code>MyFlag::from_bits</code> instead
      <code>BitFlags::&lt;MyFlag&gt;::from_bits</code> where the type of the
      flag cannot be inferred from context (thanks <a
      href="https://github.com/ronnodas"><code>@​ronnodas</code></a>).</li>
      <li>The documentation now calls out the fact that the implementation of
      <code>PartialOrd</code> may not be what you expect (reported by <a
      href="https://github.com/ronnodas"><code>@​ronnodas</code></a>).</li>
      </ul>
      <h2>Release 0.7.8</h2>
      <ul>
      <li>New API: <code>BitFlags::set</code>. Sets the value of a specific
      flag to that of the <code>bool</code> passed as argument. (thanks, <a
      href="https://github.com/m4dh0rs3"><code>@​m4dh0rs3</code></a>)</li>
      <li><code>BitFlags</code> now implements <code>PartialOrd</code> and
      <code>Ord</code>, to make it possible to use it as a key in a
      <code>BTreeMap</code>.</li>
      <li>The bounds on the implementation of <code>Hash</code> got improved,
      so that it is possible to use it in code generic over <code>T:
      BitFlag</code>.</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/cc09d89bc4ef20fbf4c8016a40e160fe47b2d042"><code>cc09d89</code></a>
      Release 0.7.11</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/24f03afbd0c23adaf0873a941600bd0b3b7ba302"><code>24f03af</code></a>
      make_bitflags: Allow omitting { } for singular flags</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/754a8de723c54c79b2a8ab6993adc59b478273b0"><code>754a8de</code></a>
      Expand some aspects of the documentation</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/aec9558136a53a952f39b74a4a0688a31423b815"><code>aec9558</code></a>
      Update ui tests for latest nightly</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/8205d5ba03ccc9ccb7407693440f8e47f8ceeeb4"><code>8205d5b</code></a>
      Release 0.7.10</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/1c78f097165436d043f48b9f6183501f84ff965f"><code>1c78f09</code></a>
      Run clippy with only the declared syn features</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/561fe5eaf7ba6daeb267a41343f6def2a8b86ad7"><code>561fe5e</code></a>
      Emit a proper error if bitflags enum is generic</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/f3bb174beb27a1d1ef28dcf03fb607a3bb7c6e55"><code>f3bb174</code></a>
      Avoid depending on syn's <code>full</code> feature flag</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/e01808be0f151ac251121833d3225debd253ca3a"><code>e01808b</code></a>
      Always use absolute paths in generated proc macro code</li>
      <li><a
      href="https://github.com/meithecatte/enumflags2/commit/f08cd33a18511608f4a881e53c4f4c1b951301e0"><code>f08cd33</code></a>
      Specify the Rust edition for the whole test package</li>
      <li>Additional commits viewable in <a
      href="https://github.com/meithecatte/enumflags2/compare/v0.7.7...v0.7.11">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=enumflags2&package-manager=cargo&previous-version=0.7.7&new-version=0.7.11)](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>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
  2. Feb 14, 2025
    • Kian Paimani's avatar
      [AHM] Multi-block staking election pallet (#7282) · a025562b
      Kian Paimani authored
      ## Multi Block Election Pallet
      
      This PR adds the first iteration of the multi-block staking pallet. 
      
      From this point onwards, the staking and its election provider pallets
      are being customized to work in AssetHub. While usage in solo-chains is
      still possible, it is not longer the main focus of this pallet. For a
      safer usage, please fork and user an older version of this pallet.
      
      ---
      
      ## Replaces
      
      - [x] https://github.com/paritytech/polkadot-sdk/pull/6034 
      - [x] https://github.com/paritytech/polkadot-sdk/pull/5272
      
      ## Related PRs: 
      
      - [x] https://github.com/paritytech/polkadot-sdk/pull/7483
      - [ ] https://github.com/paritytech/polkadot-sdk/pull/7357
      - [ ] https://github.com/paritytech/polkadot-sdk/pull/7424
      - [ ] https://github.com/paritytech/polkadot-staking-miner/pull/955
      
      This branch can be periodically merged into
      https://github.com/paritytech/polkadot-sdk/pull/7358 ->
      https://github.com/paritytech/polkadot-sdk/pull/6996
      
      ## TODOs: 
      
      - [x] rebase to mas...
  3. Feb 13, 2025
  4. Feb 12, 2025
    • Serban Iorga's avatar
      Update some dependencies (#7548) · af4c745b
      Serban Iorga authored
      Related to https://github.com/paritytech/polkadot-sdk/issues/7360
      
      Update some dependencies needed for implementing
      `DecodeWithMemTracking`:
      `parity-scale-codec` -> 3.7.4
      `finality-grandpa` -> 0.16.3
      `bounded-collections` -> 0.2.3
      `impl-codec` -> 0.7.1
  5. Jan 30, 2025
    • Jeeyong Um's avatar
      Replace derivative dependency with derive-where (#7324) · 0d644ca0
      Jeeyong Um authored
      
      # Description
      
      Close #7122.
      
      This PR replaces the unmaintained `derivative` dependency with
      `derive-where`.
      
      ## Integration
      
      This PR doesn't change the public interfaces.
      
      ## Review Notes
      
      The `derivative` crate, previously used to derive basic traits for
      structs with generics or enums, is no longer actively maintained. It has
      been replaced with the `derive-where` crate, which offers a more
      straightforward syntax while providing the same features as
      `derivative`.
      
      ---------
      
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
  6. Jan 28, 2025
    • Andrew Jones's avatar
      Implement pallet view function queries (#4722) · 0b8d7441
      Andrew Jones authored
      
      Closes #216.
      
      This PR allows pallets to define a `view_functions` impl like so:
      
      ```rust
      #[pallet::view_functions]
      impl<T: Config> Pallet<T>
      where
      	T::AccountId: From<SomeType1> + SomeAssociation1,
      {
      	/// Query value no args.
      	pub fn get_value() -> Option<u32> {
      		SomeValue::<T>::get()
      	}
      
      	/// Query value with args.
      	pub fn get_value_with_arg(key: u32) -> Option<u32> {
      		SomeMap::<T>::get(key)
      	}
      }
      ```
      ### `QueryId`
      
      Each view function is uniquely identified by a `QueryId`, which for this
      implementation is generated by:
      
      ```twox_128(pallet_name) ++ twox_128("fn_name(fnarg_types) -> return_ty")```
      
      The prefix `twox_128(pallet_name)` is the same as the storage prefix for pallets and take into account multiple instances of the same pallet.
      
      The suffix is generated from the fn type signature so is guaranteed to be unique for that pallet impl. For one of the view fns in the example above it would be `twox_128("get_value_with_arg(u32) -> Option<u32>")`. It is a known limitation that only the type names themselves are taken into account: in the case of type aliases the signature may have the same underlying types but a different id; for generics the concrete types may be different but the signatures will remain the same.
      
      The existing Runtime `Call` dispatchables are addressed by their concatenated indices `pallet_index ++ call_index`, and the dispatching is handled by the SCALE decoding of the `RuntimeCallEnum::PalletVariant(PalletCallEnum::dispatchable_variant(payload))`. For `view_functions` the runtime/pallet generated enum structure is replaced by implementing the `DispatchQuery` trait on the outer (runtime) scope, dispatching to a pallet based on the id prefix, and the inner (pallet) scope dispatching to the specific function based on the id suffix.
      
      Future implementations could also modify/extend this scheme and routing to pallet agnostic queries.
      
      ### Executing externally
      
      These view functions can be executed externally via the system runtime api:
      
      ```rust
      pub trait ViewFunctionsApi<QueryId, Query, QueryResult, Error> where
      	QueryId: codec::Codec,
      	Query: codec::Codec,
      	QueryResult: codec::Codec,
      	Error: codec::Codec,
      {
      	/// Execute a view function query.
      fn execute_query(query_id: QueryId, query: Query) -> Result<QueryResult,
      Error>;
      }
      ```
      ### `XCQ`
      Currently there is work going on by @xlc to implement [`XCQ`](https://github.com/open-web3-stack/XCQ/) which may eventually supersede this work.
      
      It may be that we still need the fixed function local query dispatching in addition to XCQ, in the same way that we have chain specific runtime dispatchables and XCM.
      
      I have kept this in mind and the high level query API is agnostic to the underlying query dispatch and execution. I am just providing the implementation for the `view_function` definition.
      
      ### Metadata
      Currently I am utilizing the `custom` section of the frame metadata, to avoid modifying the official metadata format until this is standardized.
      
      ### vs `runtime_api`
      There are similarities with `runtime_apis`, some differences being:
      - queries can be defined directly on pallets, so no need for boilerplate declarations and implementations
      - no versioning, the `QueryId` will change if the signature changes. 
      - possibility for queries to be executed from smart contracts (see below)
      
      ### Calling from contracts
      Future work would be to add `weight` annotations to the view function queries, and a host function to `pallet_contracts` to allow executing these queries from contracts.
      
      ### TODO
      
      - [x] Consistent naming (view functions pallet impl, queries, high level api?)
      - [ ] End to end tests via `runtime_api`
      - [ ] UI tests
      - [x] Mertadata tests
      - [ ] Docs
      
      ---------
      
      Co-authored-by: default avatarkianenigma <kian@parity.io>
      Co-authored-by: default avatarJames Wilson <james@jsdw.me>
      Co-authored-by: default avatarGiuseppe Re <giuseppe.re@parity.io>
      Co-authored-by: default avatarGuillaume Thiolliere <guillaume.thiolliere@parity.io>
  7. Jan 26, 2025
  8. Jan 20, 2025
    • seemantaggarwal's avatar
      Use docify export for parachain template hardcoded configuration and embed it... · 4937f779
      seemantaggarwal authored
      Use docify export for parachain template hardcoded configuration and embed it in its README #6333 (#7093)
      
      Use docify export for parachain template hardcoded configuration and
      embed it in its README #6333
      
      Docify currently has a limitation of not being able to embed a
      variable/const in its code, without embedding it's definition, even if
      do something in a string like
      
      "this is a sample string ${sample_variable}"
      
      It will embed the entire string 
      "this is a sample string ${sample_variable}"
      without replacing the value of sample_variable from the code
      
      Hence, the goal was just to make it obvious in the README where the
      PARACHAIN_ID value is coming from, so a note has been added at the start
      for the same, so whenever somebody is running these commands, they will
      be aware about the value and replace accordingly.
      
      To make it simpler, we added a 
      rust ignore block so the user can just look it up in the readme itself
      and does not have to scan through the runtime directory for the value.
      
      ---------
      
      Co-authored-by: default avatarIulian Barbu <14218860+iulianbarbu@users.noreply.github.com>
  9. Jan 16, 2025
    • Ankan's avatar
      [Staking] Currency <> Fungible migration (#5501) · f5673cf2
      Ankan authored
      Migrate staking currency from `traits::LockableCurrency` to
      `traits::fungible::holds`.
      
      Resolves part of https://github.com/paritytech/polkadot-sdk/issues/226.
      
      ## Changes
      ### Nomination Pool
      TransferStake is now incompatible with fungible migration as old pools
      were not meant to have additional ED. Since they are anyways deprecated,
      removed its usage from all test runtimes.
      
      ### Staking
      - Config: `Currency` becomes of type `Fungible` while `OldCurrency` is
      the `LockableCurrency` used before.
      - Lazy migration of accounts. Any ledger update will create a new hold
      with no extra reads/writes. A permissionless extrinsic
      `migrate_currency()` releases the old `lock` along with some
      housekeeping.
      - Staking now requires ED to be left free. It also adds no consumer to
      staking accounts.
      - If hold cannot be applied to all stake, the un-holdable part is force
      withdrawn from the ledger.
      
      ### Delegated Staking
      The pallet does not add provider for agents anymore.
      
      ## Migration stats
      ### Polkadot
      Total accounts that can be migrated: 59564
      Accounts failing to migrate: 0
      Accounts with stake force withdrawn greater than ED: 59
      Total force withdrawal: 29591.26 DOT
      
      ### Kusama
      Total accounts that can be migrated: 26311
      Accounts failing to migrate: 0
      Accounts with stake force withdrawn greater than ED: 48
      Total force withdrawal: 1036.05 KSM
      
      
      [Full logs here](https://hackmd.io/@ak0n/BklDuFra0).
      
      ## Note about locks (freeze) vs holds
      With locks or freezes, staking could use total balance of an account.
      But with holds, the account needs to be left with at least Existential
      Deposit in free balance. This would also affect nomination pools which
      till now has been able to stake all funds contributed to it. An
      alternate version of this PR is
      https://github.com/paritytech/polkadot-sdk/pull/5658 where staking
      pallet does not add any provider, but means pools and delegated-staking
      pallet has to provide for these accounts and makes the end to end logic
      (of provider and consumer ref) lot less intuitive and prone to bug.
      
      This PR now introduces requirement for stakers to maintain ED in their
      free balance. This helps with removing the bug prone incrementing and
      decrementing of consumers and providers.
      
      ## TODO
      - [x] Test: Vesting + governance locked funds can be staked.
      - [ ] can `Call::restore_ledger` be removed? @gpestana 
      - [x] Ensure unclaimed withdrawals is not affected by no provider for
      pool accounts.
      - [x] Investigate kusama accounts with balance between 0 and ED.
      - [x] Permissionless call to release lock.
      - [x] Migration of consumer (dec) and provider (inc) for direct stakers.
      - [x] force unstake if hold cannot be applied to all stake.
      - [x] Fix try state checks (it thinks nothing is staked for unmigrated
      ledgers).
      - [x] Bench `migrate_currency`.
      - [x] Virtual Staker migration test.
      - [x] Ensure total issuance is upto date when minting rewards.
      
      ## Followup
      - https://github.com/paritytech/polkadot-sdk/issues/5742
      
      ---------
      
      Co-authored-by: command-bot <>
    • Liam Aharon's avatar
      Implement `pallet-asset-rewards` (#3926) · be2404cc
      Liam Aharon authored
      
      Closes #3149 
      
      ## Description
      
      This PR introduces `pallet-asset-rewards`, which allows accounts to be
      rewarded for freezing `fungible` tokens. The motivation for creating
      this pallet is to allow incentivising LPs.
      
      See the pallet docs for more info about the pallet.
      
      ## Runtime changes
      
      The pallet has been added to
      - `asset-hub-rococo`
      - `asset-hub-westend`
      
      The `NativeAndAssets` `fungibles` Union did not contain `PoolAssets`, so
      it has been renamed `NativeAndNonPoolAssets`
      
      A new `fungibles` Union `NativeAndAllAssets` was created to encompass
      all assets and the native token.
      
      ## TODO
      - [x] Emulation tests
      - [x] Fill in Freeze logic (blocked
      https://github.com/paritytech/polkadot-sdk/issues/3342) and re-run
      benchmarks
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarmuharem <ismailov.m.h@gmail.com>
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
  10. Jan 15, 2025
    • Alexandru Vasile's avatar
      litep2p: Provide partial results to speedup GetRecord queries (#7099) · 77c78e15
      Alexandru Vasile authored
      
      This PR provides the partial results of the `GetRecord` kademlia query.
      
      This significantly improves the authority discovery records, from ~37
      minutes to ~2/3 minutes.
      In contrast, libp2p discovers authority records in around ~10 minutes. 
      
      The authority discovery was slow because litep2p provided the records
      only after the Kademlia query was completed. A normal Kademlia query
      completes in around 40 seconds to a few minutes.
      In this PR, partial records are provided as soon as they are discovered
      from the network.
      
      ### Testing Done
      
      Started a node in Kusama with `--validator` and litep2p backend.
      The node discovered 996/1000 authority records in ~ 1 minute 45 seconds.
      
      ![Screenshot 2025-01-09 at 12 26
      08](https://github.com/user-attachments/assets/b618bf7c-2bba-43a0-a021-4047e854c075)
      
      
      ### Before & After
      
      In this image, on the left side is libp2p, in the middle litep2p without
      this PR, on the right litep2p with this PR
      
      ![Screenshot 2025-01-07 at 17 57
      56](https://github.com/user-attachments/assets/a8d467f7-8dc7-461c-bcff-163b94d01ae8)
      
      
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/7077
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
  11. Jan 07, 2025
  12. Jan 05, 2025
    • thiolliere's avatar
      Implement cumulus StorageWeightReclaim as wrapping transaction extension +... · 63c73bf6
      thiolliere authored
      Implement cumulus StorageWeightReclaim as wrapping transaction extension + frame system ReclaimWeight (#6140)
      
      (rebasing of https://github.com/paritytech/polkadot-sdk/pull/5234)
      
      ## Issues:
      
      * Transaction extensions have weights and refund weight. So the
      reclaiming of unused weight must happen last in the transaction
      extension pipeline. Currently it is inside `CheckWeight`.
      * cumulus storage weight reclaim transaction extension misses the proof
      size of logic happening prior to itself.
      
      ## Done:
      
      * a new storage `ExtrinsicWeightReclaimed` in frame-system. Any logic
      which attempts to do some reclaim must use this storage to avoid double
      reclaim.
      * a new function `reclaim_weight` in frame-system pallet: info and post
      info in arguments, read the already reclaimed weight, calculate the new
      unused weight from info and post info. do the more accurate reclaim if
      higher.
      * `CheckWeight` is unchanged and still reclaim the weight in post
      dispatch
      * `ReclaimWeight` is a new transaction extension in frame system. For
      s...
  13. Dec 18, 2024
  14. Dec 16, 2024
    • Jun Jiang's avatar
      Upgrade nix and reqwest (#6898) · 5b04b459
      Jun Jiang authored
      # Description
      
      Upgrade `nix` and `reqwest` to reduce outdated dependencies and speed up
      compilation.
    • Nazar Mokrynskyi's avatar
      Upgrade libp2p from 0.52.4 to 0.54.1 (#6248) · c8812883
      Nazar Mokrynskyi authored
      
      # Description
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/5996
      
      https://github.com/libp2p/rust-libp2p/releases/tag/libp2p-v0.53.0
      https://github.com/libp2p/rust-libp2p/blob/master/CHANGELOG.md
      
      ## Integration
      
      Nothing special is needed, just note that `yamux_window_size` is no
      longer applicable to libp2p (litep2p seems to still have it though).
      
      ## Review Notes
      
      There are a few simplifications and improvements done in libp2p 0.53
      regarding swarm interface, I'll list a few key/applicable here.
      
      https://github.com/libp2p/rust-libp2p/pull/4788 removed
      `write_length_prefixed` function, so I inlined its code instead.
      
      https://github.com/libp2p/rust-libp2p/pull/4120 introduced new
      `libp2p::SwarmBuilder` instead of now deprecated
      `libp2p::swarm::SwarmBuilder`, the transition is straightforward and
      quite ergonomic (can be seen in tests).
      
      https://github.com/libp2p/rust-libp2p/pull/4581 is the most annoying
      change I have seen that basically makes many enums `#[non_exhaustive]`.
      I mapped some, but those that couldn't be mapped I dealt with by
      printing log messages once they are hit (the best solution I could come
      up with, at least with stable Rust).
      
      https://github.com/libp2p/rust-libp2p/issues/4306 makes connection close
      as soon as there are no handler using it, so I had to replace
      `KeepAlive::Until` with an explicit future that flips internal boolean
      after timeout, achieving the old behavior, though it should ideally be
      removed completely at some point.
      
      `yamux_window_size` is no longer used by libp2p thanks to
      https://github.com/libp2p/rust-libp2p/pull/4970 and generally Yamux
      should have a higher performance now.
      
      I have resolved and cleaned up all deprecations related to libp2p except
      `BandwidthSinks`. Libp2p deprecated it (though it is still present in
      0.54.1, which is why I didn't handle it just yet). Ideally Substrate
      would finally [switch to the official Prometheus
      client](https://github.com/paritytech/substrate/issues/12699), in which
      case we'd get metrics for free. Otherwise a bit of code will need to be
      copy-pasted to maintain current behavior with `BandwidthSinks` gone,
      which I left a TODO about.
      
      The biggest change in 0.54.0 is
      https://github.com/libp2p/rust-libp2p/pull/4568 that changed transport
      APIs and enabled unconditional potential port reuse, which can lead to
      very confusing errors if running two Substrate nodes on the same machine
      without changing listening port explicitly.
      
      Overall nothing scary here, but testing is always appreciated.
      
      # Checklist
      
      * [x] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [x] My PR follows the [labeling requirements](
      
      https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process
      ) of this project (at minimum one label for `T` required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      
      ---
      
      Polkadot Address: 1vSxzbyz2cJREAuVWjhXUT1ds8vBzoxn2w4asNpusQKwjJd
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
  15. Dec 14, 2024
  16. Dec 13, 2024
  17. Dec 12, 2024
    • Alexandru Vasile's avatar
      chore: Update litep2p to version 0.8.4 (#6860) · 5788ae86
      Alexandru Vasile authored
      
      ## [0.8.4] - 2024-12-12
      
      This release aims to make the MDNS component more robust by fixing a bug
      that caused the MDNS service to fail to register opened substreams.
      Additionally, the release includes several improvements to the
      `identify` protocol, replacing `FuturesUnordered` with `FuturesStream`
      for better performance.
      
      ### Fixed
      
      - mdns/fix: Failed to register opened substream
      ([#301](https://github.com/paritytech/litep2p/pull/301))
      
      ### Changed
      
      - identify: Replace FuturesUnordered with FuturesStream
      ([#302](https://github.com/paritytech/litep2p/pull/302))
      - chore: Update hickory-resolver to version 0.24.2
      ([#304](https://github.com/paritytech/litep2p/pull/304))
      - ci: Ensure cargo-machete is working with rust version from CI
      ([#303](https://github.com/paritytech/litep2p/pull/303))
      
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
    • Iulian Barbu's avatar
      omni-node: add metadata checks for runtime/parachain compatibility (#6450) · 7cc5cdd0
      Iulian Barbu authored
      
      # Description
      
      Get runtime's metadata, parse it and verify pallets list for a pallet
      named `ParachainSystem` (for now), and block number to be the same for
      both node and runtime. Ideally we'll add other pallets checks too, at
      least a small set of pallets we think right away as mandatory for
      parachain compatibility.
      Closes: #5565 
      
      ## Integration
      
      Runtime devs must be made aware that to be fully compatible with Omni
      Node, certain naming conventions should be respected when defining
      pallets (e.g we verify parachain-system pallet existence by searching
      for a pallet with `name` `ParachainSystem` in runtime's metadata). Not
      finding such a pallet will not influence the functionality yet, but by
      doing these checks we could provide useful feedback for runtimes that
      are clearly not implementing what's required for full parachain
      compatibility with Omni Node.
      
      ## Review Notes
      
      - [x] parachain system check
      - [x] check frame_system's metadata to ensure the block number in there
      is the same as the one in the node side
      - [x] add tests for the previous checking logic
      - [x] update omni node polkadot-sdk docs to make these conventions
      visible.
      - [ ] add more pallets checks?
      
      ---------
      
      Signed-off-by: default avatarIulian Barbu <iulian.barbu@parity.io>
      Co-authored-by: default avatarAlexandru Vasile <60601340+lexnv@users.noreply.github.com>
      Co-authored-by: default avatarMichal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
  18. Dec 11, 2024
    • Alexander Theißen's avatar
      snowbridge: Update alloy-core (#6808) · da2dd9b7
      Alexander Theißen authored
      I am planning to use `alloy_core` to implement precompile support in
      `pallet_revive`. I noticed that it is already used by snowbridge. In
      order to unify the dependencies I did the following:
      
      1. Switch to the `alloy-core` umbrella crate so that we have less
      individual dependencies to update.
      2. Bump the latest version and fixup the resulting compile errors.
  19. Dec 04, 2024
  20. Nov 29, 2024
  21. Nov 28, 2024
    • Alexandru Vasile's avatar
      chore: Update litep2p to v0.8.2 (#6677) · 51c3e95a
      Alexandru Vasile authored
      
      This includes a critical fix for debug release versions of litep2p
      (which are running in Kusama as validators).
      
      While at it, have stopped the oncall pain of alerts around
      `incoming_connections_total`. We can rethink the metric expose of
      litep2p in Q1.
      
      
      
      
      
      ## [0.8.2] - 2024-11-27
      
      This release ensures that the provided peer identity is verified at the
      crypto/noise protocol level, enhancing security and preventing potential
      misuses.
      The release also includes a fix that caused `TransportService` component
      to panic on debug builds.
      
      ### Fixed
      
      - req-resp: Fix panic on connection closed for substream open failure
      ([#291](https://github.com/paritytech/litep2p/pull/291))
      - crypto/noise: Verify crypto/noise signature payload
      ([#278](https://github.com/paritytech/litep2p/pull/278))
      
      ### Changed
      
      - transport_service/logs: Provide less details for trace logs
      ([#292](https://github.com/paritytech/litep2p/pull/292))
      
      
      ## Testing Done
      
      This has been extensively tested in Kusama on all validators, that are
      now running litep2p.
      
      Deployed PR: https://github.com/paritytech/polkadot-sdk/pull/6638
      
      ### Litep2p Dashboards
      ![Screenshot 2024-11-26 at 19 19
      41](https://github.com/user-attachments/assets/e00b2b2b-7e64-4d96-ab26-165e2b8d0dc9)
      
      
      ### Libp2p vs Litep2p CPU usage
      
      After deploying litep2p we have reduced CPU usage from around 300-400%
      to 200%, this is a significant boost in performance, freeing resources
      for other subcomponents to function more optimally.
      
      
      ![image(1)](https://github.com/user-attachments/assets/fa793df5-4d58-4601-963d-246e56dd2a26)
      
      
      
      cc @paritytech/sdk-node
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
      Co-authored-by: default avatarGitHub Action <action@github.com>
  22. Nov 27, 2024
    • Alexandru Vasile's avatar
      v16: Expose the unstable metadata v16 (#5732) · 5b1b34db
      Alexandru Vasile authored
      
      This PR exposes the *unstable* metadata V16. The metadata is exposed
      under the unstable u32::MAX number.
      
      Developers can start experimenting with the new features of the metadata
      v16. *Please note that this metadata is under development and expect
      breaking changes until stabilization.*
      
      The `ExtrinsicMetadata` trait receives a breaking change. Its associated
      type `VERSION` is rename to `VERSIONS` and now supports a constant
      static list of metadata versions.
      The versions implemented for `UncheckedExtrinsic` are v4 (legacy
      version) and v5 (new version).
      
      For metadata collection, it is assumed that all `TransactionExtensions`
      are under version 0.
      
      Builds on top of: https://github.com/paritytech/polkadot-sdk/pull/5274
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/5980
      Closes: https://github.com/paritytech/polkadot-sdk/issues/5347
      Closes: https://github.com/paritytech/polkadot-sdk/issues/5285
      
      cc @paritytech/subxt-team
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
      Co-authored-by: default avatarNiklas Adolfsson <niklasadolfsson1@gmail.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarJames Wilson <james@jsdw.me>
      Co-authored-by: default avatarGitHub Action <action@github.com>
  23. Nov 26, 2024
    • dependabot[bot]'s avatar
      Bump rustls from 0.23.14 to 0.23.18 (#6641) · 86a917f5
      dependabot[bot] authored
      Bumps [rustls](https://github.com/rustls/rustls) from 0.23.14 to
      0.23.18.
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/rustls/rustls/commit/33af2c38b0f1e4abf44d59d5b74ccf12f5cf5e56"><code>33af2c3</code></a>
      Prepare 0.23.18</li>
      <li><a
      href="https://github.com/rustls/rustls/commit/ffe646d1ff07d3e1d9f009daadd94228d462425d"><code>ffe646d</code></a>
      Add reproducer for bug 2227</li>
      <li><a
      href="https://github.com/rustls/rustls/commit/69b6f7473a7ae096a9cf9e2d6eb3cd8b22743597"><code>69b6f74</code></a>
      Record and restore the processed cursor in first_handshake_message</li>
      <li><a
      href="https://github.com/rustls/rustls/commit/4ef3532cf2fceda9fdd19947f871adf7020d0b49"><code>4ef3532</code></a>
      Upgrade to mio 1</li>
      <li><a
      href="https://github.com/rustls/rustls/commit/092a16427e81e58ecd6bcfdacc0b49f02bad8db3"><code>092a164</code></a>
      Manage dependencies via the workspace</li>
      <li><a
      href="https://github.com/rustls/rustls/commit/a01bd6bcb536c6cd...
    • Javier Viola's avatar
  24. Nov 15, 2024
    • Alexandru Vasile's avatar
      network/litep2p: Update litep2p network backend to version 0.8.1 (#6484) · 8bea091e
      Alexandru Vasile authored
      This PR updates the litep2p backend to version 0.8.1 from 0.8.0.
      - Check the [litep2p updates forum
      post](https://forum.polkadot.network/t/litep2p-network-backend-updates/9973/3)
      for performance dashboards.
      - Check [litep2p release
      notes](https://github.com/paritytech/litep2p/pull/288)
      
      The v0.8.1 release includes key fixes that enhance the stability and
      performance of the litep2p library. The focus is on long-running
      stability and improvements to polling mechanisms.
      
      ### Long Running Stability Improvements
      
      This issue caused long-running nodes to reject all incoming connections,
      impacting overall stability.
      
      Addressed a bug in the connection limits functionality that incorrectly
      tracked connections due for rejection.
      
      This issue caused an artificial increase in inbound peers, which were
      not being properly removed from the connection limit count.
      
      This fix ensures more accurate tracking and management of peer
      connections [#286](https://github.com/paritytech/litep2p/pull/286).
      
      ### Polling implementation fixes
      
      This release provides multiple fixes to the polling mechanism, improving
      how connections and events are processed:
      - Resolved an overflow issue in TransportContext’s polling index for
      streams, preventing potential crashes
      ([#283](https://github.com/paritytech/litep2p/pull/283)).
      - Fixed a delay in the manager’s poll_next function that prevented
      immediate polling of newly added futures
      ([#287](https://github.com/paritytech/litep2p/pull/287)).
      - Corrected an issue where the listener did not return Poll::Ready(None)
      when it was closed, ensuring proper signal handling
      ([#285](https://github.com/paritytech/litep2p/pull/285)).
      
      
      ### Fixed
      
      - manager: Fix connection limits tracking of rejected connections
      ([#286](https://github.com/paritytech/litep2p/pull/286))
      - transport: Fix waking up on filtered events from `poll_next`
      ([#287](https://github.com/paritytech/litep2p/pull/287))
      - transports: Fix missing Poll::Ready(None) event from listener
      ([#285](https://github.com/paritytech/litep2p/pull/285))
      - manager: Avoid overflow on stream implementation for
      `TransportContext`
      ([#283](https://github.com/paritytech/litep2p/pull/283))
      - manager: Log when polling returns Ready(None)
      ([#284](https://github.com/paritytech/litep2p/pull/284))
      
      
      ### Testing Done
      
      Started kusama nodes running side by side with a higher number of
      inbound and outbound connections (500).
      We previously tested with peers bounded at 50. This testing filtered out
      the fixes included in the latest release.
      
      With this high connection testing setup, litep2p outperforms libp2p in
      almost every domain, from performance to the warnings / errors
      encountered while operating the nodes.
      
      TLDR: this is the version we need to test on kusama validators next
      
      - Litep2p
      
      Repo            | Count      | Level      | Triage report
      -|-|-|-
      polkadot-sdk | 409 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Peer disconnected with inflight after backoffs. Banned,
      disconnecting. )
      litep2p | 128 | warn | Refusing to add known address that corresponds to
      a different peer ID
      litep2p | 54 | warn | inbound identify substream opened for peer who
      doesn't exist
      polkadot-sdk | 7 | error | :broken_heart: Called `on_validated_block_announce` with a
      bad peer ID .*
      polkadot-sdk    | 1          | warn       | :x: Error while dialing .*: .*
      polkadot-sdk | 1 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Invalid justification. Banned, disconnecting. )
      
      - Libp2p
      
      Repo            | Count      | Level      | Triage report
      -|-|-|-
      polkadot-sdk | 1023 | warn | :broken_heart: Ignored block \(#.* -- .*\) announcement
      from .* because all validation slots are occupied.
      polkadot-sdk | 472 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Unsupported protocol. Banned, disconnecting. )
      polkadot-sdk | 379 | error | :broken_heart: Called `on_validated_block_announce` with
      a bad peer ID .*
      polkadot-sdk | 163 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Invalid justification. Banned, disconnecting. )
      polkadot-sdk | 116 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Peer disconnected with inflight after backoffs. Banned,
      disconnecting. )
      polkadot-sdk | 83 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Same block request multiple times. Banned,
      disconnecting. )
      polkadot-sdk | 4 | warn | Re-finalized block #.* \(.*\) in the canonical
      chain, current best finalized is #.*
      polkadot-sdk | 2 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Genesis mismatch. Banned, disconnecting. )
      polkadot-sdk | 2 | warn | Report .*: .* to .*. Reason: .*. Banned,
      disconnecting. ( Not requested block data. Banned, disconnecting. )
      polkadot-sdk | 2 | warn | Can't listen on .* because: .*
      polkadot-sdk    | 1          | warn       | :x:
      
       Error while dialing .*: .*
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
  25. Nov 12, 2024
    • Jeeyong Um's avatar
      Introduce `ConstUint` to make dependent types in `DefaultConfig` more adaptable (#6425) · 872d9491
      Jeeyong Um authored
      # Description
      
      Resolves #6193
      
      This PR introduces `ConstUint` as a replacement for existing constant
      getter types like `ConstU8`, `ConstU16`, etc., providing a more flexible
      and unified approach.
      
      ## Integration
      
      This update is backward compatible, so developers can choose to adopt
      `ConstUint` in new implementations or continue using the existing types
      as needed.
      
      ## Review Notes
      
      `ConstUint` is a convenient alternative to `ConstU8`, `ConstU16`, and
      similar types, particularly useful for configuring `DefaultConfig` in
      pallets. It enables configuring the underlying integer for a specific
      type without the need to update all dependent types, offering enhanced
      flexibility in type management.
      
      # Checklist
      
      * [x] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [ ] My PR follows the [labeling requirements](
      
      https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process
      ) of this project (at minimum one label for `T` required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      * [ ] I have made corresponding changes to the documentation (if
      applicable)
      * [ ] I have added tests that prove my fix is effective or that my
      feature works (if applicable)
    • PG Herveou's avatar
      [pallet-revive] adjust fee dry-run calculation (#6393) · 9f8656ba
      PG Herveou authored
      
      - Fix bare_eth_transact so that it estimate more precisely the
      transaction fee
      - Add some context to the build.rs to make it easier to troubleshoot
      errors
      - Add TransactionBuilder for the RPC tests.
      - Improve error message, proxy rpc error from the node and handle
      reverted error message
      - Add logs in ReceiptInfo
      
      ---------
      
      Co-authored-by: default avatarGitHub Action <action@github.com>
  26. Nov 07, 2024
    • dependabot[bot]'s avatar
      Bump futures from 0.3.30 to 0.3.31 (#6252) · 27bf54b4
      dependabot[bot] authored
      Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.30 to
      0.3.31.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/rust-lang/futures-rs/releases">futures's
      releases</a>.</em></p>
      <blockquote>
      <h2>0.3.31</h2>
      <ul>
      <li>Fix use after free of task in <code>FuturesUnordered</code> when
      dropped future panics (<a
      href="https://redirect.github.com/rust-lang/futures-rs/issues/2886">#2886</a>)</li>
      <li>Fix soundness bug in <code>task::waker_ref</code> (<a
      href="https://redirect.github.com/rust-lang/futures-rs/issues/2830">#2830</a>)
      This is a breaking change but allowed because it is soundness bug
      fix.</li>
      <li>Fix bugs in <code>AsyncBufRead::read_line</code> and
      <code>AsyncBufReadExt::lines</code> (<a
      href="https://redirect.github.com/rust-lang/futures-rs/issues/2884">#2884</a>)</li>
      <li>Fix parsing issue in
      <code>select!</code>/<code>select_biased!</code> (<a
      href="https://redirect.github.com/rust-lang/futures-rs/is...
  27. Nov 06, 2024
    • Bastian Köcher's avatar
      polkadot-service: Fix flaky tests (#6376) · d1620f06
      Bastian Köcher authored
      The tests used the same paths. When run on CI, each test is run in its
      own process and thus, this "serial_test" crate wasn't used. The tests
      are now using their own thread local tempdir, which ensures that the
      tests are working when running in parallel in the same program or when
      being run individually.
  28. Nov 05, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group across 1 directory with 3 updates (#6339) · c4ef438f
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 2 updates in the / directory:
      [serde](https://github.com/serde-rs/serde) and
      [syn](https://github.com/dtolnay/syn).
      
      Updates `serde` from 1.0.210 to 1.0.214
      <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.214</h2>
      <ul>
      <li>Implement IntoDeserializer for all Deserializers in serde::de::value
      module (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2568">#2568</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      </ul>
      <h2>v1.0.213</h2>
      <ul>
      <li>Fix support for macro-generated <code>with</code> attributes inside
      a newtype struct (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2847">#2847</a>)</li>
      </ul>
      <h2>v1.0.212</h2>
      <ul>
      <li>Fix hygiene of macro-generated local variable accesses in
      serde(with) wrappers (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2845">#2845</a>)</li>
      </ul>
      <h2>v1.0.211</h2>
      <ul>
      <li>Improve error reporting about mismatched signature in
      <code>with</code> and <code>default</code> attributes (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2558">#2558</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      <li>Show variant aliases in error message when variant deserialization
      fails (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2566">#2566</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      <li>Improve binary size of untagged enum and internally tagged enum
      deserialization by about 12% (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2821">#2821</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/418062165f9fe395461db9f61569c3142c584854"><code>4180621</code></a>
      Release 1.0.214</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/210373b3b65a2eaf9754c158b43da0429807359c"><code>210373b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2568">#2568</a>
      from Mingun/into_deserializer-for-deserializers</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/9cda0157331ca09dec16cd8a0b57bd8eb24f8442"><code>9cda015</code></a>
      Implement IntoDeserializer for all Deserializers in serde::de::value
      module</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/58a8d229315553c4ae0a8d7eee8e382fbae4b4bf"><code>58a8d22</code></a>
      Release 1.0.213</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/ef0ed22593a17a5af5ebe48d3b6ef7c3de1b116a"><code>ef0ed22</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2847">#2847</a>
      from dtolnay/newtypewith</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/79925ac3947483013ba8136e43bc0449b99bd10c"><code>79925ac</code></a>
      Ignore dead_code warning in regression test</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b60e4092ec83c70e8c7d39574778349b2c5d9f05"><code>b60e409</code></a>
      Hygiene for macro-generated newtype struct deserialization with 'with'
      attr</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/fdc36e5c06def28b33d3154f0517969d90b744d8"><code>fdc36e5</code></a>
      Add regression test for issue 2846</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/49e11ce1bae9fbb9128c9144c4e1051daf7a29ed"><code>49e11ce</code></a>
      Ignore trivially_copy_pass_by_ref pedantic clippy lint in test</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/7ae1b5f8f39d7a80daaddcc04565f995427bfc41"><code>7ae1b5f</code></a>
      Release 1.0.212</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.210...v1.0.214">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_derive` from 1.0.210 to 1.0.214
      <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.214</h2>
      <ul>
      <li>Implement IntoDeserializer for all Deserializers in serde::de::value
      module (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2568">#2568</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      </ul>
      <h2>v1.0.213</h2>
      <ul>
      <li>Fix support for macro-generated <code>with</code> attributes inside
      a newtype struct (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2847">#2847</a>)</li>
      </ul>
      <h2>v1.0.212</h2>
      <ul>
      <li>Fix hygiene of macro-generated local variable accesses in
      serde(with) wrappers (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2845">#2845</a>)</li>
      </ul>
      <h2>v1.0.211</h2>
      <ul>
      <li>Improve error reporting about mismatched signature in
      <code>with</code> and <code>default</code> attributes (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2558">#2558</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      <li>Show variant aliases in error message when variant deserialization
      fails (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2566">#2566</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      <li>Improve binary size of untagged enum and internally tagged enum
      deserialization by about 12% (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2821">#2821</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/418062165f9fe395461db9f61569c3142c584854"><code>4180621</code></a>
      Release 1.0.214</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/210373b3b65a2eaf9754c158b43da0429807359c"><code>210373b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2568">#2568</a>
      from Mingun/into_deserializer-for-deserializers</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/9cda0157331ca09dec16cd8a0b57bd8eb24f8442"><code>9cda015</code></a>
      Implement IntoDeserializer for all Deserializers in serde::de::value
      module</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/58a8d229315553c4ae0a8d7eee8e382fbae4b4bf"><code>58a8d22</code></a>
      Release 1.0.213</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/ef0ed22593a17a5af5ebe48d3b6ef7c3de1b116a"><code>ef0ed22</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2847">#2847</a>
      from dtolnay/newtypewith</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/79925ac3947483013ba8136e43bc0449b99bd10c"><code>79925ac</code></a>
      Ignore dead_code warning in regression test</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b60e4092ec83c70e8c7d39574778349b2c5d9f05"><code>b60e409</code></a>
      Hygiene for macro-generated newtype struct deserialization with 'with'
      attr</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/fdc36e5c06def28b33d3154f0517969d90b744d8"><code>fdc36e5</code></a>
      Add regression test for issue 2846</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/49e11ce1bae9fbb9128c9144c4e1051daf7a29ed"><code>49e11ce</code></a>
      Ignore trivially_copy_pass_by_ref pedantic clippy lint in test</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/7ae1b5f8f39d7a80daaddcc04565f995427bfc41"><code>7ae1b5f</code></a>
      Release 1.0.212</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.210...v1.0.214">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.82 to 2.0.87
      <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.87</h2>
      <ul>
      <li>Add <a
      href="https://docs.rs/syn/2/syn/buffer/struct.Cursor.html#method.any_group"><code>Cursor::any_group</code></a>
      (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1777">#1777</a>)</li>
      <li>Add <a
      href="https://docs.rs/syn/2/syn/enum.Expr.html#method.peek"><code>Expr::peek</code></a>
      (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1778">#1778</a>)</li>
      <li>Improve syntax support for enum discriminant expressions in
      non-&quot;full&quot; mode (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1779">#1779</a>)</li>
      </ul>
      <h2>2.0.86</h2>
      <ul>
      <li>Support peeking the end of a parse stream (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1689">#1689</a>)</li>
      <li>Allow <code>parse_quote!</code> to produce Vec&lt;Attribute&gt; (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1775">#1775</a>)</li>
      </ul>
      <h2>2.0.85</h2>
      <ul>
      <li>Preserve extern static unsafety in ForeignItem::Verbatim (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1773">#1773</a>)</li>
      </ul>
      <h2>2.0.84</h2>
      <ul>
      <li>Parse safe and explicitly unsafe extern items (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1768">#1768</a>, <a
      href="https://redirect.github.com/rust-lang/rust/issues/123743">rust-lang/rust#123743</a>,
      <a
      href="https://redirect.github.com/rust-lang/rfcs/pull/3484">rust-lang/rfcs#3484</a>)</li>
      <li>Parse self captures: <code>impl Sized + use&lt;Self&gt;</code> (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1772">#1772</a>)</li>
      </ul>
      <h2>2.0.83</h2>
      <ul>
      <li>Documentation improvements</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/a777cff00528f270b43f40b0a58c5c26fc85a2bd"><code>a777cff</code></a>
      Release 2.0.87</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/1f103d4c175ab62b27537a6907c4b77b6aed6ae7"><code>1f103d4</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1779">#1779</a>
      from dtolnay/scan</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/0986a66e1764ed37a4931dde8c509412474636fe"><code>0986a66</code></a>
      Ignore enum_glob_use pedantic clippy lint</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/ca97c7d82d9837c1b49c085a546a481cf879e619"><code>ca97c7d</code></a>
      Translate expr scanner to table driven</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/8039cb37a02cbf080f48416651141d4c77c05075"><code>8039cb3</code></a>
      Test that every expr can be scanned</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/0132c447fe045431906945178bea219816d5e55f"><code>0132c44</code></a>
      Make scan_expr compilable from integration test</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/7c102c3c8b3dc076c03cbe842266a2b140be6323"><code>7c102c3</code></a>
      Extract non-full expr scanner to module</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/ceaf4d693b2af783874b9aa4d50bb208b84a2609"><code>ceaf4d6</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1778">#1778</a>
      from dtolnay/exprpeek</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/a890e9da22b463b05c06696d4cc767c6cb9d3114"><code>a890e9d</code></a>
      Expose can_begin_expr as Expr::peek</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/12f068ce0889c41e3bd21662e8a0adfaa07d01d9"><code>12f068c</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1777">#1777</a>
      from dtolnay/anygroup</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.82...2.0.87">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>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarBastian Köcher <info@kchr.de>
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
    • Alexandru Vasile's avatar
      litep2p: Update litep2p to v0.8.0 (#6353) · 94389a93
      Alexandru Vasile authored
      
      This PR updates litep2p to the latest release.
      
      - `KademliaEvent::PutRecordSucess` is renamed to fix word typo
      - `KademliaEvent::GetProvidersSuccess` and
      `KademliaEvent::IncomingProvider` are needed for bootnodes on DHT work
      and will be utilized later
      
      
      ### Added
      
      - kad: Providers part 8: unit, e2e, and `libp2p` conformance tests
      ([#258](https://github.com/paritytech/litep2p/pull/258))
      - kad: Providers part 7: better types and public API, public addresses &
      known providers ([#246](https://github.com/paritytech/litep2p/pull/246))
      - kad: Providers part 6: stop providing
      ([#245](https://github.com/paritytech/litep2p/pull/245))
      - kad: Providers part 5: `GET_PROVIDERS` query
      ([#236](https://github.com/paritytech/litep2p/pull/236))
      - kad: Providers part 4: refresh local providers
      ([#235](https://github.com/paritytech/litep2p/pull/235))
      - kad: Providers part 3: publish provider records (start providing)
      ([#234](https://github.com/paritytech/litep2p/pull/234))
      
      ### Changed
      
      - transport_service: Improve connection stability by downgrading
      connections on substream inactivity
      ([#260](https://github.com/paritytech/litep2p/pull/260))
      - transport: Abort canceled dial attempts for TCP, WebSocket and Quic
      ([#255](https://github.com/paritytech/litep2p/pull/255))
      - kad/executor: Add timeout for writting frames
      ([#277](https://github.com/paritytech/litep2p/pull/277))
      - kad: Avoid cloning the `KademliaMessage` and use reference for
      `RoutingTable::closest`
      ([#233](https://github.com/paritytech/litep2p/pull/233))
      - peer_state: Robust state machine transitions
      ([#251](https://github.com/paritytech/litep2p/pull/251))
      - address_store: Improve address tracking and add eviction algorithm
      ([#250](https://github.com/paritytech/litep2p/pull/250))
      - kad: Remove unused serde cfg
      ([#262](https://github.com/paritytech/litep2p/pull/262))
      - req-resp: Refactor to move functionality to dedicated methods
      ([#244](https://github.com/paritytech/litep2p/pull/244))
      - transport_service: Improve logs and move code from tokio::select macro
      ([#254](https://github.com/paritytech/litep2p/pull/254))
      
      ### Fixed
      
      - tcp/websocket/quic: Fix cancel memory leak
      ([#272](https://github.com/paritytech/litep2p/pull/272))
      - transport: Fix pending dials memory leak
      ([#271](https://github.com/paritytech/litep2p/pull/271))
      - ping: Fix memory leak of unremoved `pending_opens`
      ([#274](https://github.com/paritytech/litep2p/pull/274))
      - identify: Fix memory leak of unused `pending_opens`
      ([#273](https://github.com/paritytech/litep2p/pull/273))
      - kad: Fix not retrieving local records
      ([#221](https://github.com/paritytech/litep2p/pull/221))
      
      See release changelog for more details:
      https://github.com/paritytech/litep2p/releases/tag/v0.8.0
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
  29. Nov 04, 2024
    • Iulian Barbu's avatar
      templates: make node compilation optional (#5954) · 2a849174
      Iulian Barbu authored
      # Description
      
      Closes #5940  
      
      ## Integration
      
      Node devs that rely on templates' nodes binaries for minimal or
      parachain would need to follow the updated templates' README.mds again
      to find how to build the nodes' binaries.
      
      ## Review Notes
      
      Conditional compilation of virtual workspaces would compile the
      `members` list as if we passed `--workspace` flag to `cargo build` ,
      except when adding a `default-members` list which will be used for any
      cargo command executed in the virtual workspace root. To build the full
      members list needs passing `--workspace` flag.
      
      Other options investigated:
      - feature guard the `node` crate by defining a feature in the `node`
      crate, but it feels too complex since all code needs to be feature
      guarded. I haven't tried it but technically speaking it might work. I
      think though it looks awkward and my opinion is that the alternative is
      better.
      - defining features in the virtual workspace's Cargo.toml doesn't work
      (thought that I might create a feature that will have a dependency on
      the `node` crate and then not passing the feature to cargo build results
      in ignoring the `node` crate)
      - skipping compilation by using an environment variable, read in the
      build script, that will exit compilation abruptly if not set, but I
      couldn't make it work.
      - exclude the crate from the members list and build it specifically by
      passing `--package minimal-template-node` flag to the `cargo build`
      command. This has the disadvantage of not allowing IDEs based on rust
      analyzer to index/compile the node crate.
      
      My conclusion is that any option would require two commands to build the
      template, one with the node and one without, and both must be included
      in the README or templates usage documentation. If it comes which ones
      to pick I am in favor of the `default-members` option, which requires
      minimal intervention and expresses how cargo commands are executed on
      top of the workspace members, and what's left out from regular usage.
      
      ### Testing
      
      Testing was conducted as described bellow:
      
      - [x] zombienet with `minimal-template-node` , `parachain-template-node`
      and `polkadot-omni-node`. Things work as expected.
      - [x] no chopsticks testing was conducted - feels a bit out of scope for
      OmniNode related docs and overall testing when promoting it over the
      templates' nodes.
      - [x] testing the changes for the sync templates workflow (ignore the
      added comment from the Cargo.tomls, it was removed here on this branch:
      [99bff3e2](https://github.com/paritytech/polkadot-sdk/pull/5954/commits/99bff3e2
      
      )):
      [minimal](https://github.com/paritytech-stg/polkadot-sdk-minimal-template/pull/22/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R9),
      [parachain](https://github.com/paritytech-stg/polkadot-sdk-parachain-template/pull/19/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R9),
      [solochain](https://github.com/paritytech-stg/polkadot-sdk-solochain-template/pull/17/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R9).
      The links correspond to PRs opened by a bot after manually starting the
      sync-templates workflow on `paritytech-stg` org to test the end result
      of the `Cargo.toml` changes.
      
      ---------
      
      Signed-off-by: default avatarIulian Barbu <iulian.barbu@parity.io>
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
  30. Oct 28, 2024
  31. Oct 25, 2024
  32. Oct 23, 2024
    • Kian Paimani's avatar
      Polkadot OmniNode Docs (#6094) · fc486e55
      Kian Paimani authored
      provides low-level documentation on how the omni-node is meant to work.
      This is meant to act as reusable material for other teams (e.g.
      Papermoon and W3F) to use and integrate into the high level Polkadot
      documentation.
      
      Broadly speaking, for omni-node to have great rust-docs, we need to
      focus on the following crates, all of which got a bit of love in this
      PR:
      
      1. `sp-genesis-builder`
      2. `polkadot-omni-node`
      3. `polkadot-omni-node-lib`
      4. `frame-omni-bencher`
      
      On top of this, we have now: 
      
      * `polkadot_sdk_docs::guides` contains two new steps demonstrating the
      most basic version of composing your pallet, putting it into a runtime,
      and putting that runtime into omni-node
      * `polkadot_sdk_docs::reference_docs::omni_node` to explain in more
      detail how omni-node differs from the old-school node.
      * `polkadot_sdk_docs::reference_docs::frame_weight_benchmarking` to
      finally have a minimal reference about weights and benchmarking.
      * It provides tests for some of the steps in
      https://g...
  33. Oct 21, 2024
    • dependabot[bot]'s avatar
      Bump prost-build from 0.12.4 to 0.13.2 (#6144) · 13d3f58e
      dependabot[bot] authored
      
      Bumps [prost-build](https://github.com/tokio-rs/prost) from 0.12.4 to
      0.13.2.
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/tokio-rs/prost/blob/master/CHANGELOG.md">prost-build's
      changelog</a>.</em></p>
      <blockquote>
      <h1>Prost version 0.13.2</h1>
      <p><em>PROST!</em> is a <a
      href="https://developers.google.com/protocol-buffers/">Protocol
      Buffers</a> implementation for the <a
      href="https://www.rust-lang.org/">Rust Language</a>. <code>prost</code>
      generates simple, idiomatic Rust code from <code>proto2</code> and
      <code>proto3</code> files.</p>
      <h2>Features</h2>
      <ul>
      <li>prost-build: Add protoc executable path to Config (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1126">#1126</a>)</li>
      <li>prost-build: Extract file descriptor loading from compile_protos()
      (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1067">#1067</a>)</li>
      </ul>
      <h2>Bug Fixes</h2>
      <ul>
      <li>prost-types: Fix date-time parsing (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1096">#1096</a>)</li>
      <li>prost-types: '+' is not a numeric digit (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1104">#1104</a>)</li>
      <li>prost-types: Converting DateTime to Timestamp is fallible (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1095">#1095</a>)</li>
      <li>prost-types: Parse timestamp with long second fraction (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1106">#1106</a>)</li>
      <li>prost-types: Format negative fractional duration (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1110">#1110</a>)</li>
      <li>prost-types: Allow unknown local time offset (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1109">#1109</a>)</li>
      </ul>
      <h2>Styling</h2>
      <ul>
      <li>Remove use of legacy numeric constants (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1089">#1089</a>)</li>
      <li>Move encoding functions into separate modules (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1111">#1111</a>)</li>
      <li>Remove needless borrow (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1122">#1122</a>)</li>
      </ul>
      <h2>Testing</h2>
      <ul>
      <li>Add tests for public interface of DecodeError (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1120">#1120</a>)</li>
      <li>Add <code>parse_date</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1127">#1127</a>)</li>
      <li>Fix build without std (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1134">#1134</a>)</li>
      <li>Change some proptest to kani proofs (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1133">#1133</a>)</li>
      <li>Add <code>parse_duration</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1129">#1129</a>)</li>
      <li>fuzz: Fix building of fuzzing targets (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1107">#1107</a>)</li>
      <li>fuzz: Add fuzz targets to workspace (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1117">#1117</a>)</li>
      </ul>
      <h2>Miscellaneous Tasks</h2>
      <ul>
      <li>Move old protobuf benchmark into prost (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1100">#1100</a>)</li>
      <li>Remove allow clippy::derive_partial_eq_without_eq (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1115">#1115</a>)</li>
      <li>Run <code>cargo test</code> without <code>all-targets</code> (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1118">#1118</a>)</li>
      <li>dependabot: Add github actions (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1121">#1121</a>)</li>
      <li>Update to cargo clippy version 1.80 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1128">#1128</a>)</li>
      </ul>
      <h2>Build</h2>
      <ul>
      <li>Use <code>proc-macro</code> in Cargo.toml (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1102">#1102</a>)</li>
      <li>Ignore missing features in <code>tests</code> crates (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1101">#1101</a>)</li>
      <li>Use separated build directory for protobuf (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1103">#1103</a>)</li>
      <li>protobuf: Don't install unused test proto (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1116">#1116</a>)</li>
      <li>protobuf: Use crate <code>cmake</code> (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1137">#1137</a>)</li>
      <li>deps: Update devcontainer to Debian Bookworm release (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1114">#1114</a>)</li>
      </ul>
      <!-- raw HTML omitted -->
      </blockquote>
      <p>... (truncated)</p>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/57e794203106db483e5115e7e67502ef6f2c7ad8"><code>57e7942</code></a>
      chore: Release version 0.13.2 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1139">#1139</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/8424775d78b13239df3cf3fe888236770a0cd839"><code>8424775</code></a>
      build(protobuf): Use crate <code>cmake</code> (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1137">#1137</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/21208abf667313866f79d3d1438310c4dc20bdff"><code>21208ab</code></a>
      build(deps): bump model-checking/kani-github-action from 0.32 to 1.1 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1125">#1125</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/0c79864443621f20d92f9acc78a6ab0e7821dab0"><code>0c79864</code></a>
      tests(fuzz): Add <code>parse_duration</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1129">#1129</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/52046b943fdf6f79461725027245f890c7b4f514"><code>52046b9</code></a>
      tests: Change some proptest to kani proofs (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1133">#1133</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/ee59dd5a9fe0935ad50e6ddbea5d23e3c6419468"><code>ee59dd5</code></a>
      tests: Fix build without std (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1134">#1134</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/e773f5f6d38f74d0efff876011a2fd0d002aed4c"><code>e773f5f</code></a>
      feat(prost-build): Add protoc executable path to Config (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1126">#1126</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/753bd92a85a3aa305d9d96b5c6363dc58d6356e6"><code>753bd92</code></a>
      ci(clippy): Update to cargo clippy version 1.80 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1128">#1128</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/df3e58e5d113a0dcf8b6735a5d04cde2d74e5df3"><code>df3e58e</code></a>
      tests(fuzz): Add <code>parse_date</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1127">#1127</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/409b93214ed8d98fbb364031ccf330ce4e7caa32"><code>409b932</code></a>
      style: Remove needless borrow (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1122">#1122</a>)</li>
      <li>Additional commits viewable in <a
      href="https://github.com/tokio-rs/prost/compare/v0.12.4...v0.13.2">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prost-build&package-manager=cargo&previous-version=0.12.4&new-version=0.13.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore this major version` will close this PR and stop
      Dependabot creating any more for this major version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this minor version` will close this PR and stop
      Dependabot creating any more for this minor version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this dependency` will close this PR and stop
      Dependabot creating any more for this dependency (unless you reopen the
      PR or upgrade to it yourself)
      
      
      </details>
      
      Signed-off-by: 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>