Compare commits

...

21 Commits

Author SHA1 Message Date
Sergii Tkachenko f12de7c468
[PSM Interop] Simplify PSM Interop Kokoro buildscripts (v1.61.x backport) (#36534)
Backport of #36450 to v1.61.x.
---
Integrates the new features of the the Kokoro PSM Interop install
library introduced in grpc/psm-interop#73.

Nearly all common functionality was moved from per-language/per-branch
PSM Interop build scripts to
[psm_interop_kokoro_lib.sh](https://github.com/grpc/psm-interop/blob/main/.kokoro/psm_interop_kokoro_lib.sh):
1. The list of tests in the each test suite 
2. Per-test-suite flag customization
3. `run_test` methods
4. `build_docker_images_if_needed` methods
5. Generic `build_test_app_docker_images` methods (simple docker build +
docker push + docker tag). grpc-java is one exception, as it doesn't run
docker directly, but a cloudbuild flow.

Now all PSM Interop jobs share the same buildscripts by all test suites:
1. buildscript that invokes the test: `psm-interop-test-{language}.sh`
(configured as `build_file` in the build cfg)
2. buildscript that builds the xDS test client/server and publishes them
as a Docker image: `psm-interop-build-{language}.sh` (conventional name
called from `psm_interop_kokoro_lib.sh`)

`psm-interop-test-{language}.sh`:
1. Sets `GRPC_LANGUAGE`, `BUILD_SCRIPT_DIR` environment variables.
2. Downloads the shared `psm_interop_kokoro_lib.sh` from the main branch
of the psm-interop repo.
3. Sources `psm-interop-build-{language}.sh`
4. Calls `psm::run "${PSM_TEST_SUITE}"` (`PSM_TEST_SUITE` configured in
the cfg file).

`psm-interop-build-{language}.sh`:
1. Defines `psm::lang::build_docker_images` which is called from
`psm_interop_kokoro_lib.sh`.
2. Invokes any repo-specific logic.
3. May use `psm::build::docker_images_generic` for generic Docker build,
tag, push, or provide implement its own build/publish method.

References:
- b/288578634
- See the full list of the new features at grpc/psm-interop#73.
- Additional fixes to the shared lib: grpc/psm-interop#78,
grpc/psm-interop#79
2024-05-06 15:15:43 -07:00
Sergii Tkachenko 3d3468d9e5
[PSM Interop] Migrate to Artifact Registry (v1.61.x backport) (#36312)
Backport of #36273 to v1.61.x.
---
Migrate PSM Interop images from Container Registry (gcr.io) to Artifact
Registry (pkg.dev).
2024-04-09 14:02:53 -07:00
Stanley Cheung c487a30994
[Release] Bump version to 1.61.2 (on v1.61.x branch) (#36082)
Change was created by the release automation script. See
go/grpc-release.
2024-03-08 13:49:40 -08:00
AJ Heller 36de3ffc28
[EventEngine] rm invalid assert (#35953) (#36068)
Backports https://github.com/grpc/grpc/pull/35953 to v1.61.x

----

In the case where the timer delay is <= 0, RunAfter will return an
invalid handle since the callback will not be cancellable. The asserting
is invalid in this case. Based on how this handle is used, it seems
there is no need for a check that the handle is set. It would only
matter if `finish_bdp_ping` were called again before
`next_bdp_ping_timer_expired` were called, which I don't think is
possible.
2024-03-07 10:48:12 -08:00
Hannah Shi c214da38f7
[ObjC] Upgrade abseil 1.20230802.2 to 1.61.x (#35910)
To include privacy manifests.

---
Waiting for absel podspec to be pushed to cocoapods
2024-02-15 14:30:34 -08:00
Esun Kim 5174569c4d
[Release] Bump version to 1.61.1 (on v1.61.x branch) (#35888)
Change was created by the release automation script. See go/grpc-release
2024-02-12 15:52:29 -08:00
Esun Kim 1bfe088d1b
[Backport] Fix Abseil-usage (#35590) (#35883)
Backport of https://github.com/grpc/grpc/pull/35589
2024-02-12 15:23:40 -08:00
Xuan Wang 77e01078fd
[Python Distribution] Add a check for file size (v1.61.x backport) (#35878)
Backport of #35831 to v1.61.x.
---
Add a step in distribution test which checks if any of the artifacts
exceeds 80 MB since Pypi has a per-file size limit.

<!--

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.

-->
2024-02-09 12:04:13 -08:00
Richard Belleville ebe2f924f9
[Build] Backport #35832 to v1.60 (Strip armv7 artifacts) (#35876)
Strip armv7 artifacts
2024-02-09 11:46:25 -08:00
Hannah Shi b330d6bf23
[ObjC] Backport Privacy manifests 1.61.x (#35771)
Backport #35542 and #35616 for 1.61.x release

---------

Co-authored-by: Nick Cooke <nickcooke@google.com>
2024-01-31 15:51:02 -08:00
Stanley Cheung a13178cb25
[Release] Bump version to 1.61.0 (on v1.61.x branch) (#35760)
Change was created by the release automation script. See
go/grpc-release.
2024-01-30 19:20:40 -08:00
Hannah Shi 2c9c4dac9d
[ObjC] Update swift package for 1.61.x release (#35690)
Backport #35686 for 1.61.0 release
2024-01-29 17:15:57 -08:00
Stanley Cheung f4fd20cd36
[Release] Bump version to 1.61.0-pre3 (on v1.61.x branch) (#35677)
Change was created by the release automation script. See
go/grpc-release.
2024-01-25 19:32:06 -08:00
Yash Tibrewal dfa07e7b08
[otel] Backport: Return absl::Status as a return from BuildAndRegisterGlobal (#35659) (#35672)
Just to be future-proof, I'm amending the `void` return status of
`BuildAndRegisterGlobal` in `OpenTelemetryPluginBuilder` to
absl::Status.
2024-01-25 16:45:45 -08:00
Yash Tibrewal 972adc528e
[CSM o11y] Backport: Re-experimentalize CSM OTel Plugin Option (#35660) (#35670)
We are no longer sure about this API, so re-experimentalizing it.
2024-01-25 15:46:19 -08:00
Yijie Ma 6d6bd8d0e7
[CSM O11Y] Backport "[CSM O11Y] Fix issue when CSM optional labels are present in server metrics" to v1.61.x (#35646)
Backport
16b71d91d8
to v1.61.x.




<!--

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.

-->
2024-01-23 17:21:32 -08:00
Stanley Cheung 3f3109afa9
[Release] Bump version to 1.61.0-pre2 (on v1.61.x branch) (#35626)
Change was created by the release automation script. See
go/grpc-release.

A few Ruby fixes added to `v1.61.x` branch after the `-pre1` cut.
2024-01-22 20:01:02 -08:00
apolcyn 7ba33a4272
[ruby] backport "Build/test ruby 3.3 and build native gems with Ruby 3.3 support (#35399)" (#35614)
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




<!--

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.

-->

Co-authored-by: Chad Wilson <chadw@thoughtworks.com>
2024-01-19 15:30:08 -08:00
apolcyn 3ce4476905
[ruby] backport "Fix use-after-free for post-fork channel recreation (#35488)" (#35613)
The `grpc_channel_args` is retained on the Ruby object and used for
recreating the channel after forking in
grpc_rb_channel_maybe_recreate_channel_after_fork(). Previously, the key
for each argument was taken from a Ruby string directly, which could be
invalidated if the Ruby string is modified or moved by the GC. Duplicate
the string for the key instead, so we own it.

Reproducer in https://github.com/grpc/grpc/issues/35489

<!--

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 #35488

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35488 from
Shopify:key-uaf c1813cee01
PiperOrigin-RevId: 599304551




<!--

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.

-->

Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
2024-01-19 13:40:08 -08:00
Stanley Cheung 8e92b0a8b8
[Release] Bump version to 1.61.0-pre1 (on v1.61.x branch) (#35582)
Change was created by the release automation script. See
go/grpc-release.
2024-01-17 13:08:13 -08:00
Stanley Cheung 0538643ffe
Set experiments to false in v1.61.x branch (#35569)
The release process requires all experiments to be set to either `true`
or `false`, not `debug`.
2024-01-16 15:10:41 -08:00
125 changed files with 599 additions and 1438 deletions

2
BUILD
View File

@ -215,7 +215,7 @@ g_stands_for = "grand" # @unused
core_version = "38.0.0" # @unused
version = "1.61.0-dev" # @unused
version = "1.61.2" # @unused
GPR_PUBLIC_HDRS = [
"include/grpc/support/alloc.h",

4
CMakeLists.txt generated
View File

@ -25,10 +25,10 @@
cmake_minimum_required(VERSION 3.8)
set(PACKAGE_NAME "grpc")
set(PACKAGE_VERSION "1.61.0-dev")
set(PACKAGE_VERSION "1.61.2")
set(gRPC_CORE_VERSION "38.0.0")
set(gRPC_CORE_SOVERSION "38")
set(gRPC_CPP_VERSION "1.61.0-dev")
set(gRPC_CPP_VERSION "1.61.2")
set(gRPC_CPP_SOVERSION "1.61")
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")

2
Makefile generated
View File

@ -411,7 +411,7 @@ Q = @
endif
CORE_VERSION = 38.0.0
CPP_VERSION = 1.61.0-dev
CPP_VERSION = 1.61.2
CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)

45
Package.swift generated
View File

@ -23,7 +23,7 @@ let package = Package(
],
dependencies: [
.package(url: "https://github.com/firebase/abseil-cpp-SwiftPM.git", "0.20220623.0"..<"0.20220624.0"),
.package(url: "https://github.com/firebase/abseil-cpp-SwiftPM.git", "0.20230802.0"..<"0.20230803.0"),
.package(url: "https://github.com/firebase/boringssl-SwiftPM.git", "0.9.0"..<"0.10.0"),
],
@ -2026,11 +2026,16 @@ let package = Package(
"third_party/re2/util/utf.h",
"third_party/re2/util/util.h",
"third_party/upb/upb/base/descriptor_constants.h",
"third_party/upb/upb/base/internal/log2.h",
"third_party/upb/upb/base/status.c",
"third_party/upb/upb/base/status.h",
"third_party/upb/upb/base/status.hpp",
"third_party/upb/upb/base/string_view.h",
"third_party/upb/upb/generated_code_support.h",
"third_party/upb/upb/hash/common.c",
"third_party/upb/upb/hash/common.h",
"third_party/upb/upb/hash/int_table.h",
"third_party/upb/upb/hash/str_table.h",
"third_party/upb/upb/json/decode.c",
"third_party/upb/upb/json/decode.h",
"third_party/upb/upb/json/encode.c",
@ -2051,7 +2056,25 @@ let package = Package(
"third_party/upb/upb/mem/internal/arena.h",
"third_party/upb/upb/message/accessors.c",
"third_party/upb/upb/message/accessors.h",
"third_party/upb/upb/message/array.c",
"third_party/upb/upb/message/array.h",
"third_party/upb/upb/message/internal/accessors.h",
"third_party/upb/upb/message/internal/array.h",
"third_party/upb/upb/message/internal/extension.h",
"third_party/upb/upb/message/internal/map.h",
"third_party/upb/upb/message/internal/map_entry.h",
"third_party/upb/upb/message/internal/map_sorter.h",
"third_party/upb/upb/message/internal/message.h",
"third_party/upb/upb/message/internal/types.h",
"third_party/upb/upb/message/map.c",
"third_party/upb/upb/message/map.h",
"third_party/upb/upb/message/map_gencode_util.h",
"third_party/upb/upb/message/map_sorter.c",
"third_party/upb/upb/message/message.c",
"third_party/upb/upb/message/message.h",
"third_party/upb/upb/message/tagged_ptr.h",
"third_party/upb/upb/message/types.h",
"third_party/upb/upb/message/value.h",
"third_party/upb/upb/mini_descriptor/build_enum.c",
"third_party/upb/upb/mini_descriptor/build_enum.h",
"third_party/upb/upb/mini_descriptor/decode.c",
@ -2066,6 +2089,22 @@ let package = Package(
"third_party/upb/upb/mini_descriptor/internal/wire_constants.h",
"third_party/upb/upb/mini_descriptor/link.c",
"third_party/upb/upb/mini_descriptor/link.h",
"third_party/upb/upb/mini_table/enum.h",
"third_party/upb/upb/mini_table/extension.h",
"third_party/upb/upb/mini_table/extension_registry.c",
"third_party/upb/upb/mini_table/extension_registry.h",
"third_party/upb/upb/mini_table/field.h",
"third_party/upb/upb/mini_table/file.h",
"third_party/upb/upb/mini_table/internal/enum.h",
"third_party/upb/upb/mini_table/internal/extension.h",
"third_party/upb/upb/mini_table/internal/field.h",
"third_party/upb/upb/mini_table/internal/file.h",
"third_party/upb/upb/mini_table/internal/message.c",
"third_party/upb/upb/mini_table/internal/message.h",
"third_party/upb/upb/mini_table/internal/sub.h",
"third_party/upb/upb/mini_table/message.c",
"third_party/upb/upb/mini_table/message.h",
"third_party/upb/upb/mini_table/sub.h",
"third_party/upb/upb/port/atomic.h",
"third_party/upb/upb/port/def.inc",
"third_party/upb/upb/port/undef.inc",
@ -2142,10 +2181,10 @@ let package = Package(
"third_party/utf8_range/utf8_range.h",
"third_party/xxhash/xxhash.h",
],
publicHeadersPath: "spm-core-include",
resources: [
.copy("src/objective-c/PrivacyInfo.xcprivacy"),
],
publicHeadersPath: "spm-core-include",
cSettings: [
.headerSearchPath("./"),
.headerSearchPath("include/"),
@ -2191,10 +2230,10 @@ let package = Package(
sources: [
"src/cpp/",
],
publicHeadersPath: "spm-cpp-include",
resources: [
.copy("src/objective-c/PrivacyInfo.xcprivacy"),
],
publicHeadersPath: "spm-cpp-include",
cSettings: [
.headerSearchPath("./"),
.headerSearchPath("include/"),

View File

@ -144,7 +144,7 @@ task 'gem:native', [:plat] do |t, args|
verbose = ENV['V'] || '0'
grpc_config = ENV['GRPC_CONFIG'] || 'opt'
ruby_cc_versions = ['3.2.0', '3.1.0', '3.0.0', '2.7.0'].join(':')
ruby_cc_versions = ['3.3.0', '3.2.0', '3.1.0', '3.0.0', '2.7.0'].join(':')
selected_plat = "#{args[:plat]}"
# use env variable to set artifact build paralellism

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/_metadata.py.template`!!!
__version__ = """1.61.0.dev0"""
__version__ = """1.61.2"""

View File

@ -16,7 +16,7 @@ settings:
csharp_major_version: 2
g_stands_for: grand
protobuf_version: 3.25.1
version: 1.61.0-dev
version: 1.61.2
configs:
asan:
CC: clang
@ -209,6 +209,7 @@ swift_package:
- gpr
- upb_base_lib
- upb_mem_lib
- upb_message_lib
- upb_json_lib
- upb_textformat_lib
- utf8_range_lib

2
config.m4 generated
View File

@ -1356,7 +1356,7 @@ if test "$PHP_GRPC" != "no"; then
-D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 \
-DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 \
-DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' \
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.61.0dev\""')
-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"1.61.2\""')
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/backend_metrics)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/filters/census)

View File

@ -60,4 +60,4 @@
- 1.58 'g' stands for ['goku'](https://github.com/grpc/grpc/tree/v1.58.x)
- 1.59 'g' stands for ['generative'](https://github.com/grpc/grpc/tree/v1.59.x)
- 1.60 'g' stands for ['gjallarhorn'](https://github.com/grpc/grpc/tree/v1.60.x)
- 1.61 'g' stands for ['grand'](https://github.com/grpc/grpc/tree/master)
- 1.61 'g' stands for ['grand'](https://github.com/grpc/grpc/tree/v1.61.x)

14
gRPC-C++.podspec generated
View File

@ -22,7 +22,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-C++'
# TODO (mxyan): use version that match gRPC version when pod is stabilized
version = '1.61.0-dev'
version = '1.61.2'
s.version = version
s.summary = 'gRPC C++ library'
s.homepage = 'https://grpc.io'
@ -80,6 +80,14 @@ Pod::Spec.new do |s|
s.header_mappings_dir = 'include/grpcpp'
# Exposes the privacy manifest. Depended on by any subspecs containing
# non-interface files.
s.subspec 'Privacy' do |ss|
ss.resource_bundles = {
s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
}
end
s.subspec 'Interface' do |ss|
ss.header_mappings_dir = 'include/grpcpp'
@ -214,9 +222,10 @@ Pod::Spec.new do |s|
s.subspec 'Implementation' do |ss|
ss.header_mappings_dir = '.'
ss.dependency "#{s.name}/Privacy", version
ss.dependency "#{s.name}/Interface", version
ss.dependency 'gRPC-Core', version
abseil_version = '1.20230802.0'
abseil_version = '1.20230802.2'
ss.dependency 'abseil/algorithm/container', abseil_version
ss.dependency 'abseil/base/base', abseil_version
ss.dependency 'abseil/base/core_headers', abseil_version
@ -2729,6 +2738,7 @@ Pod::Spec.new do |s|
ss.header_mappings_dir = '.'
ss.dependency "#{s.name}/Cronet-Interface", version
ss.dependency "#{s.name}/Implementation", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'gRPC-Core/Cronet-Implementation', version

14
gRPC-Core.podspec generated
View File

@ -21,7 +21,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-Core'
version = '1.61.0-dev'
version = '1.61.2'
s.version = version
s.summary = 'Core cross-platform gRPC library, written in C'
s.homepage = 'https://grpc.io'
@ -46,7 +46,7 @@ Pod::Spec.new do |s|
s.requires_arc = false
name = 'grpc'
abseil_version = '1.20230802.0'
abseil_version = '1.20230802.2'
# When creating a dynamic framework, name it grpc.framework instead of gRPC-Core.framework.
# This lets users write their includes like `#include <grpc/grpc.h>` as opposed to `#include
@ -94,6 +94,14 @@ Pod::Spec.new do |s|
s.compiler_flags = '-DGRPC_ARES=0 -Wno-comma'
s.libraries = 'c++'
# Exposes the privacy manifest. Depended on by any subspecs containing
# non-interface files.
s.subspec 'Privacy' do |ss|
ss.resource_bundles = {
s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
}
end
# Like many other C libraries, gRPC-Core has its public headers under `include/<libname>/` and its
# sources and private headers in other directories outside `include/`. Cocoapods' linter doesn't
# allow any header to be listed outside the `header_mappings_dir` (even though doing so works in
@ -185,6 +193,7 @@ Pod::Spec.new do |s|
ss.header_mappings_dir = '.'
ss.libraries = 'z'
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'BoringSSL-GRPC', '0.0.31'
ss.dependency 'abseil/algorithm/container', abseil_version
ss.dependency 'abseil/base/base', abseil_version
@ -3482,6 +3491,7 @@ Pod::Spec.new do |s|
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Implementation", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency "#{s.name}/Cronet-Interface", version
ss.source_files = 'src/core/ext/transport/cronet/client/secure/cronet_channel_create.cc',

2
gRPC-ProtoRPC.podspec generated
View File

@ -21,7 +21,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-ProtoRPC'
version = '1.61.0-dev'
version = '1.61.2'
s.version = version
s.summary = 'RPC library for Protocol Buffers, based on gRPC'
s.homepage = 'https://grpc.io'

View File

@ -21,7 +21,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC-RxLibrary'
version = '1.61.0-dev'
version = '1.61.2'
s.version = version
s.summary = 'Reactive Extensions library for iOS/OSX.'
s.homepage = 'https://grpc.io'

18
gRPC.podspec generated
View File

@ -20,7 +20,7 @@
Pod::Spec.new do |s|
s.name = 'gRPC'
version = '1.61.0-dev'
version = '1.61.2'
s.version = version
s.summary = 'gRPC client library for iOS/OSX'
s.homepage = 'https://grpc.io'
@ -32,8 +32,6 @@ Pod::Spec.new do |s|
:tag => "v#{version}",
}
s.resource = 'src/objective-c/PrivacyInfo.xcprivacy'
name = 'GRPCClient'
s.module_name = name
s.header_dir = name
@ -52,6 +50,14 @@ Pod::Spec.new do |s|
s.tvos.deployment_target = '12.0'
s.watchos.deployment_target = '6.0'
# Exposes the privacy manifest. Depended on by any subspecs containing
# non-interface files.
s.subspec 'Privacy' do |ss|
ss.resource_bundles = {
s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
}
end
s.subspec 'Interface-Legacy' do |ss|
ss.header_mappings_dir = 'src/objective-c/GRPCClient'
@ -72,7 +78,7 @@ Pod::Spec.new do |s|
"src/objective-c/GRPCClient/GRPCTypes.h",
"src/objective-c/GRPCClient/GRPCTypes.mm"
ss.dependency "gRPC-RxLibrary/Interface", version
ss.dependency "#{s.name}/Privacy", version
s.ios.deployment_target = '10.0'
s.osx.deployment_target = '10.12'
s.tvos.deployment_target = '12.0'
@ -107,7 +113,7 @@ Pod::Spec.new do |s|
'src/objective-c/GRPCClient/version.h'
ss.dependency "#{s.name}/Interface-Legacy", version
ss.dependency "#{s.name}/Privacy", version
s.ios.deployment_target = '10.0'
s.osx.deployment_target = '10.12'
s.tvos.deployment_target = '12.0'
@ -141,6 +147,7 @@ Pod::Spec.new do |s|
ss.dependency "#{s.name}/Interface-Legacy", version
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'gRPC-Core', version
ss.dependency 'gRPC-RxLibrary', version
@ -157,6 +164,7 @@ Pod::Spec.new do |s|
'src/objective-c/GRPCClient/GRPCCall+Cronet.mm',
'src/objective-c/GRPCClient/private/GRPCCore/GRPCCoreCronet/*.{h,mm}'
ss.dependency "#{s.name}/GRPCCore", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'gRPC-Core/Cronet-Implementation', version
ss.dependency 'CronetFramework'

2
grpc.gemspec generated
View File

@ -39,7 +39,7 @@ Gem::Specification.new do |s|
s.add_development_dependency 'simplecov', '~> 0.22'
s.add_development_dependency 'rake', '~> 13.0'
s.add_development_dependency 'rake-compiler', '~> 1.2.1'
s.add_development_dependency 'rake-compiler-dock', '~> 1.3'
s.add_development_dependency 'rake-compiler-dock', '~> 1.4'
s.add_development_dependency 'rspec', '~> 3.6'
s.add_development_dependency 'rubocop', '~> 1.41.0'
s.add_development_dependency 'signet', '~> 0.7'

View File

@ -90,8 +90,6 @@ class CsmObservabilityBuilder {
std::unique_ptr<grpc::internal::OpenTelemetryPluginBuilderImpl> builder_;
};
} // namespace experimental
/// Creates an OpenTelemetryPluginOption that would add additional labels on
/// gRPC metrics to enhance observability for CSM users.
///
@ -102,6 +100,7 @@ class CsmObservabilityBuilder {
/// .BuildAndRegisterGlobal();
std::unique_ptr<OpenTelemetryPluginOption> MakeCsmOpenTelemetryPluginOption();
} // namespace experimental
} // namespace grpc
#endif // GRPCPP_EXT_CSM_OBSERVABILITY_H

View File

@ -27,6 +27,7 @@
#include <memory>
#include "absl/functional/any_invocable.h"
#include "absl/status/status.h"
#include "absl/strings/string_view.h"
#include "opentelemetry/metrics/meter_provider.h"
@ -107,7 +108,7 @@ class OpenTelemetryPluginBuilder {
std::unique_ptr<OpenTelemetryPluginOption> option);
/// Registers a global plugin that acts on all channels and servers running on
/// the process.
void BuildAndRegisterGlobal();
absl::Status BuildAndRegisterGlobal();
private:
std::unique_ptr<internal::OpenTelemetryPluginBuilderImpl> impl_;

View File

@ -20,8 +20,8 @@
#define GRPC_CPP_VERSION_MAJOR 1
#define GRPC_CPP_VERSION_MINOR 61
#define GRPC_CPP_VERSION_PATCH 0
#define GRPC_CPP_VERSION_TAG "dev"
#define GRPC_CPP_VERSION_STRING "1.61.0-dev"
#define GRPC_CPP_VERSION_PATCH 2
#define GRPC_CPP_VERSION_TAG ""
#define GRPC_CPP_VERSION_STRING "1.61.2"
#endif // GRPCPP_VERSION_INFO_H

10
package.xml generated
View File

@ -13,16 +13,16 @@
<date>2019-09-24</date>
<time>16:06:07</time>
<version>
<release>1.61.0dev</release>
<api>1.61.0dev</api>
<release>1.61.2</release>
<api>1.61.2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
<release>stable</release>
<api>stable</api>
</stability>
<license>Apache 2.0</license>
<notes>
- gRPC Core 1.61.0 update
- gRPC Core 1.61.2 update
</notes>
<contents>
<dir baseinstalldir="/" name="/">

View File

@ -2897,7 +2897,6 @@ static void next_bdp_ping_timer_expired_locked(
grpc_core::RefCountedPtr<grpc_chttp2_transport> t,
GRPC_UNUSED grpc_error_handle error) {
GPR_DEBUG_ASSERT(error.ok());
GPR_ASSERT(t->next_bdp_ping_timer_handle != TaskHandle::kInvalid);
t->next_bdp_ping_timer_handle = TaskHandle::kInvalid;
if (t->flow_control.bdp_estimator()->accumulator() == 0) {
// Block the bdp ping till we receive more data.

View File

@ -18,6 +18,10 @@
#include <AvailabilityMacros.h>
#ifdef AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
#include "absl/status/status.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "src/core/lib/event_engine/cf_engine/cfstream_endpoint.h"
#include "src/core/lib/event_engine/trace.h"
#include "src/core/lib/gprpp/strerror.h"

View File

@ -20,6 +20,7 @@
#include <string>
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include <grpc/event_engine/event_engine.h>

View File

@ -174,11 +174,6 @@ const char* const description_wrr_delegate_to_pick_first =
"Change WRR code to delegate to pick_first as per dualstack backend "
"design.";
const char* const additional_constraints_wrr_delegate_to_pick_first = "{}";
#ifdef NDEBUG
const bool kDefaultForDebugOnly = false;
#else
const bool kDefaultForDebugOnly = true;
#endif
} // namespace
namespace grpc_core {
@ -187,7 +182,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
{"call_status_override_on_cancellation",
description_call_status_override_on_cancellation,
additional_constraints_call_status_override_on_cancellation, nullptr, 0,
kDefaultForDebugOnly, true},
false, true},
{"canary_client_privacy", description_canary_client_privacy,
additional_constraints_canary_client_privacy, nullptr, 0, false, false},
{"client_idleness", description_client_idleness,
@ -434,11 +429,6 @@ const char* const description_wrr_delegate_to_pick_first =
"Change WRR code to delegate to pick_first as per dualstack backend "
"design.";
const char* const additional_constraints_wrr_delegate_to_pick_first = "{}";
#ifdef NDEBUG
const bool kDefaultForDebugOnly = false;
#else
const bool kDefaultForDebugOnly = true;
#endif
} // namespace
namespace grpc_core {
@ -447,7 +437,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
{"call_status_override_on_cancellation",
description_call_status_override_on_cancellation,
additional_constraints_call_status_override_on_cancellation, nullptr, 0,
kDefaultForDebugOnly, true},
false, true},
{"canary_client_privacy", description_canary_client_privacy,
additional_constraints_canary_client_privacy, nullptr, 0, false, false},
{"client_idleness", description_client_idleness,
@ -694,11 +684,6 @@ const char* const description_wrr_delegate_to_pick_first =
"Change WRR code to delegate to pick_first as per dualstack backend "
"design.";
const char* const additional_constraints_wrr_delegate_to_pick_first = "{}";
#ifdef NDEBUG
const bool kDefaultForDebugOnly = false;
#else
const bool kDefaultForDebugOnly = true;
#endif
} // namespace
namespace grpc_core {
@ -707,7 +692,7 @@ const ExperimentMetadata g_experiment_metadata[] = {
{"call_status_override_on_cancellation",
description_call_status_override_on_cancellation,
additional_constraints_call_status_override_on_cancellation, nullptr, 0,
kDefaultForDebugOnly, true},
false, true},
{"canary_client_privacy", description_canary_client_privacy,
additional_constraints_canary_client_privacy, nullptr, 0, false, false},
{"client_idleness", description_client_idleness,

View File

@ -57,16 +57,7 @@ namespace grpc_core {
#ifdef GRPC_EXPERIMENTS_ARE_FINAL
#if defined(GRPC_CFSTREAM)
#ifndef NDEBUG
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
#endif
inline bool IsCallStatusOverrideOnCancellationEnabled() {
#ifdef NDEBUG
return false;
#else
return true;
#endif
}
inline bool IsCallStatusOverrideOnCancellationEnabled() { return false; }
inline bool IsCanaryClientPrivacyEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() { return true; }
@ -118,16 +109,7 @@ inline bool IsWriteSizeCapEnabled() { return true; }
inline bool IsWrrDelegateToPickFirstEnabled() { return true; }
#elif defined(GPR_WINDOWS)
#ifndef NDEBUG
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
#endif
inline bool IsCallStatusOverrideOnCancellationEnabled() {
#ifdef NDEBUG
return false;
#else
return true;
#endif
}
inline bool IsCallStatusOverrideOnCancellationEnabled() { return false; }
inline bool IsCanaryClientPrivacyEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() { return true; }
@ -180,16 +162,7 @@ inline bool IsWriteSizeCapEnabled() { return true; }
inline bool IsWrrDelegateToPickFirstEnabled() { return true; }
#else
#ifndef NDEBUG
#define GRPC_EXPERIMENT_IS_INCLUDED_CALL_STATUS_OVERRIDE_ON_CANCELLATION
#endif
inline bool IsCallStatusOverrideOnCancellationEnabled() {
#ifdef NDEBUG
return false;
#else
return true;
#endif
}
inline bool IsCallStatusOverrideOnCancellationEnabled() { return false; }
inline bool IsCanaryClientPrivacyEnabled() { return false; }
#define GRPC_EXPERIMENT_IS_INCLUDED_CLIENT_IDLENESS
inline bool IsClientIdlenessEnabled() { return true; }

View File

@ -41,7 +41,7 @@
# Supported platforms: ios, windows, posix
- name: call_status_override_on_cancellation
default: debug
default: false
- name: canary_client_privacy
default: false
- name: client_idleness

View File

@ -27,6 +27,7 @@
#include <vector>
#include "absl/status/statusor.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include <grpc/support/log.h>

View File

@ -137,14 +137,16 @@ absl::StatusOr<CsmObservability> CsmObservabilityBuilder::BuildAndRegister() {
google::cloud::otel::MakeResourceDetector()
->Detect()
.GetAttributes()));
builder_->BuildAndRegisterGlobal();
auto status = builder_->BuildAndRegisterGlobal();
if (!status.ok()) {
return status;
}
return CsmObservability();
}
} // namespace experimental
std::unique_ptr<OpenTelemetryPluginOption> MakeCsmOpenTelemetryPluginOption() {
return std::make_unique<grpc::internal::CsmOpenTelemetryPluginOption>();
}
} // namespace experimental
} // namespace grpc

View File

@ -462,12 +462,17 @@ void ServiceMeshLabelsInjector::AddLabels(
}
bool ServiceMeshLabelsInjector::AddOptionalLabels(
bool is_client,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_span,
opentelemetry::nostd::function_ref<
bool(opentelemetry::nostd::string_view,
opentelemetry::common::AttributeValue)>
callback) const {
if (!is_client) {
// Currently the CSM optional labels are only set on client.
return true;
}
// According to the CSM Observability Metric spec, if the control plane fails
// to provide these labels, the client will set their values to "unknown".
// These default values are set below.
@ -493,9 +498,10 @@ bool ServiceMeshLabelsInjector::AddOptionalLabels(
}
size_t ServiceMeshLabelsInjector::GetOptionalLabelsSize(
bool is_client,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>)
const {
return 2;
return is_client ? 2 : 0;
}
} // namespace internal

View File

@ -52,6 +52,7 @@ class ServiceMeshLabelsInjector : public LabelsInjector {
// Add optional labels to the traced calls.
bool AddOptionalLabels(
bool is_client,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_span,
opentelemetry::nostd::function_ref<
@ -61,6 +62,7 @@ class ServiceMeshLabelsInjector : public LabelsInjector {
// Gets the size of the actual optional labels.
size_t GetOptionalLabelsSize(
bool is_client,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_span) const override;

View File

@ -56,13 +56,15 @@ class KeyValueIterable : public opentelemetry::common::KeyValueIterable {
additional_labels,
const ActivePluginOptionsView* active_plugin_options_view,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_span)
optional_labels_span,
bool is_client)
: injected_labels_iterable_(injected_labels_iterable),
injected_labels_from_plugin_options_(
injected_labels_from_plugin_options),
additional_labels_(additional_labels),
active_plugin_options_view_(active_plugin_options_view),
optional_labels_(optional_labels_span) {}
optional_labels_(optional_labels_span),
is_client_(is_client) {}
bool ForEachKeyValue(opentelemetry::nostd::function_ref<
bool(opentelemetry::nostd::string_view,
@ -79,7 +81,7 @@ class KeyValueIterable : public opentelemetry::common::KeyValueIterable {
}
if (OpenTelemetryPluginState().labels_injector != nullptr &&
!OpenTelemetryPluginState().labels_injector->AddOptionalLabels(
optional_labels_, callback)) {
is_client_, optional_labels_, callback)) {
return false;
}
if (active_plugin_options_view_ != nullptr &&
@ -88,7 +90,7 @@ class KeyValueIterable : public opentelemetry::common::KeyValueIterable {
const InternalOpenTelemetryPluginOption& plugin_option,
size_t /*index*/) {
return plugin_option.labels_injector()->AddOptionalLabels(
optional_labels_, callback);
is_client_, optional_labels_, callback);
})) {
return false;
}
@ -126,14 +128,14 @@ class KeyValueIterable : public opentelemetry::common::KeyValueIterable {
size += additional_labels_.size();
if (OpenTelemetryPluginState().labels_injector != nullptr) {
size += OpenTelemetryPluginState().labels_injector->GetOptionalLabelsSize(
optional_labels_);
is_client_, optional_labels_);
}
if (active_plugin_options_view_ != nullptr) {
active_plugin_options_view_->ForEach(
[&size, this](const InternalOpenTelemetryPluginOption& plugin_option,
size_t /*index*/) {
size += plugin_option.labels_injector()->GetOptionalLabelsSize(
optional_labels_);
is_client_, optional_labels_);
return true;
});
}
@ -149,6 +151,7 @@ class KeyValueIterable : public opentelemetry::common::KeyValueIterable {
const ActivePluginOptionsView* active_plugin_options_view_;
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_;
bool is_client_;
};
} // namespace internal

View File

@ -131,10 +131,10 @@ OpenTelemetryCallTracer::OpenTelemetryCallAttemptTracer::
// We might not have all the injected labels that we want at this point, so
// avoid recording a subset of injected labels here.
OpenTelemetryPluginState().client.attempt.started->Add(
1, KeyValueIterable(/*injected_labels_iterable=*/nullptr, {},
additional_labels,
/*active_plugin_options_view=*/nullptr,
/*optional_labels_span=*/{}));
1, KeyValueIterable(
/*injected_labels_iterable=*/nullptr, {}, additional_labels,
/*active_plugin_options_view=*/nullptr,
/*optional_labels_span=*/{}, /*is_client=*/true));
}
}
@ -213,7 +213,7 @@ void OpenTelemetryCallTracer::OpenTelemetryCallAttemptTracer::
KeyValueIterable labels(
injected_labels_.get(), injected_labels_from_plugin_options_,
additional_labels, &parent_->parent_->active_plugin_options_view(),
optional_labels_array_);
optional_labels_array_, /*is_client=*/true);
if (OpenTelemetryPluginState().client.attempt.duration != nullptr) {
OpenTelemetryPluginState().client.attempt.duration->Record(
absl::ToDoubleSeconds(absl::Now() - start_time_), labels,

View File

@ -163,13 +163,13 @@ OpenTelemetryPluginBuilderImpl& OpenTelemetryPluginBuilderImpl::AddPluginOption(
return *this;
}
void OpenTelemetryPluginBuilderImpl::BuildAndRegisterGlobal() {
absl::Status OpenTelemetryPluginBuilderImpl::BuildAndRegisterGlobal() {
opentelemetry::nostd::shared_ptr<opentelemetry::metrics::MeterProvider>
meter_provider = meter_provider_;
delete g_otel_plugin_state_;
g_otel_plugin_state_ = new struct OpenTelemetryPluginState;
if (meter_provider == nullptr) {
return;
return absl::OkStatus();
}
auto meter = meter_provider->GetMeter("grpc-c++", GRPC_CPP_VERSION_STRING);
if (metrics_.contains(grpc::OpenTelemetryPluginBuilder::
@ -269,6 +269,7 @@ void OpenTelemetryPluginBuilderImpl::BuildAndRegisterGlobal() {
args.GetString(GRPC_ARG_SERVER_URI).value_or(""));
});
});
return absl::OkStatus();
}
} // namespace internal
@ -331,8 +332,8 @@ OpenTelemetryPluginBuilder& OpenTelemetryPluginBuilder::AddPluginOption(
return *this;
}
void OpenTelemetryPluginBuilder::BuildAndRegisterGlobal() {
impl_->BuildAndRegisterGlobal();
absl::Status OpenTelemetryPluginBuilder::BuildAndRegisterGlobal() {
return impl_->BuildAndRegisterGlobal();
}
} // namespace grpc

View File

@ -84,6 +84,7 @@ class LabelsInjector {
// corresponds to the CallAttemptTracer::OptionalLabelComponent enum. Returns
// false when callback returns false.
virtual bool AddOptionalLabels(
bool is_client,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_span,
opentelemetry::nostd::function_ref<
@ -94,6 +95,7 @@ class LabelsInjector {
// Gets the actual size of the optional labels that the Plugin is going to
// produce through the AddOptionalLabels method.
virtual size_t GetOptionalLabelsSize(
bool is_client,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
optional_labels_span) const = 0;
};
@ -204,7 +206,7 @@ class OpenTelemetryPluginBuilderImpl {
generic_method_attribute_filter);
OpenTelemetryPluginBuilderImpl& AddPluginOption(
std::unique_ptr<InternalOpenTelemetryPluginOption> option);
void BuildAndRegisterGlobal();
absl::Status BuildAndRegisterGlobal();
private:
std::shared_ptr<opentelemetry::metrics::MeterProvider> meter_provider_;

View File

@ -200,7 +200,8 @@ void OpenTelemetryServerCallTracer::RecordReceivedInitialMetadata(
OpenTelemetryPluginState().server.call.started->Add(
1, KeyValueIterable(/*injected_labels_iterable=*/nullptr, {},
additional_labels,
/*active_plugin_options_view=*/nullptr, {}));
/*active_plugin_options_view=*/nullptr, {},
/*is_client=*/false));
}
}
@ -222,7 +223,8 @@ void OpenTelemetryServerCallTracer::RecordEnd(
KeyValueIterable labels(
injected_labels_.get(), injected_labels_from_plugin_options_,
additional_labels,
/*active_plugin_options_view=*/nullptr, /*optional_labels_span=*/{});
/*active_plugin_options_view=*/nullptr, /*optional_labels_span=*/{},
/*is_client=*/false);
if (OpenTelemetryPluginState().server.call.duration != nullptr) {
OpenTelemetryPluginState().server.call.duration->Record(
absl::ToDoubleSeconds(elapsed_time_), labels,

View File

@ -1,7 +1,7 @@
<!-- This file is generated -->
<Project>
<PropertyGroup>
<GrpcCsharpVersion>2.61.0-dev</GrpcCsharpVersion>
<GrpcCsharpVersion>2.61.2</GrpcCsharpVersion>
<GoogleProtobufVersion>3.25.1</GoogleProtobufVersion>
</PropertyGroup>
</Project>

View File

@ -42,7 +42,7 @@ Pod::Spec.new do |s|
# exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
# before them.
s.name = '!ProtoCompiler-gRPCCppPlugin'
v = '1.61.0-dev'
v = '1.61.2'
s.version = v
s.summary = 'The gRPC ProtoC plugin generates C++ files from .proto services.'
s.description = <<-DESC

View File

@ -42,7 +42,7 @@ Pod::Spec.new do |s|
# exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
# before them.
s.name = '!ProtoCompiler-gRPCPlugin'
v = '1.61.0-dev'
v = '1.61.2'
s.version = v
s.summary = 'The gRPC ProtoC plugin generates Objective-C files from .proto services.'
s.description = <<-DESC

View File

@ -122,6 +122,11 @@ Pod::Spec.new do |s|
end
s.subspec 'Implementation' do |ss|
ss.header_mappings_dir = 'src'
ss.resource_bundles = {
s.module_name => 'src/PrivacyInfo.xcprivacy'
}
ss.source_files = 'src/ssl/*.{h,c,cc}',
'src/ssl/**/*.{h,c,cc}',
'src/crypto/*.{h,c,cc}',
@ -686,6 +691,16 @@ Pod::Spec.new do |s|
zwQA
EOF
# PrivacyInfo.xcprivacy is not part of BoringSSL repo, inject it during pod installation
base64 --decode $opts <<EOF | gunzip > src/PrivacyInfo.xcprivacy
H4sICAAAAAAC/1ByaXZhY3lJbmZvLnhjcHJpdmFjeQC1kl9PwjAUxZ/Hp6h9Z1di/JsxAhskJAQXGQ8+
Nt0VG7a1aRuw395OHUhE8UHflrNzzj2/pNHgpSrJBrURsu7TXnhOCdZcFqJe9ekyn3Rv6CDuRGfpfZI/
ZmOiSmEsyZaj2TQhtAswVKpEgDRPSTabLnLiOwDGc0ros7XqDmC73YascYVcVo3RQKalQm3dzJd1fSAs
bEH9mff2gzleLQS3cSeI1uji+SLTYsO4yzXja78ygkb2f59YaRC++BJZlsgtFimzLHcKzS7BtGYOvm1O
ZcVEfdI+5ByNwWKYTY/U+4+gBQh+TrZBbzNW+wFHnQmzuJLaTUSJuajQWFapCD4SJ488IDNyDxV8mrm/
m1z1rsPeYSnscaDl+RewhTMWq5GUtsH7Y7KLy8ntL8h2WqtE8PY0484rAb5xoDEDAAA=
EOF
# We are renaming openssl to openssl_grpc so that there is no conflict with openssl if it exists
find . -type f \\( -path '*.h' -or -path '*.cc' -or -path '*.c' \\) -print0 | xargs -0 -L1 sed -E -i'.grpc_back' 's;#include <openssl/;#include <openssl_grpc/;g'

View File

@ -22,4 +22,4 @@
// instead. This file can be regenerated from the template by running
// `tools/buildgen/generate_projects.sh`.
#define GRPC_OBJC_VERSION_STRING @"1.61.0-dev"
#define GRPC_OBJC_VERSION_STRING @"1.61.2"

View File

@ -18,6 +18,14 @@
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -22,5 +22,5 @@
// instead. This file can be regenerated from the template by running
// `tools/buildgen/generate_projects.sh`.
#define GRPC_OBJC_VERSION_STRING @"1.61.0-dev"
#define GRPC_OBJC_VERSION_STRING @"1.61.2"
#define GRPC_C_VERSION_STRING @"38.0.0"

View File

@ -2,7 +2,7 @@
"name": "grpc/grpc-dev",
"description": "gRPC library for PHP - for Development use only",
"license": "Apache-2.0",
"version": "1.61.0",
"version": "1.61.2",
"require": {
"php": ">=7.0.0",
"google/protobuf": "^v3.3.0"

View File

@ -20,6 +20,6 @@
#ifndef VERSION_H
#define VERSION_H
#define PHP_GRPC_VERSION "1.61.0dev"
#define PHP_GRPC_VERSION "1.61.2"
#endif /* VERSION_H */

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template`!!!
__version__ = """1.61.0.dev0"""
__version__ = """1.61.2"""

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_admin/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_channelz/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_csds/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_health_checking/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_observability/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_reflection/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_status/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_testing/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -14,4 +14,4 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_tests/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'

View File

@ -0,0 +1,64 @@
#!/usr/bin/env ruby
#
# Copyright 2016 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
ENV['GRPC_ENABLE_FORK_SUPPORT'] = "1"
fail "forking only supported on linux" unless RUBY_PLATFORM =~ /linux/
this_dir = File.expand_path(File.dirname(__FILE__))
protos_lib_dir = File.join(this_dir, 'lib')
grpc_lib_dir = File.join(File.dirname(this_dir), 'lib')
$LOAD_PATH.unshift(grpc_lib_dir) unless $LOAD_PATH.include?(grpc_lib_dir)
$LOAD_PATH.unshift(protos_lib_dir) unless $LOAD_PATH.include?(protos_lib_dir)
$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
require 'grpc'
require 'end2end_common'
def do_rpc(stub)
stub.echo(Echo::EchoRequest.new(request: 'hello'), deadline: Time.now + 300)
end
def main
this_dir = File.expand_path(File.dirname(__FILE__))
echo_server_path = File.join(this_dir, 'echo_server.rb')
to_child_r, _to_child_w = IO.pipe
to_parent_r, to_parent_w = IO.pipe
# Note gRPC has not yet been initialized, otherwise we would need to call prefork
# before spawn and postfork_parent after.
# TODO(apolcyn): consider redirecting server's stderr to a file
Process.spawn(RbConfig.ruby, echo_server_path, in: to_child_r, out: to_parent_w, err: "server_log")
to_child_r.close
to_parent_w.close
child_port = to_parent_r.gets.strip
STDERR.puts "server running on port: #{child_port}"
key = "grpc." * 100_000 # large enough to malloc backing storage
value = "testvalue" * 100_000
stub = Echo::EchoServer::Stub.new("localhost:#{child_port}", :this_channel_is_insecure, channel_args: { key => value })
with_logging("parent: GRPC.prefork") { GRPC.prefork }
pid = fork do
with_logging("child: GRPC.postfork_child") { GRPC.postfork_child }
key.clear
value.clear
GC.compact
with_logging("child: post-fork RPC") { do_rpc(stub) }
STDERR.puts "child: done"
end
with_logging("parent: GRPC.postfork_parent") { GRPC.postfork_parent }
Process.wait pid
STDERR.puts "parent: done"
end
main

View File

@ -71,7 +71,7 @@ static int grpc_rb_channel_create_in_process_add_args_hash_cb(VALUE key,
return ST_STOP;
}
args->args[args->num_args - 1].key = (char*)the_key;
args->args[args->num_args - 1].key = gpr_strdup(the_key);
switch (TYPE(val)) {
case T_SYMBOL:
args->args[args->num_args - 1].type = GRPC_ARG_STRING;
@ -163,6 +163,8 @@ void grpc_rb_channel_args_destroy(grpc_channel_args* args) {
GPR_ASSERT(args != NULL);
if (args->args == NULL) return;
for (int i = 0; i < args->num_args; i++) {
// the key was created with gpr_strdup
gpr_free(args->args[i].key);
if (args->args[i].type == GRPC_ARG_STRING) {
// we own string pointers, which were created with gpr_strdup
gpr_free(args->args[i].value.string);

View File

@ -14,5 +14,5 @@
# GRPC contains the General RPC module.
module GRPC
VERSION = '1.61.0.dev'
VERSION = '1.61.2'
end

View File

@ -14,6 +14,6 @@
module GRPC
module NativeDebug
VERSION = '1.61.0.dev'
VERSION = '1.61.2'
end
end

View File

@ -14,6 +14,6 @@
module GRPC
module Tools
VERSION = '1.61.0.dev'
VERSION = '1.61.2'
end
end

View File

@ -25,7 +25,7 @@
],
dependencies: [
.package(url: "https://github.com/firebase/abseil-cpp-SwiftPM.git", "0.20220623.0"..<"0.20220624.0"),
.package(url: "https://github.com/firebase/abseil-cpp-SwiftPM.git", "0.20230802.0"..<"0.20230803.0"),
.package(url: "https://github.com/firebase/boringssl-SwiftPM.git", "0.9.0"..<"0.10.0"),
],
@ -54,10 +54,10 @@
"${file}",
% endfor
],
publicHeadersPath: "spm-core-include",
resources: [
.copy("src/objective-c/PrivacyInfo.xcprivacy"),
],
publicHeadersPath: "spm-core-include",
cSettings: [
.headerSearchPath("./"),
.headerSearchPath("include/"),
@ -103,10 +103,10 @@
sources: [
"src/cpp/",
],
publicHeadersPath: "spm-cpp-include",
resources: [
.copy("src/objective-c/PrivacyInfo.xcprivacy"),
],
publicHeadersPath: "spm-cpp-include",
cSettings: [
.headerSearchPath("./"),
.headerSearchPath("include/"),

View File

@ -164,6 +164,14 @@
s.header_mappings_dir = 'include/grpcpp'
# Exposes the privacy manifest. Depended on by any subspecs containing
# non-interface files.
s.subspec 'Privacy' do |ss|
ss.resource_bundles = {
s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
}
end
s.subspec 'Interface' do |ss|
ss.header_mappings_dir = 'include/grpcpp'
@ -172,9 +180,10 @@
s.subspec 'Implementation' do |ss|
ss.header_mappings_dir = '.'
ss.dependency "#{s.name}/Privacy", version
ss.dependency "#{s.name}/Interface", version
ss.dependency 'gRPC-Core', version
abseil_version = '1.20230802.0'
abseil_version = '1.20230802.2'
% for abseil_spec in grpcpp_abseil_specs:
ss.dependency '${abseil_spec}', abseil_version
% endfor
@ -203,6 +212,7 @@
ss.header_mappings_dir = '.'
ss.dependency "#{s.name}/Cronet-Interface", version
ss.dependency "#{s.name}/Implementation", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'gRPC-Core/Cronet-Implementation', version

View File

@ -122,7 +122,7 @@
s.requires_arc = false
name = 'grpc'
abseil_version = '1.20230802.0'
abseil_version = '1.20230802.2'
# When creating a dynamic framework, name it grpc.framework instead of gRPC-Core.framework.
# This lets users write their includes like `#include <grpc/grpc.h>` as opposed to `#include
@ -170,6 +170,14 @@
s.compiler_flags = '-DGRPC_ARES=0 -Wno-comma'
s.libraries = 'c++'
# Exposes the privacy manifest. Depended on by any subspecs containing
# non-interface files.
s.subspec 'Privacy' do |ss|
ss.resource_bundles = {
s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
}
end
# Like many other C libraries, gRPC-Core has its public headers under `include/<libname>/` and its
# sources and private headers in other directories outside `include/`. Cocoapods' linter doesn't
# allow any header to be listed outside the `header_mappings_dir` (even though doing so works in
@ -189,6 +197,7 @@
ss.header_mappings_dir = '.'
ss.libraries = 'z'
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'BoringSSL-GRPC', '0.0.31'
% for abseil_spec in grpc_abseil_specs:
ss.dependency '${abseil_spec}', abseil_version
@ -214,6 +223,7 @@
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Implementation", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency "#{s.name}/Cronet-Interface", version
ss.source_files = ${ruby_multiline_list(grpc_cronet_files, 22)}

View File

@ -34,8 +34,6 @@
:tag => "v#{version}",
}
s.resource = 'src/objective-c/PrivacyInfo.xcprivacy'
name = 'GRPCClient'
s.module_name = name
s.header_dir = name
@ -54,6 +52,14 @@
s.tvos.deployment_target = '12.0'
s.watchos.deployment_target = '6.0'
# Exposes the privacy manifest. Depended on by any subspecs containing
# non-interface files.
s.subspec 'Privacy' do |ss|
ss.resource_bundles = {
s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
}
end
s.subspec 'Interface-Legacy' do |ss|
ss.header_mappings_dir = 'src/objective-c/GRPCClient'
@ -74,7 +80,7 @@
"src/objective-c/GRPCClient/GRPCTypes.h",
"src/objective-c/GRPCClient/GRPCTypes.mm"
ss.dependency "gRPC-RxLibrary/Interface", version
ss.dependency "#{s.name}/Privacy", version
s.ios.deployment_target = '10.0'
s.osx.deployment_target = '10.12'
s.tvos.deployment_target = '12.0'
@ -109,7 +115,7 @@
'src/objective-c/GRPCClient/version.h'
ss.dependency "#{s.name}/Interface-Legacy", version
ss.dependency "#{s.name}/Privacy", version
s.ios.deployment_target = '10.0'
s.osx.deployment_target = '10.12'
s.tvos.deployment_target = '12.0'
@ -143,6 +149,7 @@
ss.dependency "#{s.name}/Interface-Legacy", version
ss.dependency "#{s.name}/Interface", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'gRPC-Core', version
ss.dependency 'gRPC-RxLibrary', version
@ -159,6 +166,7 @@
'src/objective-c/GRPCClient/GRPCCall+Cronet.mm',
'src/objective-c/GRPCClient/private/GRPCCore/GRPCCoreCronet/*.{h,mm}'
ss.dependency "#{s.name}/GRPCCore", version
ss.dependency "#{s.name}/Privacy", version
ss.dependency 'gRPC-Core/Cronet-Implementation', version
ss.dependency 'CronetFramework'

View File

@ -41,7 +41,7 @@
s.add_development_dependency 'simplecov', '~> 0.22'
s.add_development_dependency 'rake', '~> 13.0'
s.add_development_dependency 'rake-compiler', '~> 1.2.1'
s.add_development_dependency 'rake-compiler-dock', '~> 1.3'
s.add_development_dependency 'rake-compiler-dock', '~> 1.4'
s.add_development_dependency 'rspec', '~> 3.6'
s.add_development_dependency 'rubocop', '~> 1.41.0'
s.add_development_dependency 'signet', '~> 0.7'

View File

@ -17,13 +17,14 @@
# bytes from this file, then delete the intermediate file.
#
# TODO(mxyan): move to python3 style gzip compression when possible
def compress_boringssl_prefix_header():
def compress_and_encode_file(filepath):
gzip_filepath = filepath + '.gz'
import gzip, shutil, os, base64
with open('src/boringssl/boringssl_prefix_symbols.h', 'rb') as f_in, gzip.GzipFile('src/boringssl/boringssl_prefix_symbols.h.gz', 'w', mtime=0.0) as f_out:
with open(filepath, 'rb') as f_in, gzip.GzipFile(gzip_filepath, 'w', mtime=0.0) as f_out:
shutil.copyfileobj(f_in, f_out)
with open('src/boringssl/boringssl_prefix_symbols.h.gz', 'rb') as f_in:
with open(gzip_filepath, 'rb') as f_in:
prefix_gz = f_in.read()
os.remove('src/boringssl/boringssl_prefix_symbols.h.gz')
os.remove(gzip_filepath)
prefix_gz_b64 = base64.b64encode(prefix_gz)
WRAP_LENGTH=80
prefix_gz_b64_wrapped = [prefix_gz_b64[i:i+WRAP_LENGTH] for i in range(0, len(prefix_gz_b64), WRAP_LENGTH)]
@ -152,6 +153,11 @@
end
s.subspec 'Implementation' do |ss|
ss.header_mappings_dir = 'src'
ss.resource_bundles = {
s.module_name => 'src/PrivacyInfo.xcprivacy'
}
ss.source_files = 'src/ssl/*.{h,c,cc}',
'src/ssl/**/*.{h,c,cc}',
'src/crypto/*.{h,c,cc}',
@ -200,7 +206,14 @@
*) opts="--ignore-garbage" ;;
esac
base64 --decode $opts <<EOF | gunzip > src/include/openssl/boringssl_prefix_symbols.h
% for line in compress_boringssl_prefix_header():
% for line in compress_and_encode_file('src/boringssl/boringssl_prefix_symbols.h'):
${line.decode('utf-8')}
% endfor
EOF
# PrivacyInfo.xcprivacy is not part of BoringSSL repo, inject it during pod installation
base64 --decode $opts <<EOF | gunzip > src/PrivacyInfo.xcprivacy
% for line in compress_and_encode_file('src/objective-c/PrivacyInfo.xcprivacy'):
${line.decode('utf-8')}
% endfor
EOF

View File

@ -32,8 +32,8 @@ namespace testing {
namespace {
TEST(CsmObservabilityBuilderTest, Basic) {
EXPECT_TRUE(
experimental::CsmObservabilityBuilder().BuildAndRegister().status().ok());
EXPECT_EQ(experimental::CsmObservabilityBuilder().BuildAndRegister().status(),
absl::OkStatus());
}
TEST(GsmDependencyTest, GoogleCloudOpenTelemetryDependency) {
@ -64,9 +64,11 @@ TEST(CsmChannelTargetSelectorTest, XdsTargetsWithTDAuthority) {
}
TEST(CsmPluginOptionTest, Basic) {
OpenTelemetryPluginBuilder()
.AddPluginOption(MakeCsmOpenTelemetryPluginOption())
.BuildAndRegisterGlobal();
EXPECT_EQ(
OpenTelemetryPluginBuilder()
.AddPluginOption(experimental::MakeCsmOpenTelemetryPluginOption())
.BuildAndRegisterGlobal(),
absl::OkStatus());
}
} // namespace

View File

@ -171,7 +171,7 @@ class MetadataExchangeTest
const std::map<std::string,
opentelemetry::sdk::common::OwnedAttributeValue>&
attributes,
bool verify_client_only_attributes = true) {
bool is_client) {
EXPECT_EQ(
absl::get<std::string>(attributes.at("csm.workload_canonical_service")),
"canonical_service");
@ -179,12 +179,18 @@ class MetadataExchangeTest
EXPECT_EQ(absl::get<std::string>(
attributes.at("csm.remote_workload_canonical_service")),
"canonical_service");
if (verify_client_only_attributes) {
if (is_client) {
EXPECT_EQ(absl::get<std::string>(attributes.at("csm.service_name")),
"unknown");
EXPECT_EQ(
absl::get<std::string>(attributes.at("csm.service_namespace_name")),
"unknown");
} else {
// The CSM optional labels should not be present in server metrics.
EXPECT_THAT(attributes, ::testing::Not(::testing::Contains(
::testing::Key("csm.service_name"))));
EXPECT_THAT(attributes, ::testing::Not(::testing::Contains(::testing::Key(
"csm.service_namespace_name"))));
}
switch (GetParam().type()) {
case TestScenario::ResourceType::kGke:
@ -286,7 +292,7 @@ TEST_P(MetadataExchangeTest, ClientAttemptDuration) {
EXPECT_EQ(absl::get<std::string>(attributes.at("grpc.target")),
canonical_server_address_);
EXPECT_EQ(absl::get<std::string>(attributes.at("grpc.status")), "OK");
VerifyServiceMeshAttributes(attributes);
VerifyServiceMeshAttributes(attributes, /*is_client=*/true);
}
// Verify that grpc.server.call.started does not get service mesh attributes
@ -331,8 +337,7 @@ TEST_P(MetadataExchangeTest, ServerCallDuration) {
const auto& attributes = data[kMetricName][0].attributes.GetAttributes();
EXPECT_EQ(absl::get<std::string>(attributes.at("grpc.method")), kMethodName);
EXPECT_EQ(absl::get<std::string>(attributes.at("grpc.status")), "OK");
VerifyServiceMeshAttributes(attributes,
/*verify_client_only_attributes=*/false);
VerifyServiceMeshAttributes(attributes, /*is_client=*/false);
}
// Test that the server records unknown when the client does not send metadata

View File

@ -754,6 +754,7 @@ class CustomLabelInjector : public grpc::internal::LabelsInjector {
const override {}
bool AddOptionalLabels(
bool /*is_client*/,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
/*optional_labels_span*/,
opentelemetry::nostd::function_ref<
@ -764,6 +765,7 @@ class CustomLabelInjector : public grpc::internal::LabelsInjector {
}
size_t GetOptionalLabelsSize(
bool /*is_client*/,
absl::Span<const std::shared_ptr<std::map<std::string, std::string>>>
/*optional_labels_span*/) const override {
return 0;

View File

@ -131,7 +131,7 @@ void OpenTelemetryPluginEnd2EndTest::Init(
for (auto& option : plugin_options) {
ot_builder.AddPluginOption(std::move(option));
}
ot_builder.BuildAndRegisterGlobal();
ASSERT_EQ(ot_builder.BuildAndRegisterGlobal(), absl::OkStatus());
ChannelArguments channel_args;
if (!labels_to_inject.empty()) {
labels_to_inject_ = labels_to_inject;

View File

@ -238,7 +238,7 @@ int main(int argc, char** argv) {
meter_provider->AddMetricReader(std::move(prometheus_exporter));
grpc::OpenTelemetryPluginBuilder otel_builder;
otel_builder.SetMeterProvider(std::move(meter_provider));
otel_builder.BuildAndRegisterGlobal();
assert(otel_builder.BuildAndRegisterGlobal().ok());
}
grpc::testing::ChannelCreationFunc channel_creation_func;

View File

@ -403,10 +403,12 @@ void EnableCsmObservability() {
auto meter_provider =
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
meter_provider->AddMetricReader(std::move(prometheus_exporter));
grpc::OpenTelemetryPluginBuilder()
.AddPluginOption(grpc::MakeCsmOpenTelemetryPluginOption())
.SetMeterProvider(std::move(meter_provider))
.BuildAndRegisterGlobal();
assert(grpc::OpenTelemetryPluginBuilder()
.AddPluginOption(
grpc::experimental::MakeCsmOpenTelemetryPluginOption())
.SetMeterProvider(std::move(meter_provider))
.BuildAndRegisterGlobal()
.ok());
}
void RunServer(const int port, StatsWatchers* stats_watchers,

View File

@ -54,10 +54,12 @@ void EnableCsmObservability() {
auto meter_provider =
std::make_shared<opentelemetry::sdk::metrics::MeterProvider>();
meter_provider->AddMetricReader(std::move(prometheus_exporter));
grpc::OpenTelemetryPluginBuilder()
.AddPluginOption(grpc::MakeCsmOpenTelemetryPluginOption())
.SetMeterProvider(std::move(meter_provider))
.BuildAndRegisterGlobal();
assert(grpc::OpenTelemetryPluginBuilder()
.AddPluginOption(
grpc::experimental::MakeCsmOpenTelemetryPluginOption())
.SetMeterProvider(std::move(meter_provider))
.BuildAndRegisterGlobal()
.ok());
}
int main(int argc, char** argv) {

View File

@ -21,6 +21,7 @@
#include <cstdlib>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <memory>
#include <ostream>

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_aarch64-linux:259a85e5196b3e77c33cb1537e21a295177a7016@sha256:a015b83950b891a61b43cbfcdac5bcdfd62d34ac58652302b3e25633274e942a
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_aarch64-linux:b9951a211adf3534ac726c7575199423a543e317@sha256:2ab21c63fc49cd56e2d083d5219dc67134de0e1465edddb3f87e9efdc538910b

View File

@ -1,4 +1,4 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-aarch64-linux
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-aarch64-linux
#=================
# Install ccache

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_arm64-darwin:842f0f8d43cc078ada34cb0331d589323aac133f@sha256:5e207456cc0cdd67f308023b5cbc6932a6db56e58a537862292e76c8ac2e5f90
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_arm64-darwin:38eb91d4ddd8567f91c2e04f373f0cccd3425e5e@sha256:16bb1a0746215557f5577e4cd289e10cec593d74b5a3033c9bb2ab4bc3c6662f

View File

@ -1 +1 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-arm64-darwin
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-arm64-darwin

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw-ucrt:0f80d5366a28f03bb836ba4e1b3cb6987bf90207@sha256:4b60f82c8425db2b8fb430833175538aa362cf61d7f88c9c68cbf5970bf8b92c
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw-ucrt:79dc5d2714b6fe06e330fd6f59d2d7124d619904@sha256:8392ae8ca347a6ce4a140ada7c24135de8744523282ad94eef389eafc9f4397e

View File

@ -1,4 +1,4 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-x64-mingw-ucrt
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-x64-mingw-ucrt
RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw32:6aa6aae6ef0aba70d140718a9f9c9fc8741ebf73@sha256:eab102dc22d88124c78444f35b3a24bb45bce379b147cca0c5b64662ca41a82c
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw32:bbe2698a2ef8126b20ac051a3cf2e60349f4571b@sha256:b97c530e1f2b1bd793c743fc961d21b8a52b2dbb8c4d06b3dcf3fce5d8b99500

View File

@ -1,4 +1,4 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-x64-mingw32
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-x64-mingw32
RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-linux:66ad2a2893389ffe6235ed32b658d198b67ff7da@sha256:c1221bb41bb36ecc2b998431aabdffacec8bacea03dde2c6bf717a71a25975e2
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-linux:e040af5597a8005687afe45d8156247e598dad8c@sha256:facd2d03737e64f615335156c726b1284f44fff1ae83b1c06fa0c39c176df04a

View File

@ -1,4 +1,4 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-x86-linux
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-x86-linux
#=================
# Install ccache

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-mingw32:61b946da29a4f0c2829f948ff6afcbcf3ca27292@sha256:909ae31711de69a129bac3b2ed568ccc771f467ec3c712cf2cb142c3cdd6a154
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-mingw32:aad1cd2120215e5cbe10d74f2148e2c2640af31c@sha256:41f92a60b2b8bec72f3772cb0644860d00c0475b6acdc7062abdd01e6667e3e6

View File

@ -1,4 +1,4 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-x86-mingw32
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-x86-mingw32
RUN find / -name win32.h | while read f ; do sed -i 's/gettimeofday/rb_gettimeofday/' $f ; done

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-darwin:e35029584ce9636070e53e0044d29825412ad071@sha256:44865f928d61f97369903673785fcbe0f6a823a60efcd045c025ca9c5579bcee
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-darwin:e1be88a89f0500d0d43c7604625ef056d7bc7948@sha256:ba8e38140f69ae8febe01f8b168782ec1f15cd2e59dd61719fd1176404138062

View File

@ -1 +1 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-x86_64-darwin
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-x86_64-darwin

View File

@ -1 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-linux:4d91e9b890dc074d1e185bd387efea18110cf5e6@sha256:91603592860c33da1773711b9422b7ffc8ecb69892d112082be17093f2995095
us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-linux:cbdd9ab7c650280049ed107c95ac12e91e8143ec@sha256:149b949cfe4968963d86dca7e4bc425201efb6be912a996aff952b0003f25ad0

View File

@ -1,4 +1,4 @@
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.3.1-mri-x86_64-linux
FROM ghcr.io/rake-compiler/rake-compiler-dock-image:1.4.0-mri-x86_64-linux
#=================
# Install ccache

View File

@ -19,14 +19,14 @@ accessible to bazel builds.
"""
DOCKERIMAGE_CURRENT_VERSIONS = {
"third_party/rake-compiler-dock/rake_aarch64-linux.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_aarch64-linux@sha256:a015b83950b891a61b43cbfcdac5bcdfd62d34ac58652302b3e25633274e942a",
"third_party/rake-compiler-dock/rake_arm64-darwin.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_arm64-darwin@sha256:5e207456cc0cdd67f308023b5cbc6932a6db56e58a537862292e76c8ac2e5f90",
"third_party/rake-compiler-dock/rake_x64-mingw-ucrt.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw-ucrt@sha256:4b60f82c8425db2b8fb430833175538aa362cf61d7f88c9c68cbf5970bf8b92c",
"third_party/rake-compiler-dock/rake_x64-mingw32.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw32@sha256:eab102dc22d88124c78444f35b3a24bb45bce379b147cca0c5b64662ca41a82c",
"third_party/rake-compiler-dock/rake_x86-linux.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-linux@sha256:c1221bb41bb36ecc2b998431aabdffacec8bacea03dde2c6bf717a71a25975e2",
"third_party/rake-compiler-dock/rake_x86-mingw32.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-mingw32@sha256:909ae31711de69a129bac3b2ed568ccc771f467ec3c712cf2cb142c3cdd6a154",
"third_party/rake-compiler-dock/rake_x86_64-darwin.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-darwin@sha256:44865f928d61f97369903673785fcbe0f6a823a60efcd045c025ca9c5579bcee",
"third_party/rake-compiler-dock/rake_x86_64-linux.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-linux@sha256:91603592860c33da1773711b9422b7ffc8ecb69892d112082be17093f2995095",
"third_party/rake-compiler-dock/rake_aarch64-linux.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_aarch64-linux@sha256:2ab21c63fc49cd56e2d083d5219dc67134de0e1465edddb3f87e9efdc538910b",
"third_party/rake-compiler-dock/rake_arm64-darwin.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_arm64-darwin@sha256:16bb1a0746215557f5577e4cd289e10cec593d74b5a3033c9bb2ab4bc3c6662f",
"third_party/rake-compiler-dock/rake_x64-mingw-ucrt.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw-ucrt@sha256:8392ae8ca347a6ce4a140ada7c24135de8744523282ad94eef389eafc9f4397e",
"third_party/rake-compiler-dock/rake_x64-mingw32.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x64-mingw32@sha256:b97c530e1f2b1bd793c743fc961d21b8a52b2dbb8c4d06b3dcf3fce5d8b99500",
"third_party/rake-compiler-dock/rake_x86-linux.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-linux@sha256:facd2d03737e64f615335156c726b1284f44fff1ae83b1c06fa0c39c176df04a",
"third_party/rake-compiler-dock/rake_x86-mingw32.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86-mingw32@sha256:41f92a60b2b8bec72f3772cb0644860d00c0475b6acdc7062abdd01e6667e3e6",
"third_party/rake-compiler-dock/rake_x86_64-darwin.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-darwin@sha256:ba8e38140f69ae8febe01f8b168782ec1f15cd2e59dd61719fd1176404138062",
"third_party/rake-compiler-dock/rake_x86_64-linux.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/rake_x86_64-linux@sha256:149b949cfe4968963d86dca7e4bc425201efb6be912a996aff952b0003f25ad0",
"tools/dockerfile/distribtest/cpp_debian10_aarch64_cross_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/cpp_debian10_aarch64_cross_x64@sha256:15eeafcd816cb32a0d44da22f654749352a92fec9626dc028b39948897d5bea3",
"tools/dockerfile/distribtest/cpp_debian10_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/cpp_debian10_x64@sha256:904e3db8521697768f94aa08230063b474246184e126f74a41b98a6f4aaf6a49",
"tools/dockerfile/distribtest/csharp_alpine_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/csharp_alpine_x64@sha256:d018105349fcabdc3aa0649c1381d840c613df6b442a53a751d7dc839a80d429",

View File

@ -14,5 +14,5 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'
PROTOBUF_VERSION = '3.25.1'

View File

@ -14,5 +14,5 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'
PROTOBUF_VERSION = '3.25.1'

View File

@ -14,5 +14,5 @@
# AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
VERSION = '1.61.0.dev0'
VERSION = '1.61.2'
PROTOBUF_VERSION = '3.25.1'

View File

@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC C++"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 1.61.0-dev
PROJECT_NUMBER = 1.61.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC C++"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 1.61.0-dev
PROJECT_NUMBER = 1.61.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC Objective-C"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 1.61.0-dev
PROJECT_NUMBER = 1.61.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC Objective-C"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 1.61.0-dev
PROJECT_NUMBER = 1.61.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC PHP"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 1.61.0-dev
PROJECT_NUMBER = 1.61.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@ -1,4 +1,5 @@
# Copyright 2023 gRPC authors.
#!/usr/bin/env bash
# Copyright 2024 The gRPC Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -12,16 +13,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# Config file for the internal CI (in protobuf text format)
# Checks if any of the Python artifacts exceeds a certern size limit since
# Pypi has a per-file size limit.
# Location of the continuous shell script in repository.
# TODO(sergiitk): delete when the job is renamed
build_file: "grpc/tools/internal_ci/linux/psm-csm.sh"
timeout_mins: 60
action {
define_artifacts {
regex: "artifacts/**/*sponge_log.xml"
regex: "artifacts/**/*.log"
strip_prefix: "artifacts"
}
}
set -ex
find . -path "*/artifacts/*" -size +80M | egrep '.*' && echo "Found Python artifacts larger than 80 MB." && FAILED="true"
if [ "$FAILED" != "" ]
then
exit 1
fi

View File

@ -28,7 +28,7 @@ set +ex
# but we want to exit if there's a failure
set -e
RUBY_VERSION=3.2.0
RUBY_VERSION=3.3.0
echo "Installing ruby-${RUBY_VERSION}"
time rvm install "ruby-${RUBY_VERSION}"
echo "Setting default ruby version."
@ -41,7 +41,7 @@ set -ex
ruby --version
# Bundler is required for grpc ruby artifact build.
gem install bundler -v 2.4
gem install bundler -v 2.5
# log gem versions for easier debugging if things go wrong
gem list || true

Some files were not shown because too many files have changed in this diff Show More