diff --git a/CHANGES.txt b/CHANGES.txt
index 889fa0c65a8a..88be607f8db4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,53 @@
+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)
Python
diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec
index 72a0c70a7815..228cdd2bb36f 100644
--- a/Protobuf-C++.podspec
+++ b/Protobuf-C++.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Protobuf-C++'
- s.version = '3.21.0-rc2'
+ s.version = '3.21.0'
s.summary = 'Protocol Buffers v3 runtime library for C++.'
s.homepage = 'https://github.com/google/protobuf'
s.license = 'BSD-3-Clause'
diff --git a/Protobuf.podspec b/Protobuf.podspec
index d8cd0ef4b44f..7d67d89b97d7 100644
--- a/Protobuf.podspec
+++ b/Protobuf.podspec
@@ -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.21.0-rc2'
+ s.version = '3.21.0'
s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.'
s.homepage = 'https://github.com/protocolbuffers/protobuf'
s.license = 'BSD-3-Clause'
diff --git a/configure.ac b/configure.ac
index 61246b27bea3..97212cfdd38d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@ AC_PREREQ(2.59)
# 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
# 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.0],[protobuf@googlegroups.com],[protobuf])
AM_MAINTAINER_MODE([enable])
diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec
index 92a860ee81ca..d5cfc6c4cf35 100644
--- a/csharp/Google.Protobuf.Tools.nuspec
+++ b/csharp/Google.Protobuf.Tools.nuspec
@@ -5,7 +5,7 @@
Google Protocol Buffers toolsTools for Protocol Buffers - Google's data interchange format.See project site for more info.
- 3.21.0-rc2
+ 3.21.0Google Inc.protobuf-packageshttps://github.com/protocolbuffers/protobuf/blob/main/LICENSE
diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj
index d63455132878..08d8f2431fcc 100644
--- a/csharp/src/Google.Protobuf/Google.Protobuf.csproj
+++ b/csharp/src/Google.Protobuf/Google.Protobuf.csproj
@@ -4,7 +4,7 @@
C# runtime library for Protocol Buffers - Google's data interchange format.Copyright 2015, Google Inc.Google Protocol Buffers
- 3.21.0-rc2
+ 3.21.07.2Google Inc.
diff --git a/java/README.md b/java/README.md
index 1fbc624c5348..03f414dbec68 100644
--- a/java/README.md
+++ b/java/README.md
@@ -23,7 +23,7 @@ If you are using Maven, use the following:
com.google.protobufprotobuf-java
- 3.21.0-rc-2
+ 3.21.0
```
@@ -37,7 +37,7 @@ protobuf-java-util package:
com.google.protobufprotobuf-java-util
- 3.21.0-rc-2
+ 3.21.0
```
@@ -45,7 +45,7 @@ protobuf-java-util package:
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.0'
```
Again, be sure to check that the version number matches (or is newer than) the version number of protoc that you are using.
diff --git a/java/bom/pom.xml b/java/bom/pom.xml
index a770cbb9fec0..12ec2e8c49f8 100644
--- a/java/bom/pom.xml
+++ b/java/bom/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-bom
- 3.21.0-rc-2
+ 3.21.0pomProtocol Buffers [BOM]
diff --git a/java/core/pom.xml b/java/core/pom.xml
index bffa2958b402..e363ccd3f010 100644
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-parent
- 3.21.0-rc-2
+ 3.21.0protobuf-java
diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml
index fd3734d36a85..218aa663fb89 100644
--- a/java/kotlin-lite/pom.xml
+++ b/java/kotlin-lite/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-parent
- 3.21.0-rc-2
+ 3.21.0protobuf-kotlin-lite
diff --git a/java/kotlin/pom.xml b/java/kotlin/pom.xml
index c9eeb6d79be7..de68cdb87b33 100644
--- a/java/kotlin/pom.xml
+++ b/java/kotlin/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-parent
- 3.21.0-rc-2
+ 3.21.0protobuf-kotlin
diff --git a/java/lite.md b/java/lite.md
index 633478b4a119..eb0378df0170 100644
--- a/java/lite.md
+++ b/java/lite.md
@@ -29,7 +29,7 @@ protobuf Java Lite runtime. If you are using Maven, include the following:
com.google.protobufprotobuf-javalite
- 3.21.0-rc-2
+ 3.21.0
```
diff --git a/java/lite/pom.xml b/java/lite/pom.xml
index c10edfd444e3..18b27b725c27 100644
--- a/java/lite/pom.xml
+++ b/java/lite/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-parent
- 3.21.0-rc-2
+ 3.21.0protobuf-javalite
diff --git a/java/pom.xml b/java/pom.xml
index 467c06d0b1f9..e32d53dab1e3 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-parent
- 3.21.0-rc-2
+ 3.21.0pomProtocol Buffers [Parent]
diff --git a/java/util/pom.xml b/java/util/pom.xml
index a12fd2226f7a..f9471c4f69f0 100644
--- a/java/util/pom.xml
+++ b/java/util/pom.xml
@@ -4,7 +4,7 @@
com.google.protobufprotobuf-parent
- 3.21.0-rc-2
+ 3.21.0protobuf-java-util
diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml
index deda5c5b4724..42fc32d0bc6a 100644
--- a/php/ext/google/protobuf/package.xml
+++ b/php/ext/google/protobuf/package.xml
@@ -10,15 +10,15 @@
protobuf-opensource@google.comyes
- 2022-05-19
-
+ 2022-05-25
+
- 3.21.0RC2
+ 3.21.03.21.0
- beta
- beta
+ stable
+ stableBSD-3-Clause
@@ -1313,5 +1313,20 @@ G A release.
+
+
+ 3.21.0
+ 3.21.0
+
+
+ stable
+ stable
+
+ 2022-05-25
+
+ BSD-3-Clause
+
+
+
diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h
index f95179b05376..6798430271d0 100644
--- a/php/ext/google/protobuf/protobuf.h
+++ b/php/ext/google/protobuf/protobuf.h
@@ -127,7 +127,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1)
ZEND_ARG_INFO(0, value)
ZEND_END_ARG_INFO()
-#define PHP_PROTOBUF_VERSION "3.21.0RC2"
+#define PHP_PROTOBUF_VERSION "3.21.0"
// ptr -> PHP object cache. This is a weak map that caches lazily-created
// wrapper objects around upb types:
diff --git a/protobuf_version.bzl b/protobuf_version.bzl
index 5725bdd6c325..fa4c91af6883 100644
--- a/protobuf_version.bzl
+++ b/protobuf_version.bzl
@@ -1,3 +1,3 @@
-PROTOC_VERSION = '21.0-rc-2'
-PROTOBUF_JAVA_VERSION = '3.21.0-rc-2'
-PROTOBUF_PYTHON_VERSION = '4.21.0-rc-2'
+PROTOC_VERSION = '21.0'
+PROTOBUF_JAVA_VERSION = '3.21.0'
+PROTOBUF_PYTHON_VERSION = '4.21.0'
diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml
index 80451f9716b8..1c1b851e8e96 100644
--- a/protoc-artifacts/pom.xml
+++ b/protoc-artifacts/pom.xml
@@ -8,7 +8,7 @@
com.google.protobufprotoc
- 3.21.0-rc-2
+ 3.21.0pomProtobuf Compiler
diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py
index bd2faa4e5abe..94ad865b09c6 100644
--- a/python/google/protobuf/__init__.py
+++ b/python/google/protobuf/__init__.py
@@ -30,4 +30,4 @@
# Copyright 2007 Google Inc. All Rights Reserved.
-__version__ = '4.21.0rc2'
+__version__ = '4.21.0'
diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec
index f86cda7656dd..2e25d13f8ab8 100644
--- a/ruby/google-protobuf.gemspec
+++ b/ruby/google-protobuf.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = "google-protobuf"
- s.version = "3.21.0.rc.2"
+ s.version = "3.21.0"
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.summary = "Protocol Buffers"
diff --git a/ruby/pom.xml b/ruby/pom.xml
index 0514dbe6e634..8adf9b0d6059 100644
--- a/ruby/pom.xml
+++ b/ruby/pom.xml
@@ -9,7 +9,7 @@
com.google.protobuf.jrubyprotobuf-jruby
- 3.21.0-rc-2
+ 3.21.0Protocol Buffer JRuby native extension
Protocol Buffers are a way of encoding structured data in an efficient yet
@@ -76,7 +76,7 @@
com.google.protobufprotobuf-java-util
- 3.21.0-rc-2
+ 3.21.0org.jruby
diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc
index 78b97e6cca49..4af6aa3c874e 100644
--- a/src/google/protobuf/port_def.inc
+++ b/src/google/protobuf/port_def.inc
@@ -193,7 +193,7 @@
#ifdef PROTOBUF_VERSION_SUFFIX
#error PROTOBUF_VERSION_SUFFIX was previously defined
#endif
-#define PROTOBUF_VERSION_SUFFIX "-rc2"
+#define PROTOBUF_VERSION_SUFFIX ""
#if defined(PROTOBUF_NAMESPACE) || defined(PROTOBUF_NAMESPACE_ID)
#error PROTOBUF_NAMESPACE or PROTOBUF_NAMESPACE_ID was previously defined
diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h
index 36a4b08e4193..10e9c61197c2 100644
--- a/src/google/protobuf/stubs/common.h
+++ b/src/google/protobuf/stubs/common.h
@@ -85,7 +85,7 @@ namespace internal {
#define GOOGLE_PROTOBUF_VERSION 3021000
// 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 library. This constant should only be used by protoc's C++ code
diff --git a/version.json b/version.json
index 7c47bbc5b11d..7956799ee72a 100644
--- a/version.json
+++ b/version.json
@@ -1,17 +1,17 @@
{
"21.x": {
- "protoc_version": "21.0-dev",
+ "protoc_version": "21.0",
"lts": false,
- "date": "2022-05-20",
+ "date": "2022-05-25",
"languages": {
- "cpp": "3.21.0-dev",
- "csharp": "3.21.0-dev",
- "java": "3.21.0-dev",
- "javascript": "3.21.0-dev",
- "objectivec": "3.21.0-dev",
- "php": "3.21.0-dev",
- "python": "4.21.0-dev",
- "ruby": "3.21.0-dev"
+ "cpp": "3.21.0",
+ "csharp": "3.21.0",
+ "java": "3.21.0",
+ "javascript": "3.21.0",
+ "objectivec": "3.21.0",
+ "php": "3.21.0",
+ "python": "4.21.0",
+ "ruby": "3.21.0"
}
}
}
\ No newline at end of file