chore: bump pyo3-build-config from 0.27.2 to 0.29.2 - #6258
chore: bump pyo3-build-config from 0.27.2 to 0.29.2#6258dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [pyo3-build-config](https://github.com/pyo3/pyo3) from 0.27.2 to 0.29.2. - [Release notes](https://github.com/pyo3/pyo3/releases) - [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md) - [Commits](PyO3/pyo3@v0.27.2...v0.29.2) --- updated-dependencies: - dependency-name: pyo3-build-config dependency-version: 0.29.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
prql-bot
left a comment
There was a problem hiding this comment.
Holding off on approving this one: it moves pyo3-build-config two minor generations ahead of pyo3, which stays at 0.27.1 in the same [workspace.dependencies] table. The lock file shows the split — pyo3, pyo3-ffi and pyo3-macros keep pyo3-build-config 0.27.2, while prqlc-python's build script now compiles against a second copy at 0.29.2. pyo3 ships these lock-stepped on purpose; pyo3-build-config's own crate docs describe it as "used internally by the PyO3 crate's build script to apply the same configuration", so the two are meant to compute an identical interpreter config from the same environment.
The practical impact today looks like nothing — I diffed the one function build.rs calls, add_extension_module_link_args(), between 0.27.2 and 0.29.2, and the only behavioral change is that 0.29 gates the emscripten branch on rustc_minor_version() < 95. The Darwin branch this repo actually relies on (per the comment in prqlc/bindings/prqlc-python/build.rs) is byte-identical, and wasm32-unknown-emscripten isn't a target here. So this is a latent-hazard and hygiene call rather than a live bug — but it's my own judgment that a build-config generation ahead of its pyo3 isn't a state worth carrying, given the whole job of that crate is to mirror what pyo3's build script does.
Worth flagging alongside #6259, which bumps pyo3 itself to 0.28.3 rather than 0.29.2. Merging both still leaves the pair mismatched (0.28.3 / 0.29.2). The reason for the cap is that pyo3 0.29 dropped the abi3-py37 feature — 0.28.3 is the newest pyo3 that still has it, and Cargo.toml requests features = ["abi3-py37", "anyhow"]. pyo3-build-config has no such feature, so nothing stopped Dependabot from taking it to 0.29 here.
Two coherent ways out, both a maintainer call:
- Conservative — land #6259 alone and take
pyo3-build-configto0.28.3too, keeping the pair together. Dependabot will keep re-proposing 0.29.2 for the build-config crate on its own, though, so this recurs weekly. - Unblock the family —
prqlc-python'spyproject.tomlalready declaresrequires-python = ">=3.10", so theabi3-py37floor is three releases below the versions the package claims to support. Raising it toabi3-py310letspyo3andpyo3-build-configboth go to 0.29.x in one PR and stops the split recurring. The published wheel tag changes fromcp37-abi3tocp310-abi3, which is a no-op for the declared support matrix. It does mean absorbing pyo3's 0.28 + 0.29 API changes inprqlc/bindings/prqlc-python/src/lib.rs, so it's more than a version bump — I didn't push it here rather than unilaterally rewriting a Dependabot PR into a pyo3 major bump that overlaps #6259.
I didn't post an inline suggestion for the conservative option because editing Cargo.toml without regenerating Cargo.lock would just trade this for a lock mismatch.
How I checked
Feature sets, from the crates.io sparse index (https://index.crates.io/py/o3/pyo3):
| pyo3 | abi3-py37 present |
MSRV |
|---|---|---|
| 0.27.2 | yes | 1.74 |
| 0.28.3 | yes | 1.83 |
| 0.29.2 | no (floor is abi3-py38; adds abi3-py315, abi3t) |
1.83 |
pyo3-build-config 0.29.2 declares rust_version 1.83, under the workspace's rust-version = "1.85.0", so test-msrv isn't the concern here.
The function prqlc/bindings/prqlc-python/build.rs calls, from each crate's src/lib.rs:
// 0.27.2
fn _add_extension_module_link_args(triple: &Triple, mut writer: impl std::io::Write) {
if matches!(triple.operating_system, OperatingSystem::Darwin(_)) { /* -undefined dynamic_lookup */ }
else if triple == &Triple::from_str("wasm32-unknown-emscripten").unwrap() { /* -sSIDE_MODULE=2, -sWASM_BIGINT */ }
}
// 0.29.2 — adds the rustc_minor_version gate on the emscripten arm only
fn _add_extension_module_link_args(triple: &Triple, mut writer: impl std::io::Write, rustc_minor_version: Option<u32>) {
if matches!(triple.operating_system, OperatingSystem::Darwin(_)) { /* identical */ }
else if triple == &Triple::from_str("wasm32-unknown-emscripten").unwrap()
&& rustc_minor_version.is_some_and(|version| version < 95) { /* ... */ }
}There's no deny.toml in the repo, so nothing gates on duplicate crate versions in the lock — the second pyo3-build-config entry won't turn a check red by itself.
Bumps pyo3-build-config from 0.27.2 to 0.29.2.
Release notes
Sourced from pyo3-build-config's releases.
... (truncated)
Changelog
Sourced from pyo3-build-config's changelog.
... (truncated)
Commits
a70d17frelease: 0.29.2bd00e11fix backports.zoneinfo for uv install7cbd144fix double-decref in PyPy in instance dealloc (#6294)e57fb6ffix missing trailing nul on Python 3.9#[pyclass]docstrings (#6296)d83693cfix refcount leak ininitialize_tp_dict(#6297)48ebbd8fix: skip libpython rpath args on Windows and Cygwin (#6284)bd73377fix: pass class to classmethod magic methods (#6283)af8d149Restore pyo3-introspection license files (#6289)0120c59unblock CI via a uv constraint (#6295)3161efcbuild(deps): bump CodSpeedHQ/action from 4 to 5.0.1 (#6286)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)