News Announcements for Version 22.x
The following announcements are specific to Version 22.x. For information presented chronologically, see News.
Changing Maven Release Candidate Artifact Names to Be More Idiomatic
In 22.0 we plan to rename Maven artifacts to use “RC” instead of “rc-” as the release candidate prefix.
Adding an Abseil Dependency
In order to reduce the Google vs. OSS differences between protobuf and to simplify our own project, we plan to take a formal dependency on Abseil. In time, we plan to start using Abseil types in our public APIs, but simply adding the dependency is a breaking change.
Dropping Support for PHP <7.4
Per our PHP support policy, we plan to drop support for EOL versions of PHP. This is not considered a breaking change since these versions are already EOL in the broader ecosystem.
Dropping Autotools Support
Per our build systems support policy, we plan to drop autotools support. This is a breaking change. After autotools support is dropped, protobuf will support only CMake and Bazel.
Dropping C++11 Support
Per our C++ support policy, we plan to drop C++11 support. This is a breaking change.
Adding C++20 Support
Because of the addition of new keywords to the C++ language, adding support for C++20 is a breaking change for users even if they do not currently use C++20.
Mitigations for this to conditionally change names only in certain compiler modes would break projects that support multiple language standards.
C++ Changes
Following the announcement of our new major version and breaking changes policy, we are planning a major version bump for C++. We plan to make some changes to the assets that we release starting with our 22.x release line.
The following sections outline the set of breaking changes that we plan to include in the 22.0 release of protocol buffers. Note that plans can and do change. These are potential breaking changes to be aware of, but they may not happen in this particular release, or they may not happen at all.