From 91e7fe1b067dc5a0460cda1e45ef2ed0a54be7f4 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 2 Mar 2022 10:43:14 +0000 Subject: [PATCH 01/15] Allow pre-compiled binaries for ruby 3.1.1 --- ruby/Rakefile | 13 ++++++++++--- ruby/google-protobuf.gemspec | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ruby/Rakefile b/ruby/Rakefile index 762dc2c00d80..12e3f9a2956c 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -122,10 +122,17 @@ else task 'gem:windows' do sh "rm Gemfile.lock" require 'rake_compiler_dock' - ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux'].each do |plat| + ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux', 'x64-mingw-ucrt'].each do |plat| + versions = if plat == 'x64-mingw-ucrt' + '3.1.1' + elsif plat == 'x64-mingw32' + '3.0.0:2.7.0:2.6.0:2.5.0' + else + '3.1.1:3.0.0:2.7.0:2.6.0:2.5.0' + end RakeCompilerDock.sh <<-"EOT", platform: plat bundle && \ - IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=3.0.0:2.7.0:2.6.0:2.5.0 + IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=#{versions} EOT end end @@ -133,7 +140,7 @@ else if RUBY_PLATFORM =~ /darwin/ task 'gem:native' do system "rake genproto" - system "rake cross native gem RUBY_CC_VERSION=3.0.0:2.7.0:2.6.0:2.5.1" + system "rake cross native gem RUBY_CC_VERSION=3.1.1:3.0.0:2.7.0:2.6.0:2.5.1" end else task 'gem:native' => [:genproto, 'gem:windows', 'gem:java'] diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 87d75a3ba775..92fd6f9cba32 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -17,12 +17,12 @@ Gem::Specification.new do |s| else s.files += Dir.glob('ext/**/*') s.extensions= ["ext/google/protobuf_c/extconf.rb"] - s.add_development_dependency "rake-compiler-dock", "= 1.1.0" + s.add_development_dependency "rake-compiler-dock", "= 1.2.0" end s.test_files = ["tests/basic.rb", "tests/stress.rb", "tests/generated_code_test.rb"] s.required_ruby_version = '>= 2.3' - s.add_development_dependency "rake-compiler", "~> 1.1.0" + s.add_development_dependency "rake-compiler", "~> 1.2.0" s.add_development_dependency "test-unit", '~> 3.0', '>= 3.0.9' end From 828b9f834390b1fc7216b3a4b6966760a146e147 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 2 Mar 2022 11:15:42 +0000 Subject: [PATCH 02/15] add comment --- ruby/Rakefile | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/Rakefile b/ruby/Rakefile index 12e3f9a2956c..ad40aea028ce 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -123,6 +123,7 @@ else sh "rm Gemfile.lock" require 'rake_compiler_dock' ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux', 'x64-mingw-ucrt'].each do |plat| + # x64-mingw-ucrt only supports 3.1+ whereas 'x64-mingw32' only supports up to 3.0 versions = if plat == 'x64-mingw-ucrt' '3.1.1' elsif plat == 'x64-mingw32' From 131c10a0b8a7ea4bca1429049883d5ffed9a6238 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 2 Mar 2022 16:05:16 +0000 Subject: [PATCH 03/15] fix build and use ruby 3.1.0 --- ruby/Rakefile | 6 +++--- ruby/google-protobuf.gemspec | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ruby/Rakefile b/ruby/Rakefile index ad40aea028ce..3dc18d396273 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -125,11 +125,11 @@ else ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux', 'x64-mingw-ucrt'].each do |plat| # x64-mingw-ucrt only supports 3.1+ whereas 'x64-mingw32' only supports up to 3.0 versions = if plat == 'x64-mingw-ucrt' - '3.1.1' + '3.1.0' elsif plat == 'x64-mingw32' '3.0.0:2.7.0:2.6.0:2.5.0' else - '3.1.1:3.0.0:2.7.0:2.6.0:2.5.0' + '3.1.0:3.0.0:2.7.0:2.6.0:2.5.0' end RakeCompilerDock.sh <<-"EOT", platform: plat bundle && \ @@ -141,7 +141,7 @@ else if RUBY_PLATFORM =~ /darwin/ task 'gem:native' do system "rake genproto" - system "rake cross native gem RUBY_CC_VERSION=3.1.1:3.0.0:2.7.0:2.6.0:2.5.1" + system "rake cross native gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0:2.5.1" end else task 'gem:native' => [:genproto, 'gem:windows', 'gem:java'] diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 92fd6f9cba32..3337c972082e 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |s| "tests/stress.rb", "tests/generated_code_test.rb"] s.required_ruby_version = '>= 2.3' - s.add_development_dependency "rake-compiler", "~> 1.2.0" + s.add_development_dependency "rake-compiler", "~> 1.1.0" s.add_development_dependency "test-unit", '~> 3.0', '>= 3.0.9' end From b75b627172e08d1112615a26ff6f9dde5646fc08 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 2 Mar 2022 16:18:38 +0000 Subject: [PATCH 04/15] add ruby31 to build CI for tests and release --- kokoro/linux/dockerfile/test/ruby/Dockerfile | 1 + kokoro/linux/ruby31/build.sh | 18 ++++++++++++++++++ kokoro/linux/ruby31/continuous.cfg | 11 +++++++++++ kokoro/linux/ruby31/presubmit.cfg | 11 +++++++++++ kokoro/macos/ruby31/build.sh | 12 ++++++++++++ kokoro/macos/ruby31/continuous.cfg | 5 +++++ kokoro/macos/ruby31/presubmit.cfg | 5 +++++ .../ruby/macos/ruby/ruby_build_environment.sh | 2 +- tests.sh | 4 ++++ 9 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 kokoro/linux/ruby31/build.sh create mode 100644 kokoro/linux/ruby31/continuous.cfg create mode 100644 kokoro/linux/ruby31/presubmit.cfg create mode 100644 kokoro/macos/ruby31/build.sh create mode 100644 kokoro/macos/ruby31/continuous.cfg create mode 100644 kokoro/macos/ruby31/presubmit.cfg diff --git a/kokoro/linux/dockerfile/test/ruby/Dockerfile b/kokoro/linux/dockerfile/test/ruby/Dockerfile index cfdc5ba03162..914cd4b4b907 100644 --- a/kokoro/linux/dockerfile/test/ruby/Dockerfile +++ b/kokoro/linux/dockerfile/test/ruby/Dockerfile @@ -35,6 +35,7 @@ RUN /bin/bash -l -c "rvm install 2.5.1" RUN /bin/bash -l -c "rvm install 2.6.0" RUN /bin/bash -l -c "rvm install 2.7.0" RUN /bin/bash -l -c "rvm install 3.0.0" +RUN /bin/bash -l -c "rvm install 3.1.0" RUN /bin/bash -l -c "rvm install jruby-9.2.20.1" RUN /bin/bash -l -c "rvm install jruby-9.3.3.0" diff --git a/kokoro/linux/ruby31/build.sh b/kokoro/linux/ruby31/build.sh new file mode 100644 index 000000000000..c22bdae2efd6 --- /dev/null +++ b/kokoro/linux/ruby31/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# This is the top-level script we give to Kokoro as the entry point for +# running the "pull request" project: +# +# This script selects a specific Dockerfile (for building a Docker image) and +# a script to run inside that image. Then we delegate to the general +# build_and_run_docker.sh script. + +# Change to repo root +cd $(dirname $0)/../../.. + +export DOCKERHUB_ORGANIZATION=protobuftesting +export DOCKERFILE_DIR=kokoro/linux/dockerfile/test/ruby +export DOCKER_RUN_SCRIPT=kokoro/linux/pull_request_in_docker.sh +export OUTPUT_DIR=testoutput +export TEST_SET="ruby31" +./kokoro/linux/build_and_run_docker.sh diff --git a/kokoro/linux/ruby31/continuous.cfg b/kokoro/linux/ruby31/continuous.cfg new file mode 100644 index 000000000000..0477912b8cac --- /dev/null +++ b/kokoro/linux/ruby31/continuous.cfg @@ -0,0 +1,11 @@ +# Config file for running tests in Kokoro + +# Location of the build script in repository +build_file: "protobuf/kokoro/linux/ruby31/build.sh" +timeout_mins: 120 + +action { + define_artifacts { + regex: "**/sponge_log.xml" + } +} diff --git a/kokoro/linux/ruby31/presubmit.cfg b/kokoro/linux/ruby31/presubmit.cfg new file mode 100644 index 000000000000..0477912b8cac --- /dev/null +++ b/kokoro/linux/ruby31/presubmit.cfg @@ -0,0 +1,11 @@ +# Config file for running tests in Kokoro + +# Location of the build script in repository +build_file: "protobuf/kokoro/linux/ruby31/build.sh" +timeout_mins: 120 + +action { + define_artifacts { + regex: "**/sponge_log.xml" + } +} diff --git a/kokoro/macos/ruby31/build.sh b/kokoro/macos/ruby31/build.sh new file mode 100644 index 000000000000..1b5a5a5a60eb --- /dev/null +++ b/kokoro/macos/ruby31/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# +# Build file to set up and run tests + +# Change to repo root +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/macos/ruby31/continuous.cfg b/kokoro/macos/ruby31/continuous.cfg new file mode 100644 index 000000000000..19e16b3eaf5c --- /dev/null +++ b/kokoro/macos/ruby31/continuous.cfg @@ -0,0 +1,5 @@ +# Config file for running tests in Kokoro + +# Location of the build script in repository +build_file: "protobuf/kokoro/macos/ruby31/build.sh" +timeout_mins: 1440 diff --git a/kokoro/macos/ruby31/presubmit.cfg b/kokoro/macos/ruby31/presubmit.cfg new file mode 100644 index 000000000000..19e16b3eaf5c --- /dev/null +++ b/kokoro/macos/ruby31/presubmit.cfg @@ -0,0 +1,5 @@ +# Config file for running tests in Kokoro + +# Location of the build script in repository +build_file: "protobuf/kokoro/macos/ruby31/build.sh" +timeout_mins: 1440 diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 98270d138338..139ae9c0cf50 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -58,7 +58,7 @@ set +x # rvm commands are very verbose rvm use 2.7.0 set -x ruby --version | grep 'ruby 2.7.0' -for v in 3.0.0 2.7.0 ; do +for v in 3.1.0 3.0.0 2.7.0 ; do ccache -c rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=x86_64-darwin MAKE="$MAKE" rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=aarch64-darwin MAKE="$MAKE" diff --git a/tests.sh b/tests.sh index d9047c40d2a5..462a7da37946 100755 --- a/tests.sh +++ b/tests.sh @@ -422,6 +422,10 @@ build_ruby30() { internal_build_cpp # For conformance tests. cd ruby && bash travis-test.sh ruby-3.0.2 && cd .. } +build_ruby31() { + internal_build_cpp # For conformance tests. + cd ruby && bash travis-test.sh ruby-3.1.0 && cd .. +} build_jruby92() { internal_build_cpp # For conformance tests. From cba0a9e8280b4de537636f855ff2ad5d78b82cb4 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 2 Mar 2022 18:02:21 +0000 Subject: [PATCH 05/15] trying to fix ci --- .../ruby/macos/ruby/ruby_build_environment.sh | 12 +++++++++++- ruby/Rakefile | 11 ++--------- tests.sh | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 139ae9c0cf50..733561a428aa 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -54,11 +54,21 @@ EOF MAKE="make -j8" +set +x # rvm commands are very verbose +rvm use 3.1.0 +set -x +ruby --version | grep 'ruby 3.1.0' +for v in 3.1.0 ; do + ccache -c + rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=x86_64-darwin MAKE="$MAKE" + rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=aarch64-darwin MAKE="$MAKE" +done + set +x # rvm commands are very verbose rvm use 2.7.0 set -x ruby --version | grep 'ruby 2.7.0' -for v in 3.1.0 3.0.0 2.7.0 ; do +for v in 3.0.0 2.7.0 ; do ccache -c rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=x86_64-darwin MAKE="$MAKE" rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=aarch64-darwin MAKE="$MAKE" diff --git a/ruby/Rakefile b/ruby/Rakefile index 3dc18d396273..5ff2d8063376 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -122,18 +122,11 @@ else task 'gem:windows' do sh "rm Gemfile.lock" require 'rake_compiler_dock' - ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux', 'x64-mingw-ucrt'].each do |plat| + ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux'].each do |plat| # x64-mingw-ucrt only supports 3.1+ whereas 'x64-mingw32' only supports up to 3.0 - versions = if plat == 'x64-mingw-ucrt' - '3.1.0' - elsif plat == 'x64-mingw32' - '3.0.0:2.7.0:2.6.0:2.5.0' - else - '3.1.0:3.0.0:2.7.0:2.6.0:2.5.0' - end RakeCompilerDock.sh <<-"EOT", platform: plat bundle && \ - IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=#{versions} + IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0:2.5.0 EOT end end diff --git a/tests.sh b/tests.sh index 462a7da37946..11a0be1c81c1 100755 --- a/tests.sh +++ b/tests.sh @@ -597,6 +597,7 @@ Usage: $0 { cpp | ruby26 | ruby27 | ruby30 | + ruby31 | jruby92 | jruby93 | ruby_all | From 3157dab7a34353df176a5045013c8e4441197fef Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Wed, 2 Mar 2022 18:22:16 +0000 Subject: [PATCH 06/15] install ruby 3.1.0 in ruby_build_environment.sh --- kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 733561a428aa..39de8bfc7827 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -9,6 +9,10 @@ time rvm install 2.5.0 rvm use 2.5.0 gem install rake-compiler --no-document gem install bundler --no-document +time rvm install 3.1.0 +rvm use 3.1.0 +gem install rake-compiler --no-document +gem install bundler --no-document time rvm install 2.7.0 rvm use 2.7.0 --default gem install rake-compiler --no-document From f7e2109a78366f3b84f1780e40d4efda246d97d7 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Thu, 3 Mar 2022 10:03:55 +0000 Subject: [PATCH 07/15] use head for rvm to install 3.1.0 --- kokoro/linux/dockerfile/test/ruby/Dockerfile | 1 + kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/kokoro/linux/dockerfile/test/ruby/Dockerfile b/kokoro/linux/dockerfile/test/ruby/Dockerfile index 914cd4b4b907..516ba4046f6d 100644 --- a/kokoro/linux/dockerfile/test/ruby/Dockerfile +++ b/kokoro/linux/dockerfile/test/ruby/Dockerfile @@ -31,6 +31,7 @@ RUN gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys \ 7D2BAF1CF37B13E2069D6956105BD0E739499BDB RUN \curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s master +RUN /bin/bash -l -c "rvm get head" RUN /bin/bash -l -c "rvm install 2.5.1" RUN /bin/bash -l -c "rvm install 2.6.0" RUN /bin/bash -l -c "rvm install 2.7.0" diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 39de8bfc7827..8f353944e280 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -5,6 +5,7 @@ set -ex set +ex # rvm script is very verbose and exits with errorcode source $HOME/.rvm/scripts/rvm set -e # rvm commands are very verbose +rvm get head time rvm install 2.5.0 rvm use 2.5.0 gem install rake-compiler --no-document From b7b20fad4b94778a2fbed8d44ce3d9007fe027e7 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Thu, 3 Mar 2022 17:41:31 +0000 Subject: [PATCH 08/15] just install master version of rvm in prepare_build_macos_rc --- kokoro/linux/dockerfile/test/ruby/Dockerfile | 1 - kokoro/macos/prepare_build_macos_rc | 2 +- kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/kokoro/linux/dockerfile/test/ruby/Dockerfile b/kokoro/linux/dockerfile/test/ruby/Dockerfile index 516ba4046f6d..914cd4b4b907 100644 --- a/kokoro/linux/dockerfile/test/ruby/Dockerfile +++ b/kokoro/linux/dockerfile/test/ruby/Dockerfile @@ -31,7 +31,6 @@ RUN gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys \ 7D2BAF1CF37B13E2069D6956105BD0E739499BDB RUN \curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s master -RUN /bin/bash -l -c "rvm get head" RUN /bin/bash -l -c "rvm install 2.5.1" RUN /bin/bash -l -c "rvm install 2.6.0" RUN /bin/bash -l -c "rvm install 2.7.0" diff --git a/kokoro/macos/prepare_build_macos_rc b/kokoro/macos/prepare_build_macos_rc index c0017b64ac82..8e0a87edbbf8 100755 --- a/kokoro/macos/prepare_build_macos_rc +++ b/kokoro/macos/prepare_build_macos_rc @@ -36,5 +36,5 @@ if [[ "${KOKORO_INSTALL_RVM:-}" == "yes" ]] ; then # 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 stable --ruby + curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s master --ruby fi diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 8f353944e280..39de8bfc7827 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -5,7 +5,6 @@ set -ex set +ex # rvm script is very verbose and exits with errorcode source $HOME/.rvm/scripts/rvm set -e # rvm commands are very verbose -rvm get head time rvm install 2.5.0 rvm use 2.5.0 gem install rake-compiler --no-document From bf817418337d248359c05fa5f07b4c9eb8c62661 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Thu, 3 Mar 2022 18:09:46 +0000 Subject: [PATCH 09/15] force install of master rvm in ruby_build_environment.sh --- kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 39de8bfc7827..5840faa22578 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -3,6 +3,15 @@ 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 + source $HOME/.rvm/scripts/rvm set -e # rvm commands are very verbose time rvm install 2.5.0 From 345738bfac24ed976d8c8b29bac5d942c7a5124d Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Fri, 4 Mar 2022 11:54:11 +0000 Subject: [PATCH 10/15] Use coroutine=universal when compiling ruby31 --- .../ruby/macos/ruby/ruby_build_environment.sh | 21 +++++++++++++++++-- ruby/Rakefile | 1 - 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 5840faa22578..a2325efba6fc 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -33,6 +33,8 @@ set -ex rm -rf ~/.rake-compiler CROSS_RUBY=$(mktemp tmpfile.XXXXXXXX) +CROSS_RUBY31=$(mktemp tmpfile.XXXXXXXX) + curl https://raw.githubusercontent.com/rake-compiler/rake-compiler/72184e51779b6a3b9b8580b036a052fdc3181ced/tasks/bin/cross-ruby.rake > "$CROSS_RUBY" @@ -65,6 +67,21 @@ patch "$CROSS_RUBY" << EOF end EOF +cp $CROSS_RUBY CROSS_RUBY31 + +patch "$CROSS_RUBY31" << EOF +--- cross-ruby.rake 2022-03-04 11:49:52.000000000 +0000 ++++ patched 2022-03-04 11:50:29.000000000 +0000 +@@ -114,6 +114,7 @@ + '--enable-static', + '--disable-shared', + '--disable-install-doc', ++ '--with-coroutine=universal', + '--without-gmp', + '--with-ext=', + 'LDFLAGS=-pipe', +EOF + MAKE="make -j8" set +x # rvm commands are very verbose @@ -73,8 +90,8 @@ set -x ruby --version | grep 'ruby 3.1.0' for v in 3.1.0 ; do ccache -c - rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=x86_64-darwin MAKE="$MAKE" - rake -f "$CROSS_RUBY" cross-ruby VERSION="$v" HOST=aarch64-darwin MAKE="$MAKE" + rake -f "$CROSS_RUBY31" cross-ruby VERSION="$v" HOST=x86_64-darwin MAKE="$MAKE" + rake -f "$CROSS_RUBY31" cross-ruby VERSION="$v" HOST=aarch64-darwin MAKE="$MAKE" done set +x # rvm commands are very verbose diff --git a/ruby/Rakefile b/ruby/Rakefile index 5ff2d8063376..c10f02e6ed8c 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -123,7 +123,6 @@ else sh "rm Gemfile.lock" require 'rake_compiler_dock' ['x86-mingw32', 'x64-mingw32', 'x86_64-linux', 'x86-linux'].each do |plat| - # x64-mingw-ucrt only supports 3.1+ whereas 'x64-mingw32' only supports up to 3.0 RakeCompilerDock.sh <<-"EOT", platform: plat bundle && \ IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0:2.5.0 From be260b4e17145a7ea37777bdd572468f9e9a486f Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Fri, 4 Mar 2022 11:58:52 +0000 Subject: [PATCH 11/15] use ucontext --- kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index a2325efba6fc..869e0b558837 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -71,12 +71,12 @@ cp $CROSS_RUBY CROSS_RUBY31 patch "$CROSS_RUBY31" << EOF --- cross-ruby.rake 2022-03-04 11:49:52.000000000 +0000 -+++ patched 2022-03-04 11:50:29.000000000 +0000 ++++ patched 2022-03-04 11:58:22.000000000 +0000 @@ -114,6 +114,7 @@ '--enable-static', '--disable-shared', '--disable-install-doc', -+ '--with-coroutine=universal', ++ '--with-coroutine=context', '--without-gmp', '--with-ext=', 'LDFLAGS=-pipe', From 4fc8e1054a2428ff7acb91bdc3c7a467de950670 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Fri, 4 Mar 2022 15:27:33 +0000 Subject: [PATCH 12/15] fix filename --- kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index 869e0b558837..f74b9ed9741a 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -67,7 +67,7 @@ patch "$CROSS_RUBY" << EOF end EOF -cp $CROSS_RUBY CROSS_RUBY31 +cp $CROSS_RUBY $CROSS_RUBY31 patch "$CROSS_RUBY31" << EOF --- cross-ruby.rake 2022-03-04 11:49:52.000000000 +0000 From 01b0ea2c0c8939e43467d1029c1f10f54ecbfbb0 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Fri, 4 Mar 2022 15:28:38 +0000 Subject: [PATCH 13/15] fix coroutine name --- kokoro/release/ruby/macos/ruby/ruby_build_environment.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh index f74b9ed9741a..c3fcd3c584b1 100755 --- a/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh +++ b/kokoro/release/ruby/macos/ruby/ruby_build_environment.sh @@ -76,7 +76,7 @@ patch "$CROSS_RUBY31" << EOF '--enable-static', '--disable-shared', '--disable-install-doc', -+ '--with-coroutine=context', ++ '--with-coroutine=ucontext', '--without-gmp', '--with-ext=', 'LDFLAGS=-pipe', From d78b5d57b2be3feb75cbce7fddf3c6a64c4c15e2 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Mon, 7 Mar 2022 14:37:53 +0000 Subject: [PATCH 14/15] use git head for rake-compiler-dock --- ruby/Gemfile | 4 +++- ruby/google-protobuf.gemspec | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ruby/Gemfile b/ruby/Gemfile index fa75df156323..5d4a67ba8188 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -1,3 +1,5 @@ source 'https://rubygems.org' - +group :development do + gem 'rake-compiler-dock', git: 'https://github.com/rake-compiler/rake-compiler-dock.git' +end gemspec diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 3337c972082e..20dffe578678 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -17,7 +17,6 @@ Gem::Specification.new do |s| else s.files += Dir.glob('ext/**/*') s.extensions= ["ext/google/protobuf_c/extconf.rb"] - s.add_development_dependency "rake-compiler-dock", "= 1.2.0" end s.test_files = ["tests/basic.rb", "tests/stress.rb", From c9a22f11ae1977de59394267d22ee3c9f44ec031 Mon Sep 17 00:00:00 2001 From: Marco Concetto Rudilosso Date: Thu, 17 Mar 2022 10:06:54 +0000 Subject: [PATCH 15/15] use newest rake-compiler-dock version --- ruby/Gemfile | 4 +--- ruby/google-protobuf.gemspec | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ruby/Gemfile b/ruby/Gemfile index 5d4a67ba8188..fa75df156323 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -1,5 +1,3 @@ source 'https://rubygems.org' -group :development do - gem 'rake-compiler-dock', git: 'https://github.com/rake-compiler/rake-compiler-dock.git' -end + gemspec diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 20dffe578678..2582273a7ace 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |s| else s.files += Dir.glob('ext/**/*') s.extensions= ["ext/google/protobuf_c/extconf.rb"] - end + s.add_development_dependency "rake-compiler-dock", "= 1.2.1" end s.test_files = ["tests/basic.rb", "tests/stress.rb", "tests/generated_code_test.rb"]