HyukjinKwon opened a new pull request, #57031:
URL: https://github.com/apache/spark/pull/57031
### What changes were proposed in this pull request?
Pin `lxml==4.9.4` in the branch-4.0 PyPy 3.10 test image
(`dev/spark-test-image/pypy-310/Dockerfile`), instead of installing an
unpinned `lxml`.
### Why are the changes needed?
`build_python_pypy3.10` on branch-4.0 fails intermittently while building
the `pypy-310`
Docker image:
```
#12 ... process "/bin/sh -c pypy3 -m pip install numpy 'six==1.16.0'
'pandas==2.2.3' \
scipy coverage matplotlib lxml" did not complete successfully: exit
code: 1
Error: Please make sure the libxml2 and libxslt development packages
are installed.
ERROR: Failed to build 'lxml' when getting requirements to build wheel
```
Recent `lxml` releases (5.x+) dropped prebuilt PyPy wheels, so `pip` builds
`lxml` from
source under PyPy. The source build needs both `libxml2` and `libxslt`
development
packages, but the image installs only `libxml2-dev` (not `libxslt1-dev`), so
the build
fails. It is intermittent only because the image is cached and rebuilt on
cache miss (or
when a newer `lxml` is published).
`branch-4.1`'s `pypy-310` image already pins `lxml==4.9.4` — a version that
ships PyPy
wheels, so no source build is needed — and its `build_python_pypy3.10` is
green. This
change mirrors that on branch-4.0. (Pinning is preferred over adding
`libxslt1-dev`
because it keeps the image consistent with branch-4.1 and avoids a
from-source build.)
### Does this PR introduce _any_ user-facing change?
No. Test-infrastructure (CI image) change only.
### How was this patch tested?
Built the `pypy-310` image on a fork via GitHub Actions and confirmed the
`lxml` install
step succeeds and `lxml` imports under PyPy.
**CI evidence**
- Failing run (apache/spark, branch-4.0 `build_python_pypy3.10`):
https://github.com/apache/spark/actions/runs/28747314955
- Passing validation (fork, builds the `pypy-310` image + imports `lxml`):
https://github.com/HyukjinKwon/spark-agent6/actions/runs/28766514977
### Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Opus 4.8)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]