Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: protocolbuffers/protobuf
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v27.1
Choose a base ref
...
head repository: protocolbuffers/protobuf
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v27.2
Choose a head ref
  • 20 commits
  • 85 files changed
  • 5 contributors

Commits on Jun 5, 2024

  1. Updating version.json and repo version numbers to: 27.2-dev

    protobuf-team-bot committed Jun 5, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    baywet Vincent Biret
    Copy the full SHA
    cc74be3 View commit details
  2. Merge pull request #17041 from protocolbuffers/27.x-202406051659

    Merge release commits to 27.x
    mkruskal-google authored Jun 5, 2024

    Verified

    This commit was signed with the committer’s verified signature.
    baywet Vincent Biret
    Copy the full SHA
    9a58f07 View commit details

Commits on Jun 7, 2024

  1. Make the underlying type of the enum by 8-bits instead of using bitfi…

    …elds for
    
    it.
    It silences a warning in gcc 8/9.
    
    PiperOrigin-RevId: 633719795
    protobuf-github-bot authored and zhangskz committed Jun 7, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    316f493 View commit details

Commits on Jun 11, 2024

  1. Avoid calling absl::InitializeLog in protoc with MSVC

    The recent github runner image update changes the MSVC version, and InitializeLog now crashes in optimized builds.  Until Abseil works with MSVC, we can just log to stderr in protoc.
    
    PiperOrigin-RevId: 641024759
    mkruskal-google authored and zhangskz committed Jun 11, 2024
    Copy the full SHA
    aa7fcb3 View commit details
  2. Merge pull request #17077 from protocolbuffers/cp-warn

    Make the underlying type of the enum by 8-bits instead of using bitfi…
    zhangskz authored Jun 11, 2024
    Copy the full SHA
    eb61e6b View commit details

Commits on Jun 13, 2024

  1. Fix delimited inheritance in all languages.

    This was previously fixed in C++ (#16549), but not ported to other languages.  Delimited field encoding can be inherited by fields where it's invalid, such as non-messages and maps.  In these cases, the encoding should be ignored and length-prefixed should be used.
    
    PiperOrigin-RevId: 642792988
    mkruskal-google committed Jun 13, 2024
    Copy the full SHA
    c4f359e View commit details
  2. Regenerate stale files

    mkruskal-google committed Jun 13, 2024
    Copy the full SHA
    29f1b52 View commit details

Commits on Jun 14, 2024

  1. Fix data race in crosslink.

    This was introduced by the previous fix for delimited inheritance, and was never released.  This fix removes all getType() calls from crosslink, where it's not safe to inspect the message type, which is still a placeholder, until after crosslinking.  Using the inferred type is not necessary since we treat messages and groups the same during crosslink.
    
    PiperOrigin-RevId: 643394981
    mkruskal-google committed Jun 14, 2024
    Copy the full SHA
    3d71e22 View commit details
  2. Merge pull request #17129 from protocolbuffers/delimited-fix

    Backport fixes to delimited handling
    mkruskal-google authored Jun 14, 2024
    Copy the full SHA
    86768b3 View commit details

Commits on Jun 17, 2024

  1. Reparse unknown features using extension registry containing Java fea…

    …tures.
    
    This should not be needed for generated code, but may be needed for user calls to the public buildFrom method. FileDescriptorProto should really be parsed with java features in the extension registry (like other extensions), but we can handle this in Java runtime to ease editions adoption.
    
    PiperOrigin-RevId: 638715579
    zhangskz committed Jun 17, 2024
    Copy the full SHA
    e5ddc45 View commit details
  2. Reserialize all unresolved features using java features from the gene…

    …rated pool in case of descriptors from the custom pool.
    
    This extends previous workaround for java features in unknown fields, to include features extensions that are known but use a mismatched descriptor.
    
    This can happen when users bring their own descriptors via buildFrom.
    
    PiperOrigin-RevId: 644013578
    zhangskz committed Jun 17, 2024
    Copy the full SHA
    2426a02 View commit details
  3. Fix checking unknown field set empty which wasn't exposed yet in 27.x

    zhangskz committed Jun 17, 2024
    Copy the full SHA
    c7a006a View commit details
  4. Merge pull request #17161 from protocolbuffers/backport-java

    Backport handling of unknown and custom java features to 27.x
    zhangskz authored Jun 17, 2024
    Copy the full SHA
    6c6f514 View commit details
  5. Add simple conformance test that builds the old gencode against the c…

    …urrent runtime.
    
    PiperOrigin-RevId: 631486123
    protobuf-github-bot authored and zhangskz committed Jun 17, 2024
    Copy the full SHA
    9cfb59b View commit details
  6. Add stubs for GeneratedMessageV3, RepeatedFieldBuilderV3, SingleField…

    …BuilderV3 for compatibility with older <4.26.x gencode.
    
    These classes are deprecated and will be removed in the next breaking change. Users should update gencode to >= 4.26.x which uses GeneratedMessage instead of GeneratedMessageV3.
    
    Tested with //compatibility:java_conformance_v3.25.0 which builds the runtime against 3.25.0 gencode.
    
    PiperOrigin-RevId: 644136172
    zhangskz committed Jun 17, 2024
    Copy the full SHA
    1e360a4 View commit details
  7. Cleanup imports and comments in V3 stubs.

    PiperOrigin-RevId: 644146189
    zhangskz committed Jun 17, 2024
    Copy the full SHA
    270ca66 View commit details

Commits on Jun 18, 2024

  1. Merge pull request #17164 from protocolbuffers/cp-stubs

    Backport stubs / tests for compatibility with <4.26.x gencode to 27.x
    zhangskz authored Jun 18, 2024
    Copy the full SHA
    b0a3c23 View commit details

Commits on Jun 24, 2024

  1. Fix string_type bugs in edition 2023 (#17211)

    * Fix a bug in which proto code uses ctype instead of string_type internally.
    
    We change InferLegacyProtoFeatures to set ctype based on string_type when string_type is set. We need to update CppGenerator::ValidateFeatures to allow both ctype and string_type to be set because it runs after InferLegacyProtoFeatures.
    
    PiperOrigin-RevId: 645480157
    
    * Regenerate stale files
    
    * Fix bad merge where cpp_type isn't useable during build in 27.x
    
    * Infer string type feature from ctype pre-editions.
    
    This will allow internal code to simply check the feature value instead of checking both ctype and string_type.
    
    PiperOrigin-RevId: 625897380
    
    ---------
    
    Co-authored-by: Protobuf Team Bot <protobuf-github-bot@google.com>
    mkruskal-google and protobuf-github-bot authored Jun 24, 2024
    Copy the full SHA
    4923b8d View commit details

Commits on Jun 25, 2024

  1. Port windows bootstrapping fix (#17225)

    mkruskal-google authored Jun 25, 2024
    Copy the full SHA
    19bd211 View commit details
  2. Updating version.json and repo version numbers to: 27.2

    protobuf-team-bot committed Jun 25, 2024
    Copy the full SHA
    63def39 View commit details
Showing with 972 additions and 332 deletions.
  1. +4 −4 .github/workflows/test_java.yml
  2. +1 −1 CMakeLists.txt
  3. +1 −1 MODULE.bazel
  4. +1 −1 Protobuf-C++.podspec
  5. +1 −1 Protobuf.podspec
  6. +15 −0 WORKSPACE
  7. +19 −0 compatibility/BUILD.bazel
  8. +53 −0 compatibility/runtime_conformance.bzl
  9. +32 −0 conformance/binary_json_conformance_suite.cc
  10. +19 −11 conformance/test_protos/test_messages_edition2023.proto
  11. +1 −1 csharp/Google.Protobuf.Tools.nuspec
  12. +158 −157 csharp/src/Google.Protobuf.Test.TestProtos/TestMessagesEdition2023.pb.cs
  13. +1 −1 csharp/src/Google.Protobuf.Test.TestProtos/UnittestFeatures.pb.cs
  14. BIN csharp/src/Google.Protobuf.Test/testprotos.pb
  15. +1 −1 csharp/src/Google.Protobuf/Google.Protobuf.csproj
  16. +5 −0 csharp/src/Google.Protobuf/Reflection/FieldDescriptor.cs
  17. +1 −1 java/bom/pom.xml
  18. +1 −1 java/core/pom.xml
  19. +39 −8 java/core/src/main/java/com/google/protobuf/Descriptors.java
  20. +83 −0 java/core/src/main/java/com/google/protobuf/GeneratedMessageV3.java
  21. +34 −0 java/core/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java
  22. +1 −1 java/core/src/main/java/com/google/protobuf/RuntimeVersion.java
  23. +28 −0 java/core/src/main/java/com/google/protobuf/SingleFieldBuilderV3.java
  24. +168 −23 java/core/src/test/java/com/google/protobuf/DescriptorsTest.java
  25. +1 −1 java/kotlin-lite/pom.xml
  26. +1 −1 java/kotlin/pom.xml
  27. +1 −1 java/lite/pom.xml
  28. +1 −1 java/pom.xml
  29. +1 −1 java/protoc/pom.xml
  30. +1 −1 java/util/pom.xml
  31. +11 −11 php/ext/google/protobuf/php-upb.c
  32. +1 −1 php/ext/google/protobuf/protobuf.h
  33. +5 −5 protobuf_version.bzl
  34. +4 −0 protos/protos_extension_lock_test.cc
  35. +1 −1 python/google/protobuf/__init__.py
  36. +3 −0 python/google/protobuf/descriptor.py
  37. +1 −1 python/google/protobuf/runtime_version.py
  38. +1 −4 python/google/protobuf/text_format.py
  39. +11 −11 ruby/ext/google/protobuf_c/ruby-upb.c
  40. +1 −1 ruby/google-protobuf.gemspec
  41. +2 −2 ruby/pom.xml
  42. +1 −0 src/file_lists.cmake
  43. +12 −0 src/google/protobuf/BUILD.bazel
  44. +1 −1 src/google/protobuf/any.pb.cc
  45. +2 −2 src/google/protobuf/any.pb.h
  46. +1 −1 src/google/protobuf/api.pb.cc
  47. +2 −2 src/google/protobuf/api.pb.h
  48. +13 −3 src/google/protobuf/compiler/cpp/generator.cc
  49. +1 −1 src/google/protobuf/compiler/java/java_features.pb.cc
  50. +2 −2 src/google/protobuf/compiler/java/java_features.pb.h
  51. +3 −0 src/google/protobuf/compiler/main.cc
  52. +3 −0 src/google/protobuf/compiler/main_no_generators.cc
  53. +1 −1 src/google/protobuf/compiler/plugin.pb.cc
  54. +2 −2 src/google/protobuf/compiler/plugin.pb.h
  55. +3 −3 src/google/protobuf/compiler/versions.h
  56. +1 −1 src/google/protobuf/cpp_features.pb.cc
  57. +2 −2 src/google/protobuf/cpp_features.pb.h
  58. +60 −1 src/google/protobuf/descriptor.cc
  59. +1 −1 src/google/protobuf/descriptor.h
  60. +1 −1 src/google/protobuf/descriptor.pb.cc
  61. +2 −2 src/google/protobuf/descriptor.pb.h
  62. +72 −1 src/google/protobuf/descriptor_unittest.cc
  63. +1 −1 src/google/protobuf/duration.pb.cc
  64. +2 −2 src/google/protobuf/duration.pb.h
  65. +1 −1 src/google/protobuf/empty.pb.cc
  66. +2 −2 src/google/protobuf/empty.pb.h
  67. +1 −1 src/google/protobuf/field_mask.pb.cc
  68. +2 −2 src/google/protobuf/field_mask.pb.h
  69. +1 −1 src/google/protobuf/generated_message_tctable_gen.h
  70. +1 −1 src/google/protobuf/runtime_version.h
  71. +1 −1 src/google/protobuf/source_context.pb.cc
  72. +2 −2 src/google/protobuf/source_context.pb.h
  73. +1 −1 src/google/protobuf/struct.pb.cc
  74. +2 −2 src/google/protobuf/struct.pb.h
  75. +1 −1 src/google/protobuf/stubs/common.h
  76. +1 −1 src/google/protobuf/timestamp.pb.cc
  77. +2 −2 src/google/protobuf/timestamp.pb.h
  78. +1 −1 src/google/protobuf/type.pb.cc
  79. +2 −2 src/google/protobuf/type.pb.h
  80. +16 −0 src/google/protobuf/unittest_string_type.proto
  81. +1 −1 src/google/protobuf/wrappers.pb.cc
  82. +2 −2 src/google/protobuf/wrappers.pb.h
  83. +11 −11 upb/reflection/field_def.c
  84. +8 −1 upb_generator/bootstrap_compiler.bzl
  85. +10 −10 version.json
8 changes: 4 additions & 4 deletions .github/workflows/test_java.yml
Original file line number Diff line number Diff line change
@@ -22,19 +22,19 @@ jobs:
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:8-1fdbb997433cb22c1e49ef75ad374a8d6bb88702
# TODO: b/318555165 - enable the layering check. Currently it does
# not work correctly with the toolchain in this Docker image.
targets: //java/... //java/internal:java_version --features=-layering_check
targets: //java/... //java/internal:java_version //compatibility/... --features=-layering_check
- name: OpenJDK 11
version: '11'
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:11-1fdbb997433cb22c1e49ef75ad374a8d6bb88702
targets: //java/... //java/internal:java_version
targets: //java/... //java/internal:java_version //compatibility/...
- name: OpenJDK 17
version: '17'
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:17-1fdbb997433cb22c1e49ef75ad374a8d6bb88702
targets: //java/... //java/internal:java_version
targets: //java/... //java/internal:java_version //compatibility/...
- name: aarch64
version: 'aarch64'
image: us-docker.pkg.dev/protobuf-build/containers/test/linux/emulation:aarch64-63dd26c0c7a808d92673a3e52e848189d4ab0f17
targets: //java/... //src/google/protobuf/compiler:protoc_aarch64_test
targets: //java/... //compatibility/... //src/google/protobuf/compiler:protoc_aarch64_test

name: Linux ${{ matrix.name }}
runs-on: ubuntu-latest
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -81,7 +81,7 @@ if (protobuf_BUILD_SHARED_LIBS)
endif ()

# Version metadata
set(protobuf_VERSION_STRING "5.27.1")
set(protobuf_VERSION_STRING "5.27.2")
set(protobuf_DESCRIPTION "Protocol Buffers")
set(protobuf_CONTACT "protobuf@googlegroups.com")

2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
# https://github.com/protocolbuffers/protobuf/issues/14313
module(
name = "protobuf",
version = "27.1", # Automatically updated on release
version = "27.2", # Automatically updated on release
compatibility_level = 1,
repo_name = "com_google_protobuf",
)
2 changes: 1 addition & 1 deletion Protobuf-C++.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Protobuf-C++'
s.version = '5.27.1'
s.version = '5.27.2'
s.summary = 'Protocol Buffers v3 runtime library for C++.'
s.homepage = 'https://github.com/google/protobuf'
s.license = 'BSD-3-Clause'
2 changes: 1 addition & 1 deletion Protobuf.podspec
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
# dependent projects use the :git notation to refer to the library.
Pod::Spec.new do |s|
s.name = 'Protobuf'
s.version = '3.27.1'
s.version = '3.27.2'
s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.'
s.homepage = 'https://github.com/protocolbuffers/protobuf'
s.license = 'BSD-3-Clause'
15 changes: 15 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
@@ -225,3 +225,18 @@ crates_repository(

load("@crate_index//:defs.bzl", "crate_repositories")
crate_repositories()

# For testing runtime against old gencode from a previous major version.
http_archive(
name = "com_google_protobuf_v25.0",
strip_prefix = "protobuf-25.0",
url = "https://github.com/protocolbuffers/protobuf/releases/download/v25.0/protobuf-25.0.tar.gz",
)

# Needed as a dependency of @com_google_protobuf_v25.x, which was before
# utf8_range was merged in.
http_archive(
name = "utf8_range",
strip_prefix = "utf8_range-d863bc33e15cba6d873c878dcca9e6fe52b2f8cb",
url = "https://github.com/protocolbuffers/utf8_range/archive/d863bc33e15cba6d873c878dcca9e6fe52b2f8cb.zip",
)
19 changes: 19 additions & 0 deletions compatibility/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Simple build tests for compatibility of gencode from previous major versions
# with the current runtime.
#
# To add more test cases in Java, use java_runtime_conformance as below, and add
# the corresponding http_archive in the WORKSPACE file for the version.

load("//compatibility:runtime_conformance.bzl", "java_runtime_conformance")

# main gencode builds with main runtime as a proof of concept.
java_runtime_conformance(
name = "java_conformance_main",
gencode_version = "main",
)

# Generates a build_test named "conformance_v3.25.0"
java_runtime_conformance(
name = "java_conformance_v3.25.0",
gencode_version = "3.25.0",
)
53 changes: 53 additions & 0 deletions compatibility/runtime_conformance.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
"""Provides a rule to generate a conformance test for a given version of the gencode."""

load("@bazel_skylib//rules:build_test.bzl", "build_test")

def java_runtime_conformance(name, gencode_version, tags = []):
"""Generates a conformance test for the given version of the runtime.
For example, runtime_conformance("3.19.4") will generate a build test named "conformance_v3.19.4"
that will fail if the runtime at that version fails to compile the unittest proto.
Args:
name: The name of the test.
gencode_version: The version of the runtime to test.
tags: Any tags to apply to the generated test.
"""

if gencode_version == "main":
protoc = "//:protoc"
else:
minor = gencode_version[gencode_version.find(".") + 1:]
protoc = Label("@com_google_protobuf_v%s//:protoc" % minor)

gencode = [
"v%s/protobuf_unittest/UnittestProto.java" % gencode_version,
"v%s/com/google/protobuf/test/UnittestImport.java" % gencode_version,
"v%s/com/google/protobuf/test/UnittestImportPublic.java" % gencode_version,
]
native.genrule(
name = "unittest_proto_gencode_v" + gencode_version,
srcs = [
"//src/google/protobuf:unittest_proto_srcs",
],
outs = gencode,
cmd = "$(location %s) " % protoc +
"$(locations //src/google/protobuf:unittest_proto_srcs) " +
" -Isrc/ --java_out=$(@D)/v%s" % gencode_version,
tools = [protoc],
)

conformance_name = "conformance_v" + gencode_version
conformance_lib_name = conformance_name + "_lib"
native.java_library(
name = conformance_lib_name,
srcs = gencode,
deps = ["//java/core"],
tags = tags,
)

build_test(
name = name,
targets = [":" + conformance_lib_name],
tags = tags,
)
32 changes: 32 additions & 0 deletions conformance/binary_json_conformance_suite.cc
Original file line number Diff line number Diff line change
@@ -155,6 +155,11 @@ std::string group(uint32_t fieldnum, std::string content) {
tag(fieldnum, WireFormatLite::WIRETYPE_END_GROUP));
}

std::string len(uint32_t fieldnum, std::string content) {
return absl::StrCat(tag(fieldnum, WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
delim(content));
}

std::string GetDefaultValue(FieldDescriptor::Type type) {
switch (type) {
case FieldDescriptor::TYPE_INT32:
@@ -363,6 +368,33 @@ void BinaryAndJsonConformanceSuite::RunDelimitedFieldTests() {
TestAllTypesEdition2023 prototype;
SetTypeUrl(GetTypeUrl(TestAllTypesEdition2023::GetDescriptor()));

RunValidProtobufTest<TestAllTypesEdition2023>(
absl::StrCat("ValidNonMessage"), REQUIRED,
field(1, WireFormatLite::WIRETYPE_VARINT, varint(99)),
R"pb(optional_int32: 99)pb");

RunValidProtobufTest<TestAllTypesEdition2023>(
absl::StrCat("ValidLengthPrefixedField"), REQUIRED,
len(18, field(1, WireFormatLite::WIRETYPE_VARINT, varint(99))),
R"pb(optional_nested_message { a: 99 })pb");

RunValidProtobufTest<TestAllTypesEdition2023>(
absl::StrCat("ValidMap.Integer"), REQUIRED,
len(56,
absl::StrCat(field(1, WireFormatLite::WIRETYPE_VARINT, varint(99)),
field(2, WireFormatLite::WIRETYPE_VARINT, varint(87)))),
R"pb(map_int32_int32 { key: 99 value: 87 })pb");

RunValidProtobufTest<TestAllTypesEdition2023>(
absl::StrCat("ValidMap.LengthPrefixed"), REQUIRED,
len(71, absl::StrCat(len(1, "a"),
len(2, field(1, WireFormatLite::WIRETYPE_VARINT,
varint(87))))),
R"pb(map_string_nested_message {
key: "a"
value: { a: 87 }
})pb");

RunValidProtobufTest<TestAllTypesEdition2023>(
absl::StrCat("ValidDelimitedField.GroupLike"), REQUIRED,
group(201, field(202, WireFormatLite::WIRETYPE_VARINT, varint(99))),
30 changes: 19 additions & 11 deletions conformance/test_protos/test_messages_edition2023.proto
Original file line number Diff line number Diff line change
@@ -2,14 +2,16 @@ edition = "2023";

package protobuf_test_messages.editions;

option features.message_encoding = DELIMITED;
option java_package = "com.google.protobuf_test_messages.edition2023";
option java_multiple_files = true;
option objc_class_prefix = "Editions";

message TestAllTypesEdition2023 {
message NestedMessage {
int32 a = 1;
TestAllTypesEdition2023 corecursive = 2;
TestAllTypesEdition2023 corecursive = 2
[features.message_encoding = LENGTH_PREFIXED];
}

enum NestedEnum {
@@ -36,16 +38,19 @@ message TestAllTypesEdition2023 {
string optional_string = 14;
bytes optional_bytes = 15;

NestedMessage optional_nested_message = 18;
ForeignMessageEdition2023 optional_foreign_message = 19;
NestedMessage optional_nested_message = 18
[features.message_encoding = LENGTH_PREFIXED];
ForeignMessageEdition2023 optional_foreign_message = 19
[features.message_encoding = LENGTH_PREFIXED];

NestedEnum optional_nested_enum = 21;
ForeignEnumEdition2023 optional_foreign_enum = 22;

string optional_string_piece = 24 [ctype = STRING_PIECE];
string optional_cord = 25 [ctype = CORD];

TestAllTypesEdition2023 recursive_message = 27;
TestAllTypesEdition2023 recursive_message = 27
[features.message_encoding = LENGTH_PREFIXED];

// Repeated
repeated int32 repeated_int32 = 31;
@@ -64,8 +69,10 @@ message TestAllTypesEdition2023 {
repeated string repeated_string = 44;
repeated bytes repeated_bytes = 45;

repeated NestedMessage repeated_nested_message = 48;
repeated ForeignMessageEdition2023 repeated_foreign_message = 49;
repeated NestedMessage repeated_nested_message = 48
[features.message_encoding = LENGTH_PREFIXED];
repeated ForeignMessageEdition2023 repeated_foreign_message = 49
[features.message_encoding = LENGTH_PREFIXED];

repeated NestedEnum repeated_nested_enum = 51;
repeated ForeignEnumEdition2023 repeated_foreign_enum = 52;
@@ -152,7 +159,8 @@ message TestAllTypesEdition2023 {

oneof oneof_field {
uint32 oneof_uint32 = 111;
NestedMessage oneof_nested_message = 112;
NestedMessage oneof_nested_message = 112
[features.message_encoding = LENGTH_PREFIXED];
string oneof_string = 113;
bytes oneof_bytes = 114;
bool oneof_bool = 115;
@@ -170,8 +178,8 @@ message TestAllTypesEdition2023 {
int32 group_int32 = 202;
uint32 group_uint32 = 203;
}
GroupLikeType groupliketype = 201 [features.message_encoding = DELIMITED];
GroupLikeType delimited_field = 202 [features.message_encoding = DELIMITED];
GroupLikeType groupliketype = 201;
GroupLikeType delimited_field = 202;
}

message ForeignMessageEdition2023 {
@@ -193,6 +201,6 @@ message GroupLikeType {
}

extend TestAllTypesEdition2023 {
GroupLikeType groupliketype = 121 [features.message_encoding = DELIMITED];
GroupLikeType delimited_ext = 122 [features.message_encoding = DELIMITED];
GroupLikeType groupliketype = 121;
GroupLikeType delimited_ext = 122;
}
2 changes: 1 addition & 1 deletion csharp/Google.Protobuf.Tools.nuspec
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
<title>Google Protocol Buffers tools</title>
<summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
<description>See project site for more info.</description>
<version>3.27.1</version>
<version>3.27.2</version>
<authors>Google Inc.</authors>
<owners>protobuf-packages</owners>
<licenseUrl>https://github.com/protocolbuffers/protobuf/blob/main/LICENSE</licenseUrl>
Loading