-
Notifications
You must be signed in to change notification settings - Fork 233
Description
Now that PEP 599 has been accepted to adopt the manylinux2014 standard, we need a tracking issue for implementation (I'm reusing structure and prose from #179).
The dates are guesses but would (as I figure) help us get all the infrastructure in place well before Nov 2020 when CentOS 6 (supported in manylinux2010) will go EOL, and in time for the August 2020 date that @gunan asked for; please argue with me. ;-)
There are a number of further steps needed before folks can actually make use of that new baseline, and the order of operations matters (since building manylinux2014 wheels isn't very useful if installers won't install them):
Prep (ideally done by 2 September 2019):
- Gather personnel: tentatively strategize re: who's available to review & merge code, especially for repositories where maintainer time is scarce, re: who will make a build environment, and re: who will do testing or build testing infrastructure
- Curate initial list of test cases regarding build environment, target Linux distributions, specific Python packages to be built, presence/absence of specific libraries
Essential client support (ideally done by 15 September 2019):
- Update
pip19.x to installmanylinux2014wheels- Update
packaging.tagsto detectmanylinux2014compatibility (Add support for manylinux2014 packaging#186) - New release of
packaging(19.2) - Add
manylinux2014support topip._internal.pep425tags(Add manylinux2014 support pip#7102) - (Optional) Replace
pip._internal.pep425tagsw/packaging.tags(Replace pep425tags w/ packaging.tags pip#6908) - New release of
pip(19.3 due out in week 41, so, by 19 October)
- Update
Enable publication of manylinux2014 wheel archives (ideally done by 30 October 2019):
- Update
Warehouse(PyPI) to acceptmanylinux2014wheel uploads (Allow manylinux2014 wheel upload pypi/warehouse#6684) - Update
auditwheelto emitmanylinux2014wheel archives (manylinux2014 policy auditwheel#192)- Update
auditwheelto allow new architectures introduced withmanylinux2014(Add support for new architectures in manylinux2014 auditwheel#202) - Pre-release of
auditwheel(3.0.0.0rc1 Release 3.0.0 auditwheel#205) - New release of
auditwheel(3.0.0 Release 3.0.0 auditwheel#205)
- Update
- Provide a
manylinux2014build environment, probably a Docker image (manylinux2014 images #348)- create
quay.iorepositories
- create
- Confirm that
twinewill uploadmanylinux2014wheel archives
Management of transition from manylinux1 and manylinux2010 (ideally done by 15 December 2019):
- Update https://packaging.python.org/specifications/platform-compatibility-tags/ to cover
manylinux2014, with the caveat that it doesn't actually have broad tooling support yet, and to explain (per @zackw's note) pros & cons of switching tomanylinux2014, e.g., future security patches, old Linux distributions new wheels won't work with, etc. - Reword the "not yet widely supported" caveat from the platform compatibility tagging page on PyPUG
Additional projects to consider once core capability support has rolled out (ideally done by 1 March 2020):
- Resolve Why does warehouse allow linux_armv6l and linux_armv7l wheels? pypi/warehouse#3668
- Update
pipenvto installmanylinux2014wheels (needed due topipenvvendoringpip, so the support depends on the version ofpipenvbeing used, rather than the version ofpipin the host or target environments) - Option to target
manylinux2014instead ofmanylinux2010in cibuildwheel (Add support for manylinux2014 cibuildwheel#216, Add manylinux2014 x86_64/i686 support cibuildwheel#215) - Option to target
manylinux2014instead ofmanylinux1ormanylinux2010in multibuild - Distinguish
manylinux2014,manylinux2010andmanylinux1images in dockcross - Develop list of further relevant helper utilities and update them
- ... any other suggestions?
Tagging @di as the PEP 599 author, @pfmoore as the BDFL-Delegate who requested further planning on rollout, and @ewdurbin from the PyPI/PSF side of things.