Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-grpcio-tools for openSUSE:Factory checked in at 2023-07-03 17:43:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-grpcio-tools (Old) and /work/SRC/openSUSE:Factory/.python-grpcio-tools.new.13546 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-grpcio-tools" Mon Jul 3 17:43:23 2023 rev:23 rq:1096365 version:1.56.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-grpcio-tools/python-grpcio-tools.changes 2023-06-11 19:58:27.180307676 +0200 +++ /work/SRC/openSUSE:Factory/.python-grpcio-tools.new.13546/python-grpcio-tools.changes 2023-07-03 17:43:31.460979602 +0200 @@ -1,0 +2,7 @@ +Fri Jun 30 15:49:31 UTC 2023 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 1.56.0: + * [aio types] Fix some grpc.aio python types + (gh#grpc/grpc#32475). + +------------------------------------------------------------------- Old: ---- grpcio-tools-1.55.0.tar.gz New: ---- grpcio-tools-1.56.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-grpcio-tools.spec ++++++ --- /var/tmp/diff_new_pack.CZcg0d/_old 2023-07-03 17:43:32.168983770 +0200 +++ /var/tmp/diff_new_pack.CZcg0d/_new 2023-07-03 17:43:32.172983793 +0200 @@ -20,7 +20,7 @@ %define skip_python2 1 Name: python-grpcio-tools -Version: 1.55.0 +Version: 1.56.0 Release: 0 Summary: Protobuf code generator for gRPC License: Apache-2.0 ++++++ grpcio-tools-1.55.0.tar.gz -> grpcio-tools-1.56.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/PKG-INFO new/grpcio-tools-1.56.0/PKG-INFO --- old/grpcio-tools-1.55.0/PKG-INFO 2023-05-19 02:19:13.390367000 +0200 +++ new/grpcio-tools-1.56.0/PKG-INFO 2023-06-14 22:44:43.793380300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: grpcio-tools -Version: 1.55.0 +Version: 1.56.0 Summary: Protobuf code generator for gRPC Home-page: https://grpc.io Author: The gRPC Authors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpc/event_engine/event_engine.h new/grpcio-tools-1.56.0/grpc_root/include/grpc/event_engine/event_engine.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpc/event_engine/event_engine.h 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpc/event_engine/event_engine.h 2023-06-14 22:44:24.000000000 +0200 @@ -283,8 +283,9 @@ /// \a on_shutdown will never be called. /// /// If this method returns a Listener, then \a on_shutdown will be invoked - /// exactly once, when the Listener is shut down. The status passed to it will - /// indicate if there was a problem during shutdown. + /// exactly once when the Listener is shut down, and only after all + /// \a on_accept callbacks have finished executing. The status passed to it + /// will indicate if there was a problem during shutdown. /// /// The provided \a MemoryAllocatorFactory is used to create \a /// MemoryAllocators for Endpoint construction. @@ -353,7 +354,7 @@ absl::AnyInvocable<void(absl::StatusOr<std::vector<SRVRecord>>)>; /// Called with the result of a TXT record lookup using LookupTXTCallback = - absl::AnyInvocable<void(absl::StatusOr<std::string>)>; + absl::AnyInvocable<void(absl::StatusOr<std::vector<std::string>>)>; virtual ~DNSResolver() = default; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpc/grpc_audit_logging.h new/grpcio-tools-1.56.0/grpc_root/include/grpc/grpc_audit_logging.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpc/grpc_audit_logging.h 1970-01-01 01:00:00.000000000 +0100 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpc/grpc_audit_logging.h 2023-06-14 22:44:24.000000000 +0200 @@ -0,0 +1,96 @@ +// +// +// Copyright 2023 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. +// +// + +#ifndef GRPC_GRPC_AUDIT_LOGGING_H +#define GRPC_GRPC_AUDIT_LOGGING_H + +#include <grpc/support/port_platform.h> + +#include <memory> +#include <string> + +#include "absl/status/statusor.h" +#include "absl/strings/string_view.h" + +#include <grpc/support/json.h> + +namespace grpc_core { +namespace experimental { + +// The class containing the context for an audited RPC. +class AuditContext { + public: + AuditContext(absl::string_view rpc_method, absl::string_view principal, + absl::string_view policy_name, absl::string_view matched_rule, + bool authorized) + : rpc_method_(rpc_method), + principal_(principal), + policy_name_(policy_name), + matched_rule_(matched_rule), + authorized_(authorized) {} + + absl::string_view rpc_method() const { return rpc_method_; } + absl::string_view principal() const { return principal_; } + absl::string_view policy_name() const { return policy_name_; } + absl::string_view matched_rule() const { return matched_rule_; } + bool authorized() const { return authorized_; } + + private: + absl::string_view rpc_method_; + absl::string_view principal_; + absl::string_view policy_name_; + absl::string_view matched_rule_; + bool authorized_; +}; + +// This base class for audit logger implementations. +class AuditLogger { + public: + virtual ~AuditLogger() = default; + virtual absl::string_view name() const = 0; + virtual void Log(const AuditContext& audit_context) = 0; +}; + +// This is the base class for audit logger factory implementations. +class AuditLoggerFactory { + public: + class Config { + public: + virtual ~Config() = default; + virtual absl::string_view name() const = 0; + virtual std::string ToString() const = 0; + }; + + virtual ~AuditLoggerFactory() = default; + virtual absl::string_view name() const = 0; + + virtual absl::StatusOr<std::unique_ptr<Config>> ParseAuditLoggerConfig( + const Json& json) = 0; + + virtual std::unique_ptr<AuditLogger> CreateAuditLogger( + std::unique_ptr<AuditLoggerFactory::Config>) = 0; +}; + +// Registers an audit logger factory. This should only be called during +// initialization. +void RegisterAuditLoggerFactory(std::unique_ptr<AuditLoggerFactory> factory); + +} // namespace experimental +} // namespace grpc_core + +#endif // GRPC_GRPC_AUDIT_LOGGING_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpc/module.modulemap new/grpcio-tools-1.56.0/grpc_root/include/grpc/module.modulemap --- old/grpcio-tools-1.55.0/grpc_root/include/grpc/module.modulemap 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpc/module.modulemap 2023-06-14 22:44:24.000000000 +0200 @@ -8,6 +8,7 @@ header "compression.h" header "fork.h" header "grpc.h" + header "grpc_audit_logging.h" header "grpc_posix.h" header "grpc_security.h" header "grpc_security_constants.h" @@ -39,6 +40,7 @@ header "support/alloc.h" header "support/atm.h" header "support/cpu.h" + header "support/json.h" header "support/log.h" header "support/log_windows.h" header "support/port_platform.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpc/support/json.h new/grpcio-tools-1.56.0/grpc_root/include/grpc/support/json.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpc/support/json.h 1970-01-01 01:00:00.000000000 +0100 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpc/support/json.h 2023-06-14 22:44:24.000000000 +0200 @@ -0,0 +1,218 @@ +// +// Copyright 2015 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. +// + +#ifndef GRPC_SUPPORT_JSON_H +#define GRPC_SUPPORT_JSON_H + +#include <grpc/support/port_platform.h> + +#include <stdint.h> + +#include <map> +#include <string> +#include <utility> +#include <vector> + +#include "absl/strings/str_cat.h" +#include "absl/types/variant.h" + +namespace grpc_core { +namespace experimental { + +// A JSON value, which can be any one of null, boolean, number, string, +// object, or array. +class Json { + public: + // The JSON type. + enum class Type { + kNull, // No payload. Default type when using the zero-arg ctor. + kBoolean, // Use boolean() for payload. + kNumber, // Numbers are stored in string form to avoid precision + // and integer capacity issues. Use string() for payload. + kString, // Use string() for payload. + kObject, // Use object() for payload. + kArray, // Use array() for payload. + }; + + using Object = std::map<std::string, Json>; + using Array = std::vector<Json>; + + // Factory method for kBoolean. + static Json FromBool(bool b) { + Json json; + json.value_ = b; + return json; + } + + // Factory methods for kNumber. + static Json FromNumber(const std::string& str) { + Json json; + json.value_ = NumberValue{str}; + return json; + } + static Json FromNumber(const char* str) { + Json json; + json.value_ = NumberValue{std::string(str)}; + return json; + } + static Json FromNumber(std::string&& str) { + Json json; + json.value_ = NumberValue{std::move(str)}; + return json; + } + static Json FromNumber(int32_t value) { + Json json; + json.value_ = NumberValue{absl::StrCat(value)}; + return json; + } + static Json FromNumber(uint32_t value) { + Json json; + json.value_ = NumberValue{absl::StrCat(value)}; + return json; + } + static Json FromNumber(int64_t value) { + Json json; + json.value_ = NumberValue{absl::StrCat(value)}; + return json; + } + static Json FromNumber(uint64_t value) { + Json json; + json.value_ = NumberValue{absl::StrCat(value)}; + return json; + } + static Json FromNumber(double value) { + Json json; + json.value_ = NumberValue{absl::StrCat(value)}; + return json; + } + + // Factory methods for kString. + static Json FromString(const std::string& str) { + Json json; + json.value_ = str; + return json; + } + static Json FromString(const char* str) { + Json json; + json.value_ = std::string(str); + return json; + } + static Json FromString(std::string&& str) { + Json json; + json.value_ = std::move(str); + return json; + } + + // Factory methods for kObject. + static Json FromObject(const Object& object) { + Json json; + json.value_ = object; + return json; + } + static Json FromObject(Object&& object) { + Json json; + json.value_ = std::move(object); + return json; + } + + // Factory methods for kArray. + static Json FromArray(const Array& array) { + Json json; + json.value_ = array; + return json; + } + static Json FromArray(Array&& array) { + Json json; + json.value_ = std::move(array); + return json; + } + + Json() = default; + + // Copyable. + Json(const Json& other) = default; + Json& operator=(const Json& other) = default; + + // Moveable. + Json(Json&& other) noexcept : value_(std::move(other.value_)) { + other.value_ = absl::monostate(); + } + Json& operator=(Json&& other) noexcept { + value_ = std::move(other.value_); + other.value_ = absl::monostate(); + return *this; + } + + // Returns the JSON type. + Type type() const { + struct ValueFunctor { + Json::Type operator()(const absl::monostate&) { return Type::kNull; } + Json::Type operator()(bool) { return Type::kBoolean; } + Json::Type operator()(const NumberValue&) { return Type::kNumber; } + Json::Type operator()(const std::string&) { return Type::kString; } + Json::Type operator()(const Object&) { return Type::kObject; } + Json::Type operator()(const Array&) { return Type::kArray; } + }; + return absl::visit(ValueFunctor(), value_); + } + + // Payload accessor for kBoolean. + // Must not be called for other types. + bool boolean() const { return absl::get<bool>(value_); } + + // Payload accessor for kNumber or kString. + // Must not be called for other types. + const std::string& string() const { + const NumberValue* num = absl::get_if<NumberValue>(&value_); + if (num != nullptr) return num->value; + return absl::get<std::string>(value_); + } + + // Payload accessor for kObject. + // Must not be called for other types. + const Object& object() const { return absl::get<Object>(value_); } + + // Payload accessor for kArray. + // Must not be called for other types. + const Array& array() const { return absl::get<Array>(value_); } + + bool operator==(const Json& other) const { return value_ == other.value_; } + bool operator!=(const Json& other) const { return !(*this == other); } + + private: + struct NumberValue { + std::string value; + + bool operator==(const NumberValue& other) const { + return value == other.value; + } + }; + using Value = absl::variant<absl::monostate, // kNull + bool, // kBoolean + NumberValue, // kNumber + std::string, // kString + Object, // kObject + Array>; // kArray + + explicit Json(Value value) : value_(std::move(value)) {} + + Value value_; +}; + +} // namespace experimental +} // namespace grpc_core + +#endif // GRPC_SUPPORT_JSON_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/ext/call_metric_recorder.h new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/ext/call_metric_recorder.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/ext/call_metric_recorder.h 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/ext/call_metric_recorder.h 2023-06-14 22:44:24.000000000 +0200 @@ -50,6 +50,14 @@ /// Values outside of the valid range [0, 1] are ignored. virtual CallMetricRecorder& RecordMemoryUtilizationMetric(double value) = 0; + /// Records a call metric measurement for application specific utilization. + /// Multiple calls to this method will override the stored value. + /// Values may be larger than 1.0 when the usage exceeds the reporter + /// dependent notion of soft limits. + /// Values outside of the valid range [0, infy] are ignored. + virtual CallMetricRecorder& RecordApplicationUtilizationMetric( + double value) = 0; + /// Records a call metric measurement for queries per second. /// Multiple calls to this method will override the stored value. /// Values outside of the valid range [0, infy) are ignored. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/ext/server_metric_recorder.h new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/ext/server_metric_recorder.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/ext/server_metric_recorder.h 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/ext/server_metric_recorder.h 2023-06-14 22:44:24.000000000 +0200 @@ -52,6 +52,10 @@ /// Values outside of the valid range are rejected. /// Overrides the stored value when called again with a valid value. void SetMemoryUtilization(double value); + /// Records the application specific utilization in the range [0, infy]. + /// Values outside of the valid range are rejected. + /// Overrides the stored value when called again with a valid value. + void SetApplicationUtilization(double value); /// Records number of queries per second to the server in the range [0, infy). /// Values outside of the valid range are rejected. /// Overrides the stored value when called again with a valid value. @@ -77,6 +81,8 @@ void ClearCpuUtilization(); /// Clears the server memory utilization if recorded. void ClearMemoryUtilization(); + /// Clears the application specific utilization if recorded. + void ClearApplicationUtilization(); /// Clears number of queries per second to the server if recorded. void ClearQps(); /// Clears number of errors per second to the server if recorded. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/security/audit_logging.h new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/security/audit_logging.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/security/audit_logging.h 1970-01-01 01:00:00.000000000 +0100 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/security/audit_logging.h 2023-06-14 22:44:24.000000000 +0200 @@ -0,0 +1,44 @@ +// +// +// Copyright 2023 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. +// +// + +#ifndef GRPCPP_SECURITY_AUDIT_LOGGING_H +#define GRPCPP_SECURITY_AUDIT_LOGGING_H + +#include <memory> +#include <string> +#include <utility> + +#include "absl/status/statusor.h" + +#include <grpc/grpc_audit_logging.h> +#include <grpcpp/support/string_ref.h> + +namespace grpc { +namespace experimental { + +using grpc_core::experimental::AuditContext; // NOLINT(misc-unused-using-decls) +using grpc_core::experimental::AuditLogger; // NOLINT(misc-unused-using-decls) +using grpc_core::experimental:: + AuditLoggerFactory; // NOLINT(misc-unused-using-decls) +using grpc_core::experimental:: + RegisterAuditLoggerFactory; // NOLINT(misc-unused-using-decls) + +} // namespace experimental +} // namespace grpc + +#endif // GRPCPP_SECURITY_AUDIT_LOGGING_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/server_context.h new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/server_context.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/server_context.h 2023-05-19 02:18:44.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/server_context.h 2023-06-14 22:44:24.000000000 +0200 @@ -206,7 +206,9 @@ /// TryCancel() is called, the serverhandler must return Status::CANCELLED. /// The only exception is that if the serverhandler is already returning an /// error status code, it is ok to not return Status::CANCELLED even if - /// TryCancel() was called. + /// TryCancel() was called. Additionally, it is illegal to invoke TryCancel() + /// before the call has actually begun, i.e., before metadata has been + /// received from the client. /// /// For reasons such as the above, it is generally preferred to explicitly /// finish an RPC by returning Status::CANCELLED rather than using TryCancel. @@ -303,8 +305,8 @@ /// Async only. Has to be called before the rpc starts. /// Returns the tag in completion queue when the rpc finishes. /// IsCancelled() can then be called to check whether the rpc was cancelled. - /// TODO(vjpai): Fix this so that the tag is returned even if the call never - /// starts (https://github.com/grpc/grpc/issues/10136). + /// Note: the tag will only be returned if call starts. + /// If the call never starts, this tag will not be returned. void AsyncNotifyWhenDone(void* tag) { has_notify_when_done_tag_ = true; async_notify_when_done_tag_ = tag; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/version_info.h new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/version_info.h --- old/grpcio-tools-1.55.0/grpc_root/include/grpcpp/version_info.h 2023-05-19 02:18:44.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/include/grpcpp/version_info.h 2023-06-14 22:44:24.000000000 +0200 @@ -19,9 +19,9 @@ #define GRPCPP_VERSION_INFO_H #define GRPC_CPP_VERSION_MAJOR 1 -#define GRPC_CPP_VERSION_MINOR 55 +#define GRPC_CPP_VERSION_MINOR 56 #define GRPC_CPP_VERSION_PATCH 0 #define GRPC_CPP_VERSION_TAG "" -#define GRPC_CPP_VERSION_STRING "1.55.0" +#define GRPC_CPP_VERSION_STRING "1.56.0" #endif // GRPCPP_VERSION_INFO_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/src/compiler/csharp_generator.cc new/grpcio-tools-1.56.0/grpc_root/src/compiler/csharp_generator.cc --- old/grpcio-tools-1.55.0/grpc_root/src/compiler/csharp_generator.cc 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/src/compiler/csharp_generator.cc 2023-06-14 22:44:24.000000000 +0200 @@ -100,6 +100,14 @@ "null)]\n"); } +void GenerateObsoleteAttribute(grpc::protobuf::io::Printer* printer, + bool is_deprecated) { + // Mark the code deprecated using the [ObsoleteAttribute] attribute. + if (is_deprecated) { + printer->Print("[global::System.ObsoleteAttribute]\n"); + } +} + template <typename DescriptorType> bool GenerateDocCommentBody(grpc::protobuf::io::Printer* printer, const DescriptorType* descriptor) { @@ -439,6 +447,7 @@ "/// <summary>Base class for server-side implementations of " "$servicename$</summary>\n", "servicename", GetServiceClassName(service)); + GenerateObsoleteAttribute(out, service->options().deprecated()); out->Print( "[grpc::BindServiceMethod(typeof($classname$), " "\"BindService\")]\n", @@ -450,6 +459,7 @@ for (int i = 0; i < service->method_count(); i++) { const MethodDescriptor* method = service->method(i); GenerateDocCommentServerMethod(out, method); + GenerateObsoleteAttribute(out, method->options().deprecated()); GenerateGeneratedCodeAttribute(out); out->Print( "public virtual $returntype$ " @@ -475,6 +485,7 @@ void GenerateClientStub(Printer* out, const ServiceDescriptor* service) { out->Print("/// <summary>Client for $servicename$</summary>\n", "servicename", GetServiceClassName(service)); + GenerateObsoleteAttribute(out, service->options().deprecated()); out->Print("public partial class $name$ : grpc::ClientBase<$name$>\n", "name", GetClientClassName(service)); out->Print("{\n"); @@ -525,9 +536,11 @@ for (int i = 0; i < service->method_count(); i++) { const MethodDescriptor* method = service->method(i); + const bool is_deprecated = method->options().deprecated(); if (!method->client_streaming() && !method->server_streaming()) { // unary calls have an extra synchronous stub method GenerateDocCommentClientMethod(out, method, true, false); + GenerateObsoleteAttribute(out, is_deprecated); GenerateGeneratedCodeAttribute(out); out->Print( "public virtual $response$ $methodname$($request$ request, " @@ -551,6 +564,7 @@ // overload taking CallOptions as a param GenerateDocCommentClientMethod(out, method, true, true); + GenerateObsoleteAttribute(out, is_deprecated); GenerateGeneratedCodeAttribute(out); out->Print( "public virtual $response$ $methodname$($request$ request, " @@ -573,6 +587,7 @@ method_name += "Async"; // prevent name clash with synchronous method. } GenerateDocCommentClientMethod(out, method, false, false); + GenerateObsoleteAttribute(out, is_deprecated); GenerateGeneratedCodeAttribute(out); out->Print( "public virtual $returntype$ " @@ -598,6 +613,7 @@ // overload taking CallOptions as a param GenerateDocCommentClientMethod(out, method, false, true); + GenerateObsoleteAttribute(out, is_deprecated); GenerateGeneratedCodeAttribute(out); out->Print( "public virtual $returntype$ " @@ -739,6 +755,7 @@ bool internal_access) { GenerateDocCommentBody(out, service); + GenerateObsoleteAttribute(out, service->options().deprecated()); out->Print("$access_level$ static partial class $classname$\n", "access_level", GetAccessLevel(internal_access), "classname", GetServiceClassName(service)); @@ -801,7 +818,7 @@ out.PrintRaw(leading_comments.c_str()); } - out.Print("#pragma warning disable 0414, 1591, 8981\n"); + out.Print("#pragma warning disable 0414, 1591, 8981, 0612\n"); out.Print("#region Designer generated code\n"); out.Print("\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/src/compiler/php_generator.cc new/grpcio-tools-1.56.0/grpc_root/src/compiler/php_generator.cc --- old/grpcio-tools-1.55.0/grpc_root/src/compiler/php_generator.cc 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/src/compiler/php_generator.cc 2023-06-14 22:44:24.000000000 +0200 @@ -77,6 +77,9 @@ GeneratedClassName(output_type), output_type->file()); out->Print("/**\n"); + if (method->options().deprecated()) { + out->Print(" * @deprecated\n"); + } out->Print(GetPHPComments(method, " *").c_str()); if (method->client_streaming()) { if (method->server_streaming()) { @@ -144,6 +147,9 @@ GeneratedClassName(output_type), output_type->file()); out->Print("/**\n"); + if (method->options().deprecated()) { + out->Print(" * @deprecated\n"); + } out->Print(GetPHPComments(method, " *").c_str()); const char* method_template; @@ -222,8 +228,11 @@ map<std::string, std::string> vars; vars["service_name"] = service->full_name(); + out->Print("/**\n"); + if (service->options().deprecated()) { + out->Print(" * @deprecated\n"); + } out->Print( - "/**\n" " * Get the method descriptors of the service for server registration\n" " *\n" " * @return array of \\Grpc\\MethodDescriptor for the service methods\n" @@ -272,6 +281,9 @@ Printer* out) { map<std::string, std::string> vars; out->Print("/**\n"); + if (service->options().deprecated()) { + out->Print(" * @deprecated\n"); + } out->Print(GetPHPComments(service, " *").c_str()); out->Print(" */\n"); vars["name"] = GetPHPServiceClassname(service, class_suffix, is_server); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_root/src/compiler/php_generator_helpers.h new/grpcio-tools-1.56.0/grpc_root/src/compiler/php_generator_helpers.h --- old/grpcio-tools-1.55.0/grpc_root/src/compiler/php_generator_helpers.h 2023-05-19 02:18:45.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_root/src/compiler/php_generator_helpers.h 2023-06-14 22:44:24.000000000 +0200 @@ -60,8 +60,10 @@ << grpc_generator::CapitalizeFirstLetter(tokens[i]); } } - return oss.str() + "/" + - GetPHPServiceClassname(service, class_suffix, is_server) + ".php"; + std::string path = oss.str(); + if (!path.empty()) path += "/"; + path += GetPHPServiceClassname(service, class_suffix, is_server) + ".php"; + return path; } // Get leading or trailing comments in a string. Comment lines start with "// ". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpc_version.py new/grpcio-tools-1.56.0/grpc_version.py --- old/grpcio-tools-1.55.0/grpc_version.py 2023-05-19 02:12:02.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpc_version.py 2023-06-14 22:39:02.000000000 +0200 @@ -14,5 +14,5 @@ # AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!! -VERSION = '1.55.0' +VERSION = '1.56.0' PROTOBUF_VERSION = '3.23.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpcio_tools.egg-info/PKG-INFO new/grpcio-tools-1.56.0/grpcio_tools.egg-info/PKG-INFO --- old/grpcio-tools-1.55.0/grpcio_tools.egg-info/PKG-INFO 2023-05-19 02:19:12.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpcio_tools.egg-info/PKG-INFO 2023-06-14 22:44:43.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: grpcio-tools -Version: 1.55.0 +Version: 1.56.0 Summary: Protobuf code generator for gRPC Home-page: https://grpc.io Author: The gRPC Authors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpcio_tools.egg-info/SOURCES.txt new/grpcio-tools-1.56.0/grpcio_tools.egg-info/SOURCES.txt --- old/grpcio-tools-1.55.0/grpcio_tools.egg-info/SOURCES.txt 2023-05-19 02:19:12.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpcio_tools.egg-info/SOURCES.txt 2023-06-14 22:44:43.000000000 +0200 @@ -10,6 +10,7 @@ grpc_root/include/grpc/compression.h grpc_root/include/grpc/fork.h grpc_root/include/grpc/grpc.h +grpc_root/include/grpc/grpc_audit_logging.h grpc_root/include/grpc/grpc_cronet.h grpc_root/include/grpc/grpc_posix.h grpc_root/include/grpc/grpc_security.h @@ -142,6 +143,7 @@ grpc_root/include/grpc/support/atm_gcc_sync.h grpc_root/include/grpc/support/atm_windows.h grpc_root/include/grpc/support/cpu.h +grpc_root/include/grpc/support/json.h grpc_root/include/grpc/support/log.h grpc_root/include/grpc/support/log_windows.h grpc_root/include/grpc/support/port_platform.h @@ -262,6 +264,7 @@ grpc_root/include/grpcpp/impl/codegen/security/auth_context.h grpc_root/include/grpcpp/security/alts_context.h grpc_root/include/grpcpp/security/alts_util.h +grpc_root/include/grpcpp/security/audit_logging.h grpc_root/include/grpcpp/security/auth_context.h grpc_root/include/grpcpp/security/auth_metadata_processor.h grpc_root/include/grpcpp/security/authorization_policy_provider.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/grpcio-tools-1.55.0/grpcio_tools.egg-info/requires.txt new/grpcio-tools-1.56.0/grpcio_tools.egg-info/requires.txt --- old/grpcio-tools-1.55.0/grpcio_tools.egg-info/requires.txt 2023-05-19 02:19:12.000000000 +0200 +++ new/grpcio-tools-1.56.0/grpcio_tools.egg-info/requires.txt 2023-06-14 22:44:43.000000000 +0200 @@ -1,3 +1,3 @@ protobuf<5.0dev,>=4.21.6 -grpcio>=1.55.0 +grpcio>=1.56.0 setuptools