You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 20, 2022. It is now read-only.
Version checker sets up amd64 docker containers based on the images listed in distros.txt and uses a hacky pip/sed command to figure out the latest version supported on that platform (latest numpy for instance requires php>=3.7 so bionic is stuck on an older version). Then it checks the existence of packagename-packageversion-cpythonversion in the index file. One potential issue is, since pip can download a wheel built for an older cpython version if it exists, our version checker won't match that due to different cpython version, such as PyNaCl here:
However, as long as the package is lacking the wheels on at least one arch (most likely arm32v7) and has to be built, the version checker will match the other arch's entry in the index just fine. If only, say, a package provides wheels for all 3 arches on focal, but not on bionic, and the provided wheels are all built with a lower cpython than the distro contains, we'll run into an issue where the version checker will trigger continuously (edge case but something to keep in mind).
A potential solution might be to use pip to check for existing wheels and take that into consideration, but that would require separate containers for all arches, and add too much complexity to the code, which may not be worth the effort. Fixed as suggested here
All the wheels we build and push are done under qemu, so the arches are labeled properly as x86_64, armv7l and aarch64. However, the aws jenkins builders we use are 64bit native and the arm32v7 versions run docker with chroot, therefore their arch is recognized by python/pip as armv8l and do not match the prebuilt wheels. Although it doesn't cause build failures, it does prevent the aws arm32v7 builders from pulling the prebuilt wheels and instead build from scratch.
The text was updated successfully, but these errors were encountered:
Version checker sets up amd64 docker containers based on the images listed indistros.txt
and uses a hacky pip/sed command to figure out the latest version supported on that platform (latest numpy for instance requires php>=3.7 so bionic is stuck on an older version). Then it checks the existence ofpackagename-packageversion-cpythonversion
in the index file. One potential issue is, since pip can download a wheel built for an older cpython version if it exists, our version checker won't match that due to different cpython version, such as PyNaCl here:wheels/docs/ubuntu/index.html
Line 93 in ec70cf3
However, as long as the package is lacking the wheels on at least one arch (most likely arm32v7) and has to be built, the version checker will match the other arch's entry in the index just fine. If only, say, a package provides wheels for all 3 arches on focal, but not on bionic, and the provided wheels are all built with a lower cpython than the distro contains, we'll run into an issue where the version checker will trigger continuously (edge case but something to keep in mind).A potential solution might be to use pip to check for existing wheels and take that into consideration, but that would require separate containers for all arches, and add too much complexity to the code, which may not be worth the effort.Fixed as suggested herex86_64
,armv7l
andaarch64
. However, the aws jenkins builders we use are 64bit native and the arm32v7 versions run docker with chroot, therefore their arch is recognized by python/pip asarmv8l
and do not match the prebuilt wheels. Although it doesn't cause build failures, it does prevent the aws arm32v7 builders from pulling the prebuilt wheels and instead build from scratch.The text was updated successfully, but these errors were encountered: