Hi Arrow devs,

Since 2017, it has been possible to install the Arrow C++ library
using the vcpkg package manager[1], but until recently, the Arrow
vcpkg port ("port" is their term for a package) was maintained by
community members, not by core Arrow devs. This led to a pattern of
irregular updates that left vcpkg users sometimes stuck with very old
versions of Arrow.

Following the Arrow 4.0.0 release, I performed the task of updating
the arrow vcpkg port to 4.0.0, to see what this process would entail
[2]. Thanks to Tanguy Fautré at G-Research and to the vcpkg
maintainers at Microsoft for help with this.

The arrow vcpkg port[3] is fairly simple: it consists of a JSON
manifest with port metadata and dependency information, a
vcpkg-flavored CMake script, and a patch file to apply some necessary
fixes. There are no binary assets; the CMake script downloads the
source release.

The process of updating the vcpkg port consists of opening a PR to
modify these files, committing fixes as needed to make the CI green,
then getting the PR merged by a vcpkg maintainer. The PR to update the
arrow port to 4.0.0[4] was more complicated because the port
previously used a legacy format to specify metadata and dependencies,
and I updated it to use the current JSON manifest format. Going
forward, I anticipate that it should be much more straightforward. I
expect that the chief difficulties will be updating the patch file as
needed when the Arrow CMake scripts it patches have changed and
resolving vcpkg CI failures when they occur in the PR.

I propose that the core Arrow devs take ownership of this task to
update the vcpkg port following each Arrow release. For the
foreseeable future, I intend to volunteer to perform this task
following each release. Please reply with any objections, questions,
or discussion you might have regarding this proposal.

If there are no objections, I will add vcpkg port update instructions
to the Arrow release management guide, mataintain copies of the vcpkg
port files in the apache/arrow repo, and perform the next arrow vcpkg
port update following the upcoming 5.0.0 release.

Thank you,
Ian

[1] https://vcpkg.io
[2] https://issues.apache.org/jira/browse/ARROW-11581
[3] https://github.com/microsoft/vcpkg/tree/master/ports/arrow
[4] https://github.com/microsoft/vcpkg/pull/17975

Reply via email to