conda-forge / google-cloud-cpp-feedstock

A conda-smithy repository for google-cloud-cpp.
BSD 3-Clause "New" or "Revised" License
2 stars 10 forks source link

feat: build all libraries in the package #125

Closed coryan closed 1 year ago

coryan commented 1 year ago

By default google-cloud-cpp only builds the most commonly used libraries. When building from source that can save some time, but for package managers this leaves out many important features.

Checklist

Fixes #115

I had to leave out a few libraries (google/cloud/asset, google/cloud/channel, and google/cloud/storagetransfer). The proto files for these libraries use enum value names (e.g. DOMAIN) which are also defined as macros in the system libraries or in the C++ standard library. With all but the latest version of Protobuf this is not a problem. With older versions it can be a problem with some compilers and C++ standard libraries (the list seems really hard to nail down).

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

h-vetinari commented 1 year ago

Thanks for this @coryan!

W.r.t to protobuf, looking at some of the issues (e.g. https://github.com/googleapis/google-cloud-cpp/issues/8145), it says that it needs protobuf >3.19.3; however we're at 3.21.12 already[^1] - does that change anything?

[^1]: We've had no problems with migrating to newer protobufs recently; I've been waiting for 3.22 for a while, but it seems it's getting a bit delayed (originally I heard it was supposed to arrive Nov' 22).

coryan commented 1 year ago

Thanks for this @coryan!

W.r.t to protobuf, looking at some of the issues (e.g. googleapis/google-cloud-cpp#8145), it says that it needs protobuf >3.19.3; however we're at 3.21.12 already1 - does that change anything?

It is a sad, sad story. We thought it only affected macOS, the fixes are in. But it also affects Windows, and I cannot find any fixes for that. I will need to send new patches.

  1. We've had no problems with migrating to newer protobufs recently; I've been waiting for 3.22 for a while, but it seems it's getting a bit delayed (originally I heard it was supposed to arrive Nov' 22).

Things are moving. There are two release candidates for v22.0. The latest is v22.0-rc2. However, it will not be 3.22, but 4.22. That is a new major release for C++ with some breaking changes. And it is known to break gRPC. I am not sure how the upgrades will need to proceed.

h-vetinari commented 1 year ago

But it also affects Windows, and I cannot find any fixes for that. I will need to send new patches.

OK good to know thanks. If the patches aren't too big we can already carry them in conda-forge (within reason).

That is a new major release for C++ with some breaking changes.

Breaking ABI and/or API? The former is a given (what we've been dealing with so far; just recompile), the latter would be harder to deal with, because it'll possibly need source adaptation).

h-vetinari commented 1 year ago

The latest is v22.0-rc2. However, it will not be 3.22, but 4.22.

The 4 might just be for the python release, at least that's how it's been since 3.21.0. The tag is the same for 3.22.0, 4.22.0 & 22.0:

commit fa7a079c1136b2850e0227675c0379e8fde5c560 (HEAD, tag: v4.22.0-rc2, tag: v3.22.0-rc2, tag: v22.0-rc2)
Author: Protobuf Team Bot <protobuf-team-bot@google.com>
Date:   Thu Feb 2 11:44:51 2023 -0800

    Updating version.json and repo version numbers to: 22.0-rc2

This broke our bot in creative ways when it was rolled out, but my request to distinguish the tag patterns was rejected.

coryan commented 1 year ago

But it also affects Windows, and I cannot find any fixes for that. I will need to send new patches.

OK good to know thanks. If the patches aren't too big we can already carry them in conda-forge (within reason).

I will share a link to the patches as soon as they get exported. I think they amount to 12 lines changed across 4 files.

That is a new major release for C++ with some breaking changes.

Breaking ABI and/or API? The former is a given (what we've been dealing with so far; just recompile), the latter would be harder to deal with, because it'll possibly need source adaptation).

Both. You can see a partial list of changes in the v22.0-rc1 Release Notes. Notable ones that I think affect Conda:

The 4 might just be for the python release, at least that's how it's been since 3.21.0.

See the release notes, they explicitly call out breaking changes to C++ and Ruby.

h-vetinari commented 1 year ago

The 4 might just be for the python release, at least that's how it's been since 3.21.0.

See the release notes, they explicitly call out breaking changes to C++ and Ruby.

Yeah, and I just found https://github.com/protocolbuffers/protobuf/blob/main/version.json, which notes the major versions.