-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deps: update abseil and cel-cpp #31456
Conversation
Signed-off-by: Kuat Yessenov <[email protected]>
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to |
Windows failure:
which seems to be caused by this interesting snippet from abseil: I think we still need to update MSVC to get past this hurdle? |
bazel/repository_locations.bzl
Outdated
version = "da0aba702f44a41ec6d2eb4bbf6a9f01efc2746d", | ||
sha256 = "d62b93fd07c6151749e83855157f3f2778d62c168318f9c40dfcfe1c336c496f", | ||
version = "e14d338d0f1bc64e54c4275ac5034fe5dedba969", | ||
sha256 = "a0fcf8126d4fb8e0e00be79e626cac741e40b4dcef7d549e99f7a7ef6d7c5443", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just out-of-curiosity, how do you get this sha256 number?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's probably a better way but I just put something wrong and then copy the right one from bazel error message :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for ref we have a tool that can update this (the sha is for the downloaded tarball)
bazel run //bazel:\($target) \($dependency) \($version)
$target can be update
or api-update
there is also a bot for this here but you need to be a maintainer to use it https://github.com/envoyproxy/envoy/actions/workflows/envoy-dependency.yml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the info!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another way (just for reference):
curl -L https://github.com/google/cel-cpp/archive/e14d338d0f1bc64e54c4275ac5034fe5dedba969.tar.gz | sha256sum
Admittedly this requires trusting the version you downloaded is not yet compromised
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah - this is what the tool does
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On Linux I download the binary and run sha256sum
against it
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
bazel/repository_locations.bzl
Outdated
@@ -162,12 +162,12 @@ REPOSITORY_LOCATIONS_SPEC = dict( | |||
project_name = "Abseil", | |||
project_desc = "Open source collection of C++ libraries drawn from the most fundamental pieces of Google’s internal codebase", | |||
project_url = "https://abseil.io/", | |||
version = "c8b33b0191a2db8364cacf94b267ea8a3f20ad83", | |||
sha256 = "a7803eac00bf68eae1a84ee3b9fcf0c1173e8d9b89b2cee92c7b487ea65be2a9", | |||
version = "1adf896ec842bd9788a1bbede94a33e1402b8ecb", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a reason we cant use release versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
abseil "lives at head" and we don't seem to use LTS branches. See https://abseil.io/about/releases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure im following this exactly - isnt that how all repos work ?
their release strategy seems a bit confusing - but afaict the "LTS branches" are the releases
if there is a reason not to use the releases - then i think its fine to use HEAD but generally its preferred to use published releases where possible/available
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW grpc does use abseil LTS releases https://github.com/grpc/grpc/blob/master/bazel/grpc_deps.bzl#L344C9-L344C9. I'd be fine instituting this as long as we're OK with some delay in picking up changes. I see that protoc uses some internal abseil detail that don't compile on every version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's fine to use LTS releases by default and bump to HEAD as needed. I think this break glass might be needed as people use new features and we wouldn't artifically push back on that. This is consistent with other dependencies.
bazel/repository_locations.bzl
Outdated
@@ -1201,8 +1201,8 @@ REPOSITORY_LOCATIONS_SPEC = dict( | |||
project_name = "Common Expression Language (CEL) C++ library", | |||
project_desc = "Common Expression Language (CEL) C++ library", | |||
project_url = "https://opensource.google/projects/cel", | |||
version = "da0aba702f44a41ec6d2eb4bbf6a9f01efc2746d", | |||
sha256 = "d62b93fd07c6151749e83855157f3f2778d62c168318f9c40dfcfe1c336c496f", | |||
version = "e14d338d0f1bc64e54c4275ac5034fe5dedba969", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same question here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same principle as abseil. We can ask them to cut a release, however.
Signed-off-by: Kuat Yessenov <[email protected]>
the absl update seems to be hitting the same issue i hit previously attempting this (#30394) - something to do with the hot restart test (cc @ravenblackx ) https://dev.azure.com/cncf/envoy/_build/results?buildId=158291&view=logs&j=767be981-567e-57d8-68c3-2140ede0a0bd&t=2181edf2-f610-59f2-c43a-04bb9d0bca00&l=2608 updating tcmalloc with absl appears to work for both on x64 but unfortunately that also breaks arm cc @RyanTheOptimist i think we will need to update quite a few things (probs together) before we can update the gcc toolchain |
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
@phlax ARM build is fixed by rolling one patch release of abseil, but coverage fails with this:
|
Signed-off-by: Kuat Yessenov <[email protected]>
i hit this previously attempting to update protobuf - not sure what is apropos of but seems relevant |
Windows failures are frustrating. Should we disable CEL extensions on Windows? There's only so much I can patch to help the compiler. These are all extensions that transitively depend on CEL:
|
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
/wait |
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
Signed-off-by: Kuat Yessenov <[email protected]>
@phlax coverage is restored, so I think this is ready to be merged - beware that abseil update will bust the build cache. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, thanks @kyessenov
@kyessenov anyone else seeing build failures on MacOS? Like #31760 (comment) I cleared Bazel and still hit this issue
|
I also run in to the same issue as @moderation. Any suggestions for fixing this? |
ensuring that versions - esp compiler version - match the envoy build env (ie container) is i think the only ~guaranteed way it will work |
@ramaraochavali I haven't found a way to fix this. At work building on RHEL 8 with As per @phlax's comment about only guaranteeing the build container version of I can still build on:
In addition to RHEL 8, MacOS latest fails for me using latest Sonoma and I suspect the issue is more complex than - "you are only guaranteed is using the build compiler version". I might be able to reconfigure my work environment to use I suspect that this change will break many people / platforms and we are just the tip of the spear. Before the changes causes multiple issues, maybe we should document that post Thoughts? |
i think that is a good idea - i have a feeling there are some docs somewhere that specify (almost certainly) incorrect versions - updating/collating dev docs is pretty high on my priority list fwiw what we definitely cannot do is say "you can build with any versions between i think its helpful for discussions/threads here on what does/not work especially wrt to release branches.
not sure tbh. i would guess that a lot of people use containers one way/other - personally i build my own with tooling etc that i use frequently. Ultimately its based on the official container as that has the authoritative list of host requirements.
we tried to get the build working with gcc 13, but it didnt work out of the box. I dont remember the specifics but my impression is that whatever issues were probably not so hard to resolve if someone spends some time doing it. cc @RyanTheOptimist
not sure this is correct - but again this is what the build image is for this image OS is not very current for glibc reasons, although it backports/installs compilers/extras as required. ultimately i think the solution is to make the build fully hermetic and not rely on any host utils. That is easier for llvm than gcc which is kinda the blocker to doing that i think this conversation probably warrants its own ticket - i think this is a general problem and is not really specific to @kyessenov 's PR. |
This reverts commit bd1dca3. Signed-off-by: Greg Greenway <[email protected]>
Commit Message: Update CEL CPP to latest, and abseil to 9/18/23. Abseil seems coupled with protobuf, so we'll have to update them together later.
Additional Description:
Risk Level: low
Testing: regression
Docs Changes: none
Release Notes: none
Fix #29731
Fix #27607