[Arrow] Update to 0.17.1#11472
[Arrow] Update to 0.17.1#11472dan-shaw merged 9 commits intomicrosoft:masterfrom GPSnoopy:Arrow-0.17.1
Conversation
NancyLi1013
left a comment
There was a problem hiding this comment.
I noticed this port was set as fail with the following triplets:
arrow:arm64-windows=fail
arrow:x64-linux=fail
arrow:x86-windows=fail
So does this port also not support for arm or arm64 and linux?
I checked the build process on osx pipeline, it didn't build successfully.
Are you clear the specific supports?
|
@NancyLi1013 Where do you see these status? The ParquetSharp above shows that the arrow port does build from scratch for x64-windows-static, x64-linux and x64-osx on GitHub Actions / Azure. I'm not sure if Apache Arrow supports x86 (e.g. PyArrow has no wheels for x86, https://pypi.org/project/pyarrow/#files). And I've never tried Arm64. |
|
The real question is why does the vcpkg CI display a green build when it contains the following? |
|
Hi @GPSnoopy I got these info from ci.baseline.txt If arrow doesn't support arm64, linux and osx, x86, we need to add If not, we need to fix the problems on these triplets. As for the CI question you mentioned above, since we have set arrow:x64-linux=fail in ci.baseline.txt. The CI check results depend on the status of triplets for the ports in ci.baseline.txt and build results. If the two statuses are consistent, the final check will show pass, namely display a green. |
Add explicit tool dependencies on Flex and Bison for Linux and OSX.
…d its portfile is already fine.
…check. Remove thrift:x64-osx=fail from ci.baseline.txt (we know arrow depends on it, and arrow:x64-osx has been shown to work in 3rd party project).
|
@NancyLi1013 I've removed the fail status for both linux and osx. I've also replaced the adhoc check on arch with vcpkg_fail_port_install, such that the build will fail with x86, arm and arm64. The CI is properly showing the failures, as you explained. Now, we know that these targets all pass when run via ParquetSharp CI. So what's different with vcpkg CI? x64-linux This one really baffles me. It seems to go wrong in Arrow's FindBrotli. However I cannot reproduce this error. It works absolutely fine when run on my machine and via GitHub Actions (see PR link in the description); note that both are running Ubuntu 18.04. This is what I get in my logs instead: Not being able to reproduce the issue locally is making this incredibly difficult to figure out. Any ideas? x64-osx I believe the issue here is the Thrift dependency on Bison. The default version included in macOS is super old (2007 IIRC). This is why ParquetSharp CI does What's the best way to solve this? Sort of feels like this should be in the CI rather than in Thrift port. |
I can confirm that this issue is because the default Bison is too old on macOS. This is why a newer version of Bison is downloaded by vcpkg on Windows: vcpkg/scripts/cmake/vcpkg_find_acquire_program.cmake Lines 256 to 266 in 8bfdf64 I wondered whether this approach could work for macOS too, but could not find any official build of Bison for macOS, except for Homebrew bottles (binary packages), but then we're probably better off just using Homebrew. See also my comment here: #7533 (comment) |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
I can reproduce the CI failure locally by using the vcpkg ci command: It looks like the problem is that when the ci build runs, the I’m not very familiar with CMake, but So it seems that because vcpkg moves files from packages into installed, the pkg-config files are no longer correct and arrow then looks in the wrong place for Brotli. I guess the fix here might be to patch |
This is incompatible with vcpkg as these files refer to paths in the packages directory rather than the installed directory, so this only works if the packages haven't been cleaned.
|
@NancyLi1013 Thanks to @adamreeve changes, the x64-linux CI build is now working. I've marked back x64-osx as still failing until a proper solution for Bison tooling on macOS can be devised. Open to ideas. In the meantime, I'm happy for the PR to be merged if you are. |
|
Hi @NancyLi1013, thanks for the review and the patch. The osx failure seems to be unrelated to this PR, I think it's safe to merge. |
|
Thanks for your kindly reminder. |
|
All features have passed with the following triplets:
Note: This port only supports |
|
Let us all pray to the merger gods now :-) |
|
LGTM now, @GPSnoopy thanks for this PR. |
* [Arrow] Update to 0.17.1 * Remove arrow:x64-linux=fail from ci.baseline.txt. Add explicit tool dependencies on Flex and Bison for Linux and OSX. * Revert arrow dependency on Flex/Bison, it's Thrift that needs them and its portfile is already fine. * Use vcpkg_fail_port_install(ON_ARCH x86 arm arm64) instead of custom check. Remove thrift:x64-osx=fail from ci.baseline.txt (we know arrow depends on it, and arrow:x64-osx has been shown to work in 3rd party project). * Disable using pkg-config files to locate dependencies in arrow This is incompatible with vcpkg as these files refer to paths in the packages directory rather than the installed directory, so this only works if the packages haven't been cleaned. * Mark thrift:x64-osx as still failing until a proper solution for Bison can be found. * Update ports/arrow/portfile.cmake Co-authored-by: Adam Reeve <adreeve@gmail.com> Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* [Arrow] Update to 0.17.1 * Remove arrow:x64-linux=fail from ci.baseline.txt. Add explicit tool dependencies on Flex and Bison for Linux and OSX. * Revert arrow dependency on Flex/Bison, it's Thrift that needs them and its portfile is already fine. * Use vcpkg_fail_port_install(ON_ARCH x86 arm arm64) instead of custom check. Remove thrift:x64-osx=fail from ci.baseline.txt (we know arrow depends on it, and arrow:x64-osx has been shown to work in 3rd party project). * Disable using pkg-config files to locate dependencies in arrow This is incompatible with vcpkg as these files refer to paths in the packages directory rather than the installed directory, so this only works if the packages haven't been cleaned. * Mark thrift:x64-osx as still failing until a proper solution for Bison can be found. * Update ports/arrow/portfile.cmake Co-authored-by: Adam Reeve <adreeve@gmail.com> Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
Updates Arrow from 0.17.0 to the recently released 0.17.1.
Built and successfully tested on Windows (x64-static), Linux (x64) and macOS (x64) via ParquetSharp CI:
G-Research/ParquetSharp#136