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

Dealing with abseil upcoming migration #168

Open h-vetinari opened 4 months ago

h-vetinari commented 4 months ago

We have an imminent migration for newest abseil (20240116.1), as well as (almost) newest grpc (1.61.1) and libprotobuf (4.25.2).

In order to recompile consumers correctly (mainly arrow and tiledb), we either need to migrate both main and a to-be-created v2.17.x maintenance branch (as the latter version is what arrow is currently on; tiledb has an open PR for 2.17), or only rebuild main, forcuing us to couple the two migrations, so that arrow/tiledb will have to simultaneously bump libgoogle-* alongside abseil/grpc/protobuf.

Given that we only have two real consumers, I'm kinda OK with the latter (and it's less work for the libgoogle-* side). But still wanted to quickly get opinions (CC @coryan @xhochy). It also depends if we think 2.21 is ready to migrate (e.g. after #165).

xhochy commented 4 months ago

couple the two migrations,

+1 on this.

Tobias-Fischer commented 4 months ago

I have a feeling we are running into issues because of this in https://github.com/conda-forge/gz-gui-feedstock/pull/33 - it reports something like

│  │     └─ libgdal [3.8.3|3.8.4] would require
│  │        ├─ libpq >=16.2,<17.0a0 , which can be installed (as previously explained);
│  │        └─ tiledb >=2.20.0,<2.21.0a0  with the potential options
│  │           ├─ tiledb [2.18.3|2.18.4|...|2.20.1], which cannot be installed (as previously explained);
│  │           ├─ tiledb [2.18.3|2.18.4|2.19.0|2.19.1|2.20.0], which can be installed (as previously explained);
│  │           ├─ tiledb [2.20.0|2.20.1] would require
│  │           │  └─ libgoogle-cloud >=2.17.0,<2.18.0a0 , which can be installed (as previously explained);
│  │           └─ tiledb 2.20.1 would require
│  │              └─ libgoogle-cloud >=2.21.0,<2.22.0a0  with the potential options
│  │                 ├─ libgoogle-cloud [2.12.0|2.17.0|2.21.0], which can be installed (as previously explained);
│  │                 └─ libgoogle-cloud 2.21.0 would require
│  │                    └─ libprotobuf >=4.25.2,<4.25.3.0a0 , which can be installed;
h-vetinari commented 4 months ago

Tiledb needs to be rebuilt for libgoogle-cloud 2.22. We haven't started that migrator yet, but that shouldn't be a problem. Otherwise, you can also override it locally.

h-vetinari commented 4 months ago

On the other hand, #170 was built for 2.21 (the current migrator), so

│  │                 └─ libgoogle-cloud 2.21.0 would require
│  │                    └─ libprotobuf >=4.25.2,<4.25.3.0a0 , which can be installed;

is either cut off or incorrect, because there's a libgoogle-cloud 2.21 built against libprotobuf 4.25.3. I saw that there was a timeout on windows in the CI after merging #170 to main; I've restarted that, however, that shouldn't even be an issue because the merge after #171 got built successfully (and that was still for 2.21)

Tobias-Fischer commented 4 months ago

I don't actually see an libgoogle-cloud output in this feedstock, just a libgoogle-cloud-all. Is there another feedstock involved?

h-vetinari commented 4 months ago

Yep, google-cloud-cpp-{core,ai,bigquery,compute}

h-vetinari commented 4 months ago

Yeah, the problem is that https://github.com/conda-forge/google-cloud-cpp-core-feedstock/pull/13 got merged before https://github.com/conda-forge/google-cloud-cpp-core-feedstock/pull/14. With these distributed feedstocks, we should always do one migration or version bump fully, before doing anything else, otherwise we get these kind of solver cliffs.

h-vetinari commented 4 months ago

In any case, the 4.25.3 migration started after 2.22, so it makes sense to just kick off https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/5589. You'll need a rebuild of tiledb with that migration, then you should be good AFAICT.

Tobias-Fischer commented 4 months ago

Great, thanks @h-vetinari.

/cc @traversaro