TL;DR: We are planning to release Protobuf Editions to the open source project in the second half of 2023. While there is no requirement to move from proto2/proto3 syntax to Editions syntax at initial release, we encourage you to plan a move in your software project’s future timeline.
Protobuf Editions will replace the proto2 and proto3 designations that we have used for Protocol Buffers. Instead of adding syntax = "proto2" or syntax = "proto3" at the top of proto definition files, you will use an edition number, such as edition = “2024”, to specify the behaviors your implementation will conform to. Editions enable the language to evolve incrementally over time.
Instead of the hard-coded behaviors that older versions have had, editions will represent a collection of “features” with a default value (behavior) per feature, which you can override. Features are options on a syntax entry—file, message, field, enum, and so on— that specify the behavior of protoc, the backends, and protobuf runtimes. You can explicitly set the desired behavior at those different levels (file, message, field, …) when your needs don’t match the default behavior for the edition you’ve selected.
The introduction of Editions requires the one-time conversion of your .proto definition files into a new format. We will be providing a tool, called Prototiller, for this conversion. The code generated by protoc will work with your existing code without modification.