paritytech / paritytech/try-runtime-cli
Error with latest `polkadot-sdk/master` (two incompatible versions of `rocksdb` are pulled in)
Personne n'a encore pris cette issue.
- Langage dominant
- Rust
- Étoiles
- 25
- Forks
- 29
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Using try-runtime-cli with the current polkadot-sdk/master fails. I'm using fea33a, but it's not a temporary problem of that commit; it's just the latest commit.
You can reproduce by adding try-runtime-cli = { version = "0.42.0" } to the deps of staging-node-cli. The build will fail. An easier way to check is like this:
$ cargo tree -i rocksdb
Updating crates.io index
error: failed to select a version for `librocksdb-sys`.
... required by package `rocksdb v0.21.0`
... which satisfies dependency `rocksdb = "^0.21"` of package `kvdb-rocksdb v0.19.0`
... which satisfies dependency `kvdb-rocksdb = "^0.19.0"` of package `sc-client-db v0.39.0`
... which satisfies dependency `sc-client-db = "^0.39.0"` of package `sc-cli v0.40.0`
... which satisfies dependency `sc-cli = "^0.40.0"` of package `try-runtime-cli v0.42.0`
... which satisfies dependency `try-runtime-cli = "^0.42.0"` of package `staging-node-cli v3.0.0-dev (/Users/michi/projects/polkadot-sdk/substrate/bin/node/cli)`
... which satisfies path dependency `node-cli` (locked to 3.0.0-dev) of package `polkadot-sdk-docs v0.0.1 (/Users/michi/projects/polkadot-sdk/docs/sdk)`
versions that meet the requirements `^0.11.0` are: 0.11.0+8.1.1
package `librocksdb-sys` links to the native library `rocksdb`, but it conflicts with a previous package which links to `rocksdb` as well:
package `librocksdb-sys v0.17.3+10.4.2`
... which satisfies dependency `librocksdb-sys = "^0.17.3"` of package `rocksdb v0.24.0`
... which satisfies dependency `rocksdb = "^0.24.0"` of package `kvdb-rocksdb v0.20.0`
... which satisfies dependency `kvdb-rocksdb = "^0.20.0"` of package `node-bench v0.9.0-dev (/Users/michi/projects/polkadot-sdk/substrate/bin/node/bench)`
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 = "rocksdb"` value. For more information, see https://doc.rust-lang.org/cargo/reference/resolver.html#links.
failed to select a version for `librocksdb-sys` which could resolve this conflict
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par substrate/bin/node/cli/Cargo.toml et reproduisez l’échec en ajoutant try-runtime-cli = { version = "0.42.0" }. Exécutez cargo tree -i rocksdb et examinez les chemins de dépendances en conflit de kvdb-rocksdb et librocksdb-sys ; c’est terminé lorsque le graphe de dépendances de staging-node-cli se résout sans conflit de liens natifs de rocksdb.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- build-system, databases
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100