`tools/artifact_gen/metadata_for_wrapped_languages.cc` determines whether a header exports C API by matching file contents against regex `?:GPRAPI|GRPCAPI|CENSUSAPI)([^#;]*)`, and the headers later get included by `rb_grpc_imports.generated.h`. The C++ std utility `std::optional<>` end up breaking ruby distrib tests.
It seems like all pending PRs are affected. An example: https://btx.cloud.google.com/invocations/4caed1d7-19e0-4a59-9786-28a7ddb03051/targets
<!--
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.
-->
Closes#41407
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41407 from yuanweiz:fix_ruby 97f5c958e4275d07ec39c48c63590894ff8d2ea9
PiperOrigin-RevId: 856229588
This includes two major changes:
1. An additional credentials option `sni_override` with the type `optional<string>`. If `nullopt`, it has no effect, and if set to the empty string it disables sending SNI entirely. Otherwise, the specified string will be sent.
2. The implementation of [gRFC A101](https://github.com/grpc/proposal/blob/master/A101-SNI-setting-and-SNI-SAN-validation.md) using that new option. This includes options to set SNI and to validate SAN values against the set SNI value.
Closes#41051
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41051 from murgatroid99:xds_sni_support 6a1f8667dedc19947532720495b2932889236a12
PiperOrigin-RevId: 855765736
When a `std::multimap` has multiple entries with the same key, calling `m.find(key)` returns an unspecified element.
Historically, this returns the first matching element. However, this is not guaranteed, and recent libc++ changes make this return an arbitrary element.
Using `m.equal_range(key)` is a replacement that will preserve the current behavior. The behavior of this is guaranteed to return a range of all matching elements in insertion order, and the beginning of the range is the same element as what's normally returned by `m.find(key)`.
Closes#41279
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41279 from rupprecht:multimap-find 70b116441d03eff80523e010b25336f5a75c70c2
PiperOrigin-RevId: 852844558
Change was **not** created by the release automation script, because it doesn't handle a +2 version bump. See go/grpc-release
Closes#41291
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41291 from murgatroid99:v1.79.0-dev_bump 9a9bf54e5a891459390792dc9d547bdc17b7dd4d
PiperOrigin-RevId: 848168598
Pass a MemoryAllocator to the serialize function, so that the write memory can be allocated towards Resource Quota accounting. Add templates for SerializationTraits, to allow implementations to continue using an implementation of Serialize, which does not take the allocator as a parameter. This change is a no-op for now, because all the callers of Serialize pass nullptr for the allocator.
PiperOrigin-RevId: 826159627
gRPC is currently getting formatted with two different clang-format implementations, and due to some weirdness they have different include file orderings. This change introduces clang-format configuration to ensure that the two systems align - it's *highly* expected that this will need some maintenance going forward as the two systems evolve.
Closes#40905
PiperOrigin-RevId: 819606209
Change was created by the release automation script. See go/grpc-release.
Closes#40796
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40796 from sergiitk:bump_dev_version_202509291139 e7aa910253d1706a72822da986b8b8e7bc87931d
PiperOrigin-RevId: 812961524
<!--
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.
-->
Closes#39999
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39999 from anniefrchz:directpath-cont 286d985c9a294e02dadf87ca0f77d1e91a6eb65a
PiperOrigin-RevId: 810204628
Add Stream quota, to allow users to set server wide max_outstanding_streams, in addition to the per-connection limit.
Closes#39125
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39125 from siddharthnohria:max_outstanding_streams 32ae21514d5321a76b41b8445d16753a095914f8
PiperOrigin-RevId: 807985441
As title
Closes#40484
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40484 from apolcyn:bump_dev_version_202508191952 e788be57e9dc7f5e8316bee4baadec26fba3f6e6
PiperOrigin-RevId: 798331971
Roll forward #40321 with fixes relating to OpenSSL 1.0.2
This roll forward fixes two things broken by the original commit:
* OpenSSL 1.0.2 compatibility - `X509_up_ref` is not in 1.0.2, so `CRYPTO_add` is used along with compiler directives.
* The macOS tests flatten trust bundles, and two files in different directories were both named `ca.pem` in the new `spiffe_bundle_map_end2end_test.cc`. One was from the existing test that this new test file was modeled after and was not needed, so it was removed from the BUILD file resolving the double naming conflict.
Closes#40476
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40476 from gtcooke94:spiffe_roll_forward e30b7e4c1a873ff62565f557fac90e28225a3f56
PiperOrigin-RevId: 796537764
Change was created by the release automation script. See go/grpc-release.
Closes#40120
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40120 from veblush:bump_dev_version_202507041728 e403e80e566f334809e93e421d552d0b99076f68
PiperOrigin-RevId: 779336318
We'll use this for post-mortem debugging failed connections in a few workloads.
Closes#39788
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39788 from ctiller:cuuid bc15385cbea5a4eb6bd701203496a011d22e93d3
PiperOrigin-RevId: 771166125
Change was created by the release automation script. See go/grpc-release.
Closes#39614
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39614 from yashykt:bump_dev_version_202505211516 89b3566bfa45e56bc555a70f9a61832ba26274d5
PiperOrigin-RevId: 762218178
This rolls forward the Executor removal PR, with use-after-free fixes for the iomgr native resolver. See https://github.com/grpc/grpc/pull/39422 for the original landing
Closes#39578
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39578 from drfloob:fix20250515 df648f59a004e723e942773ec2030b14965d2d3c
PiperOrigin-RevId: 761119402
This removes the last remaining uses of the iomgr Executor, and replaces all references to it in the documentation.
Closes#39422
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39422 from drfloob:rm-executor 3ff8c54df71a009c48279c8442512ef9d98212c6
PiperOrigin-RevId: 758890190
Added temporary `GPR_DISABLE_ABSEIL_SYNC` to have a way to disable `GPR_ABSEIL_SYNC` for those who might have issues on Mac. This will be removed in the near future.
Closes#39562
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39562 from veblush:flag_disable_as 4ed0e378c1f1264dfa5eda8d63c7b2a11cf5838a
PiperOrigin-RevId: 758812301
Use C++ type traits to refine `FromNumber` to accept any arithmetic type instead of a pre-canned special set.
Allows us to avoid ambiguities on some platforms where (eg) size_t is special in ways that can't be expressed in the current overload scheme.
Closes#39350
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39350 from ctiller:jst 306ea577e1001d73ad1f7279d8752deca5fb3ef4
PiperOrigin-RevId: 750655367
Sketched out an approach to customizable write metrics we discussed last week
In a nutshell:
- endpoints can advertise a set of metrics they provide (in our discussions we used a Span here, I realized during implementation I'd like wrapped endpoints to be able to extend this set, and so using a vector instead)
- endpoints also supply name and id queries for said metrics
- users of the api can request a set of events to callback on, and a set of metrics they're interested in, and a callback will be made when those events are ready with the set of metrics requested
PiperOrigin-RevId: 748559193