Skip to content

[FLINK-40464][python] Build pyflink wheels on manylinux_2_28 - #29016

Open
florianvazelle wants to merge 2 commits into
apache:masterfrom
florianvazelle:drop-manylinux2014
Open

[FLINK-40464][python] Build pyflink wheels on manylinux_2_28#29016
florianvazelle wants to merge 2 commits into
apache:masterfrom
florianvazelle:drop-manylinux2014

Conversation

@florianvazelle

Copy link
Copy Markdown
Contributor

What is the purpose of the change

This pull request stops building pyflink Linux wheels on manylinux2014 (glibc 2.17), which is end of life, and builds them on manylinux_2_28 (glibc 2.28) instead.

  • manylinux2014 images are based on CentOS 7, which reached EOL on 30 June 2024 (pypa/manylinux, CentOS announcement).
  • Dependencies have already dropped those wheels: Pillow 12.3.0 no longer publishes manylinux2014 artifacts (python-pillow/Pillow#9528). Apache Beam >= 2.72 depends on pillow>=12.1.1,<13, so on CPython 3.10+ pip falls back to a Pillow sdist, which fails inside the manylinux2014 container (missing jpeg headers).
  • cibuildwheel 3.0 also switched its default Linux image to manylinux_2_28 (pypa/cibuildwheel#2330).

Brief change log

  • Bump cibuildwheel from 2.16.5 to 4.2.0 in the GitHub nightly workflow and the Azure macOS wheel job
  • Set CIBW_MANYLINUX_X86_64_IMAGE to manylinux_2_28

Verifying this change

This change is a CI / packaging config update without unit-test coverage.

  • Nightly build_python_wheels on Linux should complete CPython 3.10+ instead of failing in CIBW_BEFORE_BUILD while compiling Pillow
  • Produced Linux wheels should be tagged manylinux_2_28_x86_64 (glibc >= 2.28: RHEL/CentOS 8+, Debian 10+, Ubuntu 18.10+)
  • macOS wheel job should still run with the newer cibuildwheel

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): yes (cibuildwheel 2.16.5 -> 4.2.0, CI-only)
  • The public API, i.e., is any changed class annotated with @Public(Evolving): no
  • The serializers: no
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
  • The S3 file system connector: no

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? not applicable

@florianvazelle

florianvazelle commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

Relates #29013

I hadn't seen the PR before creating my own, but I'll still suggest my changes along with some more detailed explanations

@flinkbot

flinkbot commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants