-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARROW-11340: [C++] Add vcpkg.json manifest to cpp project root #9287
Conversation
Thanks for opening a pull request! Could you open an issue for this pull request on JIRA? Then could you also rename pull request title in the following format?
See also: |
Thanks Ian for working on this! I have a couple of questions:
Could you setup a github actions build to test it? |
Replies inline
Yes, definitely. Or would it be better to use this one as the master copy and apply patches to it to create the copies for other use cases? For safety, we should never name the copies
I'm working on that in ARROW-11336
It's mandatory. (The vcpkg docs say so and I confirmed by testing.)
Sure, I'll work on that |
FYI, the version of vcpkg that is currently preinstalled on the Github Actions Windows images is 2020.11.12 (as noted here). This version has a bug that causes the installation of |
@github-actions crossbow submit test-build-vcpkg-win |
Revision: af7b3cf Submitted crossbow builds: ursacomputing/crossbow @ actions-47
|
@github-actions crossbow submit test-build-vcpkg-win |
Revision: 1ddb30d Submitted crossbow builds: ursacomputing/crossbow @ actions-48
|
@github-actions crossbow submit test-build-vcpkg-win |
Revision: 94f35d7 Submitted crossbow builds: ursacomputing/crossbow @ actions-49
|
@kszucs I added a Crossbow test. It runs a GHA job on a Windows instance. The job installs the current version of vcpkg, installs all the dependencies listed in |
@github-actions crossbow submit test-build-vcpkg-win |
Revision: 5408df1 Submitted crossbow builds: ursacomputing/crossbow @ actions-51
|
@github-actions crossbow submit test-build-vcpkg-win |
Revision: 7703a38 Submitted crossbow builds: ursacomputing/crossbow @ actions-53
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
We can merge this with some minor improvements and green CI result.
bb55c0d
to
a1950d6
Compare
@github-actions crossbow submit test-build-vcpkg-win |
Revision: a1950d6 Submitted crossbow builds: ursacomputing/crossbow @ actions-99
|
@github-actions crossbow submit wheel-manylinux2010-cp36m wheel-windows-cp36m |
Revision: a1950d6 Submitted crossbow builds: ursacomputing/crossbow @ actions-100
|
@kszucs My latest commits in this PR fix the unintended side effects that were occurring because of the addition of the manifest file
The wheel-manylinux2010-cp36m and wheel-windows-cp36m Crossbow builds are now passing The test-build-vcpkg-win failure is for the same reasons as noted above in #9287 (comment) and should not block this from being merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks Ian!
@kszucs could you review this please? My main purpose in adding this is to improve the experience for Arrow C++ devs using Windows, but I noticed it also relates to your [TODO in apache#9096](https://github.com/apache/arrow/pull/9096/files#diff-990134cce6657dbbcf95457cf1a56810a7efa1f6cd58ecc27557c7d6ff45b533R67-R68). vcpkg does not have any `requirements.txt`-style package enumeration mechanism, but it supports this JSON manifest as a mechanism of defining dependencies. In the `vcpkg install` command, you can specify the path to the directory containing this manifest file with `--x-manifest-root` which later will change to `--manifest-root`. See details at https://vcpkg.readthedocs.io/en/stable/specifications/manifests/. There are some differences between the packages listed in this manifest versus the packages you listed in the `vcpkg install` commands in apache#9096 - This installs `gtest` and `benchmark` - This installs `boost` instead of separate `boost-filesystem`, `boost-regex`, etc. - This does not explicitly include the `core` feature of `aws-sdk-cpp` because explicitly including it causes an error, and it gets installed anyway Closes apache#9287 from ianmcook/ARROW-11340 Lead-authored-by: Ian Cook <ianmcook@gmail.com> Co-authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Krisztián Szűcs <szucs.krisztian@gmail.com>
@kszucs could you review this please? My main purpose in adding this is to improve the experience for Arrow C++ devs using Windows, but I noticed it also relates to your [TODO in apache#9096](https://github.com/apache/arrow/pull/9096/files#diff-990134cce6657dbbcf95457cf1a56810a7efa1f6cd58ecc27557c7d6ff45b533R67-R68). vcpkg does not have any `requirements.txt`-style package enumeration mechanism, but it supports this JSON manifest as a mechanism of defining dependencies. In the `vcpkg install` command, you can specify the path to the directory containing this manifest file with `--x-manifest-root` which later will change to `--manifest-root`. See details at https://vcpkg.readthedocs.io/en/stable/specifications/manifests/. There are some differences between the packages listed in this manifest versus the packages you listed in the `vcpkg install` commands in apache#9096 - This installs `gtest` and `benchmark` - This installs `boost` instead of separate `boost-filesystem`, `boost-regex`, etc. - This does not explicitly include the `core` feature of `aws-sdk-cpp` because explicitly including it causes an error, and it gets installed anyway Closes apache#9287 from ianmcook/ARROW-11340 Lead-authored-by: Ian Cook <ianmcook@gmail.com> Co-authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Krisztián Szűcs <szucs.krisztian@gmail.com>
@kszucs could you review this please? My main purpose in adding this is to improve the experience for Arrow C++ devs using Windows, but I noticed it also relates to your TODO in #9096. vcpkg does not have any
requirements.txt
-style package enumeration mechanism, but it supports this JSON manifest as a mechanism of defining dependencies.In the
vcpkg install
command, you can specify the path to the directory containing this manifest file with--x-manifest-root
which later will change to--manifest-root
. See details at https://vcpkg.readthedocs.io/en/stable/specifications/manifests/.There are some differences between the packages listed in this manifest versus the packages you listed in the
vcpkg install
commands in #9096gtest
andbenchmark
boost
instead of separateboost-filesystem
,boost-regex
, etc.core
feature ofaws-sdk-cpp
because explicitly including it causes an error, and it gets installed anyway