awestlake87 / pyo3-asyncio

Other
300 stars 45 forks source link

Bump PyO3 to 0.21.0? #119

Open reswqa opened 5 months ago

reswqa commented 5 months ago

Since PyO3 0.21.0 has been released and has a big performance improvement.

Many downstream projects will upgrade to the latest version of PyO3. Take opendal(has both pyo3 and pyo3-asyncio dependencies) as an example, I manage to bump it's dependency of pyo3 to 0.21, but get an error:

error: failed to select a version for `pyo3-ffi`.
    ... required by package `pyo3 v0.20.0`
    ... which satisfies dependency `pyo3 = "^0.20"` of package `pyo3-asyncio v0.20.0`
    ... which satisfies dependency `pyo3-asyncio = "^0.20"` of package `opendal-python v0.45.1 (xxx/opendal/bindings/python)`
versions that meet the requirements `=0.20.0` are: 0.20.0

the package `pyo3-ffi` links to the native library `python`, but it conflicts with a previous package which links to `python` as well:
package `pyo3-ffi v0.21.0`
    ... which satisfies dependency `pyo3-ffi = "=0.21.0"` of package `pyo3 v0.21.0`
    ... which satisfies dependency `pyo3 = "^0.21.0"` of package `opendal-python v0.45.1 (xxx/opendal/bindings/python)`
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 = "python"` value. For more information, see https://doc.rust-lang.org/cargo/reference/resolver.html#links.

failed to select a version for `pyo3-ffi` which could resolve this conflict

IIUC, this means pyo3-asyncio should bump pyo3 to 0.21 first.

davidhewitt commented 2 months ago

While waiting for a permanent decision on what to do, I've published https://crates.io/crates/pyo3-asyncio-0-21 from a fork at https://github.com/davidhewitt/pyo3-asyncio