From 1d12c0c4f8dfc48d2c352a7eb016cec9f4074c01 Mon Sep 17 00:00:00 2001 From: Paul Mucur Date: Fri, 19 Dec 2025 19:59:05 +0000 Subject: [PATCH 1/2] Precompile for Ruby 4.0 --- .github/workflows/tests.yml | 16 ++++++++-------- Rakefile | 5 ++--- re2.gemspec | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a76a453..10ab766 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -264,7 +264,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -285,7 +285,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -306,7 +306,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -327,7 +327,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -348,7 +348,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -369,7 +369,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: ubuntu-latest container: image: "ruby:${{ matrix.ruby }}-alpine" @@ -387,7 +387,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: "macos-14" steps: - uses: actions/checkout@v5 @@ -408,7 +408,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] runs-on: "macos-15-intel" steps: - uses: actions/checkout@v5 diff --git a/Rakefile b/Rakefile index 8159f33..136f31c 100644 --- a/Rakefile +++ b/Rakefile @@ -33,7 +33,7 @@ cross_platforms = %w[ x86_64-linux-musl ].freeze -RakeCompilerDock.set_ruby_cc_version("~> 3.1") +RakeCompilerDock.set_ruby_cc_version("~> 3.1", "~> 4.0") Gem::PackageTask.new(re2_gemspec).define @@ -69,12 +69,11 @@ namespace :gem do # the rake-compiler-dock images. desc "Compile and build native gem for #{platform} platform" task platform do - RakeCompilerDock.sh <<~SCRIPT, platform: platform, verbose: true + RakeCompilerDock.sh <<~SCRIPT, platform: platform, verbose: true, ruby: "3.1.7" wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null && sudo apt-get update && sudo apt-get install -y cmake=3.22.2-0kitware1ubuntu20.04.1 cmake-data=3.22.2-0kitware1ubuntu20.04.1 && - rbenv shell 3.1.6 && gem install bundler --no-document && bundle install && bundle exec rake native:#{platform} pkg/#{re2_gemspec.full_name}-#{Gem::Platform.new(platform)}.gem PATH="/usr/local/bin:$PATH" diff --git a/re2.gemspec b/re2.gemspec index a13bd0b..8053408 100644 --- a/re2.gemspec +++ b/re2.gemspec @@ -41,7 +41,7 @@ Gem::Specification.new do |s| "spec/re2/scanner_spec.rb" ] s.add_development_dependency("rake-compiler", "~> 1.3.0") - s.add_development_dependency("rake-compiler-dock", "~> 1.9.1") + s.add_development_dependency("rake-compiler-dock", "~> 1.11.0.rc1") s.add_development_dependency("rspec", "~> 3.2") s.add_runtime_dependency("mini_portile2", "~> 2.8.9") # keep version in sync with extconf.rb end From 63a14958f200f8e477c2a219568386d70f6b44f2 Mon Sep 17 00:00:00 2001 From: Paul Mucur Date: Fri, 26 Dec 2025 09:31:13 +0000 Subject: [PATCH 2/2] Compile for Ruby 4.0 --- .github/workflows/precompile-gem.yml | 2 +- .github/workflows/tests.yml | 28 ++++++++++++++-------------- README.md | 2 +- Rakefile | 2 +- re2.gemspec | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/precompile-gem.yml b/.github/workflows/precompile-gem.yml index 2c9f843..789c97e 100644 --- a/.github/workflows/precompile-gem.yml +++ b/.github/workflows/precompile-gem.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v5 - uses: ruby/setup-ruby@v1 with: - ruby-version: "3.4" + ruby-version: "4.0" bundler-cache: true - uses: actions/cache@v4 with: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 10ab766..0f28295 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,7 +27,7 @@ jobs: key: archives-ubuntu-${{ hashFiles('dependencies.yml') }} - uses: ruby/setup-ruby@v1 with: - ruby-version: "3.4" + ruby-version: "4.0" bundler-cache: true - run: bundle exec rake gem - uses: actions/upload-artifact@v4 @@ -85,7 +85,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - ruby: ["3.4", "3.1"] # oldest and newest + ruby: ["4.0", "3.1"] # oldest and newest libre2: - version: "20150501" soname: 0 @@ -174,7 +174,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.4", "head"] + ruby: ["3.4", "4.0"] sys: ["enable", "disable"] runs-on: "windows-2022" steps: @@ -198,7 +198,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.4", "head"] + ruby: ["3.4", "4.0"] sys: ["enable", "disable"] runs-on: "windows-2025" steps: @@ -247,7 +247,7 @@ jobs: - uses: ruby/setup-ruby@v1 id: setup-ruby with: - ruby-version: "3.4" + ruby-version: "4.0" bundler-cache: true - uses: actions/download-artifact@v5 with: @@ -264,7 +264,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -285,7 +285,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -306,7 +306,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -327,7 +327,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -348,7 +348,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -369,7 +369,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest container: image: "ruby:${{ matrix.ruby }}-alpine" @@ -387,7 +387,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: "macos-14" steps: - uses: actions/checkout@v5 @@ -408,7 +408,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4", "4.0.0-preview2"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: "macos-15-intel" steps: - uses: actions/checkout@v5 @@ -429,7 +429,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.1", "3.2", "3.3", "3.4"] + ruby: ["3.1", "3.2", "3.3", "3.4", "4.0"] runs-on: windows-2022 steps: - uses: actions/checkout@v5 diff --git a/README.md b/README.md index c7a46e2..2aeb21b 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,7 @@ RE2(non_latin1_pattern.encode("ISO-8859-1"), utf8: false).match(non_latin1_text. This gem requires the following to run: -* [Ruby](https://www.ruby-lang.org/en/) 3.1 to 3.4 +* [Ruby](https://www.ruby-lang.org/en/) 3.1 to 4.0 It supports the following RE2 ABI versions: diff --git a/Rakefile b/Rakefile index 136f31c..b019d75 100644 --- a/Rakefile +++ b/Rakefile @@ -69,7 +69,7 @@ namespace :gem do # the rake-compiler-dock images. desc "Compile and build native gem for #{platform} platform" task platform do - RakeCompilerDock.sh <<~SCRIPT, platform: platform, verbose: true, ruby: "3.1.7" + RakeCompilerDock.sh <<~SCRIPT, platform: platform, verbose: true wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null && sudo apt-get update && diff --git a/re2.gemspec b/re2.gemspec index 8053408..298720c 100644 --- a/re2.gemspec +++ b/re2.gemspec @@ -40,8 +40,8 @@ Gem::Specification.new do |s| "spec/re2/set_spec.rb", "spec/re2/scanner_spec.rb" ] - s.add_development_dependency("rake-compiler", "~> 1.3.0") - s.add_development_dependency("rake-compiler-dock", "~> 1.11.0.rc1") + s.add_development_dependency("rake-compiler", "~> 1.3.1") + s.add_development_dependency("rake-compiler-dock", "~> 1.11.0") s.add_development_dependency("rspec", "~> 3.2") s.add_runtime_dependency("mini_portile2", "~> 2.8.9") # keep version in sync with extconf.rb end