feat: protobuf edition 2023 support
π Protobuf Edition 2023 Support
β¨ Major Features
π― Edition 2023 Compatibility
- Partial support for protobuf
edition = "2023"syntax - Feature-based behaviour resolution (vs syntax-based checks)
- Advanced field presence semantics (explicit, implicit, legacy_required)
- Enhanced enum handling (open/closed semantics)
π§ Infrastructure Updates
- C++ Standard: Upgraded from v14 to v17 π
- Protobuf Version: Updated from v25.8 to v32.1 π¦
π New Documentation & Examples
- Requirements for supporting
EDITIONS.md - New Edition 2023 example
- Updated README with editions syntax documentation
βοΈ Code Generation Improvements
- New feature resolution system in
prost-build - Enhanced field presence handling for all protobuf versions
- Improved conformance test support for editions
π§ͺ Testing & Validation
- Conformance tests pass for edition 2023 (though missing some features)
- Updated failing_tests.txt
βοΈβπ₯ Breaking Changes
- Various changes due to upstream proto files caused by protobuf upgrade e.g api.proto
- See semver CI results for more breaking changes (some may be false positives I believe)
πΊοΈ Missing Protobuf Features
New tests were added to conformance/failed_tests.txt
- Unknown Fields tokio-rs/prost#1340
- Unknown Ordering (since protobuf v27)
- Delimited encoding/MessageSet (old proto2 extension)
Fixes #1031
Yeah! Unknown field support! :tada:
Yeah! Unknown field support! π
Not in this PR, but this is covered in https://github.com/tokio-rs/prost/pull/1340
Perhaps that should be merged first so I can rebase this branch
Yeah! Unknown field support! π
Not in this PR, but this is covered in #1340
Perhaps that should be merged first so I can rebase this branch
My b, commented on the wrong one!
Aside from the semver checks failing, what's the blocker for this to land?
Aside from the semver checks failing, what's the blocker for this to land?
I think there is focus on #1340 so perhaps this PR rebased would be the next step after that. They should compliment eachother nicely.