Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-googleapis-common-protos for
openSUSE:Factory checked in at 2026-10-09 21:46:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-googleapis-common-protos (Old)
and
/work/SRC/openSUSE:Factory/.python-googleapis-common-protos.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-googleapis-common-protos"
Fri Oct 9 21:46:13 2026 rev:38 rq:1383809 version:1.75.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-googleapis-common-protos/python-googleapis-common-protos.changes
2026-09-17 15:25:23.278999054 +0200
+++
/work/SRC/openSUSE:Factory/.python-googleapis-common-protos.new.3698736/python-googleapis-common-protos.changes
2026-10-09 21:47:40.111083415 +0200
@@ -1,0 +2,9 @@
+Fri Oct 9 09:22:19 UTC 2026 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 1.75.5
+ * resolve error where google/longrunning/operations.proto is missing (#18477)
+- from version 1.75.4
+ * regenerate gencode with protobuf 6.33.5 (#18461)
+- Update BuildRequires and Requires from pyproject.toml
+
+-------------------------------------------------------------------
Old:
----
googleapis_common_protos-1.75.3.tar.gz
New:
----
googleapis_common_protos-1.75.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-googleapis-common-protos.spec ++++++
--- /var/tmp/diff_new_pack.5Y58SL/_old 2026-10-09 21:47:40.726109208 +0200
+++ /var/tmp/diff_new_pack.5Y58SL/_new 2026-10-09 21:47:40.728109292 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-googleapis-common-protos
-Version: 1.75.3
+Version: 1.75.5
Release: 0
Summary: Common protobufs used in Google APIs
License: Apache-2.0
@@ -26,14 +26,15 @@
URL:
https://github.com/googleapis/google-cloud-python/tree/main/packages/googleapis-common-protos
Source:
https://files.pythonhosted.org/packages/source/g/googleapis_common_protos/googleapis_common_protos-%{version}.tar.gz
Source1: test_google_api_error_reason.py
+BuildRequires: %{python_module grpcio >= 1.59.0}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module protobuf >= 6.33.5}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
+Requires: python-grpcio >= 1.59.0
Requires: python-protobuf >= 6.33.5
-Recommends: python-grpcio >= 1.59.0
BuildArch: noarch
%if 0%{?sle_version} >= 150400
Obsoletes: python3-googleapis-common-protos < %{version}
++++++ googleapis_common_protos-1.75.3.tar.gz ->
googleapis_common_protos-1.75.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/googleapis_common_protos-1.75.3/PKG-INFO
new/googleapis_common_protos-1.75.5/PKG-INFO
--- old/googleapis_common_protos-1.75.3/PKG-INFO 2026-09-04
00:03:39.869310900 +0200
+++ new/googleapis_common_protos-1.75.5/PKG-INFO 2026-09-29
20:59:47.414398400 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: googleapis-common-protos
-Version: 1.75.3
+Version: 1.75.5
Summary: Common protobufs used in Google APIs
Author-email: Google LLC <[email protected]>
License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/google/gapic/metadata/gapic_metadata_pb2.py
new/googleapis_common_protos-1.75.5/google/gapic/metadata/gapic_metadata_pb2.py
---
old/googleapis_common_protos-1.75.3/google/gapic/metadata/gapic_metadata_pb2.py
2026-09-03 23:58:48.400189000 +0200
+++
new/googleapis_common_protos-1.75.5/google/gapic/metadata/gapic_metadata_pb2.py
2026-09-29 20:56:55.927580000 +0200
@@ -15,15 +15,25 @@
# limitations under the License.
# Generated by the protocol buffer compiler. DO NOT EDIT!
+# NO CHECKED-IN PROTOBUF GENCODE
# source: google/gapic/metadata/gapic_metadata.proto
-# Protobuf Python Version: 4.25.3
+# Protobuf Python Version: 6.33.5
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
+_runtime_version.ValidateProtobufRuntimeVersion(
+ _runtime_version.Domain.PUBLIC,
+ 6,
+ 33,
+ 5,
+ "",
+ "google/gapic/metadata/gapic_metadata.proto",
+)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
@@ -38,18 +48,18 @@
_builder.BuildTopDescriptorsAndMessages(
DESCRIPTOR, "google.gapic.metadata.gapic_metadata_pb2", _globals
)
-if _descriptor._USE_C_DESCRIPTORS == False:
- _globals["DESCRIPTOR"]._options = None
+if not _descriptor._USE_C_DESCRIPTORS:
+ _globals["DESCRIPTOR"]._loaded_options = None
_globals[
"DESCRIPTOR"
]._serialized_options =
b"\n\031com.google.gapic.metadataB\022GapicMetadataProtoP\001Z=google.golang.org/genproto/googleapis/gapic/metadata;metadata\252\002\025Google.Gapic.Metadata\312\002\025Google\\Gapic\\Metadata\352\002\027Google::Gapic::Metadata"
- _globals["_GAPICMETADATA_SERVICESENTRY"]._options = None
+ _globals["_GAPICMETADATA_SERVICESENTRY"]._loaded_options = None
_globals["_GAPICMETADATA_SERVICESENTRY"]._serialized_options = b"8\001"
- _globals["_GAPICMETADATA_SERVICEFORTRANSPORT_CLIENTSENTRY"]._options = None
+
_globals["_GAPICMETADATA_SERVICEFORTRANSPORT_CLIENTSENTRY"]._loaded_options =
None
_globals[
"_GAPICMETADATA_SERVICEFORTRANSPORT_CLIENTSENTRY"
]._serialized_options = b"8\001"
- _globals["_GAPICMETADATA_SERVICEASCLIENT_RPCSENTRY"]._options = None
+ _globals["_GAPICMETADATA_SERVICEASCLIENT_RPCSENTRY"]._loaded_options = None
_globals["_GAPICMETADATA_SERVICEASCLIENT_RPCSENTRY"]._serialized_options =
b"8\001"
_globals["_GAPICMETADATA"]._serialized_start = 70
_globals["_GAPICMETADATA"]._serialized_end = 843
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/google/gapic/metadata/gapic_metadata_pb2.pyi
new/googleapis_common_protos-1.75.5/google/gapic/metadata/gapic_metadata_pb2.pyi
---
old/googleapis_common_protos-1.75.3/google/gapic/metadata/gapic_metadata_pb2.pyi
2026-09-03 23:58:50.254190700 +0200
+++
new/googleapis_common_protos-1.75.5/google/gapic/metadata/gapic_metadata_pb2.pyi
2026-09-29 20:56:54.084581900 +0200
@@ -12,9 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from collections.abc import Iterable as _Iterable
+from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar
-from typing import Iterable as _Iterable
-from typing import Mapping as _Mapping
from typing import Optional as _Optional
from typing import Union as _Union
@@ -33,7 +33,6 @@
"library_package",
"services",
)
-
class ServicesEntry(_message.Message):
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
@@ -48,7 +47,6 @@
class ServiceForTransport(_message.Message):
__slots__ = ("clients", "api_version")
-
class ClientsEntry(_message.Message):
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
@@ -73,7 +71,6 @@
class ServiceAsClient(_message.Message):
__slots__ = ("library_client", "rpcs")
-
class RpcsEntry(_message.Message):
__slots__ = ("key", "value")
KEY_FIELD_NUMBER: _ClassVar[int]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/google/longrunning/operations_proto.proto
new/googleapis_common_protos-1.75.5/google/longrunning/operations_proto.proto
---
old/googleapis_common_protos-1.75.3/google/longrunning/operations_proto.proto
2026-09-03 23:58:45.944748000 +0200
+++
new/googleapis_common_protos-1.75.5/google/longrunning/operations_proto.proto
2026-09-29 20:56:54.218581700 +0200
@@ -18,13 +18,13 @@
import "google/api/annotations.proto";
import "google/api/client.proto";
+import "google/api/field_behavior.proto";
import "google/protobuf/any.proto";
import "google/protobuf/descriptor.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/empty.proto";
import "google/rpc/status.proto";
-option cc_enable_arenas = true;
option csharp_namespace = "Google.LongRunning";
option go_package =
"cloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb";
option java_multiple_files = true;
@@ -176,6 +176,18 @@
// The standard list page token.
string page_token = 3;
+
+ // When set to `true`, operations that are reachable are returned as normal,
+ // and those that are unreachable are returned in the
+ // [ListOperationsResponse.unreachable] field.
+ //
+ // This can only be `true` when reading across collections e.g. when `parent`
+ // is set to `"projects/example/locations/-"`.
+ //
+ // This field is not by default supported and will result in an
+ // `UNIMPLEMENTED` error if set unless explicitly documented otherwise in
+ // service or product specific documentation.
+ bool return_partial_success = 5;
}
// The response message for
@@ -186,6 +198,13 @@
// The standard List next-page token.
string next_page_token = 2;
+
+ // Unordered list. Unreachable resources. Populated when the request sets
+ // `ListOperationsRequest.return_partial_success` and reads across
+ // collections e.g. when attempting to list all resources across all
supported
+ // locations.
+ repeated string unreachable = 3
+ [(google.api.field_behavior) = UNORDERED_LIST];
}
// The request message for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/google/longrunning/operations_proto_pb2.py
new/googleapis_common_protos-1.75.5/google/longrunning/operations_proto_pb2.py
---
old/googleapis_common_protos-1.75.3/google/longrunning/operations_proto_pb2.py
2026-09-03 23:58:46.945935500 +0200
+++
new/googleapis_common_protos-1.75.5/google/longrunning/operations_proto_pb2.py
2026-09-29 20:56:55.204580800 +0200
@@ -15,15 +15,20 @@
# limitations under the License.
# Generated by the protocol buffer compiler. DO NOT EDIT!
+# NO CHECKED-IN PROTOBUF GENCODE
# source: google/longrunning/operations.proto
-# Protobuf Python Version: 4.25.3
+# Protobuf Python Version: 6.33.5
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
+_runtime_version.ValidateProtobufRuntimeVersion(
+ _runtime_version.Domain.PUBLIC, 6, 33, 5, "",
"google/longrunning/operations.proto"
+)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
@@ -36,10 +41,11 @@
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.api import client_pb2 as google_dot_api_dot_client__pb2
+from google.api import field_behavior_pb2 as
google_dot_api_dot_field__behavior__pb2
from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
-
b'\n#google/longrunning/operations.proto\x12\x12google.longrunning\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x19google/protobuf/any.proto\x1a
google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x17google/rpc/status.proto"\xa8\x01\n\tOperation\x12\x0c\n\x04name\x18\x01
\x01(\t\x12&\n\x08metadata\x18\x02
\x01(\x0b\x32\x14.google.protobuf.Any\x12\x0c\n\x04\x64one\x18\x03
\x01(\x08\x12#\n\x05\x65rror\x18\x04
\x01(\x0b\x32\x12.google.rpc.StatusH\x00\x12(\n\x08response\x18\x05
\x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06result"#\n\x13GetOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t"\\\n\x15ListOperationsRequest\x12\x0c\n\x04name\x18\x04
\x01(\t\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02
\x01(\x05\x12\x12\n\npage_token\x18\x03
\x01(\t"d\n\x16ListOperationsResponse\x12\x31\n\noperations\x18\x01
\x03(\x0b\x32\x1d.google.longrunning.Operation\x12\x17\n\x0fnext_p
age_token\x18\x02
\x01(\t"&\n\x16\x43\x61ncelOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t"&\n\x16\x44\x65leteOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t"P\n\x14WaitOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t\x12*\n\x07timeout\x18\x02
\x01(\x0b\x32\x19.google.protobuf.Duration"=\n\rOperationInfo\x12\x15\n\rresponse_type\x18\x01
\x01(\t\x12\x15\n\rmetadata_type\x18\x02
\x01(\t2\xaa\x05\n\nOperations\x12\x94\x01\n\x0eListOperations\x12).google.longrunning.ListOperationsRequest\x1a*.google.longrunning.ListOperationsResponse"+\xda\x41\x0bname,filter\x82\xd3\xe4\x93\x02\x17\x12\x15/v1/{name=operations}\x12\x7f\n\x0cGetOperation\x12\'.google.longrunning.GetOperationRequest\x1a\x1d.google.longrunning.Operation"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=operations/**}\x12~\n\x0f\x44\x65leteOperation\x12*.google.longrunning.DeleteOperationRequest\x1a\x16.google.protobuf.Empty"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=operations/**}\x12\x88\x
01\n\x0f\x43\x61ncelOperation\x12*.google.longrunning.CancelOperationRequest\x1a\x16.google.protobuf.Empty"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$"\x1f/v1/{name=operations/**}:cancel:\x01*\x12Z\n\rWaitOperation\x12(.google.longrunning.WaitOperationRequest\x1a\x1d.google.longrunning.Operation"\x00\x1a\x1d\xca\x41\x1alongrunning.googleapis.com:Z\n\x0eoperation_info\x12\x1e.google.protobuf.MethodOptions\x18\x99\x08
\x01(\x0b\x32!.google.longrunning.OperationInfoB\xa5\x01\n\x16\x63om.google.longrunningB\x0fOperationsProtoP\x01ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\xf8\x01\x01\xa2\x02\x05GLRUN\xaa\x02\x12Google.LongRunning\xca\x02\x12Google\\LongRunningb\x06proto3'
+
b'\n#google/longrunning/operations.proto\x12\x12google.longrunning\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/protobuf/any.proto\x1a
google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x17google/rpc/status.proto"\xa8\x01\n\tOperation\x12\x0c\n\x04name\x18\x01
\x01(\t\x12&\n\x08metadata\x18\x02
\x01(\x0b\x32\x14.google.protobuf.Any\x12\x0c\n\x04\x64one\x18\x03
\x01(\x08\x12#\n\x05\x65rror\x18\x04
\x01(\x0b\x32\x12.google.rpc.StatusH\x00\x12(\n\x08response\x18\x05
\x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06result"#\n\x13GetOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t"|\n\x15ListOperationsRequest\x12\x0c\n\x04name\x18\x04
\x01(\t\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02
\x01(\x05\x12\x12\n\npage_token\x18\x03
\x01(\t\x12\x1e\n\x16return_partial_success\x18\x05
\x01(\x08"~\n\x16ListOperationsResponse\x12\
x31\n\noperations\x18\x01
\x03(\x0b\x32\x1d.google.longrunning.Operation\x12\x17\n\x0fnext_page_token\x18\x02
\x01(\t\x12\x18\n\x0bunreachable\x18\x03
\x03(\tB\x03\xe0\x41\x06"&\n\x16\x43\x61ncelOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t"&\n\x16\x44\x65leteOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t"P\n\x14WaitOperationRequest\x12\x0c\n\x04name\x18\x01
\x01(\t\x12*\n\x07timeout\x18\x02
\x01(\x0b\x32\x19.google.protobuf.Duration"=\n\rOperationInfo\x12\x15\n\rresponse_type\x18\x01
\x01(\t\x12\x15\n\rmetadata_type\x18\x02
\x01(\t2\xaa\x05\n\nOperations\x12\x94\x01\n\x0eListOperations\x12).google.longrunning.ListOperationsRequest\x1a*.google.longrunning.ListOperationsResponse"+\xda\x41\x0bname,filter\x82\xd3\xe4\x93\x02\x17\x12\x15/v1/{name=operations}\x12\x7f\n\x0cGetOperation\x12\'.google.longrunning.GetOperationRequest\x1a\x1d.google.longrunning.Operation"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=operations/**}\x12~\n\x0f\x44\x65leteOperation\x12*.goo
gle.longrunning.DeleteOperationRequest\x1a\x16.google.protobuf.Empty"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=operations/**}\x12\x88\x01\n\x0f\x43\x61ncelOperation\x12*.google.longrunning.CancelOperationRequest\x1a\x16.google.protobuf.Empty"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$"\x1f/v1/{name=operations/**}:cancel:\x01*\x12Z\n\rWaitOperation\x12(.google.longrunning.WaitOperationRequest\x1a\x1d.google.longrunning.Operation"\x00\x1a\x1d\xca\x41\x1alongrunning.googleapis.com:Z\n\x0eoperation_info\x12\x1e.google.protobuf.MethodOptions\x18\x99\x08
\x01(\x0b\x32!.google.longrunning.OperationInfoB\xa2\x01\n\x16\x63om.google.longrunningB\x0fOperationsProtoP\x01ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\xa2\x02\x05GLRUN\xaa\x02\x12Google.LongRunning\xca\x02\x12Google\\LongRunningb\x06proto3'
)
_globals = globals()
@@ -47,53 +53,59 @@
_builder.BuildTopDescriptorsAndMessages(
DESCRIPTOR, "google.longrunning.operations_pb2", _globals
)
-if _descriptor._USE_C_DESCRIPTORS == False:
- _globals["DESCRIPTOR"]._options = None
+if not _descriptor._USE_C_DESCRIPTORS:
+ _globals["DESCRIPTOR"]._loaded_options = None
_globals[
"DESCRIPTOR"
- ]._serialized_options =
b"\n\026com.google.longrunningB\017OperationsProtoP\001ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\370\001\001\242\002\005GLRUN\252\002\022Google.LongRunning\312\002\022Google\\LongRunning"
- _globals["_OPERATIONS"]._options = None
+ ]._serialized_options =
b"\n\026com.google.longrunningB\017OperationsProtoP\001ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\242\002\005GLRUN\252\002\022Google.LongRunning\312\002\022Google\\LongRunning"
+ _globals["_LISTOPERATIONSRESPONSE"].fields_by_name[
+ "unreachable"
+ ]._loaded_options = None
+ _globals["_LISTOPERATIONSRESPONSE"].fields_by_name[
+ "unreachable"
+ ]._serialized_options = b"\340A\006"
+ _globals["_OPERATIONS"]._loaded_options = None
_globals["_OPERATIONS"]._serialized_options =
b"\312A\032longrunning.googleapis.com"
- _globals["_OPERATIONS"].methods_by_name["ListOperations"]._options = None
+ _globals["_OPERATIONS"].methods_by_name["ListOperations"]._loaded_options
= None
_globals["_OPERATIONS"].methods_by_name[
"ListOperations"
]._serialized_options = (
b"\332A\013name,filter\202\323\344\223\002\027\022\025/v1/{name=operations}"
)
- _globals["_OPERATIONS"].methods_by_name["GetOperation"]._options = None
+ _globals["_OPERATIONS"].methods_by_name["GetOperation"]._loaded_options =
None
_globals["_OPERATIONS"].methods_by_name[
"GetOperation"
]._serialized_options = (
b"\332A\004name\202\323\344\223\002\032\022\030/v1/{name=operations/**}"
)
- _globals["_OPERATIONS"].methods_by_name["DeleteOperation"]._options = None
+ _globals["_OPERATIONS"].methods_by_name["DeleteOperation"]._loaded_options
= None
_globals["_OPERATIONS"].methods_by_name[
"DeleteOperation"
]._serialized_options = (
b"\332A\004name\202\323\344\223\002\032*\030/v1/{name=operations/**}"
)
- _globals["_OPERATIONS"].methods_by_name["CancelOperation"]._options = None
+ _globals["_OPERATIONS"].methods_by_name["CancelOperation"]._loaded_options
= None
_globals["_OPERATIONS"].methods_by_name[
"CancelOperation"
]._serialized_options = (
b'\332A\004name\202\323\344\223\002$"\037/v1/{name=operations/**}:cancel:\001*'
)
- _globals["_OPERATION"]._serialized_start = 262
- _globals["_OPERATION"]._serialized_end = 430
- _globals["_GETOPERATIONREQUEST"]._serialized_start = 432
- _globals["_GETOPERATIONREQUEST"]._serialized_end = 467
- _globals["_LISTOPERATIONSREQUEST"]._serialized_start = 469
- _globals["_LISTOPERATIONSREQUEST"]._serialized_end = 561
- _globals["_LISTOPERATIONSRESPONSE"]._serialized_start = 563
- _globals["_LISTOPERATIONSRESPONSE"]._serialized_end = 663
- _globals["_CANCELOPERATIONREQUEST"]._serialized_start = 665
- _globals["_CANCELOPERATIONREQUEST"]._serialized_end = 703
- _globals["_DELETEOPERATIONREQUEST"]._serialized_start = 705
- _globals["_DELETEOPERATIONREQUEST"]._serialized_end = 743
- _globals["_WAITOPERATIONREQUEST"]._serialized_start = 745
- _globals["_WAITOPERATIONREQUEST"]._serialized_end = 825
- _globals["_OPERATIONINFO"]._serialized_start = 827
- _globals["_OPERATIONINFO"]._serialized_end = 888
- _globals["_OPERATIONS"]._serialized_start = 891
- _globals["_OPERATIONS"]._serialized_end = 1573
+ _globals["_OPERATION"]._serialized_start = 295
+ _globals["_OPERATION"]._serialized_end = 463
+ _globals["_GETOPERATIONREQUEST"]._serialized_start = 465
+ _globals["_GETOPERATIONREQUEST"]._serialized_end = 500
+ _globals["_LISTOPERATIONSREQUEST"]._serialized_start = 502
+ _globals["_LISTOPERATIONSREQUEST"]._serialized_end = 626
+ _globals["_LISTOPERATIONSRESPONSE"]._serialized_start = 628
+ _globals["_LISTOPERATIONSRESPONSE"]._serialized_end = 754
+ _globals["_CANCELOPERATIONREQUEST"]._serialized_start = 756
+ _globals["_CANCELOPERATIONREQUEST"]._serialized_end = 794
+ _globals["_DELETEOPERATIONREQUEST"]._serialized_start = 796
+ _globals["_DELETEOPERATIONREQUEST"]._serialized_end = 834
+ _globals["_WAITOPERATIONREQUEST"]._serialized_start = 836
+ _globals["_WAITOPERATIONREQUEST"]._serialized_end = 916
+ _globals["_OPERATIONINFO"]._serialized_start = 918
+ _globals["_OPERATIONINFO"]._serialized_end = 979
+ _globals["_OPERATIONS"]._serialized_start = 982
+ _globals["_OPERATIONS"]._serialized_end = 1664
# @@protoc_insertion_point(module_scope)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/google/longrunning/operations_proto_pb2.pyi
new/googleapis_common_protos-1.75.5/google/longrunning/operations_proto_pb2.pyi
---
old/googleapis_common_protos-1.75.3/google/longrunning/operations_proto_pb2.pyi
2026-09-03 23:58:47.895188300 +0200
+++
new/googleapis_common_protos-1.75.5/google/longrunning/operations_proto_pb2.pyi
2026-09-29 20:56:54.079581700 +0200
@@ -12,9 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import datetime
+from collections.abc import Iterable as _Iterable
+from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar
-from typing import Iterable as _Iterable
-from typing import Mapping as _Mapping
from typing import Optional as _Optional
from typing import Union as _Union
@@ -28,6 +29,7 @@
from google.api import annotations_pb2 as _annotations_pb2
from google.api import client_pb2 as _client_pb2
+from google.api import field_behavior_pb2 as _field_behavior_pb2
from google.rpc import status_pb2 as _status_pb2
DESCRIPTOR: _descriptor.FileDescriptor
@@ -50,7 +52,7 @@
self,
name: _Optional[str] = ...,
metadata: _Optional[_Union[_any_pb2.Any, _Mapping]] = ...,
- done: bool = ...,
+ done: _Optional[bool] = ...,
error: _Optional[_Union[_status_pb2.Status, _Mapping]] = ...,
response: _Optional[_Union[_any_pb2.Any, _Mapping]] = ...,
) -> None: ...
@@ -62,33 +64,39 @@
def __init__(self, name: _Optional[str] = ...) -> None: ...
class ListOperationsRequest(_message.Message):
- __slots__ = ("name", "filter", "page_size", "page_token")
+ __slots__ = ("name", "filter", "page_size", "page_token",
"return_partial_success")
NAME_FIELD_NUMBER: _ClassVar[int]
FILTER_FIELD_NUMBER: _ClassVar[int]
PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
+ RETURN_PARTIAL_SUCCESS_FIELD_NUMBER: _ClassVar[int]
name: str
filter: str
page_size: int
page_token: str
+ return_partial_success: bool
def __init__(
self,
name: _Optional[str] = ...,
filter: _Optional[str] = ...,
page_size: _Optional[int] = ...,
page_token: _Optional[str] = ...,
+ return_partial_success: _Optional[bool] = ...,
) -> None: ...
class ListOperationsResponse(_message.Message):
- __slots__ = ("operations", "next_page_token")
+ __slots__ = ("operations", "next_page_token", "unreachable")
OPERATIONS_FIELD_NUMBER: _ClassVar[int]
NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
+ UNREACHABLE_FIELD_NUMBER: _ClassVar[int]
operations: _containers.RepeatedCompositeFieldContainer[Operation]
next_page_token: str
+ unreachable: _containers.RepeatedScalarFieldContainer[str]
def __init__(
self,
operations: _Optional[_Iterable[_Union[Operation, _Mapping]]] = ...,
next_page_token: _Optional[str] = ...,
+ unreachable: _Optional[_Iterable[str]] = ...,
) -> None: ...
class CancelOperationRequest(_message.Message):
@@ -112,7 +120,9 @@
def __init__(
self,
name: _Optional[str] = ...,
- timeout: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...,
+ timeout: _Optional[
+ _Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]
+ ] = ...,
) -> None: ...
class OperationInfo(_message.Message):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/googleapis_common_protos.egg-info/PKG-INFO
new/googleapis_common_protos-1.75.5/googleapis_common_protos.egg-info/PKG-INFO
---
old/googleapis_common_protos-1.75.3/googleapis_common_protos.egg-info/PKG-INFO
2026-09-04 00:03:39.818264200 +0200
+++
new/googleapis_common_protos-1.75.5/googleapis_common_protos.egg-info/PKG-INFO
2026-09-29 20:59:47.352897000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: googleapis-common-protos
-Version: 1.75.3
+Version: 1.75.5
Summary: Common protobufs used in Google APIs
Author-email: Google LLC <[email protected]>
License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/googleapis_common_protos.egg-info/SOURCES.txt
new/googleapis_common_protos-1.75.5/googleapis_common_protos.egg-info/SOURCES.txt
---
old/googleapis_common_protos-1.75.3/googleapis_common_protos.egg-info/SOURCES.txt
2026-09-04 00:03:39.840440300 +0200
+++
new/googleapis_common_protos-1.75.5/googleapis_common_protos.egg-info/SOURCES.txt
2026-09-29 20:59:47.377034700 +0200
@@ -203,4 +203,5 @@
googleapis_common_protos.egg-info/requires.txt
googleapis_common_protos.egg-info/top_level.txt
tests/unit/test_google_api_error_reason.py
+tests/unit/test_operations.py
tests/unit/test_packaging.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/googleapis_common_protos-1.75.3/pyproject.toml
new/googleapis_common_protos-1.75.5/pyproject.toml
--- old/googleapis_common_protos-1.75.3/pyproject.toml 2026-09-03
23:58:46.676158700 +0200
+++ new/googleapis_common_protos-1.75.5/pyproject.toml 2026-09-29
20:56:57.119578800 +0200
@@ -18,7 +18,7 @@
[project]
name = "googleapis-common-protos"
-version = "1.75.3"
+version = "1.75.5"
authors = [{ name = "Google LLC", email = "[email protected]" }]
license = "Apache-2.0"
requires-python = ">= 3.10"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/googleapis_common_protos-1.75.3/tests/unit/test_operations.py
new/googleapis_common_protos-1.75.5/tests/unit/test_operations.py
--- old/googleapis_common_protos-1.75.3/tests/unit/test_operations.py
1970-01-01 01:00:00.000000000 +0100
+++ new/googleapis_common_protos-1.75.5/tests/unit/test_operations.py
2026-09-29 20:56:56.190580000 +0200
@@ -0,0 +1,201 @@
+# Copyright 2026 Google LLC All Rights Reserved.
+#
+# 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.
+
+import importlib
+import sys
+import uuid
+from unittest import mock
+
+import pytest
+from google.protobuf import descriptor_pb2, descriptor_pool
+
+
+def test_operations_descriptor_name():
+ """Validates the canonical proto name registered in the descriptor pool."""
+ from google.longrunning import operations_pb2
+
+ # The descriptor name MUST be the canonical path
'google/longrunning/operations.proto'.
+ # If named 'google/longrunning/operations_proto.proto', any downstream
proto that
+ # imports 'google/longrunning/operations.proto' will fail to resolve.
+ assert operations_pb2.DESCRIPTOR.name ==
"google/longrunning/operations.proto"
+
+ # Verify lookup by canonical path succeeds in the global descriptor pool
+ pool = descriptor_pool.Default()
+ file_desc = pool.FindFileByName("google/longrunning/operations.proto")
+ assert file_desc is not None
+ assert file_desc.name == "google/longrunning/operations.proto"
+
+
+def test_operations_message_instantiation():
+ """Validates message instantiation from both public module entry points."""
+ from google.longrunning import operations_pb2, operations_proto_pb2
+
+ op1 = operations_pb2.Operation(name="operations/123", done=True)
+ assert op1.name == "operations/123"
+ assert op1.done is True
+
+ op2 = operations_proto_pb2.Operation(name="operations/456", done=False)
+ assert op2.name == "operations/456"
+ assert op2.done is False
+
+
+def test_downstream_dependency_resolution():
+ """Regression test for b/566222096.
+
+ Downstream clients compile protos containing:
+ import "google/longrunning/operations.proto";
+
+ When their generated *_pb2 modules load, protobuf calls:
+
+ ```
+ _descriptor_pool.Default().AddSerializedFile(...)
+ ```
+
+ which checks that 'google/longrunning/operations.proto' exists in the pool.
+ """
+ # Ensure operations_pb2 is imported and registered
+ from google.longrunning import operations_pb2 # noqa: F401
+
+ pool = descriptor_pool.Default()
+
+ # Create a uniquely named proto to avoid collision during repeated test
runs
+ unique_name = f"google/test/downstream_{uuid.uuid4().hex}.proto"
+
+ downstream_file = descriptor_pb2.FileDescriptorProto()
+ downstream_file.name = unique_name
+ downstream_file.package = "google.test"
+ downstream_file.dependency.append("google/longrunning/operations.proto")
+
+ # 1. This step will throw the TypeError if operations.proto is missing
(under C++ runtime).
+ pool.Add(downstream_file)
+
+ # 2. Retrieve the descriptor from the pool (required because pool.Add()
returns None).
+ file_descriptor = pool.FindFileByName(unique_name)
+ assert file_descriptor is not None
+ assert file_descriptor.name == unique_name
+ assert "google/longrunning/operations.proto" in [
+ dep.name for dep in file_descriptor.dependencies
+ ]
+
+
+def test_operations_servicer_interface():
+ """Verifies OperationsServicer default method implementations raise
NotImplementedError."""
+ from google.longrunning import operations_pb2_grpc
+
+ servicer = operations_pb2_grpc.OperationsServicer()
+ context = mock.Mock()
+ request = mock.Mock()
+
+ # Servicer interface must define all RPCs and default to
NotImplementedError
+ for method in [
+ servicer.ListOperations,
+ servicer.GetOperation,
+ servicer.DeleteOperation,
+ servicer.CancelOperation,
+ servicer.WaitOperation,
+ ]:
+ with pytest.raises(NotImplementedError):
+ method(request, context)
+
+
+def test_add_operations_servicer_to_server():
+ """Verifies server handler registration for OperationsServicer."""
+ from google.longrunning import operations_pb2_grpc
+
+ servicer = operations_pb2_grpc.OperationsServicer()
+ mock_server = mock.Mock()
+
+ operations_pb2_grpc.add_OperationsServicer_to_server(servicer, mock_server)
+
+ # Assert that generic RPC handlers were registered with the server
+ assert mock_server.add_generic_rpc_handlers.called
+ assert mock_server.add_generic_rpc_handlers.call_count == 1
+
+ # Verify the handler structure passed to the server
+ handlers = mock_server.add_generic_rpc_handlers.call_args[0][0]
+ assert len(handlers) == 1
+ assert hasattr(handlers[0], "service_name")
+ assert handlers[0].service_name() == "google.longrunning.Operations"
+
+
+def test_operations_client_stubs_and_static_methods():
+ """Verifies OperationsStub client calls and static method dispatch."""
+ from google.longrunning import operations_pb2_grpc
+
+ # 1. Test OperationsStub channel binding and RPC dispatch
+ mock_callable = mock.Mock(return_value=mock.Mock())
+ mock_channel = mock.Mock()
+ mock_channel.unary_unary = mock.Mock(return_value=mock_callable)
+ mock_channel.unary_stream = mock.Mock(return_value=mock_callable)
+
+ stub = operations_pb2_grpc.OperationsStub(mock_channel)
+ assert mock_channel.unary_unary.call_count == 5
+
+ request = mock.Mock()
+ for rpc in [
+ stub.ListOperations,
+ stub.GetOperation,
+ stub.DeleteOperation,
+ stub.CancelOperation,
+ stub.WaitOperation,
+ ]:
+ response = rpc(request)
+ assert response is not None
+
+ assert mock_callable.call_count == 5
+
+ # 2. Test Operations static invocation helpers
+ with mock.patch(
+ "grpc.experimental.unary_unary", return_value=mock.Mock()
+ ) as mock_unary:
+ for static_rpc in [
+ operations_pb2_grpc.Operations.ListOperations,
+ operations_pb2_grpc.Operations.GetOperation,
+ operations_pb2_grpc.Operations.DeleteOperation,
+ operations_pb2_grpc.Operations.CancelOperation,
+ operations_pb2_grpc.Operations.WaitOperation,
+ ]:
+ result = static_rpc(request, "localhost:50051")
+ assert result is not None
+
+ assert mock_unary.call_count == 5
+
+
+def test_operations_pb2_non_grpc_fallback_environment():
+ """Verifies module loading and class contract in non-gRPC environments.
+
+ In environments where gRPC is unsupported, the module must fall back to
pure
+ protobuf-only imports without throwing exceptions, and all message classes
+ must remain instantiable.
+ """
+ # 1. Simulate an environment where the gRPC-dependent pb2 module is
unavailable
+ with mock.patch.dict(sys.modules,
{"google.longrunning.operations_grpc_pb2": None}):
+ # Reload to force execution of the fallback import path
+ if "google.longrunning.operations_pb2" in sys.modules:
+ fallback_module = importlib.reload(
+ sys.modules["google.longrunning.operations_pb2"]
+ )
+ else:
+ import google.longrunning.operations_pb2 as fallback_module #
pragma: NO COVER
+
+ # 2. Assert that canonical messages can still be resolved and
instantiated
+ assert hasattr(fallback_module, "Operation")
+ assert hasattr(fallback_module, "GetOperationRequest")
+
+ op = fallback_module.Operation(name="operations/789", done=True)
+ assert op.name == "operations/789"
+ assert op.done is True
+
+ # 3. Restore the environment back to its gRPC-enabled state
+ importlib.reload(sys.modules["google.longrunning.operations_pb2"])