Conversation
|
This issue/PR has been automatically marked as stale because it has not had any update (including commits, comments, labels, milestones, etc) for 30 days. It will be closed automatically if no further update occurs in 7 day. Thank you for your contributions! |
3dadded to
c2a0bfa
Compare
05293b3 to
d336a35
Compare
|
Compiling with a |
tools/dockerfile/grpc_artifact_python_manylinux2014_x64/Dockerfile
Outdated
Show resolved
Hide resolved
| # Thanks to that, wheel build with this image aren't actually | ||
| # compliant with manylinux2014, but only with manylinux_2_24 | ||
| FROM dockcross/manylinux2014-aarch64:20200929-608e6ac | ||
| FROM dockcross/manylinux2014-aarch64:20210826-19322ba |
There was a problem hiding this comment.
It definitely sounds like updating the the image tag here would require updating the above comment as well.
Based on my knowledge, if you used a newer version of image than 20200929-608e6ac, you won't be able to build (precisely because of what's decribed in the comment).
There was a problem hiding this comment.
Currently, all artifacts building jobs are green. The Linux Python artifacts build includes the aarch64 platform. Does this mean by using this tag (20210826-19322ba) we are free from the commented issue?
We might still need the AUDITWHEEL_PLAT override. I don't have enough context around this issue. What do you think I should update in the comment section?
There was a problem hiding this comment.
Ok, so the background is a bit complicated.
- in the past, we had to use a version of dockcross/manylinux2014-aarch64 before Update GCC to 4.8.5 and GLIBC to 2.17 in manylinux2014-aarch64 dockcross/dockcross#449, because newer versions didn't had a too old version of gcc and it was impossible to build grpc with them (and that had a side effect of non being able to generate manylinux 2_17 images, only manylinux 2_24). This is what the comment is about.
- just recently, in Add manylinux2014-aarch64 with gcc=9.3 dockcross/dockcross#562, the dockcross/manylinux2014-aarch64 image was improved to contain gcc9.3, which made the limitation from previous bulletpoint go away.
So, as a result:
- what you currently have works, just the comment "We use an older version of dockcross image..." is now out of date.
- the wheels generated by this image now are actually manylinux_2_17 compliant (not just manylinux_2_24). So in a followup PR, we could actually update the docker image name and some other details. But let's not do this here as what you currently have seems to be working just fine.
| # Use a tagged version to use Python 3.5 | ||
| FROM quay.io/pypa/manylinux2014_x86_64:2021-05-01-28d233a | ||
| # Use a tagged version to use Python 3.10 | ||
| FROM quay.io/pypa/manylinux2014_x86_64:2021-08-26-12e5da0 |
There was a problem hiding this comment.
Lidi, you don't need to use a tag version here. Just quay.io/pypa/manylinux2014_x86_64 would be better because we can get the latest image once actual python 3.10 is released.
There was a problem hiding this comment.
Doesn't this open us up to non-hermetic breakage?
There was a problem hiding this comment.
@veblush I think when a newer upstream Docker image is released, it would be better if we can write a PR for it. We still need to manually build and push the images.
As Richard mentioned, if a certain image version introduce a breakage, it could be hard to debug.
There was a problem hiding this comment.
+1 to tagging the version and making tests more hermetic that way.
veblush
left a comment
There was a problem hiding this comment.
Thank you for taking care of this!
jtattermusch
left a comment
There was a problem hiding this comment.
Added some clarifications, the aarch64 wheel seems to be working fine, but we might want a small followup cleanup PR after this gets merged.
| # Use a tagged version to use Python 3.5 | ||
| FROM quay.io/pypa/manylinux2014_x86_64:2021-05-01-28d233a | ||
| # Use a tagged version to use Python 3.10 | ||
| FROM quay.io/pypa/manylinux2014_x86_64:2021-08-26-12e5da0 |
There was a problem hiding this comment.
+1 to tagging the version and making tests more hermetic that way.
| # Thanks to that, wheel build with this image aren't actually | ||
| # compliant with manylinux2014, but only with manylinux_2_24 | ||
| FROM dockcross/manylinux2014-aarch64:20200929-608e6ac | ||
| FROM dockcross/manylinux2014-aarch64:20210826-19322ba |
There was a problem hiding this comment.
Ok, so the background is a bit complicated.
- in the past, we had to use a version of dockcross/manylinux2014-aarch64 before Update GCC to 4.8.5 and GLIBC to 2.17 in manylinux2014-aarch64 dockcross/dockcross#449, because newer versions didn't had a too old version of gcc and it was impossible to build grpc with them (and that had a side effect of non being able to generate manylinux 2_17 images, only manylinux 2_24). This is what the comment is about.
- just recently, in Add manylinux2014-aarch64 with gcc=9.3 dockcross/dockcross#562, the dockcross/manylinux2014-aarch64 image was improved to contain gcc9.3, which made the limitation from previous bulletpoint go away.
So, as a result:
- what you currently have works, just the comment "We use an older version of dockcross image..." is now out of date.
- the wheels generated by this image now are actually manylinux_2_17 compliant (not just manylinux_2_24). So in a followup PR, we could actually update the docker image name and some other details. But let's not do this here as what you currently have seems to be working just fine.
* Add Python 3.10.0rc1 binary wheels * Drop Python 3.5 artifacts * Document the drop of 3.5 * Fix the wrong pip pointer * Update manylinux2014 to a newer version, remove 3.5 distribtest * Update manylinux aarch64 to see if the absl error go away * Use the preferred alias * Allow different wheel library to produce different tag order * Remove unused shell var and log produced wheels * Use copy instead of move * Make bash happy about the wildcard * Upgrade the debian image to use 3.5+ Python * Polish the comments for the Dockerfiles
This PR includes:
ubuntu1604from our distribtests since its default Python 3 is 3.5invalid command: bdist_wheelerror on macOS with 3.10auditwheel(one is just an alias of another)wheel, "manylinux2014" has higher priority than "manylinux_2_17". This PR letauditwheeldecide the wheel name, and letwheelbe a tool to pack/unpack wheels.stretchtobusterfor binary wheel installation test (the compile-from-source test is stilljessie)Given the complex details generated around changing supported Python versions, we might not in a stage of automating this once-per-year task.
This change is