[SPARK-57872][INFRA][4.0] Pin lxml==4.9.4 in Dockerfile for PyPy to recover branch-4.0 CI#56972
Closed
gaogaotiantian wants to merge 1 commit into
Closed
Conversation
… recover branch-4.0 CI ### What changes were proposed in this pull request? This PR pins `lxml==4.9.4` in the PyPy `pip install` commands in `dev/infra/Dockerfile` and `dev/spark-test-image/pypy-310/Dockerfile` on branch-4.0. ### Why are the changes needed? The branch-4.0 base image build fails because pip pulls the newest `lxml`, which builds from source and requires the libxml2/libxslt development headers that are not available in the PyPy build stage: ``` Error: Please make sure the libxml2 and libxslt development packages are installed. ERROR: Failed to build 'lxml' when getting requirements to build wheel ERROR: 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 ``` This is the same failure fixed on master by [SPARK-56513](apache#55369), which pinned both `meson<1.11.0` and `lxml==4.9.4`. `meson` has since been fixed upstream, so only the `lxml` pin is needed here. `4.9.4` is consistent with the version specified in `.github/workflows/build_and_test.yml`. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? CI. ### Was this patch authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 4.8)
dongjoon-hyun
approved these changes
Jul 2, 2026
uros-b
approved these changes
Jul 5, 2026
uros-b
left a comment
Member
There was a problem hiding this comment.
Thank you @gaogaotiantian and @dongjoon-hyun!
gaogaotiantian
added a commit
that referenced
this pull request
Jul 6, 2026
… recover branch-4.0 CI ### What changes were proposed in this pull request? This PR pins `lxml==4.9.4` in the PyPy `pip install` commands in `dev/infra/Dockerfile` and `dev/spark-test-image/pypy-310/Dockerfile` on branch-4.0. It backports #56950 (branch-4.1) to branch-4.0. ### Why are the changes needed? The branch-4.0 base image build fails because pip pulls the newest `lxml`, which builds from source and requires the libxml2/libxslt development headers that are not available in the PyPy build stage: ``` Error: Please make sure the libxml2 and libxslt development packages are installed. ERROR: Failed to build 'lxml' when getting requirements to build wheel ERROR: 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 ``` This is the same failure fixed on master by [SPARK-56513](#55369), which pinned both `meson<1.11.0` and `lxml==4.9.4`. `meson` has since been fixed upstream, so only the `lxml` pin is needed here. `4.9.4` is consistent with the version specified in `.github/workflows/build_and_test.yml`. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? CI. ### Was this patch authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 4.8) Closes #56972 from gaogaotiantian/SPARK-57872-pin-lxml-branch-4.0. Authored-by: Tian Gao <gaogaotiantian@hotmail.com> Signed-off-by: Tian Gao <gaogaotiantian@hotmail.com>
Contributor
Author
|
Thank you, merged to branch-4.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This PR pins
lxml==4.9.4in the PyPypip installcommands indev/infra/Dockerfileanddev/spark-test-image/pypy-310/Dockerfileon branch-4.0. It backports #56950 (branch-4.1) to branch-4.0.Why are the changes needed?
The branch-4.0 base image build fails because pip pulls the newest
lxml, which builds from source and requires the libxml2/libxslt development headers that are not available in the PyPy build stage:This is the same failure fixed on master by SPARK-56513, which pinned both
meson<1.11.0andlxml==4.9.4.mesonhas since been fixed upstream, so only thelxmlpin is needed here.4.9.4is consistent with the version specified in.github/workflows/build_and_test.yml.Does this PR introduce any user-facing change?
No.
How was this patch tested?
CI.
Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Opus 4.8)