Limit the Python Poison Pills warning count

PiperOrigin-RevId: 675999156
pull/18351/head
Protobuf Team Bot 2 months ago committed by Copybara-Service
parent 3d39282d73
commit f6b9a4942e
  1. 31
      python/google/protobuf/runtime_version.py

@ -38,6 +38,9 @@ MINOR = OSS_MINOR
PATCH = OSS_PATCH
SUFFIX = OSS_SUFFIX
# Avoid flooding of warnings.
_MAX_WARNING_COUNT = 20
_warning_count = 0
class VersionError(Exception):
"""Exception class for version violation."""
@ -69,6 +72,8 @@ def ValidateProtobufRuntimeVersion(
if disable_flag is not None and disable_flag.lower() == 'true':
return
global _warning_count
version = f'{MAJOR}.{MINOR}.{PATCH}{SUFFIX}'
gen_version = f'{gen_major}.{gen_minor}.{gen_patch}{gen_suffix}'
@ -89,12 +94,14 @@ def ValidateProtobufRuntimeVersion(
if gen_major != MAJOR:
if gen_major == MAJOR - 1:
warnings.warn(
'Protobuf gencode version %s is exactly one major version older than'
' the runtime version %s at %s. Please update the gencode to avoid'
' compatibility violations in the next runtime release.'
% (gen_version, version, location)
)
if _warning_count < _MAX_WARNING_COUNT:
warnings.warn(
'Protobuf gencode version %s is exactly one major version older'
' than the runtime version %s at %s. Please update the gencode to'
' avoid compatibility violations in the next runtime release.'
% (gen_version, version, location)
)
_warning_count += 1
else:
_ReportVersionError(
'Detected mismatched Protobuf Gencode/Runtime major versions when'
@ -109,11 +116,13 @@ def ValidateProtobufRuntimeVersion(
f' cannot be older than the linked gencode version. {error_prompt}'
)
elif MINOR > gen_minor or PATCH > gen_patch:
warnings.warn(
'Protobuf gencode version %s is older than the runtime version %s at'
' %s. Please avoid checked-in Protobuf gencode that can be obsolete.'
% (gen_version, version, location)
)
if _warning_count < _MAX_WARNING_COUNT:
warnings.warn(
'Protobuf gencode version %s is older than the runtime version %s at'
' %s. Please avoid checked-in Protobuf gencode that can be obsolete.'
% (gen_version, version, location)
)
_warning_count += 1
if gen_suffix != SUFFIX:
_ReportVersionError(

Loading…
Cancel
Save