diff --git a/kokoro/macos/php74/build.sh b/kokoro/macos/php74/build.sh index e4877818d75f..b9f7de8f372c 100755 --- a/kokoro/macos/php74/build.sh +++ b/kokoro/macos/php74/build.sh @@ -8,16 +8,17 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests source kokoro/macos/prepare_build_macos_rc -# Install PHP + Composer -brew install php@7.4 composer pcre2 +# Install Dependencies +brew install coreutils php@7.4 # Configure path -PHP_FOLDER=$(find /opt/homebrew -type d -regex ".*php.*/7.4.[0-9]*") +HOMEBREW_PREFIX=$(brew --prefix) +PHP_FOLDER=$(find $HOMEBREW_PREFIX -type d -regex ".*php.*/7.4.[0-9]*") test ! -z "$PHP_FOLDER" export PATH="$PHP_FOLDER/bin:$PATH" # Fix missing pcre2.h in homebrew's PHP -ln -s $(find /opt/homebrew/Cellar/pcre2 -name pcre2.h) $PHP_FOLDER/include/php/ext/pcre/pcre2.h +#ln -s $(find $HOMEBREW_PREFIX/Cellar/pcre2 -name pcre2.h) $PHP_FOLDER/include/php/ext/pcre/pcre2.h # Test ./tests.sh php_mac diff --git a/kokoro/macos/php80/build.sh b/kokoro/macos/php80/build.sh index 8e4a4ab0ed68..1b4767b78a10 100755 --- a/kokoro/macos/php80/build.sh +++ b/kokoro/macos/php80/build.sh @@ -8,16 +8,17 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests source kokoro/macos/prepare_build_macos_rc -# Install PHP + Composer -brew install php@8.0 composer pcre2 +# Install Dependencies +brew install coreutils php@8.0 # Configure path -PHP_FOLDER=$(find /opt/homebrew -type d -regex ".*php.*/8.0.[0-9]*") +HOMEBREW_PREFIX=$(brew --prefix) +PHP_FOLDER=$(find $HOMEBREW_PREFIX -type d -regex ".*php.*/8.0.[0-9]*") test ! -z "$PHP_FOLDER" export PATH="$PHP_FOLDER/bin:$PATH" # Fix missing pcre2.h in homebrew's PHP -ln -s $(find /opt/homebrew/Cellar/pcre2 -name pcre2.h) $PHP_FOLDER/include/php/ext/pcre/pcre2.h +ln -s $(find $HOMEBREW_PREFIX/Cellar/pcre2 -name pcre2.h) $PHP_FOLDER/include/php/ext/pcre/pcre2.h # Test ./tests.sh php_mac diff --git a/kokoro/macos/php80/continuous.cfg b/kokoro/macos/php80/continuous.cfg index 9a717451d373..ded43e62c57f 100644 --- a/kokoro/macos/php80/continuous.cfg +++ b/kokoro/macos/php80/continuous.cfg @@ -1,5 +1,5 @@ # Config file for running tests in Kokoro # Location of the build script in repository -build_file: "protobuf/kokoro/macos/php7.3_mac/build.sh" +build_file: "protobuf/kokoro/macos/php80/build.sh" timeout_mins: 1440 diff --git a/kokoro/macos/php80/presubmit.cfg b/kokoro/macos/php80/presubmit.cfg index 9a717451d373..ded43e62c57f 100644 --- a/kokoro/macos/php80/presubmit.cfg +++ b/kokoro/macos/php80/presubmit.cfg @@ -1,5 +1,5 @@ # Config file for running tests in Kokoro # Location of the build script in repository -build_file: "protobuf/kokoro/macos/php7.3_mac/build.sh" +build_file: "protobuf/kokoro/macos/php80/build.sh" timeout_mins: 1440 diff --git a/kokoro/macos/prepare_build_macos_rc b/kokoro/macos/prepare_build_macos_rc index 291e8d009014..0bc777979400 100755 --- a/kokoro/macos/prepare_build_macos_rc +++ b/kokoro/macos/prepare_build_macos_rc @@ -7,17 +7,12 @@ set -eux ## # Select Xcode version -# Remember to update the Xcode version when Xcode_11.3.app is not available. -# If xcode is not available, it will probably encounter the failure for -# "autom4te: need GNU m4 1.4 or later: /usr/bin/m4" -# go/kokoro/userdocs/macos/selecting_xcode.md for more information. -export DEVELOPER_DIR=/Applications/Xcode_11.3.app/Contents/Developer +export DEVELOPER_DIR=/Applications/Xcode_13.3.1.app/Contents/Developer +sudo xcode-select -s "${DEVELOPER_DIR}" ## -# Select C/C++ compilers - -export CC=gcc -export CXX=g++ +# Use Python 2 by default (for googletest) +pyenv global 2.7.18 ## # Install Tox @@ -26,19 +21,6 @@ if [[ "${KOKORO_INSTALL_TOX:-}" == "yes" ]] ; then sudo python3 -m pip install --upgrade pip tox fi -## -# Install RVM - -if [[ "${KOKORO_INSTALL_RVM:-}" == "yes" ]] ; then - curl -sSL https://rvm.io/mpapis.asc | gpg --import - - curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - - - # Old OpenSSL versions cannot handle the SSL certificate used by - # https://get.rvm.io, so as a workaround we download RVM directly from - # GitHub. See this issue for details: https://github.com/rvm/rvm/issues/5133 - curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s master --ruby -fi - # "Install" valgrind ## if [ ! -x "$(command -v valgrind)" ]; then @@ -46,3 +28,7 @@ if [ ! -x "$(command -v valgrind)" ]; then chmod ug+x valgrind sudo mv valgrind /usr/local/bin/valgrind fi + +git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core +git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask +sudo chown -R $(whoami) $HOME/.rvm/ diff --git a/kokoro/macos/ruby25/build.sh b/kokoro/macos/ruby25/build.sh index 48c894081b8d..38e90aa75c52 100755 --- a/kokoro/macos/ruby25/build.sh +++ b/kokoro/macos/ruby25/build.sh @@ -6,7 +6,6 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests -KOKORO_INSTALL_RVM=yes source kokoro/macos/prepare_build_macos_rc ./tests.sh ruby25 diff --git a/kokoro/macos/ruby26/build.sh b/kokoro/macos/ruby26/build.sh index 1b94fe1b5568..6c33ed0a7e66 100755 --- a/kokoro/macos/ruby26/build.sh +++ b/kokoro/macos/ruby26/build.sh @@ -6,7 +6,6 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests -KOKORO_INSTALL_RVM=yes source kokoro/macos/prepare_build_macos_rc ./tests.sh ruby26 diff --git a/kokoro/macos/ruby27/build.sh b/kokoro/macos/ruby27/build.sh index baebdb792a6a..16bcbd6cbd6f 100755 --- a/kokoro/macos/ruby27/build.sh +++ b/kokoro/macos/ruby27/build.sh @@ -6,7 +6,6 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests -KOKORO_INSTALL_RVM=yes source kokoro/macos/prepare_build_macos_rc ./tests.sh ruby27 diff --git a/kokoro/macos/ruby30/build.sh b/kokoro/macos/ruby30/build.sh index b1e0641c96e1..5b4f6133a72d 100755 --- a/kokoro/macos/ruby30/build.sh +++ b/kokoro/macos/ruby30/build.sh @@ -6,7 +6,6 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests -KOKORO_INSTALL_RVM=yes source kokoro/macos/prepare_build_macos_rc ./tests.sh ruby30 diff --git a/kokoro/macos/ruby31/build.sh b/kokoro/macos/ruby31/build.sh index 1b5a5a5a60eb..198a86150a34 100644 --- a/kokoro/macos/ruby31/build.sh +++ b/kokoro/macos/ruby31/build.sh @@ -6,7 +6,6 @@ cd $(dirname $0)/../../.. # Prepare worker environment to run tests -KOKORO_INSTALL_RVM=yes source kokoro/macos/prepare_build_macos_rc ./tests.sh ruby31 diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 2a9cb1687b09..49f279be40de 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -4,14 +4,7 @@ set -ex set +ex # rvm script is very verbose and exits with errorcode -curl -sSL https://rvm.io/mpapis.asc | gpg --import - -curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - - -# Old OpenSSL versions cannot handle the SSL certificate used by -# https://get.rvm.io, so as a workaround we download RVM directly from -# GitHub. See this issue for details: https://github.com/rvm/rvm/issues/5133 -curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s master --ruby - +sudo chown -R $(whoami) $HOME/.rvm/ source $HOME/.rvm/scripts/rvm set -e # rvm commands are very verbose time rvm install 2.5.0 diff --git a/objectivec/GPBApi.pbobjc.h b/objectivec/GPBApi.pbobjc.h index 871e90885a61..1848aa6a911e 100644 --- a/objectivec/GPBApi.pbobjc.h +++ b/objectivec/GPBApi.pbobjc.h @@ -74,12 +74,12 @@ GPB_FINAL @interface GPBApi : GPBMessage /** The methods of this interface, in unspecified order. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *methodsArray; -/** The number of items in @c methodsArray without causing the array to be created. */ +/** The number of items in @c methodsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger methodsArray_Count; /** Any metadata attached to the interface. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; -/** The number of items in @c optionsArray without causing the array to be created. */ +/** The number of items in @c optionsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger optionsArray_Count; /** @@ -115,7 +115,7 @@ GPB_FINAL @interface GPBApi : GPBMessage /** Included interfaces. See [Mixin][]. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *mixinsArray; -/** The number of items in @c mixinsArray without causing the array to be created. */ +/** The number of items in @c mixinsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger mixinsArray_Count; /** The source syntax of the service. */ @@ -169,7 +169,7 @@ GPB_FINAL @interface GPBMethod : GPBMessage /** Any metadata attached to the method. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; -/** The number of items in @c optionsArray without causing the array to be created. */ +/** The number of items in @c optionsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger optionsArray_Count; /** The source syntax of this method. */ diff --git a/objectivec/GPBFieldMask.pbobjc.h b/objectivec/GPBFieldMask.pbobjc.h index c4667b44db26..b7eccff21ca6 100644 --- a/objectivec/GPBFieldMask.pbobjc.h +++ b/objectivec/GPBFieldMask.pbobjc.h @@ -247,7 +247,7 @@ GPB_FINAL @interface GPBFieldMask : GPBMessage /** The set of field mask paths. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *pathsArray; -/** The number of items in @c pathsArray without causing the array to be created. */ +/** The number of items in @c pathsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger pathsArray_Count; @end diff --git a/objectivec/GPBStruct.pbobjc.h b/objectivec/GPBStruct.pbobjc.h index dd6ab28f0e81..ff4eefde52dd 100644 --- a/objectivec/GPBStruct.pbobjc.h +++ b/objectivec/GPBStruct.pbobjc.h @@ -87,7 +87,7 @@ GPB_FINAL @interface GPBStruct : GPBMessage /** Unordered map of dynamically typed values. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableDictionary *fields; -/** The number of items in @c fields without causing the array to be created. */ +/** The number of items in @c fields without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger fields_Count; @end @@ -178,7 +178,7 @@ GPB_FINAL @interface GPBListValue : GPBMessage /** Repeated field of dynamically typed values. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *valuesArray; -/** The number of items in @c valuesArray without causing the array to be created. */ +/** The number of items in @c valuesArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger valuesArray_Count; @end diff --git a/objectivec/GPBType.pbobjc.h b/objectivec/GPBType.pbobjc.h index b0230501cf3c..969219f03f40 100644 --- a/objectivec/GPBType.pbobjc.h +++ b/objectivec/GPBType.pbobjc.h @@ -195,17 +195,17 @@ GPB_FINAL @interface GPBType : GPBMessage /** The list of fields. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *fieldsArray; -/** The number of items in @c fieldsArray without causing the array to be created. */ +/** The number of items in @c fieldsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger fieldsArray_Count; /** The list of types appearing in `oneof` definitions in this type. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *oneofsArray; -/** The number of items in @c oneofsArray without causing the array to be created. */ +/** The number of items in @c oneofsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger oneofsArray_Count; /** The protocol buffer options. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; -/** The number of items in @c optionsArray without causing the array to be created. */ +/** The number of items in @c optionsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger optionsArray_Count; /** The source context. */ @@ -279,7 +279,7 @@ GPB_FINAL @interface GPBField : GPBMessage /** The protocol buffer options. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; -/** The number of items in @c optionsArray without causing the array to be created. */ +/** The number of items in @c optionsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger optionsArray_Count; /** The field JSON name. */ @@ -334,12 +334,12 @@ GPB_FINAL @interface GPBEnum : GPBMessage /** Enum value definitions. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *enumvalueArray; -/** The number of items in @c enumvalueArray without causing the array to be created. */ +/** The number of items in @c enumvalueArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger enumvalueArray_Count; /** Protocol buffer options. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; -/** The number of items in @c optionsArray without causing the array to be created. */ +/** The number of items in @c optionsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger optionsArray_Count; /** The source context. */ @@ -385,7 +385,7 @@ GPB_FINAL @interface GPBEnumValue : GPBMessage /** Protocol buffer options. */ @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray *optionsArray; -/** The number of items in @c optionsArray without causing the array to be created. */ +/** The number of items in @c optionsArray without causing the container to be created. */ @property(nonatomic, readonly) NSUInteger optionsArray_Count; @end diff --git a/objectivec/generate_well_known_types.sh b/objectivec/generate_well_known_types.sh index 1b9de6ec55ee..e6c9b044d145 100755 --- a/objectivec/generate_well_known_types.sh +++ b/objectivec/generate_well_known_types.sh @@ -73,6 +73,7 @@ for PROTO_FILE in "${RUNTIME_PROTO_FILES[@]}"; do if ! diff "${ObjCDir}/GPB${OBJC_NAME}${EXT}" "${TMP_DIR}/${DIR}/${OBJC_NAME}${EXT}" > /dev/null 2>&1 ; then if [[ "${CHECK_ONLY}" == 1 ]] ; then echo "ERROR: The WKTs need to be regenerated! Run $0" + diff -u "${ObjCDir}/GPB${OBJC_NAME}${EXT}" "${TMP_DIR}/${DIR}/${OBJC_NAME}${EXT}" exit 1 fi diff --git a/src/google/protobuf/compiler/objectivec/objectivec_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_field.cc index 004ea19fb832..a9e651742929 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_field.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_field.cc @@ -388,7 +388,7 @@ void RepeatedFieldGenerator::GeneratePropertyDeclaration( "$comments$" "$array_comment$" "@property(nonatomic, readwrite, strong, null_resettable) $array_property_type$ *$name$$storage_attribute$$deprecated_attribute$;\n" - "/** The number of items in @c $name$ without causing the array to be created. */\n" + "/** The number of items in @c $name$ without causing the container to be created. */\n" "@property(nonatomic, readonly) NSUInteger $name$_Count$deprecated_attribute$;\n"); if (IsInitName(variables_.find("name")->second)) { // If property name starts with init we need to annotate it to get past ARC.