lowRISC / lowRISC/opentitan

[python] `uv sync` fails using a Python 3.14 interpreter

Open
#29,131 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component:Software Type:Bug
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

### Description

To reproduce, make sure the `requires-python` in `pyproject.toml` supports 3.14, and make sure you are using python e.g. 3.14.2 with UV (>= 3.14 seems to be needed), and then run:
```sh
uv venv
source .venv/bin/activate
uv sync
```
This then failed for me with the following (shortened) log:
```
Resolved 100 packages in 0.53ms
× Failed to build `libcst==1.7.0`
├─▶ The build backend returned an error
╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)

[stdout]
running bdist_wheel
running build
running build_py

...

--- 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.23.5
= 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...
error: `cargo rustc --lib --message-format=json-render-diagnostics --manifest-path native/libcst/Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib --` failed with code 101

hint: This usually indicates a problem with the package or the build environment.
help: `libcst` (v1.7.0) was included because `opentitan` (v0.0.0) depends on `libcst`
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the stated Python 3.14, uv venv, and uv sync commands. Then inspect pyproject.toml and the libcst build referenced through native/libcst/Cargo.toml, including the PyO3 0.23.5 error; done means uv sync completes successfully on the supported Python 3.14 setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.