paritytech / paritytech/try-runtime-cli
Error with latest `polkadot-sdk/master` (two incompatible versions of `rocksdb` are pulled in)
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Rust
- Estrellas
- 25
- Forks
- 29
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con substrate/bin/node/cli/Cargo.toml y reproduce el fallo añadiendo try-runtime-cli = { version = "0.42.0" }. Ejecuta cargo tree -i rocksdb e inspecciona las rutas de dependencias en conflicto de kvdb-rocksdb y librocksdb-sys; se considera terminado cuando el grafo de dependencias de staging-node-cli se resuelva sin el conflicto de enlaces nativos de rocksdb.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rust
- Área
- build-system, databases
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100