Merge 21.x into main

This commit is contained in:
Sandy Zhang 2022-05-28 00:06:34 +00:00
commit 258514019f
69 changed files with 279 additions and 219 deletions

View File

@ -1,5 +1,4 @@
# These are fetched as external repositories. # These are fetched as external repositories.
third_party/abseil-cpp
third_party/benchmark third_party/benchmark
third_party/googletest third_party/googletest
_build/ _build/

4
.gitmodules vendored
View File

@ -5,7 +5,3 @@
path = third_party/googletest path = third_party/googletest
url = https://github.com/google/googletest.git url = https://github.com/google/googletest.git
ignore = dirty ignore = dirty
[submodule "third_party/abseil-cpp"]
path = third_party/abseil-cpp
url = https://github.com/abseil/abseil-cpp.git
branch = lts_2021_11_02

View File

@ -5,8 +5,20 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_proto_library", "c
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library") load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library") load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library")
<<<<<<< HEAD
load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS") load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS")
load(":protobuf.bzl", "py_proto_library") load(":protobuf.bzl", "py_proto_library")
=======
load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS", "PROTOC_LINK_OPTS")
load(
":protobuf.bzl",
"adapt_proto_library",
"cc_proto_library",
"internal_copied_filegroup",
"internal_protobuf_py_tests",
"py_proto_library",
)
>>>>>>> upstream/21.x
licenses(["notice"]) licenses(["notice"])
@ -151,7 +163,12 @@ filegroup(
cc_binary( cc_binary(
name = "protoc", name = "protoc",
<<<<<<< HEAD
linkopts = LINK_OPTS, linkopts = LINK_OPTS,
=======
srcs = ["src/google/protobuf/compiler/main.cc"],
linkopts = LINK_OPTS + PROTOC_LINK_OPTS,
>>>>>>> upstream/21.x
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
deps = ["//src/google/protobuf/compiler:protoc_lib"], deps = ["//src/google/protobuf/compiler:protoc_lib"],
) )

View File

@ -1,3 +1,63 @@
2022-05-27 version 21.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby)
C++
* cmake: Revert "Fix cmake install targets (#9822)" (#10060)
* Remove Abseil dependency from CMake build (#10056)
Python
* Update python wheel metadata with more information incl. required python version (#10058)
* Fix segmentation fault when instantiating field via repeated field assignment (#10066)
2022-05-25 version 21.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby)
C++
* cmake: Call get_filename_component() with DIRECTORY mode instead of PATH mode (#9614)
* Escape GetObject macro inside protoc-generated code (#9739)
* Update CMake configuration to add a dependency on Abseil (#9793)
* Fix cmake install targets (#9822)
* Use __constinit only in GCC 12.2 and up (#9936)
Java
* Update protobuf_version.bzl to separate protoc and per-language java … (#9900)
Python
* Increment python major version to 4 in version.json for python upb (#9926)
* The C extension module for Python has been rewritten to use the upb library.
This is expected to deliver significant performance benefits, especially when
parsing large payloads. There are some minor breaking changes, but these
should not impact most users. For more information see:
https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
* Fixed win32 build and fixed str(message) on all Windows platforms. (#9976)
* The binary wheel for macOS now supports Apple silicon.
PHP
* [PHP] fix PHP build system (#9571)
* Fix building packaged PHP extension (#9727)
* fix: reserve "ReadOnly" keyword for PHP 8.1 and add compatibility (#9633)
* fix: phpdoc syntax for repeatedfield parameters (#9784)
* fix: phpdoc for repeatedfield (#9783)
* Change enum string name for reserved words (#9780)
* chore: [PHP] fix phpdoc for MapField keys (#9536)
* Fixed PHP SEGV by not writing to shared memory for zend_class_entry. (#9996)
Ruby
* Allow pre-compiled binaries for ruby 3.1.0 (#9566)
* Implement `respond_to?` in RubyMessage (#9677)
* [Ruby] Fix RepeatedField#last, #first inconsistencies (#9722)
* Do not use range based UTF-8 validation in truffleruby (#9769)
* Improve range handling logic of `RepeatedField` (#9799)
* Support x64-mingw-ucrt platform
Other
* [Kotlin] remove redundant public modifiers for compiled code (#9642)
* [C#] Update GetExtension to support getting typed value (#9655)
* Fix invalid dependency manifest when using `descriptor_set_out` (#9647)
* Fix C# generator handling of a field named "none" in a oneof (#9636)
* Add initial version.json file for 21-dev (#9840)
* Remove duplicate java generated code (#9909)
* Cherry-pick PR #9981 into 21.x branch (#10000)
2022-05-19 version 21.0-rc2(C++/Java/Python/PHP/Objective-C/C#/Ruby) 2022-05-19 version 21.0-rc2(C++/Java/Python/PHP/Objective-C/C#/Ruby)
Python Python

View File

@ -162,15 +162,6 @@ file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmaketest.map)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
# We can install dependencies from submodules if we're running
# CMake v3.13 or newer.
if(CMAKE_VERSION VERSION_LESS 3.13)
set(_protobuf_INSTALL_SUPPORTED_FROM_MODULE OFF)
else()
set(_protobuf_INSTALL_SUPPORTED_FROM_MODULE ON)
endif()
set(_protobuf_FIND_ZLIB) set(_protobuf_FIND_ZLIB)
if (protobuf_WITH_ZLIB) if (protobuf_WITH_ZLIB)
find_package(ZLIB) find_package(ZLIB)
@ -313,10 +304,6 @@ if (protobuf_UNICODE)
add_definitions(-DUNICODE -D_UNICODE) add_definitions(-DUNICODE -D_UNICODE)
endif (protobuf_UNICODE) endif (protobuf_UNICODE)
set(protobuf_ABSL_PROVIDER "module" CACHE STRING "Provider of absl library")
set_property(CACHE protobuf_ABSL_PROVIDER PROPERTY STRINGS "module" "package")
include(${protobuf_SOURCE_DIR}/cmake/abseil-cpp.cmake)
include(${protobuf_SOURCE_DIR}/cmake/libprotobuf-lite.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf-lite.cmake)
include(${protobuf_SOURCE_DIR}/cmake/libprotobuf.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf.cmake)
if (protobuf_BUILD_LIBPROTOC) if (protobuf_BUILD_LIBPROTOC)

View File

@ -1214,7 +1214,6 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \
build_files_updated_unittest.sh \ build_files_updated_unittest.sh \
cmake/CMakeLists.txt \ cmake/CMakeLists.txt \
cmake/README.md \ cmake/README.md \
cmake/abseil-cpp.cmake \
cmake/conformance.cmake \ cmake/conformance.cmake \
cmake/examples.cmake \ cmake/examples.cmake \
cmake/extract_includes.bat.in \ cmake/extract_includes.bat.in \

View File

@ -1,6 +1,6 @@
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'Protobuf-C++' s.name = 'Protobuf-C++'
s.version = '3.21.0-rc1' s.version = '3.21.1'
s.summary = 'Protocol Buffers v3 runtime library for C++.' s.summary = 'Protocol Buffers v3 runtime library for C++.'
s.homepage = 'https://github.com/google/protobuf' s.homepage = 'https://github.com/google/protobuf'
s.license = 'BSD-3-Clause' s.license = 'BSD-3-Clause'

View File

@ -5,7 +5,11 @@
# dependent projects use the :git notation to refer to the library. # dependent projects use the :git notation to refer to the library.
Pod::Spec.new do |s| Pod::Spec.new do |s|
s.name = 'Protobuf' s.name = 'Protobuf'
<<<<<<< HEAD
s.version = '3.21.0-rc1' s.version = '3.21.0-rc1'
=======
s.version = '3.21.1'
>>>>>>> upstream/21.x
s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.'
s.homepage = 'https://github.com/protocolbuffers/protobuf' s.homepage = 'https://github.com/protocolbuffers/protobuf'
s.license = 'BSD-3-Clause' s.license = 'BSD-3-Clause'

View File

@ -59,6 +59,20 @@ config_setting(
}, },
) )
config_setting(
name = "config_win32",
values = {
"cpu": "win32",
},
)
config_setting(
name = "config_win64",
values = {
"cpu": "win64",
},
)
# Internal testing: # Internal testing:
starlark_cc_proto_library( starlark_cc_proto_library(

View File

@ -38,3 +38,10 @@ LINK_OPTS = select({
"-lm", "-lm",
], ],
}) })
# When cross-compiling for Windows we need to statically link pthread and the C++ library.
PROTOC_LINK_OPTS = select({
"//build_defs:config_win32": ["-static"],
"//build_defs:config_win64": ["-static"],
"//conditions:default": [],
})

View File

@ -1,31 +0,0 @@
if(TARGET absl::strings)
# If absl is included already, skip including it.
# (https://github.com/grpc/grpc/issues/29608)
elseif(protobuf_ABSL_PROVIDER STREQUAL "module")
if(NOT ABSL_ROOT_DIR)
set(ABSL_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/abseil-cpp)
endif()
if(EXISTS "${ABSL_ROOT_DIR}/CMakeLists.txt")
if(protobuf_INSTALL)
# When protobuf_INSTALL is enabled and Abseil will be built as a module,
# Abseil will be installed along with protobuf for convenience.
set(ABSL_ENABLE_INSTALL ON)
endif()
add_subdirectory(${ABSL_ROOT_DIR} third_party/abseil-cpp)
else()
message(WARNING "protobuf_ABSL_PROVIDER is \"module\" but ABSL_ROOT_DIR is wrong")
endif()
if(protobuf_INSTALL AND NOT _protobuf_INSTALL_SUPPORTED_FROM_MODULE)
message(WARNING "protobuf_INSTALL will be forced to FALSE because protobuf_ABSL_PROVIDER is \"module\" and CMake version (${CMAKE_VERSION}) is less than 3.13.")
set(protobuf_INSTALL FALSE)
endif()
elseif(protobuf_ABSL_PROVIDER STREQUAL "package")
# Use "CONFIG" as there is no built-in cmake module for absl.
find_package(absl REQUIRED CONFIG)
endif()
set(_protobuf_FIND_ABSL "if(NOT TARGET absl::strings)\n find_package(absl CONFIG)\nendif()")
set(protobuf_ABSL_USED_TARGETS
absl::strings
absl::strings_internal
)

View File

@ -128,20 +128,24 @@ configure_file(${protobuf_SOURCE_DIR}/cmake/protobuf-options.cmake
if (protobuf_BUILD_PROTOC_BINARIES) if (protobuf_BUILD_PROTOC_BINARIES)
export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc
NAMESPACE protobuf:: NAMESPACE protobuf::
FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/protobuf/protobuf-targets.cmake FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake
) )
else (protobuf_BUILD_PROTOC_BINARIES) else (protobuf_BUILD_PROTOC_BINARIES)
export(TARGETS libprotobuf-lite libprotobuf export(TARGETS libprotobuf-lite libprotobuf
NAMESPACE protobuf:: NAMESPACE protobuf::
FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/protobuf/protobuf-targets.cmake FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake
) )
endif (protobuf_BUILD_PROTOC_BINARIES) endif (protobuf_BUILD_PROTOC_BINARIES)
install(EXPORT protobuf-targets install(EXPORT protobuf-targets
FILE protobuf-targets.cmake
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
NAMESPACE protobuf:: NAMESPACE protobuf::
COMPONENT protobuf-export)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}/
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
COMPONENT protobuf-export COMPONENT protobuf-export
PATTERN protobuf-targets.cmake EXCLUDE
) )
option(protobuf_INSTALL_EXAMPLES "Install the examples folder" OFF) option(protobuf_INSTALL_EXAMPLES "Install the examples folder" OFF)

View File

@ -98,9 +98,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT)
LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map)
endif() endif()
target_link_libraries(libprotobuf-lite PRIVATE ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(libprotobuf-lite PRIVATE ${CMAKE_THREAD_LIBS_INIT})
target_include_directories(libprotobuf-lite
PRIVATE ${ABSL_ROOT_DIR}
)
if(protobuf_LINK_LIBATOMIC) if(protobuf_LINK_LIBATOMIC)
target_link_libraries(libprotobuf-lite PRIVATE atomic) target_link_libraries(libprotobuf-lite PRIVATE atomic)
endif() endif()

View File

@ -111,9 +111,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT)
LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf.map) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf.map)
endif() endif()
target_link_libraries(libprotobuf PRIVATE ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(libprotobuf PRIVATE ${CMAKE_THREAD_LIBS_INIT})
target_include_directories(libprotobuf
PRIVATE ${ABSL_ROOT_DIR}
)
if(protobuf_WITH_ZLIB) if(protobuf_WITH_ZLIB)
target_link_libraries(libprotobuf PRIVATE ${ZLIB_LIBRARIES}) target_link_libraries(libprotobuf PRIVATE ${ZLIB_LIBRARIES})
endif() endif()

View File

@ -122,9 +122,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT)
LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotoc.map) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotoc.map)
endif() endif()
target_link_libraries(libprotoc PRIVATE libprotobuf) target_link_libraries(libprotoc PRIVATE libprotobuf)
target_include_directories(libprotoc
PRIVATE ${ABSL_ROOT_DIR}
)
if(protobuf_BUILD_SHARED_LIBS) if(protobuf_BUILD_SHARED_LIBS)
target_compile_definitions(libprotoc target_compile_definitions(libprotoc
PUBLIC PROTOBUF_USE_DLLS PUBLIC PROTOBUF_USE_DLLS

View File

@ -3,7 +3,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake")
# Depend packages # Depend packages
@_protobuf_FIND_ZLIB@ @_protobuf_FIND_ZLIB@
@_protobuf_FIND_ABSL@
# Imported targets # Imported targets
include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake")

View File

@ -6,7 +6,6 @@ add_executable(protoc ${protoc_files} ${protobuf_version_rc_file})
target_link_libraries(protoc target_link_libraries(protoc
libprotoc libprotoc
libprotobuf libprotobuf
${protobuf_ABSL_USED_TARGETS}
) )
add_executable(protobuf::protoc ALIAS protoc) add_executable(protobuf::protoc ALIAS protoc)

View File

@ -21,7 +21,6 @@ else()
set(googlemock_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googlemock") set(googlemock_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googlemock")
set(googletest_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googletest") set(googletest_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googletest")
include_directories( include_directories(
${ABSL_ROOT_DIR}
${googlemock_source_dir} ${googlemock_source_dir}
${googletest_source_dir} ${googletest_source_dir}
${googletest_source_dir}/include ${googletest_source_dir}/include
@ -255,14 +254,7 @@ if (MSVC)
/wd4146 # unary minus operator applied to unsigned type, result still unsigned /wd4146 # unary minus operator applied to unsigned type, result still unsigned
) )
endif() endif()
target_link_libraries(tests target_link_libraries(tests protobuf-lite-test-common protobuf-test-common libprotoc libprotobuf GTest::gmock_main)
protobuf-lite-test-common
protobuf-test-common
libprotoc
libprotobuf
GTest::gmock_main
${protobuf_ABSL_USED_TARGETS}
)
set(test_plugin_files set(test_plugin_files
${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc
@ -272,12 +264,7 @@ set(test_plugin_files
) )
add_executable(test_plugin ${test_plugin_files}) add_executable(test_plugin ${test_plugin_files})
target_link_libraries(test_plugin target_link_libraries(test_plugin libprotoc libprotobuf GTest::gmock)
libprotoc
libprotobuf
GTest::gmock
${protobuf_ABSL_USED_TARGETS}
)
set(lite_test_files set(lite_test_files
${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc

View File

@ -17,7 +17,7 @@ AC_PREREQ(2.59)
# In the SVN trunk, the version should always be the next anticipated release # In the SVN trunk, the version should always be the next anticipated release
# version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed # version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed
# the size of one file name in the dist tarfile over the 99-char limit.) # the size of one file name in the dist tarfile over the 99-char limit.)
AC_INIT([Protocol Buffers],[3.21.0-rc-2],[protobuf@googlegroups.com],[protobuf]) AC_INIT([Protocol Buffers],[3.21.1],[protobuf@googlegroups.com],[protobuf])
AM_MAINTAINER_MODE([enable]) AM_MAINTAINER_MODE([enable])

View File

@ -5,7 +5,7 @@
<title>Google Protocol Buffers tools</title> <title>Google Protocol Buffers tools</title>
<summary>Tools for Protocol Buffers - Google's data interchange format.</summary> <summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
<description>See project site for more info.</description> <description>See project site for more info.</description>
<version>3.21.0-rc2</version> <version>3.21.1</version>
<authors>Google Inc.</authors> <authors>Google Inc.</authors>
<owners>protobuf-packages</owners> <owners>protobuf-packages</owners>
<licenseUrl>https://github.com/protocolbuffers/protobuf/blob/main/LICENSE</licenseUrl> <licenseUrl>https://github.com/protocolbuffers/protobuf/blob/main/LICENSE</licenseUrl>

View File

@ -4,7 +4,7 @@
<Description>C# runtime library for Protocol Buffers - Google's data interchange format.</Description> <Description>C# runtime library for Protocol Buffers - Google's data interchange format.</Description>
<Copyright>Copyright 2015, Google Inc.</Copyright> <Copyright>Copyright 2015, Google Inc.</Copyright>
<AssemblyTitle>Google Protocol Buffers</AssemblyTitle> <AssemblyTitle>Google Protocol Buffers</AssemblyTitle>
<VersionPrefix>3.21.0-rc2</VersionPrefix> <VersionPrefix>3.21.1</VersionPrefix>
<!-- C# 7.2 is required for Span/BufferWriter/ReadOnlySequence --> <!-- C# 7.2 is required for Span/BufferWriter/ReadOnlySequence -->
<LangVersion>7.2</LangVersion> <LangVersion>7.2</LangVersion>
<Authors>Google Inc.</Authors> <Authors>Google Inc.</Authors>

View File

@ -23,7 +23,7 @@ If you are using Maven, use the following:
<dependency> <dependency>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId> <artifactId>protobuf-java</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</dependency> </dependency>
``` ```
@ -37,7 +37,7 @@ protobuf-java-util package:
<dependency> <dependency>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId> <artifactId>protobuf-java-util</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</dependency> </dependency>
``` ```
@ -45,7 +45,7 @@ protobuf-java-util package:
If you are using Gradle, add the following to your `build.gradle` file's dependencies: If you are using Gradle, add the following to your `build.gradle` file's dependencies:
``` ```
implementation 'com.google.protobuf:protobuf-java:3.21.0-rc-2' implementation 'com.google.protobuf:protobuf-java:3.21.1'
``` ```
Again, be sure to check that the version number matches (or is newer than) the version number of protoc that you are using. Again, be sure to check that the version number matches (or is newer than) the version number of protoc that you are using.

View File

@ -4,7 +4,7 @@
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-bom</artifactId> <artifactId>protobuf-bom</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Protocol Buffers [BOM]</name> <name>Protocol Buffers [BOM]</name>

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId> <artifactId>protobuf-parent</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</parent> </parent>
<artifactId>protobuf-java</artifactId> <artifactId>protobuf-java</artifactId>

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId> <artifactId>protobuf-parent</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</parent> </parent>
<artifactId>protobuf-kotlin-lite</artifactId> <artifactId>protobuf-kotlin-lite</artifactId>

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId> <artifactId>protobuf-parent</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</parent> </parent>
<artifactId>protobuf-kotlin</artifactId> <artifactId>protobuf-kotlin</artifactId>

View File

@ -29,7 +29,7 @@ protobuf Java Lite runtime. If you are using Maven, include the following:
<dependency> <dependency>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-javalite</artifactId> <artifactId>protobuf-javalite</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</dependency> </dependency>
``` ```

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId> <artifactId>protobuf-parent</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</parent> </parent>
<artifactId>protobuf-javalite</artifactId> <artifactId>protobuf-javalite</artifactId>

View File

@ -4,7 +4,7 @@
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId> <artifactId>protobuf-parent</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Protocol Buffers [Parent]</name> <name>Protocol Buffers [Parent]</name>

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-parent</artifactId> <artifactId>protobuf-parent</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</parent> </parent>
<artifactId>protobuf-java-util</artifactId> <artifactId>protobuf-java-util</artifactId>

View File

@ -30,7 +30,7 @@ git clone https://github.com/matthew-brett/multibuild.git
# silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180).
# IMPORTANT: always pin multibuild at the same commit for: # IMPORTANT: always pin multibuild at the same commit for:
# - linux/build_artifacts.sh # - linux/build_artifacts.sh
# - macos/build_artifacts.sh # - linux/build_artifacts.sh
# - windows/build_artifacts.bat # - windows/build_artifacts.bat
(cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313)
cp kokoro/release/python/linux/config.sh config.sh cp kokoro/release/python/linux/config.sh config.sh

View File

@ -30,7 +30,7 @@ git clone https://github.com/matthew-brett/multibuild.git
# silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180).
# IMPORTANT: always pin multibuild at the same commit for: # IMPORTANT: always pin multibuild at the same commit for:
# - linux/build_artifacts.sh # - linux/build_artifacts.sh
# - macos/build_artifacts.sh # - linux/build_artifacts.sh
# - windows/build_artifacts.bat # - windows/build_artifacts.bat
(cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313)
cp kokoro/release/python/macos/config.sh config.sh cp kokoro/release/python/macos/config.sh config.sh

View File

@ -18,7 +18,7 @@ REM Pin multibuild scripts at a known commit to avoid potentially unwanted futur
REM silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). REM silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180).
REM IMPORTANT: always pin multibuild at the same commit for: REM IMPORTANT: always pin multibuild at the same commit for:
REM - linux/build_artifacts.sh REM - linux/build_artifacts.sh
REM - macos/build_artifacts.sh REM - linux/build_artifacts.sh
REM - windows/build_artifacts.bat REM - windows/build_artifacts.bat
cd multibuild cd multibuild
git checkout b89bb903e94308be79abefa4f436bf123ebb1313 git checkout b89bb903e94308be79abefa4f436bf123ebb1313
@ -34,11 +34,6 @@ SET ZLIB_ROOT=%cd%\zlib
del /Q zlib.zip del /Q zlib.zip
del /Q zlib-src.zip del /Q zlib-src.zip
REM Update Submodules
REM This is needed because this build uses CMake <3.13.
git submodule update --init --recursive
SET ABSL_ROOT_DIR=%cd%\third_party\abseil-cpp
REM Create directory for artifacts REM Create directory for artifacts
SET ARTIFACT_DIR=%cd%\artifacts SET ARTIFACT_DIR=%cd%\artifacts
mkdir %ARTIFACT_DIR% mkdir %ARTIFACT_DIR%

View File

@ -49,7 +49,7 @@ mkdir src\.libs
mkdir vcprojects mkdir vcprojects
pushd vcprojects pushd vcprojects
cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF -DABSL_ROOT_DIR=%ABSL_ROOT_DIR% ../cmake || goto :error cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF ../cmake || goto :error
msbuild protobuf.sln /p:Platform=%vcplatform% /p:Configuration=Release || goto :error msbuild protobuf.sln /p:Platform=%vcplatform% /p:Configuration=Release || goto :error
dir /s /b dir /s /b
popd popd

View File

@ -82,12 +82,12 @@ const char *const kReservedNames[] = {
"global", "goto", "insteadof", "interface", "isset", "global", "goto", "insteadof", "interface", "isset",
"list", "match", "namespace", "new", "object", "list", "match", "namespace", "new", "object",
"or", "parent", "print", "private", "protected", "or", "parent", "print", "private", "protected",
"public", "readonly", "require", "require_once", "return", "public", "require", "require_once", "return", "self",
"self", "static", "switch", "throw", "trait", "static", "switch", "throw", "trait", "try",
"try", "unset", "use", "var", "while", "unset", "use", "var", "while", "xor",
"xor", "yield", "int", "float", "bool", "yield", "int", "float", "bool", "string",
"string", "true", "false", "null", "void", "true", "false", "null", "void", "iterable",
"iterable", NULL}; NULL};
bool is_reserved_name(const char* name) { bool is_reserved_name(const char* name) {
int i; int i;

View File

@ -10,15 +10,15 @@
<email>protobuf-opensource@google.com</email> <email>protobuf-opensource@google.com</email>
<active>yes</active> <active>yes</active>
</lead> </lead>
<date>2022-05-19</date> <date>2022-05-27</date>
<time>13:35:18</time> <time>09:36:34</time>
<version> <version>
<release>3.21.0RC2</release> <release>3.21.1</release>
<api>3.21.0</api> <api>3.21.1</api>
</version> </version>
<stability> <stability>
<release>beta</release> <release>stable</release>
<api>beta</api> <api>stable</api>
</stability> </stability>
<license uri="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</license> <license uri="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</license>
<notes> <notes>
@ -1313,5 +1313,35 @@ G A release.
<notes> <notes>
</notes> </notes>
</release> </release>
<release>
<version>
<release>3.21.0</release>
<api>3.21.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2022-05-25</date>
<time>13:50:26</time>
<license uri="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</license>
<notes>
</notes>
</release>
<release>
<version>
<release>3.21.1</release>
<api>3.21.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2022-05-27</date>
<time>09:36:34</time>
<license uri="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</license>
<notes>
</notes>
</release>
</changelog> </changelog>
</package> </package>

View File

@ -127,7 +127,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1)
ZEND_ARG_INFO(0, value) ZEND_ARG_INFO(0, value)
ZEND_END_ARG_INFO() ZEND_END_ARG_INFO()
#define PHP_PROTOBUF_VERSION "3.21.0RC2" #define PHP_PROTOBUF_VERSION "3.21.1"
// ptr -> PHP object cache. This is a weak map that caches lazily-created // ptr -> PHP object cache. This is a weak map that caches lazily-created
// wrapper objects around upb types: // wrapper objects around upb types:

View File

@ -285,12 +285,11 @@ class GPBUtil
"include"=>0, "include_once"=>0, "instanceof"=>0, "insteadof"=>0, "include"=>0, "include_once"=>0, "instanceof"=>0, "insteadof"=>0,
"interface"=>0, "isset"=>0, "list"=>0, "match"=>0, "namespace"=>0, "interface"=>0, "isset"=>0, "list"=>0, "match"=>0, "namespace"=>0,
"new"=>0, "or"=>0, "parent"=>0, "print"=>0, "private"=>0, "new"=>0, "or"=>0, "parent"=>0, "print"=>0, "private"=>0,
"protected"=>0,"public"=>0, "readonly" => 0,"require"=>0, "protected"=>0,"public"=>0, "require"=>0, "require_once"=>0,
"require_once"=>0,"return"=>0, "self"=>0, "static"=>0, "switch"=>0, "return"=>0, "self"=>0, "static"=>0, "switch"=>0, "throw"=>0,
"throw"=>0,"trait"=>0, "try"=>0,"unset"=>0, "use"=>0, "var"=>0, "trait"=>0, "try"=>0,"unset"=>0, "use"=>0, "var"=>0, "while"=>0,
"while"=>0,"xor"=>0, "yield"=>0, "int"=>0, "float"=>0, "bool"=>0, "xor"=>0, "yield"=>0, "int"=>0, "float"=>0, "bool"=>0, "string"=>0,
"string"=>0,"true"=>0, "false"=>0, "null"=>0, "void"=>0, "true"=>0, "false"=>0, "null"=>0, "void"=>0, "iterable"=>0
"iterable"=>0
); );
if (array_key_exists(strtolower($classname), $reserved_words)) { if (array_key_exists(strtolower($classname), $reserved_words)) {

View File

@ -334,18 +334,6 @@ class GeneratedClassTest extends TestBase
$this->legacyEnum(new TestLegacyMessage\NestedEnum); $this->legacyEnum(new TestLegacyMessage\NestedEnum);
} }
public function testLegacyReadOnlyMessage()
{
$this->assertTrue(class_exists('\Upper\READONLY'));
$this->assertTrue(class_exists('\Lower\readonly'));
}
public function testLegacyReadOnlyEnum()
{
$this->assertTrue(class_exists('\Upper_enum\READONLY'));
$this->assertTrue(class_exists('\Lower_enum\readonly'));
}
private function legacyEnum(TestLegacyMessage_NestedEnum $enum) private function legacyEnum(TestLegacyMessage_NestedEnum $enum)
{ {
// If we made it here without a PHP Fatal error, the typehint worked // If we made it here without a PHP Fatal error, the typehint worked
@ -955,7 +943,6 @@ class GeneratedClassTest extends TestBase
$m = new \Lower\PBprivate(); $m = new \Lower\PBprivate();
$m = new \Lower\PBprotected(); $m = new \Lower\PBprotected();
$m = new \Lower\PBpublic(); $m = new \Lower\PBpublic();
$m = new \Lower\PBreadonly();
$m = new \Lower\PBrequire(); $m = new \Lower\PBrequire();
$m = new \Lower\PBrequire_once(); $m = new \Lower\PBrequire_once();
$m = new \Lower\PBreturn(); $m = new \Lower\PBreturn();
@ -1036,7 +1023,6 @@ class GeneratedClassTest extends TestBase
$m = new \Upper\PBPRIVATE(); $m = new \Upper\PBPRIVATE();
$m = new \Upper\PBPROTECTED(); $m = new \Upper\PBPROTECTED();
$m = new \Upper\PBPUBLIC(); $m = new \Upper\PBPUBLIC();
$m = new \Upper\PBREADONLY();
$m = new \Upper\PBREQUIRE(); $m = new \Upper\PBREQUIRE();
$m = new \Upper\PBREQUIRE_ONCE(); $m = new \Upper\PBREQUIRE_ONCE();
$m = new \Upper\PBRETURN(); $m = new \Upper\PBRETURN();
@ -1118,7 +1104,6 @@ class GeneratedClassTest extends TestBase
$m = new \Lower_enum\PBprotected(); $m = new \Lower_enum\PBprotected();
$m = new \Lower_enum\PBpublic(); $m = new \Lower_enum\PBpublic();
$m = new \Lower_enum\PBrequire(); $m = new \Lower_enum\PBrequire();
$m = new \Lower_enum\PBreadonly();
$m = new \Lower_enum\PBrequire_once(); $m = new \Lower_enum\PBrequire_once();
$m = new \Lower_enum\PBreturn(); $m = new \Lower_enum\PBreturn();
$m = new \Lower_enum\PBself(); $m = new \Lower_enum\PBself();
@ -1198,7 +1183,6 @@ class GeneratedClassTest extends TestBase
$m = new \Upper_enum\PBPRIVATE(); $m = new \Upper_enum\PBPRIVATE();
$m = new \Upper_enum\PBPROTECTED(); $m = new \Upper_enum\PBPROTECTED();
$m = new \Upper_enum\PBPUBLIC(); $m = new \Upper_enum\PBPUBLIC();
$m = new \Upper_enum\PBREADONLY();
$m = new \Upper_enum\PBREQUIRE(); $m = new \Upper_enum\PBREQUIRE();
$m = new \Upper_enum\PBREQUIRE_ONCE(); $m = new \Upper_enum\PBREQUIRE_ONCE();
$m = new \Upper_enum\PBRETURN(); $m = new \Upper_enum\PBRETURN();
@ -1303,7 +1287,6 @@ class GeneratedClassTest extends TestBase
$m = \Lower_enum_value\NotAllowed::iterable; $m = \Lower_enum_value\NotAllowed::iterable;
$m = \Lower_enum_value\NotAllowed::parent; $m = \Lower_enum_value\NotAllowed::parent;
$m = \Lower_enum_value\NotAllowed::self; $m = \Lower_enum_value\NotAllowed::self;
$m = \Lower_enum_value\NotAllowed::readonly;
$m = \Upper_enum_value\NotAllowed::PBABSTRACT; $m = \Upper_enum_value\NotAllowed::PBABSTRACT;
$m = \Upper_enum_value\NotAllowed::PBAND; $m = \Upper_enum_value\NotAllowed::PBAND;
@ -1384,7 +1367,6 @@ class GeneratedClassTest extends TestBase
$m = \Upper_enum_value\NotAllowed::ITERABLE; $m = \Upper_enum_value\NotAllowed::ITERABLE;
$m = \Upper_enum_value\NotAllowed::PARENT; $m = \Upper_enum_value\NotAllowed::PARENT;
$m = \Upper_enum_value\NotAllowed::SELF; $m = \Upper_enum_value\NotAllowed::SELF;
$m = \Upper_enum_value\NotAllowed::READONLY;
$this->assertTrue(true); $this->assertTrue(true);
} }

View File

@ -57,7 +57,6 @@ enum print { ZERO51 = 0; }
enum private { ZERO52 = 0; } enum private { ZERO52 = 0; }
enum protected { ZERO53 = 0; } enum protected { ZERO53 = 0; }
enum public { ZERO54 = 0; } enum public { ZERO54 = 0; }
enum readonly { ZERO80 = 0; }
enum require { ZERO55 = 0; } enum require { ZERO55 = 0; }
enum require_once { ZERO56 = 0; } enum require_once { ZERO56 = 0; }
enum return { ZERO57 = 0; } enum return { ZERO57 = 0; }

View File

@ -57,7 +57,6 @@ enum PRINT { ZERO51 = 0; }
enum PRIVATE { ZERO52 = 0; } enum PRIVATE { ZERO52 = 0; }
enum PROTECTED { ZERO53 = 0; } enum PROTECTED { ZERO53 = 0; }
enum PUBLIC { ZERO54 = 0; } enum PUBLIC { ZERO54 = 0; }
enum READONLY { ZERO80 = 0; }
enum REQUIRE { ZERO55 = 0; } enum REQUIRE { ZERO55 = 0; }
enum REQUIRE_ONCE { ZERO56 = 0; } enum REQUIRE_ONCE { ZERO56 = 0; }
enum RETURN { ZERO57 = 0; } enum RETURN { ZERO57 = 0; }

View File

@ -58,7 +58,6 @@ enum NotAllowed {
private = 51; private = 51;
protected = 52; protected = 52;
public = 53; public = 53;
readonly = 79;
require = 54; require = 54;
require_once = 55; require_once = 55;
return = 56; return = 56;

View File

@ -58,7 +58,6 @@ enum NotAllowed {
PRIVATE = 51; PRIVATE = 51;
PROTECTED = 52; PROTECTED = 52;
PUBLIC = 53; PUBLIC = 53;
READONLY = 79;
REQUIRE = 54; REQUIRE = 54;
REQUIRE_ONCE = 55; REQUIRE_ONCE = 55;
RETURN = 56; RETURN = 56;

View File

@ -57,7 +57,6 @@ message print {}
message private {} message private {}
message protected {} message protected {}
message public {} message public {}
message readonly {}
message require {} message require {}
message require_once {} message require_once {}
message return {} message return {}

View File

@ -57,7 +57,6 @@ message PRINT {}
message PRIVATE {} message PRIVATE {}
message PROTECTED {} message PROTECTED {}
message PUBLIC {} message PUBLIC {}
message READONLY {}
message REQUIRE {} message REQUIRE {}
message REQUIRE_ONCE {} message REQUIRE_ONCE {}
message RETURN {} message RETURN {}

View File

@ -114,6 +114,6 @@ def protobuf_deps():
_github_archive( _github_archive(
name = "upb", name = "upb",
repo = "https://github.com/protocolbuffers/upb", repo = "https://github.com/protocolbuffers/upb",
commit = "12efc9b096f35b62055a217f45e6b0fe5fb1a099", commit = "04cb5af6b67c80db61f0aee76dcb6d233e51795c",
sha256 = "de0ab4ee1e2d8f01b494de39cd70b611e190b63943f1d5c448d4ecb9560dc16f", sha256 = "62d3519a7b65d6695e011f2733bfc5d7c6ab77f2bd83cdd2dca449da2e739c7f",
) )

View File

@ -1,3 +1,3 @@
PROTOC_VERSION = '21.0-rc-2' PROTOC_VERSION = '21.1'
PROTOBUF_JAVA_VERSION = '3.21.0-rc-2' PROTOBUF_JAVA_VERSION = '3.21.1'
PROTOBUF_PYTHON_VERSION = '4.21.0-rc-2' PROTOBUF_PYTHON_VERSION = '4.21.1'

View File

@ -8,7 +8,7 @@
</parent> </parent>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protoc</artifactId> <artifactId>protoc</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Protobuf Compiler</name> <name>Protobuf Compiler</name>
<description> <description>

View File

@ -30,4 +30,4 @@
# Copyright 2007 Google Inc. All Rights Reserved. # Copyright 2007 Google Inc. All Rights Reserved.
__version__ = '4.21.0rc2' __version__ = '4.21.1'

View File

@ -1,6 +1,6 @@
Gem::Specification.new do |s| Gem::Specification.new do |s|
s.name = "google-protobuf" s.name = "google-protobuf"
s.version = "3.21.0.rc.2" s.version = "3.21.1"
git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag
s.licenses = ["BSD-3-Clause"] s.licenses = ["BSD-3-Clause"]
s.summary = "Protocol Buffers" s.summary = "Protocol Buffers"

View File

@ -9,7 +9,7 @@
<groupId>com.google.protobuf.jruby</groupId> <groupId>com.google.protobuf.jruby</groupId>
<artifactId>protobuf-jruby</artifactId> <artifactId>protobuf-jruby</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
<name>Protocol Buffer JRuby native extension</name> <name>Protocol Buffer JRuby native extension</name>
<description> <description>
Protocol Buffers are a way of encoding structured data in an efficient yet Protocol Buffers are a way of encoding structured data in an efficient yet
@ -76,7 +76,7 @@
<dependency> <dependency>
<groupId>com.google.protobuf</groupId> <groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId> <artifactId>protobuf-java-util</artifactId>
<version>3.21.0-rc-2</version> <version>3.21.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jruby</groupId> <groupId>org.jruby</groupId>

View File

@ -18,7 +18,7 @@ else
PTHREAD_DEF = PTHREAD_DEF =
endif endif
PROTOBUF_VERSION = 32:0:0 PROTOBUF_VERSION = 32:1:0
if GCC if GCC
# Turn on all warnings except for sign comparison (we ignore sign comparison # Turn on all warnings except for sign comparison (we ignore sign comparison

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -59,18 +59,18 @@ const char* const kReservedNames[] = {
"include_once", "instanceof", "insteadof", "interface", "isset", "include_once", "instanceof", "insteadof", "interface", "isset",
"list", "match", "namespace", "new", "or", "list", "match", "namespace", "new", "or",
"parent", "print", "private", "protected", "public", "parent", "print", "private", "protected", "public",
"readonly", "require", "require_once", "return", "self", "require", "require_once", "return", "self", "static",
"static", "switch", "throw", "trait", "try", "switch", "throw", "trait", "try", "unset",
"unset", "use", "var", "while", "xor", "use", "var", "while", "xor", "yield",
"yield", "int", "float", "bool", "string", "int", "float", "bool", "string", "true",
"true", "false", "null", "void", "iterable"}; "false", "null", "void", "iterable"};
const char* const kValidConstantNames[] = { const char* const kValidConstantNames[] = {
"int", "float", "bool", "string", "true", "int", "float", "bool", "string", "true",
"false", "null", "void", "iterable", "parent", "false", "null", "void", "iterable", "parent",
"self", "readonly" "self"
}; };
const int kReservedNamesSize = 80; const int kReservedNamesSize = 79;
const int kValidConstantNamesSize = 12; const int kValidConstantNamesSize = 11;
const int kFieldSetter = 1; const int kFieldSetter = 1;
const int kFieldGetter = 2; const int kFieldGetter = 2;
const int kFieldProperty = 3; const int kFieldProperty = 3;
@ -408,6 +408,7 @@ std::string GeneratedClassFileName(const DescriptorType* desc,
} }
template <typename DescriptorType> template <typename DescriptorType>
<<<<<<< HEAD
std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc, std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc,
const Options& options) { const Options& options) {
std::string php_namespace = RootPhpNamespace(desc, options); std::string php_namespace = RootPhpNamespace(desc, options);
@ -415,6 +416,18 @@ std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc,
return php_namespace + "/" + desc->name() + ".php"; return php_namespace + "/" + desc->name() + ".php";
} }
return desc->name() + ".php"; return desc->name() + ".php";
=======
std::string LegacyGeneratedClassFileName(const DescriptorType* desc,
const Options& options) {
std::string result = LegacyFullClassName(desc, options);
for (int i = 0; i < result.size(); i++) {
if (result[i] == '\\') {
result[i] = '/';
}
}
return result + ".php";
>>>>>>> upstream/21.x
} }
std::string GeneratedServiceFileName(const ServiceDescriptor* service, std::string GeneratedServiceFileName(const ServiceDescriptor* service,
@ -1263,10 +1276,17 @@ void GenerateMetadataFile(const FileDescriptor* file, const Options& options,
} }
template <typename DescriptorType> template <typename DescriptorType>
<<<<<<< HEAD
void LegacyReadOnlyGenerateClassFile(const FileDescriptor* file, void LegacyReadOnlyGenerateClassFile(const FileDescriptor* file,
const DescriptorType* desc, const Options& options, const DescriptorType* desc, const Options& options,
GeneratorContext* generator_context) { GeneratorContext* generator_context) {
std::string filename = LegacyReadOnlyGeneratedClassFileName(desc, options); std::string filename = LegacyReadOnlyGeneratedClassFileName(desc, options);
=======
void LegacyGenerateClassFile(const FileDescriptor* file,
const DescriptorType* desc, const Options& options,
GeneratorContext* generator_context) {
std::string filename = LegacyGeneratedClassFileName(desc, options);
>>>>>>> upstream/21.x
std::unique_ptr<io::ZeroCopyOutputStream> output( std::unique_ptr<io::ZeroCopyOutputStream> output(
generator_context->Open(filename)); generator_context->Open(filename));
io::Printer printer(output.get(), '^'); io::Printer printer(output.get(), '^');
@ -1280,11 +1300,30 @@ void LegacyReadOnlyGenerateClassFile(const FileDescriptor* file,
"name", php_namespace); "name", php_namespace);
} }
std::string newname = FullClassName(desc, options); std::string newname = FullClassName(desc, options);
<<<<<<< HEAD
printer.Print("class_exists(^new^::class);\n", printer.Print("class_exists(^new^::class);\n",
"new", GeneratedClassNameImpl(desc)); "new", GeneratedClassNameImpl(desc));
printer.Print("@trigger_error(__NAMESPACE__ . '\\^old^ is deprecated and will be removed in " printer.Print("@trigger_error(__NAMESPACE__ . '\\^old^ is deprecated and will be removed in "
"the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n", "the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n",
"old", desc->name(), "old", desc->name(),
=======
printer.Print("if (false) {\n");
Indent(&printer);
printer.Print("/**\n");
printer.Print(" * This class is deprecated. Use ^new^ instead.\n",
"new", newname);
printer.Print(" * @deprecated\n");
printer.Print(" */\n");
printer.Print("class ^old^ {}\n",
"old", LegacyGeneratedClassName(desc));
Outdent(&printer);
printer.Print("}\n");
printer.Print("class_exists(^new^::class);\n",
"new", GeneratedClassNameImpl(desc));
printer.Print("@trigger_error('^old^ is deprecated and will be removed in "
"the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n",
"old", LegacyFullClassName(desc, options),
>>>>>>> upstream/21.x
"fullname", newname); "fullname", newname);
} }
@ -1408,19 +1447,6 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en,
"new", fullname, "new", fullname,
"old", LegacyFullClassName(en, options)); "old", LegacyFullClassName(en, options));
} }
// Write legacy file for backwards compatibility with "readonly" keywword
std::string lower = en->name();
std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower);
if (lower == "readonly") {
printer.Print(
"// Adding a class alias for backwards compatibility with the \"readonly\" keyword.\n");
printer.Print(
"class_alias(^new^::class, __NAMESPACE__ . '\\^old^');\n\n",
"new", fullname,
"old", en->name());
LegacyReadOnlyGenerateClassFile(file, en, options, generator_context);
}
} }
void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message, void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message,
@ -1536,19 +1562,6 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message,
"old", LegacyFullClassName(message, options)); "old", LegacyFullClassName(message, options));
} }
// Write legacy file for backwards compatibility with "readonly" keywword
std::string lower = message->name();
std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower);
if (lower == "readonly") {
printer.Print(
"// Adding a class alias for backwards compatibility with the \"readonly\" keyword.\n");
printer.Print(
"class_alias(^new^::class, __NAMESPACE__ . '\\^old^');\n\n",
"new", fullname,
"old", message->name());
LegacyReadOnlyGenerateClassFile(file, message, options, generator_context);
}
// Nested messages and enums. // Nested messages and enums.
for (int i = 0; i < message->nested_type_count(); i++) { for (int i = 0; i < message->nested_type_count(); i++) {
GenerateMessageFile(file, message->nested_type(i), options, GenerateMessageFile(file, message->nested_type(i), options,

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -178,7 +178,7 @@
#ifdef PROTOBUF_VERSION #ifdef PROTOBUF_VERSION
#error PROTOBUF_VERSION was previously defined #error PROTOBUF_VERSION was previously defined
#endif #endif
#define PROTOBUF_VERSION 3021000 #define PROTOBUF_VERSION 3021001
#ifdef PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC #ifdef PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC
#error PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC was previously defined #error PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC was previously defined
@ -193,7 +193,7 @@
#ifdef PROTOBUF_VERSION_SUFFIX #ifdef PROTOBUF_VERSION_SUFFIX
#error PROTOBUF_VERSION_SUFFIX was previously defined #error PROTOBUF_VERSION_SUFFIX was previously defined
#endif #endif
#define PROTOBUF_VERSION_SUFFIX "-rc2" #define PROTOBUF_VERSION_SUFFIX ""
#if defined(PROTOBUF_NAMESPACE) || defined(PROTOBUF_NAMESPACE_ID) #if defined(PROTOBUF_NAMESPACE) || defined(PROTOBUF_NAMESPACE_ID)
#error PROTOBUF_NAMESPACE or PROTOBUF_NAMESPACE_ID was previously defined #error PROTOBUF_NAMESPACE or PROTOBUF_NAMESPACE_ID was previously defined

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -82,10 +82,10 @@ namespace internal {
// The current version, represented as a single integer to make comparison // The current version, represented as a single integer to make comparison
// easier: major * 10^6 + minor * 10^3 + micro // easier: major * 10^6 + minor * 10^3 + micro
#define GOOGLE_PROTOBUF_VERSION 3021000 #define GOOGLE_PROTOBUF_VERSION 3021001
// A suffix string for alpha, beta or rc releases. Empty for stable releases. // A suffix string for alpha, beta or rc releases. Empty for stable releases.
#define GOOGLE_PROTOBUF_VERSION_SUFFIX "-rc2" #define GOOGLE_PROTOBUF_VERSION_SUFFIX ""
// The minimum header version which works with the current version of // The minimum header version which works with the current version of
// the library. This constant should only be used by protoc's C++ code // the library. This constant should only be used by protoc's C++ code

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

View File

@ -13,7 +13,7 @@
#error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update
#error your headers. #error your headers.
#endif #endif
#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION #if 3021001 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc.

@ -1 +0,0 @@
Subproject commit 8c6e53ef3adb1227fffa442c50349dab134a54bc

View File

@ -1,4 +1,5 @@
{ {
<<<<<<< HEAD
"main": { "main": {
"protoc_version": "21-dev", "protoc_version": "21-dev",
"lts": false, "lts": false,
@ -12,6 +13,21 @@
"php": "3.21-dev", "php": "3.21-dev",
"python": "4.21-dev", "python": "4.21-dev",
"ruby": "3.21-dev" "ruby": "3.21-dev"
=======
"21.x": {
"protoc_version": "21.2-dev",
"lts": false,
"date": "2022-05-27",
"languages": {
"cpp": "3.21.2-dev",
"csharp": "3.21.2-dev",
"java": "3.21.2-dev",
"javascript": "3.21.2-dev",
"objectivec": "3.21.2-dev",
"php": "3.21.2-dev",
"python": "4.21.2-dev",
"ruby": "3.21.2-dev"
>>>>>>> upstream/21.x
} }
} }
} }