Skip to content

Fix Python 3.14 for pytest-slc #132

@ArBridgeman

Description

@ArBridgeman

At least one of the dependencies does not compile properly for Python 3.14, it looks like a subpackage does not yet support Python 3.14.

PEP517 build of a dependency failed

Backend subprocess exited when trying to invoke build_wheel

    | Command '['/tmp/tmpxl0by2wy/.venv/bin/python', '/home/runner/.local/share/pypoetry/venv/lib/python3.14/site-packages/pyproject_hooks/_in_process/_in_process.py', 'build_wheel', '/tmp/tmpy9vvprh0']' returned non-zero exit status 1.
    | 
    | Running `maturin pep517 build-wheel -i /tmp/tmpxl0by2wy/.venv/bin/python --compatibility off`
    |     Updating crates.io index
    |  Downloading crates ...
    |   Downloaded ahash v0.8.11
    |   Downloaded funty v2.0.0
    |   Downloaded autocfg v1.3.0
    |   Downloaded equivalent v1.0.1
    |   Downloaded form_urlencoded v1.2.1
    |   Downloaded cfg-if v1.0.0
    |   Downloaded enum_dispatch v0.3.13
    |   Downloaded getrandom v0.2.15
    |   Downloaded displaydoc v0.2.5
    |   Downloaded radium v0.7.0
    |   Downloaded lexical-parse-integer v1.0.5
    |   Downloaded serde_derive v1.0.218
    |   Downloaded pyo3-build-config v0.24.1
    |   Downloaded aho-corasick v1.1.3
    |   Downloaded zerofrom v0.1.4
    |   Downloaded yoke-derive v0.7.4
    |   Downloaded unindent v0.2.3
    |   Downloaded write16 v1.0.0
    |   Downloaded zerofrom-derive v0.1.4
    |   Downloaded synstructure v0.13.1
    |   Downloaded num-integer v0.1.46
    |   Downloaded wyz v0.5.1
    |   Downloaded yoke v0.7.4
    |   Downloaded zerovec-derive v0.10.3
    |   Downloaded proc-macro2 v1.0.86
    |   Downloaded unicode-ident v1.0.12
    |   Downloaded uuid v1.16.0
    |   Downloaded memchr v2.7.4
    |   Downloaded zerovec v0.10.4
    |   Downloaded portable-atomic v1.6.0
    |   Downloaded url v2.5.4
    |   Downloaded regex v1.11.1
    |   Downloaded pyo3-ffi v0.24.1
    |   Downloaded icu_collections v1.5.0
    |   Downloaded idna v1.0.3
    |   Downloaded serde_json v1.0.140
    |   Downloaded regex-syntax v0.8.5
    |   Downloaded lexical-parse-float v1.0.5
    |   Downloaded icu_properties_data v1.5.0
    |   Downloaded zerocopy v0.7.34
    |   Downloaded num-bigint v0.4.6
    |   Downloaded lexical-util v1.0.6
    |   Downloaded jiter v0.9.0
    |   Downloaded syn v2.0.82
    |   Downloaded hashbrown v0.14.5
    |   Downloaded indexmap v2.2.6
    |   Downloaded pyo3-macros-backend v0.24.1
    |   Downloaded num-traits v0.2.19
    |   Downloaded icu_normalizer v1.5.0
    |   Downloaded icu_locid v1.5.0
    |   Downloaded regex-automata v0.4.8
    |   Downloaded bitvec v1.0.1
    |   Downloaded smallvec v1.14.0
    |   Downloaded serde v1.0.218
    |   Downloaded icu_normalizer_data v1.5.0
    |   Downloaded icu_locid_transform_data v1.5.0
    |   Downloaded icu_provider v1.5.0
    |   Downloaded icu_locid_transform v1.5.0
    |   Downloaded zerocopy-derive v0.7.34
    |   Downloaded version_check v0.9.5
    |   Downloaded strum_macros v0.26.4
    |   Downloaded static_assertions v1.1.0
    |   Downloaded speedate v0.15.0
    |   Downloaded ryu v1.0.18
    |   Downloaded wasi v0.11.0+wasi-snapshot-preview1
    |   Downloaded libc v0.2.155
    |   Downloaded utf8_iter v1.0.4
    |   Downloaded tap v1.0.1
    |   Downloaded quote v1.0.36
    |   Downloaded once_cell v1.19.0
    |   Downloaded litemap v0.7.3
    |   Downloaded writeable v0.5.5
    |   Downloaded tinystr v0.7.6
    |   Downloaded stable_deref_trait v1.2.0
    |   Downloaded idna_adapter v1.2.0
    |   Downloaded hex v0.4.3
    |   Downloaded utf16_iter v1.0.5
    |   Downloaded indoc v2.0.5
    |   Downloaded pyo3 v0.24.1
    |   Downloaded icu_properties v1.5.1
    |   Downloaded strum v0.26.3
    |   Downloaded pyo3-macros v0.24.1
    |   Downloaded percent-encoding v2.3.1
    |   Downloaded itoa v1.0.11
    |   Downloaded icu_provider_macros v1.5.0
    |   Downloaded rustversion v1.0.17
    |   Downloaded cc v1.0.101
    |   Downloaded base64 v0.22.1
    | 📦 Including license file `LICENSE`
    | 🍹 Building a mixed python/rust project
    | 🔗 Found pyo3 bindings
    | 🐍 Found CPython 3.14 at /tmp/tmpxl0by2wy/.venv/bin/python
    | 📡 Using build options features, bindings from pyproject.toml
    |    Compiling proc-macro2 v1.0.86
    |    Compiling unicode-ident v1.0.12
    |    Compiling target-lexicon v0.13.2
    |    Compiling python3-dll-a v0.2.13
    |    Compiling once_cell v1.19.0
    |    Compiling stable_deref_trait v1.2.0
    |    Compiling autocfg v1.3.0
    |    Compiling writeable v0.5.5
    |    Compiling litemap v0.7.3
    |    Compiling heck v0.5.0
    |    Compiling quote v1.0.36
    |    Compiling pyo3-build-config v0.24.1
    |    Compiling libc v0.2.155
    |    Compiling syn v2.0.82
    |    Compiling num-traits v0.2.19
    |    Compiling version_check v0.9.5
    |    Compiling icu_locid_transform_data v1.5.0
    |    Compiling smallvec v1.14.0
    |    Compiling rustversion v1.0.17
    |    Compiling icu_properties_data v1.5.0
    |    Compiling memoffset v0.9.1
    |    Compiling utf16_iter v1.0.5
    |    Compiling static_assertions v1.1.0
    |    Compiling utf8_iter v1.0.4
    |    Compiling icu_normalizer_data v1.5.0
    |    Compiling write16 v1.0.0
    |    Compiling radium v0.7.0
    |    Compiling pyo3-ffi v0.24.1
    |    Compiling pyo3-macros-backend v0.24.1
    |    Compiling cfg-if v1.0.0
    | error: failed to run custom build command for `pyo3-ffi v0.24.1`
    | 
    | Caused by:
    |   process didn't exit successfully: `/tmp/tmpa0pnypug/pydantic_core-2.33.2/target/release/build/pyo3-ffi-952d3b22e91cd716/build-script-build` (exit status: 1)
    |   --- stdout
    |   cargo:rustc-check-cfg=cfg(Py_LIMITED_API)
    |   cargo:rustc-check-cfg=cfg(Py_GIL_DISABLED)
    |   cargo:rustc-check-cfg=cfg(PyPy)
    |   cargo:rustc-check-cfg=cfg(GraalPy)
    |   cargo:rustc-check-cfg=cfg(py_sys_config, values("Py_DEBUG", "Py_REF_DEBUG", "Py_TRACE_REFS", "COUNT_ALLOCS"))
    |   cargo:rustc-check-cfg=cfg(pyo3_disable_reference_pool)
    |   cargo:rustc-check-cfg=cfg(pyo3_leak_on_drop_without_reference_pool)
    |   cargo:rustc-check-cfg=cfg(Py_3_7)
    |   cargo:rustc-check-cfg=cfg(Py_3_8)
    |   cargo:rustc-check-cfg=cfg(Py_3_9)
    |   cargo:rustc-check-cfg=cfg(Py_3_10)
    |   cargo:rustc-check-cfg=cfg(Py_3_11)
    |   cargo:rustc-check-cfg=cfg(Py_3_12)
    |   cargo:rustc-check-cfg=cfg(Py_3_13)
    |   cargo:rustc-check-cfg=cfg(Py_3_14)
    |   cargo:rerun-if-env-changed=PYO3_CROSS
    |   cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
    |   cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
    |   cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
    |   cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
    |   cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY
    | 
    |   --- stderr
    |   error: the configured Python interpreter version (3.14) is newer than PyO3's maximum supported version (3.13)
    |   = help: please check if an updated version of PyO3 is available. Current version: 0.24.1
    |   = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
    | warning: build failed, waiting for other jobs to finish...
    | 💥 maturin failed
    |   Caused by: Failed to build a native library through cargo
    |   Caused by: Cargo build finished with "exit status: 101": `env -u CARGO PYO3_BUILD_EXTENSION_MODULE="1" PYO3_ENVIRONMENT_SIGNATURE="cpython-3.14-64bit" PYO3_PYTHON="/tmp/tmpxl0by2wy/.venv/bin/python" PYTHON_SYS_EXECUTABLE="/tmp/tmpxl0by2wy/.venv/bin/python" "cargo" "rustc" "--profile" "release" "--features" "pyo3/extension-module" "--message-format" "json-render-diagnostics" "--manifest-path" "/tmp/tmpa0pnypug/pydantic_core-2.33.2/Cargo.toml" "--lib" "--crate-type" "cdylib"`
    | Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/tmp/tmpxl0by2wy/.venv/bin/python', '--compatibility', 'off'] returned non-zero exit status 1

Note: This error originates from the build backend, and is likely not a problem with poetry but one of the following issues with pydantic-core (2.33.2)

  - not supporting PEP 517 builds
  - not specifying PEP 517 build requirements correctly
  - the build requirements are incompatible with your operating system or Python version
  - the build requirements are missing system dependencies (eg: compilers, libraries, headers).

You can verify this by running pip wheel --no-cache-dir --use-pep517 "pydantic-core (==2.33.2)".

To Do

  • See if fix version available for affected package(s)
  • Update the dependencies of the pytest-slc
  • Remove the python_versions specified in the PROJECT_CONFIG, which restricts the CI to Python 3.10-3.13 (PTB includes up to 3.14)
  • Release a new version

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactoringCode improvement without behavior change

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions