hi Ian,

Thank you for driving this effort — I agree that having the vcpkg
installation path maintained by the Arrow community will help yield a
more consistent experience for users of the libraries, similar to
Homebrew and other packages we maintain.

As an aside, and speaking of documenting the various install paths, I
wonder if we should move the installation information into the Sphinx
project to make this information more cohesive with the rest of the
documentation.

Thanks,
Wes

On Thu, Jul 8, 2021 at 4:24 AM Ian Cook <i...@ursacomputing.com> wrote:
>
> 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