Protocol Buffers (protobuf), a serialization library developed by Google, continues to see active development with a focus on performance optimizations and addressing stability issues. The project is integral for data interchange across multiple programming languages.
Recent activities in the protobuf repository highlight significant efforts in adapting to tooling changes, particularly with Bazel, and improving code organization. However, the presence of multiple automated rollbacks indicates ongoing challenges in maintaining stability amidst these updates.
Recent issues and pull requests (PRs) reflect a focus on build failures across platforms, compatibility with language bindings, and enhancements for better cross-language support. Notable issues include #18307 regarding libupb
configuration problems and #18305 requesting a JSON parser for Protobuf Java Lite. These issues suggest a need for improved documentation and support for diverse environments.
The team is actively engaged in feature development and bug fixing across supported languages, with a notable emphasis on refactoring for performance improvements.
Overall, the project demonstrates robust development activity with a focus on enhancing functionality while addressing stability concerns through careful management practices.
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 11 | 17 | 13 | 4 | 1 |
30 Days | 39 | 44 | 60 | 15 | 1 |
90 Days | 131 | 123 | 238 | 31 | 1 |
1 Year | 343 | 199 | 979 | 59 | 1 |
All Time | 6266 | 6033 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Protobuf Team Bot | 5 | 0/0/0 | 41 | 73 | 48407 | |
Protobuf GitHub | 30 | 0/0/0 | 117 | 274 | 20806 | |
None (zhangskz) | 6 | 1/1/0 | 31 | 34 | 5606 | |
Joshua Haberman | 4 | 0/0/0 | 16 | 174 | 5492 | |
Mike Kruskal | 7 | 2/1/0 | 17 | 71 | 5145 | |
Hong Shin | 4 | 0/0/0 | 44 | 45 | 2310 | |
Yamil Morales | 1 | 0/0/0 | 3 | 18 | 1263 | |
Evan Brown | 2 | 0/0/0 | 3 | 5 | 906 | |
Mark Hansen | 1 | 0/0/0 | 12 | 14 | 846 | |
Adam Cozzette | 5 | 1/1/0 | 14 | 52 | 827 | |
Tony Liao | 2 | 1/1/0 | 3 | 13 | 665 | |
Deanna Garcia | 2 | 0/0/0 | 16 | 18 | 654 | |
Thomas Van Lenten | 3 | 0/0/0 | 12 | 61 | 542 | |
Brent Shaffer | 1 | 0/0/0 | 1 | 3 | 312 | |
Derek Benson | 1 | 0/0/0 | 8 | 15 | 255 | |
Jie Luo | 2 | 0/0/0 | 2 | 5 | 110 | |
Eric Salo | 2 | 0/0/0 | 3 | 3 | 15 | |
serge-sans-paille | 1 | 0/0/0 | 1 | 6 | 10 | |
Sven Mikael Persson | 1 | 0/0/0 | 1 | 2 | 8 | |
liqipeng | 1 | 1/0/1 | 1 | 1 | 6 | |
Zoey Greer | 1 | 29/0/2 | 1 | 1 | 4 | |
David Smith | 1 | 0/0/0 | 1 | 1 | 4 | |
Jin | 1 | 0/0/0 | 1 | 1 | 3 | |
y-yagi | 1 | 0/0/0 | 1 | 2 | 3 | |
Cong Liu | 1 | 0/0/0 | 1 | 2 | 3 | |
Bo Anderson | 1 | 0/0/0 | 1 | 1 | 2 | |
Ilya Tocar | 1 | 0/0/0 | 1 | 1 | 2 | |
Hood Chatham | 1 | 0/0/0 | 1 | 1 | 2 | |
tony | 1 | 0/0/0 | 1 | 1 | 2 | |
dependabot[bot] | 1 | 0/0/0 | 1 | 1 | 2 | |
Jakub (jagub2) | 0 | 1/0/0 | 0 | 0 | 0 | |
Thomas Portelange (lekoala) | 0 | 1/0/0 | 0 | 0 | 0 | |
reito (reihoyo) | 0 | 1/0/1 | 0 | 0 | 0 | |
reito (reitowo) | 0 | 1/0/0 | 0 | 0 | 0 | |
Matteo (Delcaran) | 0 | 1/0/0 | 0 | 0 | 0 | |
Yibo Cai (cyb70289) | 0 | 1/0/0 | 0 | 0 | 0 | |
Marat Reymers (maratori) | 0 | 1/0/0 | 0 | 0 | 0 | |
Yusu(Cosmo) Zhao (CosmoMaaya) | 0 | 1/0/1 | 0 | 0 | 0 | |
Jerry Berg | 0 | 0/0/0 | 0 | 0 | 0 | |
Richard Cole (imrichardcole) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (copybara-service[bot]) | 0 | 156/86/33 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The protocolbuffers/protobuf
repository currently has 233 open issues, indicating ongoing engagement and activity within the community. Recent issues reflect a variety of concerns, including build failures across different platforms, compatibility issues with specific versions, and requests for enhancements in functionality. Notably, there are several issues related to the integration of Protobuf with other languages and frameworks, suggesting a need for better documentation and support for cross-language compatibility.
Several issues exhibit patterns of commonality, particularly around build errors on Windows and MacOS, as well as challenges with specific language bindings (e.g., Python, Ruby). This may indicate underlying problems with how Protobuf interacts with different development environments or how it handles certain data types and structures.
Issue #18307: libupb
is hard bounded in cmake builds
Issue #18305: Json Parser for Protobuf Java Lite
Issue #18232: Bogus timestamp in latest protoc for linux arch64
Issue #18228: Large Proto File Failing Java Compilation with Variable Assignment Error
Issue #18205: Deprecating 'enum' field inside a 'message' causes compiler warning 'deprecated-declarations' in generated C++ header
Issue #18155: Plugin killed by signal 9.
when generating Python code from Ads protos
Issue #18128: Why is rules_ruby needed in 3.23.0? Is there a way to skip it?
Issue #18097: protobuf::message using protobuf::map across dlls leads to crashes
Issue #18096: Excessive new warning in Python protobuf runtime
Issue #18063: Cannot override OneOf method names to avoid collision with imported proto
libupb
being hard bounded in CMake builds (#18307) highlights potential configuration problems that could affect users attempting to build from source across different platforms.Overall, these issues reveal a mix of critical bugs, feature requests, and usability concerns that need attention from the maintainers to ensure continued satisfaction among users of the Protobuf library.
The analysis of the pull requests (PRs) for the Protocol Buffers (protobuf) project reveals a significant volume of ongoing development activity, with 136 open PRs and a variety of changes addressing both feature enhancements and bug fixes. The recent PRs reflect a focus on improving compatibility, optimizing performance, and refining the codebase across multiple programming languages.
PR #18309: Enable workspace in .bazelrc
Created to adapt to Bazel's upcoming changes, this PR enables workspace configurations in .bazelrc
. It addresses an issue related to dependency management as Bazel transitions away from using WORKSPACE files.
PR #18308: Support --incompatible_enable_proto_toolchain_resolution
This PR introduces support for a new flag that enhances toolchain resolution for protocol buffers, indicating ongoing improvements in build configuration.
PR #18306: Move unittest targets to be colocated with .proto files
Aiming for better organization, this PR relocates unit test targets to align with their respective .proto
definitions, enhancing maintainability.
PR #18304: Move ProtoInfo and ProtoLangToolchainInfo from Bazel
This change is a preparatory step for future compatibility with Bazel versions, ensuring that protobuf remains functional as Bazel evolves.
PR #18303: Make C++ proto library work over non-proto_library targets
This enhancement broadens the applicability of the C++ proto library, allowing it to integrate with various target types beyond just proto_library
.
PR #18297: Add nebius.ai custom options to registry
This PR reserves custom options for the nebius.ai API, reflecting an effort to expand protobuf's capabilities for specific use cases.
PR #18296: Change MapKey::GetStringValue to return absl::string_view
A minor but important change aimed at improving performance by utilizing absl::string_view
instead of returning a full string copy.
PR #18295: Automated rollback of commit 46eaf53920ab20325706dc22923b449054284845
This automated rollback indicates issues with a previous commit that necessitated reverting changes to maintain stability.
PR #18294: Disable tracking during feature resolution
A critical fix aimed at preventing potential deadlocks during feature resolution processes within protobuf.
PR #18293: Automated rollback of commit 9a9e5cf7ffe32cc4f9944d38fd0908af7e186264
Another rollback indicating ongoing adjustments to stabilize the codebase.
The current landscape of open pull requests in the Protocol Buffers repository showcases several key themes and areas of focus:
A notable number of PRs are aimed at adapting the project to changes in build tooling, particularly in relation to Bazel. For instance, PRs like #18309 and #18308 reflect proactive measures taken by contributors to ensure compatibility with upcoming versions of Bazel and its evolving features. This indicates a forward-thinking approach by the development team, ensuring that users can leverage the latest improvements in their build systems without disruption.
Several recent PRs emphasize improving code organization and maintainability. The move of unit test targets (#18306) and the consolidation of logic related to element creation in RepeatedPtrField
(#18299) demonstrate an ongoing effort to streamline the codebase. Such changes not only enhance readability but also reduce complexity, making it easier for future contributors to navigate and understand the code.
Performance optimization is another recurring theme. Changes like those in PR #18296, which modifies how string values are returned from map keys, highlight a continuous drive towards efficiency within the library. These enhancements are critical given that Protocol Buffers is often used in performance-sensitive applications where serialization speed can significantly impact overall system performance.
The introduction of custom options for specific APIs (e.g., nebius.ai in PR #18297) illustrates how the project is accommodating diverse user needs through extensibility. This flexibility is essential for maintaining relevance across various application domains as users increasingly seek tailored solutions that fit their unique requirements.
The presence of multiple automated rollbacks (e.g., PRs #18295, #18293) suggests that while active development is robust, there may be stability concerns arising from recent changes. These rollbacks serve as a reminder of the challenges inherent in maintaining a large codebase where new features must be balanced against existing functionality without introducing regressions.
Numerous internal changes (e.g., PRs #18276, #18200) indicate ongoing efforts to manage versioning effectively within the repository. These updates are crucial for ensuring that all components remain compatible and function correctly as new features are integrated into the main branch.
Overall, the current state of pull requests in the Protocol Buffers project reflects a dynamic environment characterized by active development aimed at enhancing functionality, performance, and usability while addressing stability concerns through careful management practices. The community's engagement in customizing features further underscores Protocol Buffers' commitment to meeting diverse user needs across various programming environments.
protobuf-team-bot
mkruskal-google
protobuf-github-bot
honglooker
protos
to hpb
, enhancing code organization.dbenson24
acozzette
tempoz
mhansen
liqipeng
haberman
tonyliaoss
ericsalo
congliuthu
Other contributors (e.g., Bo98, y-yagi) made smaller contributions primarily related to specific issues or maintenance tasks.
protos
to hpb
.The recent activities within the Protocol Buffers repository indicate a robust development cycle characterized by active contributions from a diverse team. The focus on refactoring, performance optimization, and maintaining compatibility suggests a mature project that is evolving while addressing both current needs and future scalability.