Commit Graph

630 Commits

Author SHA1 Message Date
Eugene Ostroukhov 239399212a [BoringSSL] "Revert Update third_party/boringssl-with-bazel (#35842)" (#35847)
This reverts commit c968d1a56a.

Closes #35847

PiperOrigin-RevId: 605117622
2024-02-07 15:34:34 -08:00
Eugene Ostroukhov c968d1a56a [BoringSSL] Update third_party/boringssl-with-bazel (#35842)
Closes #35842

PiperOrigin-RevId: 605091673
2024-02-07 14:05:13 -08:00
Eugene Ostroukhov 038215b504 [BoringSSL] Revert "Update third_party/boringssl-with-bazel (#35811)" (#35834)
This reverts commit c2a2e8c09d.

Closes #35834

PiperOrigin-RevId: 604800979
2024-02-06 16:34:14 -08:00
Eugene Ostroukhov c2a2e8c09d [BoringSSL] Update third_party/boringssl-with-bazel (#35811)
Change was created by the release automation script. See go/grpc-release.

Closes #35811

PiperOrigin-RevId: 604701943
2024-02-06 11:02:39 -08:00
Esun Kim 7ad674ba04 [Build] Workaround for protobuf-at-head test (#35798)
- Updated `third_party/utf8_range` to 25.1 to be aligned with other protobuf (protobuf, upb, and utf8_range need to be updated at the same time as they're in the same github repo)
- Added a workaround to `extract_metadata_from_bazel_xml.py` to handle `utf8_range` migration. It used to be `@utf8_range//:utf8_range` and it will be `@com_google_protobuf//third_party/utf8_range:utf8_range` from the next Protobuf release. So the script needs this hack to support both.

Closes #35798

PiperOrigin-RevId: 603822623
2024-02-02 16:57:55 -08:00
Esun Kim 1f979d2a83 [BoringSSL] Update third_party/boringssl-with-bazel (#35768)
Change was created by the release automation script. See go/grpc-release.

On top of changes made by the script, `setup.py` had to be updated to have `/std:c11` option for MSVC to use c11 features for boringssl.

Closes #35768

PiperOrigin-RevId: 603403329
2024-02-01 10:06:33 -08:00
Esun Kim 714640d71f [Deps] Upgrade Abseil to 2024-01-16 (#35589)
Closes #35589

PiperOrigin-RevId: 601647295
2024-01-25 20:14:19 -08:00
Eugene Ostroukhov 2fc9dd1546 [build] Update `envoy-api` and `xds` dependencies (#35603)
Closes: #34966

Closes #35603

PiperOrigin-RevId: 600919492
2024-01-23 15:15:47 -08:00
Eugene Ostroukhov d3ae13e94c
[third_party] Update README.md (#35639) 2024-01-23 14:17:14 -08:00
Esun Kim f1254a78b3
[Doc] Update README.md to address upb issue (#34411)
Fixes https://github.com/grpc/grpc/issues/34405
2024-01-19 17:29:47 -08:00
Esun Kim fe75f2b5ff [GPR] Removed GPR_BACKWARDS_COMPATIBILITY_MODE (#35602)
`GPR_BACKWARDS_COMPATIBILITY_MODE` was devised to support old Linux kernel with old glibc but gRPC is now expected to support glibc 2.17 and later (2.17 is derived from the oldest but supported Linux distro, CentOS 7). Effectively, gRPC doesn't need `GPR_BACKWARDS_COMPATIBILITY_MODE` anymore. Hence, let's remove it.

gRPC Python and Ruby that distribute binary artifacts already began to use `manylinux` environment dealing with this issue in a better way so they don't need this flag anymore.

Closes #35602

PiperOrigin-RevId: 599895270
2024-01-19 12:48:26 -08:00
Richard Belleville 7e7b4fd1a4 Fix breakage when built against protobuf head (#34945)
This PR is required in order to upgrade to the `master` branch version of protobuf. To do this, we upgrade to the latest version of `rules_python` by:

- Adding in explicit dependencies on all PyPi Bazel test dependencies
  - Resolving the circular dependency this creates for `xds-protos` by giving it a Bazel build
    - Generating the Python code for `xds-protos` as part of `generate-projects.sh` since doing so directly in Bazel would be highly fragily, dependent on many other projects' Bazel builds

Closes #34945

PiperOrigin-RevId: 599875020
2024-01-19 12:43:14 -08:00
Chad Wilson 43d2b28e02 [ruby] Build/test ruby 3.3 and build native gems with Ruby 3.3 support (#35399)
Updates ruby-compiler-dock to 1.4.0 which brings Ruby 3.3 final support per https://github.com/rake-compiler/rake-compiler-dock/releases/tag/1.4.0 and starts cross-compiling for ruby 3.3.

I can't find obviously where the test infrastructure configuration is to run the tests under Ruby 3.3, so might need pointers or an accompanying PR for the test infra. (I note #31991 from @apolcyn so perhaps currently they are not run against newer versions)

Fixes #35396

- Backport to `1.60` is desirable since currently the Ruby gems cannot be installed with Ruby 3.3 and have to be built from source.

Closes #35399

PiperOrigin-RevId: 599200628
2024-01-17 09:37:18 -08:00
Esun Kim 594d370819 [Build] Prepared for Bazel 7 (#35374)
This is a prerequisite change to start supporting Bazel 7. Changes are

- Disabled bzlmod which Bazel 7 begins to enable by default. This eventually needs to be done to support bzlmod but not now.
- Upgraded some bazel rule dependencies which are required to support Bazel 7.
- Using Python 3 explcitly as Bazel 7 begins to reject Python 2.

Note that this isn't enough to enable Bazel 7 by default and another PR will follow for that.

Closes #35374

PiperOrigin-RevId: 592931675
2023-12-21 13:02:38 -08:00
Esun Kim 769b27479a [Deps] Update protobuf & upb to 3.25.1 (#35315)
On top of https://github.com/grpc/grpc/pull/35285, upb is also upgraded in this PR.

Closes #35315

PiperOrigin-RevId: 592672254
2023-12-20 15:29:31 -08:00
Esun Kim 9677ab7682 Updated zlib to 1.3 (#35147)
Closes #35147

PiperOrigin-RevId: 591028632
2023-12-14 13:12:45 -08:00
Adam Cozzette 016ed921ce
[deps] Upgrade protobuf version to v25.0 (#34513)
This commit upgrades gRPC to protobuf v25.0 and makes some fixes to
account for upb changes. One major change is that upb has been merged
into the protobuf repo, so we can now drop the separate `@upb`
dependency. Another is that `.upb.c` files no longer exist and there are
new `.upb_minitable.h` and `.upb_minitable.c` files. The longer
filenames exceeded a Windows restriction, so to work around that I
renamed the `upb-generated` directory to just `upb-gen`, and likewise
for `upbdefs-generated`.
2023-11-10 00:11:09 -08:00
apolcyn 36af323673
[ruby] create debug symbol packages (#34632)
Introduce `grpc-native-debug` gems containing debug symbol packages that
complement the shared libraries shipped in pre-compiled binary gems.

src/ruby/nativedebug/README.md has details on usage.
2023-10-17 10:45:08 -07:00
Eugene Ostroukhov 4d61e4d59e
[test] Update gTest (#34629)
gTest added some minor improvements around output since it was last
imported. I suggest we update the version.
2023-10-12 16:47:38 -07:00
Esun Kim f01e6b7dee
[Deps] Fully vendored upb again (#34508)
Temporary gRPC is vendoing upb again until upb has a cmake support.
(Rollback of #34199)
2023-09-27 14:15:13 -07:00
Mark D. Roth 69f625c27c
[xDS protos] update to get new fields for dualstack endpoints (#34491) 2023-09-27 09:06:36 -07:00
Esun Kim 82c39092ff
[Deps] Bumped the protobuf commit to b2b7a511 (#34330)
This is to have https://github.com/protocolbuffers/protobuf/pull/14054
which is required to make abseil-at-head test pass.
2023-09-12 17:05:18 -07:00
Esun Kim 91a7dbb44b
[Deps] Updated protobuf to 24.3 + layout fix (#34322)
Updating Protobuf & upb to 24.3 (the latest at this point) and having
https://github.com/protocolbuffers/protobuf/pull/14042
2023-09-12 11:08:09 -07:00
Jan Tattermusch 0991b86619
[protobuf dependency] Remove dangling protobuf2.patch file (#34252)
The patch was stopped being used in
https://github.com/grpc/grpc/pull/32914/files#diff-71613c5804416c5789b4eca93269d89a16bb45071456c8212bb4851fbfcd4851L265
and is not referenced from anywhere.
2023-09-05 08:26:59 -07:00
Jan Tattermusch dc635afc61
[bazel rbe] Update RBE windows docker image (and move it to GAR) (#34229)
- Update to windows RBE docker image, followed by subsequent regenerate
of win RBE toolchain (basically verifying that the README.md for windows
RBE toolchain works well)
- Also move windows docker image from GCR to GAR (which is where our
other testing images already live).
- (cleanup) Move windows RBE docker image to a better location in our
repo.

This PR should be sufficient to demonstrate how we would go about
upgrading the windows RBE build to VS2022 once needed.
2023-09-01 19:10:43 +02:00
Jan Tattermusch eae3082829
[RBE windows] Use bazel 6.3.2 on windows RBE (after regenerating toolchain) (#34216)
- Upgrade windows RBE builds to bazel 6.3.2 (supersedes
https://github.com/grpc/grpc/pull/33880). To be able to do that, the RBE
toolchain needed to be regenerated and
- Also added "--dynamic_mode=off" option for windows build since it
seemed necessary for bazel 6.x builds to pass.
- Wrote instructions for generating windows RBE toolchain using the
`rbe_configs_gen` tool (the original windows RBE toolchain was out of
data and also it was generated by a custom script from
go/rbe-windows-user-guide - using a standard tool is better)
- Wrote instructions for rebuilding the windows RBE docker image.

This addresses the problem where windows RBE is stuck on bazel 5.x
(unlike the rest of the repository) and also documents the steps for
making changes to the RBE docker image (e.g. upgrading the visual studio
version used by RBE).

Since we were planning on adding testing for VS2022 (for which we don't
have any test ATM), this will definitely come handy. With the
documentation the process should now be relatively straightforward.
2023-09-01 10:35:15 +02:00
Esun Kim f6a994229e
[Deps] Adding upb as a submodule (#34199)
Let's make it as a regular dependency like others. So gRPC is now
unvendoring it first. Project generation part will be followed later.
2023-08-29 13:00:29 -07:00
Esun Kim 1a1124903c
[Deps] Upgrade Protobuf and Upb to 24.x (#34123)
On top of https://github.com/grpc/grpc/pull/34120
2023-08-29 10:58:48 -07:00
Esun Kim 650c2ea492
[Deps] Update boringssl 202308211007 (#34115)
Part of gRPC release
2023-08-21 15:26:07 -07:00
Jan Tattermusch 1162aa888a
[bazel rbe] Remove the need to mirror RBE linux docker image in gcr.io (#34036)
- Remove no-longer-needed workaround for b/275571385 (and switch back to
using docker image from GAR)
- regenerate RBE linux toolchain for bazel 6.1.2 while at it.
2023-08-17 12:35:58 -07:00
Jan Tattermusch a8508ec465
[build metadata] Bazel to "other build systems" improvements (#33803)
- Extract build metadata for some external dependencies from bazel
build. This is achieved by letting extract_metadata_from_bazel_xml.py
analyze some external libraries and sources. The logic is basically the
same as for internal libraries, I only needed to teach
extract_metadata_from_bazel_xml.py which external libraries it is
allowed to analyze.
* currently, the list of source files is automatically determined for
`z`, `upb`, `re2` and `gtest` dependencies (at least for the case where
we're building in "embedded" mode - e.g. mostly native extensions for
python, php, ruby etc. - cmake has the ability to replace some of these
dependencies by actual cmake dependency.)
- Eliminate the need for manually written gen_build_yaml.py for some
dependencies.
- Make the info on target dependencies in build_autogenerated.yaml more
accurate and complete. Until now, there were some depdendencies that
were allowed to show up in build_autogenerated.yaml and some that were
being skipped. This made generating the CMakeLists.txt and Makefile
quite confusing (since some dependencies are being explicitly mentioned
and some had to be assumed by the build system).
- Overhaul the Makefile
* the Makefile is currently only used internally (e.g. for ruby and PHP
builds)
* until now, the makefile wasn't really using the info about which
targets depend on what libraries, but it was effectively hardcoding the
depedendency data (by magically "knowing" what is the list of all the
stuff that e.g. "grpc" depends on).
* After the overhaul, the Makefile.template now actually looks at the
library dependencies and uses them when generating the makefile. This
gives a more correct and easier to maintain makefile.
* since csharp is no longer on the master branch, remove all mentions of
"csharp" targets in the Makefile.

Other notable changes:
- make extract_metadata_from_bazel_xml.py capable of resolving workspace
bind() rules (so that it knows the real name of the target that is
referred to as e.g. `//external:xyz`)

TODO:
- [DONE] ~~pkgconfig C++ distribtest~~
- [DONE} ~~update third_party/README to reflect changes in how some deps
get updated now.~~


Planned followups:
- cleanup naming of some targets in build metadata and buildsystem
templates: libssl vs boringssl, ares vs cares etc.
- further cleanup of Makefile
- further cleanup of CMakeLists.txt
- remote the need from manually hardcoding extra metadata for targets in
build_autogenerated.yaml. Either add logic that determines the
properties of targets automatically, or use metadata from bazel BUILD.
2023-08-16 19:13:39 +02:00
Yijie Ma e04128ad1d
[Deps] Update abseil to 20230802 (#33974)
<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-08-11 15:29:24 -07:00
Richard Belleville 498fc99479
[packaging] Publish xds-protos as part of the standard package pipeline (#33797)
This PR:

- Fixes the xds-protos Python package, which was broken when the `udpa`
submodule was removed
  - This required re-adding the protoc-gen-validate submodule
- Adds non-Bazel tests for xds-protos and all of its dependent packages
- Versions xds-protos the same way as the rest of the Python packages
- Fixes Python 3.11 support in `run_tests.py`, which is necessary for
the testing mentioned above


CC @sergiitk You won't be able to consume this in the interop tests
until it makes it into a release. I'm thinking I'll want to backport
this to the 1.57.x branch to make that happen faster.

CC @drfloob to inform him about the likely backport.
2023-07-25 16:41:02 -07:00
AJ Heller 2c81c5619e
[deps] Remove libuv dependency (#33748) 2023-07-19 10:56:11 -07:00
AJ Heller 107e4dc0b6
[deps] Upgrade google/benchmark dependency (#33736)
Some command line arguments have changed, and the public docs no longer
describe how to use the 1-year-old version.
2023-07-17 15:45:57 -07:00
AJ Heller c81bdf7a83
[Protobuf] Upgrade third_party/protobuf to 23.4 (#33695)
This was done manually due to a problem with
`tools/distrib/python/make_grpcio_tools.py`. ~I fixed it in this PR
(depends on cl/547979185), so there is a fair chance this upgrade will
work normally for the next release.~ The fix may be problematic for
upgrading protobuf on older release branches, so the improvement will be
worked on separately. CC @jtattermusch

This also updates the UPB dep to the latest commit on the 23.x branch.
2023-07-14 12:04:40 -07:00
AJ Heller 5e3fe08f37
[BoringSSL] Update third_party/boringssl-with-bazel (#33690)
Change was created by the release automation script. See go/grpc-release
2023-07-13 15:38:12 -07:00
alto-ruby 059144abd6
[Ruby] add aarch64 linux build (#33079)
This adds pre-built library for aarch64 linux, will help improve the
install speed and avoid building environment issues at customer side.

@apolcyn @jtattermusch Can you help build and push the new rake compiler
image?
Will update the tag and hash after the image is available

Manually tested locally:
```
uname -a
Linux u20 5.15.49-linuxkit #1 SMP PREEMPT Tue Sep 13 07:51:32 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
```
```
time gem install /work/ruby/grpc/pkg/grpc-1.56.0.dev-aarch64-linux.gem
Successfully installed grpc-1.56.0.dev-aarch64-linux
Parsing documentation for grpc-1.56.0.dev-aarch64-linux
Installing ri documentation for grpc-1.56.0.dev-aarch64-linux
Done installing documentation for grpc after 0 seconds
1 gem installed

real	0m22.794s
user	0m17.268s
sys	0m5.156s
```
```
ruby greeter_server.rb &
[1] 319
ruby greeter_client.rb
"Greeting: Hello world"
```

Fixes:
https://github.com/grpc/grpc/issues/31855
https://github.com/grpc/grpc/issues/29489
2023-06-25 13:00:40 -07:00
Eugene Ostroukhov 297db35a58
[third_party] update @envoy-api (#33539)
Updates to head, required to support xDS configuration for the
pick-first
2023-06-23 15:38:33 -07:00
apolcyn 017786f151
[c-ares] Upgrade c-ares dependency to 1.19.1 (#33392)
WIP
2023-06-12 13:38:20 -07:00
Yousuk Seung c03cd744b2
[WRR] Prefer application_utilization to cpu_utilization (#33355)
<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-06-07 17:38:29 -07:00
Esun Kim a3dae00f89
[Deps] Upgrade Protobuf to v23.1 (#33164)
Along with the required Abseil & upb upgrade.
2023-05-18 14:46:59 -07:00
Yijie Ma 004ddbea90
[BoringSSL] Update third_party/boringssl-with-bazel (#33150)
Change was created by the release automation script. See go/grpc-release
2023-05-17 09:20:54 -07:00
Esun Kim dc95133140
[Deps] Upgrade Protobuf v23 (#32914)
Upgrading Protobuf and Upb to v23.0
2023-05-09 12:24:21 -07:00
Yousuk Seung 8b02295e58
[xDS] Accept cpu_utilization over 100% (#32954)
<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-05-02 03:25:17 +00:00
Jan Tattermusch 30b3d5061a
[test-infra] Switch RBE linux build to a new custom image rbe_ubuntu2004. (#32748)
- Add a new docker image "rbe_ubuntu2004" that is built in a way that's
analogous to how our other testing docker images are built (this gives
us control over what exactly is contained in the docker image and
ability to fine-tune our RBE configuration)
- Switch RBE on linux to the new image (which gives us ubuntu20.04-based
builds)

For some reason, RBE seems to have trouble pulling the docker image from
Google Artifact Registry (GAR), which is where our public testing images
normally live, so for now, I used a workaround and I upload a copy of
the rbe_ubuntu2004 docker image to GCR as well, and that makes RBE works
just fine (see comment in the `renerate_linux_rbe_configs.sh` script).

More followup items (config cleanup, getting local sanitizer builds
working etc.) are in go/grpc-rbe-tech-debt-2023
2023-05-01 11:47:27 -07:00
Esun Kim 81b9779d6d
[Doc] Wake-up Copybara (#32969)
Plz
2023-04-28 09:39:14 -07:00
Yash Tibrewal b454d2d474
[BoringSSL] Update third_party/boringssl-with-bazel (#32868)
Change was created by the release automation script. See go/grpc-release
2023-04-14 10:41:08 -07:00
Jan Tattermusch 0f1afec5a8
[protobuf] Upgrade third_party/protobuf to 22.x (#32606)
The very non-trivial upgrade of third_party/protobuf to 22.x
This PR strives to be as small as possible and many changes that were
compatible with protobuf 21.x and didn't have to be merged atomically
with the upgrade were already merged.
Due to the complexity of the upgrade, this PR wasn't created
automatically by a tool, but manually. Subsequent upgraded of
third_party/protobuf with our OSS release script should work again once
this change is merged.

This is best reviewed commit-by-commit, I tried to group changes in
logical areas.

Notable changes:
- the upgrade of third_party/protobuf submodule, the bazel protobuf
dependency itself
- upgrade of UPB dependency to 22.x (in the past, we used to always
upgrade upb to "main", but upb now has release branch as well). UPB
needs to be upgraded atomically with protobuf since there's a de-facto
circular dependency (new protobuf depends on new upb, which depends on
new protobuf for codegen).
- some protobuf and upb bazel rules are now aliases, so `
extract_metadata_from_bazel_xml.py` and `gen_upb_api_from_bazel_xml.py`
had to be modified to be able to follow aliases and reach the actual
aliased targets.
- some protobuf public headers were renamed, so especially
`src/compiler` needed to be updated to use the new headers.
- protobuf and upb now both depend on utf8_range project, so since we
bundle upb with grpc in some languages, we now have to bundle utf8_range
as well (hence changes in build for python, PHP, objC, cmake etc).
- protoc now depends on absl and utf8_range (previously protobuf had
absl dependency, but not for the codegen part), so python's
make_grpcio_tools.py required partial rewrite to be able to handle those
dependencies in the grpcio_tools build.
- many updates and fixes required for C++ distribtests (currently they
all pass, but we'll probably need to follow up, make protobuf's and
grpc's handling of dependencies more aligned and revisit the
distribtests)
- bunch of other changes mostly due to overhaul of protobuf's and upb's
internal build layout.

TODOs:
- [DONE] make sure IWYU and clang_tidy_code pass
- create a list of followups (e.g. work to reenable the few tests I had
to disable and to remove workaround I had to use)
- [DONE in cl/523706129] figure out problem(s) with internal import

---------

Co-authored-by: Craig Tiller <ctiller@google.com>
2023-04-12 18:43:58 +02:00
Luwei Ge 15ef046440
[third_party] update envoy-api dependency (#32807)
update to main commit 68d4315167352ffac71f149a43b8088397d3f33d

This is to include the latest RBAC related change
(https://github.com/envoyproxy/envoy/pull/26415) for audit logging.

I intentionally did not run steps in
https://github.com/grpc/grpc/tree/master/third_party#updating-third_partyenvoy-api
because I saw some earlier changes also didn't do that and this
envoy-api change isn't going to be needed in Python any time soon.
2023-04-06 06:47:50 -07:00