[python-package] [ci] Use manylinux image to produce wheels #5514
Description
Summary
Created from #5390 (comment).
The following changes should be made in LightGBM:
- move from supporting
GLIBC >= 2.14
toGLIBC >= 2.23
- start producing Python wheels using one of the
manylinux
images (https://github.com/pypa/manylinux)- this implies ending official support for Ubuntu 14.04 in LightGBM
Motivation
It has been really difficult to maintain support for older operating systems and versions of GLIBC.
References:
- [ci] [dask] CI jobs failing with Dask 2022.7.1 #5390 (comment)
- [python] Start supporting Python 3.10 #4893 (comment)
- [python] Start supporting Python 3.10 #4893 (comment)
Moving to newer base image and higher floor for GLIBC and supported Ubuntu version should help to alleviate some maintenance burden.
Description
As described in #5390 (comment), LightGBM should upgrade to a manylinux
base image supporting at least GLIBC==2.23
(and not too much higher) for producing wheels.
The manylinux
README shows the following compatibility for wheels produced on those images (https://github.com/pypa/manylinux).
https://ubuntu.com/about/release-cycle describes the release cycle for versions of Ubuntu
Using an approach like the following
docker run \
--rm \
--entrypoint="" \
-it quay.io/pypa/manylinux1_x86_64 \
ldd --version
I found that the GLIBC version for the published manylinux
images is as follows.
image | GLIBC |
---|---|
manylinux1 | 2.5 |
manylinux2010 | 2.12 |
manylinux2014 | 2.17 |
manylinux_2_28 | 2.28 |
References
Other related conversations:
- discussion from 2020 about possibly using
manylinux_2010
: Add arm64 wheel to travis-ci #3421 (comment) - plan to migrate to PEP600
manylinux_x_y
tags eventually: Python wheels not PEP 599 compliant; wheels should include libgomp.so.1 #4484 (comment) - discussion about
lightgbm
's x86_64 wheel being labeledmanylinux1
even though it is not fully compatible with that tag: [python-package] LightGBM wheel on PyPI seems to have the wrong platform tag #4788
Activity