1

I am updating our pallet's for the first time in (1-2) years. I have been trying to iron out all of the outdated dependancies for the last couple of days. I can't seem to get past this error which I have been having:

error: failed to select a version for `parity-util-mem`.
    ... required by package `sp-runtime v6.0.0 (https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161)`
    ... which satisfies git dependency `sp-runtime` of package `frame-benchmarking v4.0.0-dev (https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161)`
    ... which satisfies git dependency `frame-benchmarking` of package `pallet-vesting v4.0.0 (/Users/jackson/Desktop/chain_v2/pallets/vesting)`
    ... which satisfies path dependency `pallet-vesting` of package `node-template-runtime v4.0.0-dev (/Users/jackson/Desktop/chain_v2/runtime)`
    ... which satisfies path dependency `node-template-runtime` (locked to 4.0.0-dev) of package `node-template v4.0.0-dev (/Users/jackson/Desktop/chain_v2/node)`
versions that meet the requirements `^0.11.0` are: 0.11.0

the package `parity-util-mem` links to the native library `parity-util-mem-ban-duplicates`, but it conflicts with a previous package which links to `parity-util-mem-ban-duplicates` as well:
package `parity-util-mem v0.10.2`
    ... which satisfies dependency `parity-util-mem = "^0.10.2"` of package `sc-service v0.10.0-dev (https://github.com/paritytech/substrate.git?tag=devhub/latest#22d40c76)`
    ... which satisfies git dependency `sc-service` (locked to 0.10.0-dev) of package `frame-benchmarking-cli v4.0.0-dev (https://github.com/paritytech/substrate.git?tag=devhub/latest#22d40c76)`
    ... which satisfies git dependency `frame-benchmarking-cli` (locked to 4.0.0-dev) of package `node-template v4.0.0-dev (/Users/jackson/Desktop/chain_v2/node)`
Only one package in the dependency graph may specify the same links value. This helps ensure that only one copy of a native library is linked in the final binary. Try to adjust your dependencies so that only one package uses the links ='parity-util-mem' value. For more information, see https://doc.rust-lang.org/cargo/reference/resolver.html#links.

failed to select a version for `parity-util-mem` which could resolve this conflict

This is the Cargo.toml file which is being compiled:

[package]
name = "pallet-vesting"
version = "4.0.0"
description = "FRAME pallet template for defining custom runtime logic."
authors = ["Substrate DevHub <https://github.com/substrate-developer-hub>"]
homepage = "https://substrate.io/"
edition = "2021"
license = "Unlicense"
publish = false
repository = "https://github.com/substrate-developer-hub/substrate-node-template/"

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
parity-scale-codec = { version = "3.0.0", default-features = false, features = [ "derive" ] }
scale-info = { version = "2.0", default-features = false, features = [
    "derive"
] }
frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26", default-features = false }
frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26", default-features = false }
frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26", default-features = false }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26", default-features = false }
sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26", default-features = false }

[dev-dependencies]
sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" }
sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" }
orml-utilities = {version = "0.4.1-dev", git = "https://github.com/open-web3-stack/open-runtime-module-library.git"}
pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" }

[features]
default = ["std"]
std = [
    "parity-scale-codec/std",
    "scale-info/std",
    "frame-support/std",
    "frame-system/std",
    "frame-benchmarking/std",
]
runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"]
try-runtime = ["frame-support/try-runtime"]

Is there a way to tell which dependency is the issue? If there is how would I update it. Thanks in advance for the advice.

1 Answer 1

2

Dependency that causes the problem is written in error, so you can follow the report to find remaining outdated packages.

In this case, it says that one version of parity-util-mem is required by pallet-vesting .toml of which you have attached, and another one comes from frame-benchmarking-cli which is (together with vesting) is a dependency of node-template.

So updating frame-benchmarking-cli's git version somewhere in /Users/jackson/Desktop/chain_v2/node/Cargo.toml to branch = "polkadot-v0.9.26" should do the work (if I'm not missing something)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.