Closed coryan closed 4 months 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.
FYI, if you don't want to run into a stale cache of a not-yet-up-to-date CDN from the time when the build launched, the easiest thing is to wait until the dependencies you need have made it through the CDN, before you launch a build that is otherwise doomed to fail (and then have to wait for the restart, etc.).
As a first approximation for determining availability, you can check the info for any package produced from a given CI run on the anaconda website, say libgoogle-cloud-logging
in the case of https://github.com/conda-forge/google-cloud-cpp-core-feedstock/pull/11 (normally easily clickable from the feedstock README if feedstock is correctly rendered). As a rule of thumb:
To be absolutely sure whether a package made it through (in corner cases, or because it simply gets no downloads), use:
mamba repoquery search <package>=<version> -c conda-forge -p <platform>
If it gets found, it's available, if not, then not. The <version>
specification should be tight enough to catch the build you're looking for (not necessary here because it was the first publication; otherwise something like =2.21.0=*_1
if you want to catch the build number). <platform>
is simply linux-64
, win-64
, etc.
So we have the following warnings, which are actually something we should get rid of:
ClobberWarning: This transaction has incompatible packages due to a shared path.
packages: conda-forge/win-64::libgoogle-cloud-logging-devel-2.21.0-h63175ca_1, local/win-64::libgoogle-cloud-all-devel-2.21.0-h63175ca_1
path: 'library/include/google/logging/type/http_request.grpc.pb.h'
The way to get rid of this normally is to include the respective package as a host dependence for whatever's being built, which means that conda will take these files into account as already present when doing its before-after checkpointing mechanism, and so the files will not be "identified" as belonging to libgoogle-cloud-all-devel
.
It's slightly curious that this isn't happening for any of the other feature-libraries though (not sure if there's some bug related to that somewhere).
So we have the following warnings, which are actually something we should get rid of:
ClobberWarning: This transaction has incompatible packages due to a shared path. packages: conda-forge/win-64::libgoogle-cloud-logging-devel-2.21.0-h63175ca_1, local/win-64::libgoogle-cloud-all-devel-2.21.0-h63175ca_1 path: 'library/include/google/logging/type/http_request.grpc.pb.h'
Ack.
The way to get rid of this normally is to include the respective package as a host dependence for whatever's being built, which means that conda will take these files into account as already present when doing its before-after checkpointing mechanism, and so the files will not be "identified" as belonging to
libgoogle-cloud-all-devel
.It's slightly curious that this isn't happening for any of the other feature-libraries though (not sure if there's some bug related to that somewhere).
I forgot about these:
The shared protos are built by the first feature that needs them:
So disabling the logging
feature in this feedstock and building logging
in the google-cloud-cpp-core
feedstock still gets them compiled and installed to satisfy the needs of other features.
@dbolduc no action needed, as I think we have a good workaround for now, but these make the libraries harder to shard. Maybe we should define real features for such shared protos, so we can compile them as part of the core
feedstock. Or maybe we can add an option to disable the "automatically build shared protos" magic. That is the safer setting for packaging (and should be the default?). I will open a feature request.