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 @deprecated and 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-developers channel to merge main back in or update local packages (or N/A).
  • Tested on hardware (or N/A).
  • CHANGELOG.md for breaking changes and AUTHORS.md have 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.

Merge request reports

Loading