Opened 4 months ago

Closed 4 months ago

#19834 closed enhancement (fixed)

protobuf-27.0

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: normal Milestone: 12.2
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New major version.

Change History (4)

comment:1 by Xi Ruoyao, 4 months ago

-Dprotobuf_BUILD_LIBUPB=OFF is needed to avoid installing useless static libraries.

comment:2 by Bruce Dubbs, 4 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:3 by Bruce Dubbs, 4 months ago

Protocol Buffers v27.0

Compiler

  • Future-proof edition 2023 against feature value support windows.
  • Mark deleted fields in descriptor.proto reserved
  • Add extension declarations for known features.
  • Refactored the Java generator into separate packages and targets.
  • Officially release Editions in 27.0.
  • Define lifetimes of edition 2023 features
  • Implement feature lifetime validation in protoc and the C++ runtime.
  • Add edition lifetime options for feature specs.
  • Enable editions support for Java Lite.
  • Release edition defaults CLI arguments.
  • Update protoc release to include editions language features protos for Java and C++

C++

  • Future-proof edition 2023 against feature value support windows.
  • Prohibit using features in the same file they're defined in.
  • Fix validation checks of implicit presence.
  • Clarify map behaviors in editions.
  • Ensure we allocate overaligned types with aligned operator new.
  • Fix text-format delimited field handling.
  • In debug mode, after clearing oneof messages on arenas, poison them if ASAN.
  • Allow string_type for Edition 2023.
  • Breaking change: Ensure we allocate overaligned types with aligned operator new.
  • Python JSON parser: Ignore invalid enum string values if ignore_unknown_fields is set
  • Move java_features.proto to java/core/srce/main/resources
  • Add an RAII namespace printer helper for C++ codegen.
  • Enable editions support for Java Lite.
  • Add an RAII ifndef helper for C++ codegen.
  • Clear oneof message fields even on arena on non-OPT builds.
  • Implement edition 2023 support in all Ruby runtimes.
  • Release edition defaults CLI arguments.
  • Deprecate Arena::CreateMessage for OSS.
  • Open sourcing reflection_visit_fieds.
  • Fixed the use of c++ keywords within namespace names
  • Fix pkg-config metadata for shared abseil on windows
  • Add GetStringView() and GetRepeatedStringView() with scratch.
  • Avoid a 'may be used uninitialized' warning when built with '-c opt'.
  • Add software prefetch to ByteSizeLong
  • Add prefetching in arena blocks.
  • Rename the includingDefaultValueWithoutPresenceFields and always_print_without_presence_fields to alwaysPrintFieldsWithNoPresence in the C++, Py and Java JSON serializers for consistency.
  • Remove tags for arena cleanup nodes now that we have dedicated string cleanup blocks.
  • Avoid unused-parameter warning in field accessor listeners.
  • Add new always_print_without_presence_fields option to the C++ JSON serializer.
  • Fail to build descriptor if ctype is specified for non string/bytes fields
  • Check ctype() in DescriptorBuilder for edition 2023 and beyond.
  • Fail building descriptors if ctype is used for fields other than string or bytes.
  • Fix generation of HasExtension and ExtensionSize functions to restrict to the
  • Add the privacy manifest to the C++ CocoaPod.

Java

  • Lazily resolve features for proto2 and proto3 for compatibility with old open source gencode that does not invoke feature resolution from gencode static init.
  • Add java to reserved names to escape extensions to java_. This may break existing references to gencode for extensions named java.
  • Deprecate building from source with Maven to be removed in 4.28.x.
  • Split bootstrapped java_features.proto to keep it from leaking out.
  • Refactored the Java generator into separate packages and targets.
  • Define lifetimes of edition 2023 features
  • Check that size is non-negative when reading string or bytes in StreamDecoder.
  • Fix text-format delimited field handling
  • Move java_features.proto to java/core/srce/main/resources
  • Add java_features.proto to kotlin_mvn release
  • Enable editions support for Java Lite.
  • Fix descriptor to access type via getType() s.t. messages using delimited encoding are consistently treated as groups for Java lite.
  • Make UnsafeByteOperations stable; removing experimental annotation.
  • Fix features inheritance of oneof fields and extensions and fix/move unit tests to actually run.
  • Add software prefetch to ByteSizeLong
  • Rename the includingDefaultValueWithoutPresenceFields and always_print_without_presence_fields to alwaysPrintFieldsWithNoPresence in the C++, Py and Java JSON serializers for consistency.
  • Add a new includingDefaultValueWithoutPresenceFields option to the Java parser which is intended to replace the current includingDefaultValueFields.

Kotlin

  • Add java_features.proto to kotlin_mvn release

Csharp

  • Regenerate stale files
  • Optimize JSON parsing in JsonTokenizer.
  • Avoid string concatenation when looking up enum values by name.
  • Cache StringBuilder instances in the .NET JsonTextTokenizer.
  • Enable Editions in the C# generator.
  • Runtime support for Protobuf Editions in C#.
  • Tweak "group to property name" mapping for C#. Under editions, where fields using a delimited encoding have independent field names from type names, we want to use the specified field name.
  • Ignore invalid enum string values in JSON, when invalid fields are being ignored.

Objective-C

  • Optimize startup be reducing selector lookup.
  • Add the privacy manifest to the ObjC CocoaPod.

Python

  • Add temporary alias for system_python.bzl at previous location.
  • Implement feature lifetime validation in protoc and the C++ runtime.
  • Fix text-format delimited field handling
  • Python JSON parser: Ignore invalid enum string values if ignore_unknown_fields is set
  • Fix upb python: DO NOT create empty optional field after sorting empty repeated field
  • Enable Protobuf Python version check.
  • Register Scalar/MessageMapContainerTypes as virtual subclasses of MutableMapping instead of inheriting directly.
  • Rename the includingDefaultValueWithoutPresenceFields and always_print_without_presence_fields to alwaysPrintFieldsWithNoPresence in the C++, Py and Java JSON serializers for consistency.
  • Add new including_default_value_without_presence_fields to Python JSON serializer.
  • Adhere to PEP 8

PHP

  • Don't break the trace
  • Fix inconsistent timestamp json encode/decode
  • Feat: more readable phpdoc escaping

PHP C-Extension

  • Regenerate stale files
  • See also UPB changes below, which may affect PHP C-Extension.

Ruby

  • Add bigdecimal to dependencies
  • Implement service & method descriptor lookup in Ruby
  • Implement edition 2023 support in all Ruby runtimes.
  • Ruby implement memsize functions for native types
  • Moved ObjectCache into an internal module.
  • [Ruby] Delegate difference, intersection, union from RepeatedField to Array
  • Move the RubyMessage.java JSON "include defaults" to use alwaysPrintFieldsWithNoPresence.
  • Increased the size of the error message buffer by 4x, to 511 bytes.

Ruby C-Extension

  • Regenerate stale files
  • Implement service & method descriptor lookup in Ruby
  • Implement edition 2023 support in all Ruby runtimes.
  • Ruby implement memsize functions for native types
  • Moved ObjectCache into an internal module.
  • See also UPB changes below, which may affect Ruby C-Extension.

UPB (Python/PHP/Ruby C-Extension)

  • Regenerate stale files
  • Setup upb installation with cmake.
  • Fix text-format delimited field handling
  • Print non-extension fields by field number order instead of .proto file order.
  • Implement service & method descriptor lookup in Ruby
  • Implement edition 2023 support in all Ruby runtimes.
  • Adds mutable extension accessors to the codegen for upb C for getting mutable extension messages.
  • Ruby implement memsize functions for native types
  • Increased the size of the error message buffer by 4x, to 511 bytes.

Other

  • MODULE.bazel fixes for protobuf BCR release.
  • Fix whitespace merge issue in gencode
  • Work around windows path length limitations by moving immutable -> full in open source (new generator paths) and shortening long file names.
  • Move the windows path length workarounds out of protobuf-ci
  • Update src/file_lists.cmake for staleness
  • Add system_python to protobuf_deps.bzl.
  • Migrate bazel tests to protobuf-ci.
  • Fix bazel cache issues in 7.0.0
  • Add redirects for C++ and Java proto rules
  • Add redirects for proto rules
  • Feat: automate publishing releases to Bazel Central Registry
  • Add PrivacyInfo.xcprivacy

comment:4 by Bruce Dubbs, 4 months ago

Resolution: fixed
Status: assignedclosed

Fixed at commits 14c7719763 and 48a4274dbe.

Note: See TracTickets for help on using tickets.