-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Update Guava to 28.1 #10394
Update Guava to 28.1 #10394
Conversation
d6b5815
to
f2ae768
Compare
@ahumesky and @jin - it looks like updating to modern Guava will require updating or patching What would you recommend as the least bad way to update the jar? Or maybe we can just patch it? |
(as discussed offline, the simplest way to patch this) |
@tetromino Are you moving forward with this? |
@tetromino ping |
I'm working on this at the moment. Sorry for the delay. (In other news, rebuilding old android_common jars is unnecessarily difficult.) |
0bba344
to
1b2411a
Compare
As a followup to the bundled Guava update in bazelbuild#10394 Due to historical repo/testing infrastructure setup, we could not update non-third_party/* sources in the same PR as third_party/* jars. This will be followed up by another PR removing old Guava 25.1 jars. RELNOTES: None.
@jin @ahumesky - ready for review (buildkite/bazel-bazel-github-presubmit/rbe-ubuntu-16-dot-04-openjdk-8 is timing out for reasons unrelated to this PR: the The follow-up update to scripts/bootstrap/compile.sh is in tetromino@7750ea9 (will make a PR from it once this one is committed). |
Friendly review ping |
… modern Guava com.android.tools_sdk-common_25.0.0.jar (and the stripped variant derived from it) were built, afaict, against Guava version ~ 17. In the years since, Guava removed several symbols used by the sdk-common jar, which thus blocks updating Bazel to a more modern Guava version. To fix, we have to patch the jar (and it stripped variant), which involved a small exercize in software archaeology; the exact steps are documented in third_party/android_common/README.md. The patched jars should work with Guava 25.1 - 29.0. RELNOTES: None.
To allow us to start using Duration with com.google.common.util.concurrent; note that com.google.common.util.concurrent.internal.InternalFutureFailureAccess - which we do use - has been split out into a separate jar by Guava upstream. Due to historical repo/testing infrastructure setup, we cannot update third_party jars in the same PR as non-third_party sources. We therefore have to keep the old Guava 25.1 jars to allow scripts/bootstrap/compile.sh (which explicitly references version 25.1) to continue to run, and to allow //src/test/shell/bazel:bazel_bootstrap_distfile_test to continue to pass. As an immediate followup to this PR, we will have to 1. update compile.sh to use Guava 29.0 (and the new failureaccess jar); and 2. remove Guava 25.1 jars. RELNOTES: None.
Rebased since the rbe-ubuntu-16-dot-04-openjdk-8 buildkite failure was worked around by 1a528c8 |
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, and sorry again for the delay.
Sorry for the delay, I'm merge this PR now! |
Thank you, Yun! And sorry @ahumesky @tetromino, usually we don't need that long.. 😞 I'll check our processes for this and will see how we can ensure that this doesn't happen again. |
To allow us to start using Duration with com.google.common.util.concurrent.