datafusion icon indicating copy to clipboard operation
datafusion copied to clipboard

chore(deps): update pyo3 requirement from 0.20.0 to 0.21.0

Open dependabot[bot] opened this issue 1 year ago • 6 comments

Updates the requirements on pyo3 to permit the latest version.

Release notes

Sourced from pyo3's releases.

PyO3 0.20.3

This is a stability & compatibility release to fix a couple of minor compilation edge cases from PyO3 0.20.2.

The portable-atomic dependency has been added to resolve compile failures on platforms without 64-bit atomic support.

A maximum Python version check (currently for Python 3.12) has been added to prevent using old PyO3 code against future Python versions beyond the supported range.

Thank you to the following users for the improvements:

@​adamreichold @​davidhewitt

Changelog

Sourced from pyo3's changelog.

[0.20.3] - 2024-02-23

Packaging

  • Add portable-atomic dependency. #3619
  • Check maximum version of Python at build time and for versions not yet supported require opt-in to the abi3 stable ABI by the environment variable PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1. #3821

Fixed

  • Use portable-atomic to support platforms without 64-bit atomics. #3619
  • Fix compilation failure with either feature enabled without experimental-inspect enabled. #3834

[0.20.2] - 2024-01-04

Packaging

  • Pin pyo3 and pyo3-ffi dependencies on pyo3-build-config to require the same patch version, i.e. pyo3 0.20.2 requires exactly pyo3-build-config 0.20.2. #3721

Fixed

  • Fix compile failure when building pyo3 0.20.0 with latest pyo3-build-config 0.20.X. #3724
  • Fix docs.rs build. #3722

[0.20.1] - 2023-12-30

Added

  • Add optional either feature to add conversions for either::Either<L, R> sum type. #3456
  • Add optional smallvec feature to add conversions for smallvec::SmallVec. #3507
  • Add take and into_inner methods to GILOnceCell #3556
  • #[classmethod] methods can now also receive Py<PyType> as their first argument. #3587
  • #[pyfunction(pass_module)] can now also receive Py<PyModule> as their first argument. #3587
  • Add traverse method to GILProtected. #3616
  • Added abi3-py312 feature #3687

Fixed

  • Fix minimum version specification for optional chrono dependency. #3512
  • Silenced new clippy::unnecessary_fallible_conversions warning when using a Py<Self> self receiver. #3564

[0.20.0] - 2023-10-11

Packaging

  • Dual-license PyO3 under either the Apache 2.0 OR the MIT license. This makes the project GPLv2 compatible. #3108
  • Update MSRV to Rust 1.56. #3208
  • Bump indoc dependency to 2.0 and unindent dependency to 0.2. #3237
  • Bump syn dependency to 2.0. #3239
  • Drop support for debug builds of Python 3.7. #3387

... (truncated)

Commits
  • 901f54b release: 0.20.3
  • 2329862 ci: workaround more aggressive nightly rust lints
  • 284d6ee ci: updates for Rust 1.76
  • 482883a fix either feature conditional compilation, again (#3834)
  • c375c8a add maximum Python version check (#3821)
  • 9d1b11f Use portable-atomic for targets which lack 64-bit atomics used to check inter...
  • 4774ded Merge pull request #3725 from PyO3/release-0.20.2
  • bcef18b release: 0.20.2
  • fa6d60b Use a definite version specification when depending on pyo3-build-config.
  • f9f0bdd Merge pull request #3724 from davidhewitt/fix-build-config-issue
  • Additional commits viewable in compare view

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

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)

Note Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

dependabot[bot] avatar Mar 26 '24 08:03 dependabot[bot]

I think this upgrade will require an upgrade in arrow-rs

alamb avatar Mar 27 '24 13:03 alamb

arrow-rs pyo3 upgrade for tracking: https://github.com/apache/arrow-rs/pull/5566

Jefffrey avatar Mar 31 '24 08:03 Jefffrey

marking as a draft as this is waiting on an arrow upgrade

alamb avatar Mar 31 '24 09:03 alamb

(Thank you @Jefffrey )

alamb avatar Mar 31 '24 09:03 alamb

This can cause a clippy failure (and perhaps further compiler error) as desc in https://github.com/PyO3/pyo3/issues/4094.

But we need to release a new arrow version and bump the dep to arrow in datafusion first?

stdout :     Updating crates.io index
error: failed to select a version for `pyo3-ffi`.
    ... required by package `pyo3 v0.20.0`
    ... which satisfies dependency `pyo3 = "^0.20"` of package `arrow v51.0.0`
    ... which satisfies dependency `arrow = "^51.0.0"` of package `datafusion-benchmarks v37.0.0 (/Users/tison/Brittani/arrow-datafusion/benchmarks)`
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.2`
    ... which satisfies dependency `pyo3-ffi = "=0.21.2"` of package `pyo3 v0.21.2`
    ... which satisfies dependency `pyo3 = "^0.21.2"` of package `datafusion-common v37.0.0 (/Users/tison/Brittani/arrow-datafusion/datafusion/common)`
    ... which satisfies path dependency `datafusion-common` (locked to 37.0.0) of package `datafusion-benchmarks v37.0.0 (/Users/tison/Brittani/arrow-datafusion/benchmarks)`
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

tisonkun avatar Apr 18 '24 23:04 tisonkun

Yeah we need to wait for arrow-rs release either way. It depends on 0.21.1 but this should be fine, it can resolve to 0.21.2 as well (just cargo update if its not already)

Jefffrey avatar Apr 19 '24 08:04 Jefffrey

Thank you for your contribution. Unfortunately, this pull request is stale because it has been open 60 days with no activity. Please remove the stale label or comment or this will be closed in 7 days.

github-actions[bot] avatar Jun 25 '24 01:06 github-actions[bot]

Superseded by #11119.

dependabot[bot] avatar Jun 25 '24 08:06 dependabot[bot]