fix the dependency issue of pydantic when testing unified quantify with python 3.14
Explanation of changes
The following error occurred when support for Python 3.14 was added to quantify and tested.
The issue was resolved by updating the local setup to point to quantify-scheduler, for which the pydantic dependency version was relaxed.
❯ uv venv .venv314 --python=3.14 && source .venv314/bin/activate
Using CPython 3.14.0
Creating virtual environment at: .venv314
Activate with: source .venv314/bin/activate
❯ uv pip install ".[test]"
Using Python 3.14.0 environment at: .venv314
Resolved 165 packages in 26.91s
Built quantify @ file:///home/cetin/workdir/quantify
× Failed to build `pydantic-core==2.33.2`
├─▶ The build backend returned an error
╰─▶ Call to `maturin.build_wheel` failed (exit status: 1)
[stdout]
Running `maturin pep517 build-wheel -i /home/cetin/.cache/uv/builds-v0/.tmpU6PY6L/bin/python --compatibility off`
[stderr]
📦 Including license file `LICENSE`
🍹 Building a mixed python/rust project
🔗 Found pyo3 bindings
🐍 Found CPython 3.14 at /home/cetin/.cache/uv/builds-v0/.tmpU6PY6L/bin/python
📡 Using build options features, bindings from pyproject.toml
Compiling pyo3-build-config v0.24.1
Compiling icu_properties v1.5.1
Compiling pyo3-ffi v0.24.1
Compiling pyo3-macros-backend v0.24.1
Compiling pyo3 v0.24.1
Compiling jiter v0.9.0
Compiling pydantic-core v2.33.2 (/home/cetin/.cache/uv/sdists-v9/pypi/pydantic-core/2.33.2/BEGb6eLZBfXqJR0lFckKZ/src)
error: failed to run custom build command for `pyo3-ffi v0.24.1`
Caused by:
process didn't exit successfully:
`/home/cetin/.cache/uv/sdists-v9/pypi/pydantic-core/2.33.2/BEGb6eLZBfXqJR0lFckKZ/src/target/release/build/pyo3-ffi-23f39b55f99d5615/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="/home/cetin/.cache/uv/builds-v0/.tmpU6PY6L/bin/python"
PYTHON_SYS_EXECUTABLE="/home/cetin/.cache/uv/builds-v0/.tmpU6PY6L/bin/python" "cargo" "rustc" "--profile"
"release" "--features" "pyo3/extension-module" "--message-format" "json-render-diagnostics" "--manifest-path"
"/home/cetin/.cache/uv/sdists-v9/pypi/pydantic-core/2.33.2/BEGb6eLZBfXqJR0lFckKZ/src/Cargo.toml" "--lib"
"--crate-type" "cdylib"`
Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/home/cetin/.cache/uv/builds-v0/.tmpU6PY6L/bin/python',
'--compatibility', 'off'] returned non-zero exit status 1
hint: This usually indicates a problem with the package or the build environment.
help: `pydantic-core` (v2.33.2) was included because `quantify` (v1.0.0b8.dev8+ga98007a2d.d20251111) depends on
`quantify-scheduler` (v0.26.0) which depends on `pydantic` (v2.11.10) which depends on `pydantic-core`
Screenshot: screenshot
Motivation of changes
Motivate why the particular solution was chosen.
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer. -
New code is covered by unit tests (or N/A). -
New code is documented and docstrings use numpydoc format (or N/A). -
New functionality: considered making private instead of extending public API (or N/A). -
Public API changed: added @deprecatedand entry in deprecated code suggestions (or N/A). -
Newly added/adjusted documentation and docstrings render properly (or N/A). -
Pipeline fix or dependency update: post in #software-for-developerschannel to mergemainback in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.mdfor breaking changes andAUTHORS.mdhave been updated (or N/A). -
Update Hardware backends documentation if backend interface change or N/A -
Check whether performance is significantly affected by looking at the Performance metrics results. -
Windows tests in CI pipeline pass (manually triggered by maintainers before merging). - Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.