apache / apache/texera

Renovate bumps the CI Python past the numpy and pandas wheels it freezes

Open
#7,720 1 comment 0 reactions 1 assignee Claimed by @anthonychengit View on GitHub
ci
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### What happened?

[`.github/renovate.json5`](https://github.com/apache/texera/blob/main/.github/renovate.json5) freezes `numpy` / `pandas` / `pyarrow` because they sit on the Arrow IPC data path and must move in lockstep. Nothing freezes the CI **interpreter** those wheels are selected for, so Renovate raised `actions/setup-python`'s `python-version:` to 3.14 in #7715 and `build / amber-integration` broke on both runners.

The interpreter is downstream of the frozen pins — a Python version is only usable if the pinned packages publish a wheel for it:

| Pin in `amber/requirements.txt` | Wheels published | cp314? |
| --- | --- | --- |
| `numpy==2.1.0` | cp310–cp313 | no |
| `pandas==2.2.3` | cp310–cp313 | no |
| `pyarrow==23.0.1` | cp310–cp314 | yes |

With no cp314 wheel, `uv` falls back to a source build of numpy, which does not compile against the 3.14 headers.

```
Before: Renovate bumps python-version -> 3.14 -> no numpy cp314 wheel
-> uv source-builds numpy -> 11 compile errors -> job fails
After: python-version frozen with the numpy/pandas pins
-> prebuilt wheel resolves -> job installs as before
```

Renovate rewrites three standalone `python-version:` inputs:

| Site | Job | Value on `main` |
| --- | --- | --- |
| `build.yml:401` | `amber-integration` | 3.11 |
| `build.yml:127` | `frontend` | 3.12 |
| `benchmarks.yml:217` | `Bench` | 3.12 |

The pyamber matrix at `build.yml:1041` is `["3.11", "3.12", "3.13"]` — a plain list Renovate never reads. So besides breaking the build, the bump silently splits the interpreter CI actually runs on from the matrix that is actually tested.

### How to reproduce?

1. Open (or re-run) the Renovate `github-actions` group PR that carries the `python` `uses-with` bump — #7715.
2. `build / amber-integration (ubuntu-latest, 17)` and `(macos-latest, 17)` fail at the **Install Python dependencies** step.

Locally, on a 3.14 interpreter:

```bash
uv pip install --system --index-strategy unsafe-best-match -r amber/requirements.txt
```

Wheel availability can be confirmed straight from PyPI:

```bash
curl -s https://pypi.org/pypi/numpy/2.1.0/json | grep -o 'cp3[0-9][0-9]' | sort -u
```

### Version/Branch

1.3.0-incubating-SNAPSHOT (main)

### Commit Hash (Optional)

2f7e75e3e4 (head of #7715)

### Relevant log output

```shell
Building pandas==2.2.3
Building numpy==2.1.0
× Failed to build `numpy==2.1.0`
├─▶ The build backend returned an error
╰─▶ Call to `mesonpy.build_wheel` failed (exit status: 1)

../numpy/_core/src/umath/string_fastsearch.h:132:5: error: no type named
'ptrdiff_t' in namespace 'std'; did you mean simply 'ptrdiff_t'?
132 | std::ptrdiff_t
| ^~~~~~~~~~~~~~
...
11 errors generated.
[253/324] Compiling C++ object
numpy/_core/_multiarray_umath.cpython-314-darwin.so.p/src_umath_special_integer_comparisons.cpp.o
ninja: build stopped: subcommand failed.
##[error]Process completed with exit code 1.
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.