diff --git a/.gitignore b/.gitignore index 4880c495d..d38133b82 100644 --- a/.gitignore +++ b/.gitignore @@ -82,10 +82,7 @@ src/**/*.log src/**/*.trs # JavaBuild output. -java/core/target -java/lite/target -java/util/target -javanano/target +java/**/target java/.idea java/**/*.iml diff --git a/CHANGES.txt b/CHANGES.txt index 91d0b7524..4481b27b3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,9 +1,12 @@ -Unreleased Changes (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) +2021-05-07 version 3.17.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) Protocol Compiler * Fix the generated source information for reserved values in Enums. C++ + * Fix -Wunused-parameter in map fields (fixes #8494) (#8500) + * Use byteswap.h when building against musl libc (#8503) + * Fix -Wundefined-inline error when using SharedCtor() or SharedDtor() (#8532) * Fix bug where `Descriptor::DebugString()` printed proto3 synthetic oneofs. * Provide stable versions of `SortAndUnique()`. * Make sure to cache proto3 optional message fields when they are cleared. @@ -14,6 +17,7 @@ Unreleased Changes (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) * Restrict extension setter and getter operators to non-nullable T. Java + * updating GSON and Guava to more recent versions (#8524) * Reduce the time spent evaluating isExtensionNumber by storing the extension ranges in a TreeMap for faster queries. This is particularly relevant for protos which define a large number of extension ranges, for example when @@ -22,14 +26,28 @@ Unreleased Changes (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) * Optimize Descriptor.isExtensionNumber. Python + * Add MethodDescriptor.CopyToProto() (#8327) + * Remove unused python_protobuf.{cc,h} (#8513) + * Start publishing python aarch64 manylinux wheels normally (#8530) + * Fix constness issue detected by MSVC standard conforming mode (#8568) * Make JSON parsing match C++ and Java when multiple fields from the same oneof are present and all but one is null. + Ruby + * Add support for proto3 json_name in compiler and field definitions (#8356) + * Fixed memory leak of Ruby arena objects. (#8461) + * Fix source gem compilation (#8471) + * Fix various exceptions in Ruby on 64-bit Windows (#8563) + * Fix crash when calculating Message hash values on 64-bit Windows (#8565) + Conformance Tests * Added a conformance test for the case of multiple fields from the same oneof. 2021-04-06 version 3.16.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) + Other + * Opensourcing kotlin protos (#8272) + * Use a newer version of rules_proto, with the new rule `proto_descriptor_set` (#8469) C++ * Fix compiler warnings issue found in conformance_test_runner #8189 (#8190) diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index c36c0f405..57d58f42b 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.17.0-rc1' + s.version = '3.17.0' s.summary = 'Protocol Buffers v3 runtime library for C++.' s.homepage = 'https://github.com/google/protobuf' s.license = '3-Clause BSD License' diff --git a/Protobuf.podspec b/Protobuf.podspec index 399ed65b2..1c2b1984a 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.17.0-rc1' + s.version = '3.17.0' s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.homepage = 'https://github.com/protocolbuffers/protobuf' s.license = '3-Clause BSD License' diff --git a/configure.ac b/configure.ac index df125d9c9..c36328cd8 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.17.0-rc-1],[protobuf@googlegroups.com],[protobuf]) +AC_INIT([Protocol Buffers],[3.17.0],[protobuf@googlegroups.com],[protobuf]) AM_MAINTAINER_MODE([enable]) diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec index c9a89f434..fc01d7617 100644 --- a/csharp/Google.Protobuf.Tools.nuspec +++ b/csharp/Google.Protobuf.Tools.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers tools Tools for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.17.0-rc1 + 3.17.0 Google Inc. protobuf-packages https://github.com/protocolbuffers/protobuf/blob/master/LICENSE diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj index c3a171b53..dcc88eff1 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.17.0-rc1 + 3.17.0 7.2 Google Inc. diff --git a/java/bom/pom.xml b/java/bom/pom.xml index 372917c27..43717f721 100644 --- a/java/bom/pom.xml +++ b/java/bom/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-bom - 3.17.0-rc-1 + 3.17.0 pom Protocol Buffers [BOM] diff --git a/java/core/pom.xml b/java/core/pom.xml index ca3255ef3..12fcdc1b9 100644 --- a/java/core/pom.xml +++ b/java/core/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.17.0-rc-1 + 3.17.0 protobuf-java diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml index 808faa71d..bc4650333 100644 --- a/java/kotlin-lite/pom.xml +++ b/java/kotlin-lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.15.6 + 3.17.0 protobuf-kotlin-lite diff --git a/java/kotlin/pom.xml b/java/kotlin/pom.xml index 6c35d77cf..e1c1c7f4a 100644 --- a/java/kotlin/pom.xml +++ b/java/kotlin/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.15.6 + 3.17.0 protobuf-kotlin diff --git a/java/lite/pom.xml b/java/lite/pom.xml index da7ee82d6..6bd4653f2 100644 --- a/java/lite/pom.xml +++ b/java/lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.17.0-rc-1 + 3.17.0 protobuf-javalite diff --git a/java/pom.xml b/java/pom.xml index b62b40667..5bf80cd11 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.17.0-rc-1 + 3.17.0 pom Protocol Buffers [Parent] @@ -238,6 +238,8 @@ lite core util + kotlin + kotlin-lite diff --git a/java/util/pom.xml b/java/util/pom.xml index 2b38d8cb3..911acdd34 100644 --- a/java/util/pom.xml +++ b/java/util/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.17.0-rc-1 + 3.17.0 protobuf-java-util diff --git a/js/package.json b/js/package.json index c5e8674d5..f92a1a3a9 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "google-protobuf", - "version": "3.17.0-rc.1", + "version": "3.17.0", "description": "Protocol Buffers for JavaScript", "main": "google-protobuf.js", "files": [ diff --git a/kokoro/linux/dist_install/build.sh b/kokoro/linux/dist_install/build.sh index 81a0516aa..c456ee81f 100755 --- a/kokoro/linux/dist_install/build.sh +++ b/kokoro/linux/dist_install/build.sh @@ -7,8 +7,8 @@ set -ex # exit immediately on error # Change to repo root cd $(dirname $0)/../../.. -# Run tests under release docker image. -export DOCKERFILE_DIR=kokoro/linux/64-bit +export DOCKERHUB_ORGANIZATION=protobuftesting +export DOCKERFILE_DIR=kokoro/linux/dockerfile/test/java_stretch export DOCKER_RUN_SCRIPT=kokoro/linux/pull_request_in_docker.sh export OUTPUT_DIR=testoutput export TEST_SET="dist_install" diff --git a/kokoro/linux/dockerfile/test/java_stretch/Dockerfile b/kokoro/linux/dockerfile/test/java_stretch/Dockerfile index fc5e82abd..3e72046f4 100644 --- a/kokoro/linux/dockerfile/test/java_stretch/Dockerfile +++ b/kokoro/linux/dockerfile/test/java_stretch/Dockerfile @@ -1,6 +1,6 @@ FROM debian:stretch -# Install dependencies. We start with the basic ones require to build protoc +# Install dependencies. We start with the basic ones required to build protoc # and the C++ build RUN apt-get update && apt-get install -y \ autoconf \ @@ -20,12 +20,11 @@ RUN apt-get update && apt-get install -y \ parallel \ time \ wget \ - && apt-get clean - -# Java dependencies -RUN apt-get install -y \ - # -- For all Java builds -- \ + # Java dependencies maven \ - # -- For java_linkage_monitor \ openjdk-8-jdk \ + # Python dependencies + python-setuptools \ + python-pip \ + virtualenv \ && apt-get clean diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml index 03f45ff81..3d53f4001 100644 --- a/php/ext/google/protobuf/package.xml +++ b/php/ext/google/protobuf/package.xml @@ -10,21 +10,19 @@ protobuf-opensource@google.com yes - 2021-05-06 - + 2021-05-11 + - 3.17.0RC1 + 3.17.0 3.17.0 - beta - beta + stable + stable 3-Clause BSD License - * read_property() handler is not supposed to return NULL (#8362) - * Changed parameter type from long to integer (#7613) - * fix: README supported PHP version for C extension (#8236) + No new changes in 3.17.0 @@ -964,5 +962,35 @@ G A release. + + + 3.17.0RC2 + 3.17.0 + + + beta + beta + + 2021-05-07 + + 3-Clause BSD License + + + + + + 3.17.0 + 3.17.0 + + + stable + stable + + 2021-05-11 + + 3-Clause BSD License + + + diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index 2f3bddc03..858b520a7 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -76,7 +76,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.17.0RC1" +#define PHP_PROTOBUF_VERSION "3.17.0" // ptr -> PHP object cache. This is a weak map that caches lazily-created // wrapper objects around upb types: diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index 6922d6413..00fe9ff98 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -8,7 +8,7 @@ com.google.protobuf protoc - 3.17.0-rc-1 + 3.17.0 pom Protobuf Compiler diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py index 04d921d5e..2f5ad2745 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__ = '3.17.0rc1' +__version__ = '3.17.0' diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index e87bcc94e..2ba7eab6f 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.17.0.rc.1" + s.version = "3.17.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/src/google/protobuf/arena.h b/src/google/protobuf/arena.h index f84e505eb..e5d79d163 100644 --- a/src/google/protobuf/arena.h +++ b/src/google/protobuf/arena.h @@ -709,7 +709,7 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final { } template PROTOBUF_ALWAYS_INLINE static Arena* GetOwningArenaInternal( - const T* value, std::false_type) { + const T* /* value */, std::false_type) { return nullptr; } diff --git a/src/google/protobuf/compiler/java/java_helpers.h b/src/google/protobuf/compiler/java/java_helpers.h index 13dd90356..5dc25d6c9 100644 --- a/src/google/protobuf/compiler/java/java_helpers.h +++ b/src/google/protobuf/compiler/java/java_helpers.h @@ -155,6 +155,7 @@ std::string GetOneofStoredType(const FieldDescriptor* field); // Whether we should generate multiple java files for messages. inline bool MultipleJavaFiles(const FileDescriptor* descriptor, bool immutable) { + (void) immutable; return descriptor->options().java_multiple_files(); } @@ -244,15 +245,15 @@ bool IsDefaultValueJavaDefault(const FieldDescriptor* field); bool IsByteStringWithCustomDefaultValue(const FieldDescriptor* field); // Does this message class have descriptor and reflection methods? -inline bool HasDescriptorMethods(const Descriptor* descriptor, +inline bool HasDescriptorMethods(const Descriptor* /* descriptor */, bool enforce_lite) { return !enforce_lite; } -inline bool HasDescriptorMethods(const EnumDescriptor* descriptor, +inline bool HasDescriptorMethods(const EnumDescriptor* /* descriptor */, bool enforce_lite) { return !enforce_lite; } -inline bool HasDescriptorMethods(const FileDescriptor* descriptor, +inline bool HasDescriptorMethods(const FileDescriptor* /* descriptor */, bool enforce_lite) { return !enforce_lite; } diff --git a/src/google/protobuf/generated_message_table_driven.h b/src/google/protobuf/generated_message_table_driven.h index 0f6309ae9..def4a1fa2 100644 --- a/src/google/protobuf/generated_message_table_driven.h +++ b/src/google/protobuf/generated_message_table_driven.h @@ -263,7 +263,7 @@ inline void TableSerialize(const MessageLite& msg, SerializeInternal(base, field_table + 1, num_fields, output); } -uint8* SerializeInternalToArray(const uint8* base, const FieldMetadata* table, +PROTOBUF_EXPORT uint8* SerializeInternalToArray(const uint8* base, const FieldMetadata* table, int32 num_fields, bool is_deterministic, uint8* buffer); diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index c257553ea..258ec8680 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -122,7 +122,7 @@ #ifdef PROTOBUF_VERSION_SUFFIX #error PROTOBUF_VERSION_SUFFIX was previously defined #endif -#define PROTOBUF_VERSION_SUFFIX "-rc1" +#define PROTOBUF_VERSION_SUFFIX "" #if defined(PROTOBUF_NAMESPACE) || defined(PROTOBUF_NAMESPACE_ID) #error PROTOBUF_NAMESPACE or PROTOBUF_NAMESPACE_ID was previously defined @@ -506,7 +506,7 @@ #ifdef PROTOBUF_ATTRIBUTE_INIT_PRIORITY #error PROTOBUF_ATTRIBUTE_INIT_PRIORITY was previously defined #endif -#if PROTOBUF_GNUC_MIN(3, 0) +#if PROTOBUF_GNUC_MIN(3, 0) && (!defined(__APPLE__) || defined(__clang__)) #define PROTOBUF_ATTRIBUTE_INIT_PRIORITY __attribute__((init_priority((102)))) #else #define PROTOBUF_ATTRIBUTE_INIT_PRIORITY diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 25078afff..4faf238b7 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 3017000 // A suffix string for alpha, beta or rc releases. Empty for stable releases. -#define GOOGLE_PROTOBUF_VERSION_SUFFIX "-rc1" +#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/tests.sh b/tests.sh index 972e64f96..923201a82 100755 --- a/tests.sh +++ b/tests.sh @@ -104,7 +104,7 @@ build_dist_install() { # Try to install Java pushd java - use_java jdk7 + use_java jdk8 $MVN install popd @@ -208,7 +208,13 @@ build_java() { # Java build needs `protoc`. internal_build_cpp cp -r java $dir - cd $dir && $MVN clean && $MVN test + cd $dir && $MVN clean + # Skip the Kotlin tests on Oracle 7 + if [ "$version" == "oracle7" ]; then + $MVN test -pl bom,lite,core,util + else + $MVN test + fi cd ../.. } diff --git a/update_version.py b/update_version.py index cb5ab9842..5395bd800 100755 --- a/update_version.py +++ b/update_version.py @@ -228,6 +228,16 @@ def UpdateJava(): Find(Find(document.documentElement, 'parent'), 'version'), GetFullVersion())) + RewriteXml('java/kotlin/pom.xml', + lambda document : ReplaceText( + Find(Find(document.documentElement, 'parent'), 'version'), + GetFullVersion())) + + RewriteXml('java/kotlin-lite/pom.xml', + lambda document : ReplaceText( + Find(Find(document.documentElement, 'parent'), 'version'), + GetFullVersion())) + RewriteXml('protoc-artifacts/pom.xml', lambda document : ReplaceText( Find(document.documentElement, 'version'), GetFullVersion()))