NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #353 most downloaded on PyPI
Typing stubs for protobuf
Last release 29 days ago
06 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 54 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
127 releases · first in 2021
One column per quarter.
Fix internal decoder factory signatures
Fix internal decoder factory signatures (#16250)
At runtime Int32Decoder through BoolDecoder are factories with the same signature as EnumDecoder (field_number, is_repeated, is_packed, key, new_default, clear_if_default=False), not decoders. The returned decoders and ReadTag receive a memoryview (ReadTag calls .tobytes()), and new_default callables return scalars or containers, not Message. Mirrors the encoder.pyi fix in #16163.
Closes #10697 Closes #10698 Closes #10712
* Bump to 7.35.1
Nothing published for this version
* Bump to 7.35.1
* Bump to 7.35.1
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix internal encoder factory signatures
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
Import some items from typing instead of typing_extensions
Import some items from typing instead of typing_extensions (#15711)
Part of #13782
[protobuf] Add _loaded_options to FileDescriptor
[protobuf] Add _loaded_options to FileDescriptor (#15677)
Use dashes instead of underscores for METADATA.toml field names
Use dashes instead of underscores for METADATA.toml field names (#15614)
[protobuf] `UnknownFieldSet.__getitem__ takes only positional arguments
[protobuf] `UnknownFieldSet.getitem takes only positional arguments (#15599)
[protobuf] Bump to 7.34.1 and improve type coverage
[protobuf] Bump to 7.34.1 and improve type coverage (#15569)
[protobuf] Add missing encoder and sizer exports
[protobuf] Add missing encoder and sizer exports (#15422)
[protobuf] Update annotations in internal/containers.pyi
[protobuf] Update annotations in internal/containers.pyi (#15117)
Amend annotation for asyncio.Protocol.__slots__
Amend annotation for asyncio.Protocol.__slots__ (#14980)
Add is_required / is_repeated properties to FieldDescriptor
Update mypy to 1.18.1
Update mypy to 1.18.1 (#14699)
Add __slots__ to third-party packages using stubdefaulter
Add slots to third-party packages using stubdefaulter (#14619)
Fix dunder-method positional-only parameter discrepancies in third-party stubs
Make Mapping.get(default) more constrained
Make Mapping.get(default) more constrained (#14360)
Replace Incomplete | None = None in third party stubs
Replace Incomplete | None = None in third party stubs (#14063)
stubtest-complete grpcio plugins
Mention rerunning sync_protobuf scripts
Bump protobuf to ~=6.30.2 (#13922)
Co-authored-by: Avasam samuel.06@hotmail.com
Mention rerunning sync_protobuf scripts (#13924)
Nothing published for this version
Bump ruff to 0.11.2
Bump ruff to 0.11.2 (#13757)
[protobuf] Add missing properties for class FieldDescriptor
[protobuf] Add missing properties for class FieldDescriptor (#13625)
Bump mypy to 1.15.0
Bump mypy to 1.15.0 (#13473)
Bump protobuf to ~=5.29.1
Bump protobuf to ~=5.29.1 (#13209)
Add google.protobuf.runtime_version
Add google.protobuf.runtime_version (#13161)
Bump tensorflow to ~=2.18.0 (#12916) * Tensorflow proto script update * Manual stubtest changes * Use Path for arg type
Bump tensorflow to ~=2.18.0 (#12916)
Tensorflow proto script update
Manual stubtest changes
Use Path for arg type
Use lib/ts_utils for scripts/sync_protobuf
Use lib/ts_utils for scripts/sync_protobuf (#12913)
download_file error handling (400+ return codes already raised errors!)update_metadata from scripts/sync_protobuf/_utils.py to lib/ts_utils/metadata.pyupdate_metadata to support any key (values unvalidated atm) and return the modified dictionaryscripts/stubsabot.py to use update_metadatascripts/sync_protobuf/* to use lib/ts_utilsscripts/sync_protobuf/tensorflow.py and scripts/sync_protobuf/google_protobuf.py to use the version directly from the METADATA.toml fileBump protobuf to 5.28.*
Bump protobuf to 5.28.* (#12689)
Rewrote protobuf generation scripts in Python
Rewrote protobuf generation scripts in Python (#12527)
Update MergeFrom annotations in protobuf containers.pyi
Update MergeFrom annotations in protobuf containers.pyi (#12623)
Bump protobuf to 5.27.*
Bump protobuf to 5.27.* (#12197)
Simplify protoc install in protobuf generation scripts
Simplify protoc install in protobuf generation scripts (#11785)
Also update generate_proto_stubs script
Bump protobuf to 5.26.* (#11784)
Also update generate_proto_stubs script
Remove remaining bare Incompletes
Remove remaining bare Incompletes (#11768)
Enable Y065
Bump protobuf to v25.3
Bump protobuf to v25.3 (#11694)
Bump protobuf to v24.4 and update generator script
Bump protobuf to v24.4 and update generator script (#11693)
Use PEP 570 syntax in third party stubs
Use PEP 570 syntax in third party stubs (#11554)
Add pyupgrade check outdated-version-block (UP036)
Add pyupgrade check outdated-version-block (UP036) (#11509)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Nothing published for this version
Update typing_extensions imports in third-party stubs
Enable ruff's isort rules on files generated using mypy-protobuf
Enable ruff's isort rules on files generated using mypy-protobuf (#10939)
Co-authored-by: AlexWaygood alex.waygood@gmail.com
Co-authored-by: Avasam Co-authored-by: Alex Waygood
Update mypy-protobuf (#10914)
Co-authored-by: Avasam samuel.06@hotmail.com Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Update protobufs to support new generated messages
Update protobufs to support new generated messages (#10717)
Fill in all missing upstream_repository fields
Fill in all missing upstream_repository fields (#10571)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
[stubsabot] Bump protobuf to 4.24.*
[stubsabot] Bump protobuf to 4.24.* (#10545)
Release: https://pypi.org/pypi/protobuf/4.24.0 Homepage: https://developers.google.com/protocol-buffers/
Co-authored-by: stubsabot <> Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Add missing stubs in google.protobuf.message_factory module
Add missing stubs in google.protobuf.message_factory module (#10537)
Pretend _EnumTypeWrapper inherits from type
Pretend _EnumTypeWrapper inherits from type (#10203)
Pretend google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper inherits from type. It doesn't really, but this makes type checkers stop complaining when you use it as a metaclass, which is the only reason the class exists.
Add partial_stub metadata field
Add partial_stub metadata field (#10157)
[stubsabot] Bump protobuf to 4.23.*
[stubsabot] Bump protobuf to 4.23.* (#10158)
Release: https://pypi.org/pypi/protobuf/4.23.0 Homepage: https://developers.google.com/protocol-buffers/
Various improvements to non-generated protobuf stubs
Various improvements to non-generated protobuf stubs (#10010)
Fix return type of protobuf.ScalarMap.get()
Fix return type of protobuf.ScalarMap.get() (#9996)
Update protobuf for v4.22
Update protobuf for v4.22 (#9824)
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
Your coding agent can read these notes before it upgrades. Set up the MCP server →