From 6044640ce740d9b08d909f282cc03199d4716c3e Mon Sep 17 00:00:00 2001 From: Vlado Cingel Date: Tue, 30 Jun 2026 11:17:43 +0200 Subject: [PATCH 1/5] Relax required ruby version to support Ruby 4 --- elastic-apm.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elastic-apm.gemspec b/elastic-apm.gemspec index 258d0f095..644993569 100644 --- a/elastic-apm.gemspec +++ b/elastic-apm.gemspec @@ -29,7 +29,7 @@ Gem::Specification.new do |spec| spec.homepage = 'https://github.com/elastic/apm-agent-ruby' spec.metadata = { 'source_code_uri' => 'https://github.com/elastic/apm-agent-ruby' } spec.license = 'Apache-2.0' - spec.required_ruby_version = ">= 2.3.0", "< 4.0" + spec.required_ruby_version = ">= 2.3.0", "< 5.0" spec.files = `git ls-files -z`.split("\x0").reject do |f| f.match(%r{^(test|spec|features)/}) From 6491e6fc115746da5aed1e4058a72bc1b635c93a Mon Sep 17 00:00:00 2001 From: Vlado Cingel Date: Mon, 6 Jul 2026 16:24:32 +0200 Subject: [PATCH 2/5] Update test matrix --- .ci/.exclude.yml | 21 +++++++++++++++++++++ .ci/.framework.yml | 1 + .ci/.ruby.yml | 1 + 3 files changed, 23 insertions(+) diff --git a/.ci/.exclude.yml b/.ci/.exclude.yml index c3b6c1b95..232c2186c 100644 --- a/.ci/.exclude.yml +++ b/.ci/.exclude.yml @@ -20,6 +20,8 @@ exclude: # rails-4.2 exclusions # Only test on ruby 2.4 + - VERSION: ruby:4.0 + FRAMEWORK: rails-4.2 - VERSION: ruby:3.4 FRAMEWORK: rails-4.2 - VERSION: ruby:3.1 @@ -36,6 +38,7 @@ exclude: FRAMEWORK: rails-4.2 - VERSION: elasticobservability/jruby:9.2-8-jdk FRAMEWORK: rails-4.2 + # sinatra-1.4 exclusions - VERSION: ruby:3.1 FRAMEWORK: sinatra-1.4 @@ -136,3 +139,21 @@ exclude: FRAMEWORK: rails-5.2 - VERSION: ruby:3.1 FRAMEWORK: rails-5.1 + + # Ony test Rails 8.1 with Ruby 4.0 + - VERSION: ruby:3.4 + FRAMEWORK: rails-8.1 + - VERSION: ruby:3.1 + FRAMEWORK: rails-8.1 + - VERSION: ruby:2.7 + FRAMEWORK: rails-8.1 + - VERSION: ruby:2.4 + FRAMEWORK: rails-8.1 + - VERSION: jruby:9.2 + FRAMEWORK: rails-8.1 + - VERSION: elasticobservability/jruby:9.2-13-jdk + FRAMEWORK: rails-8.1 + - VERSION: elasticobservability/jruby:9.2-11-jdk + FRAMEWORK: rails-8.1 + - VERSION: elasticobservability/jruby:9.2-8-jdk + FRAMEWORK: rails-8.1 diff --git a/.ci/.framework.yml b/.ci/.framework.yml index 5fde31acf..0e12e4aae 100644 --- a/.ci/.framework.yml +++ b/.ci/.framework.yml @@ -1,4 +1,5 @@ FRAMEWORK: + - rails-8.1 - rails-7.2 - rails-6.1 - rails-5.2 diff --git a/.ci/.ruby.yml b/.ci/.ruby.yml index f23c32702..d82af3a2f 100644 --- a/.ci/.ruby.yml +++ b/.ci/.ruby.yml @@ -1,4 +1,5 @@ VERSION: + - ruby:4.0 - ruby:3.4 - ruby:3.1 - ruby:2.7 From 97adaab31e5081b0893483dac85dbfcc77ade1c6 Mon Sep 17 00:00:00 2001 From: Vlado Cingel Date: Tue, 7 Jul 2026 13:27:54 +0200 Subject: [PATCH 3/5] Update supported technologies doc --- docs/reference/supported-technologies.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/reference/supported-technologies.md b/docs/reference/supported-technologies.md index 9957a6124..7807a5ee2 100644 --- a/docs/reference/supported-technologies.md +++ b/docs/reference/supported-technologies.md @@ -16,7 +16,7 @@ The Elastic APM Ruby Agent has built-in support for many frameworks and librarie ## Ruby [supported-technologies-ruby] -We follow Ruby’s own maintenance policy and officially support all currently maintained versions per [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/) < 4.0. +We follow Ruby’s own maintenance policy and officially support all currently maintained versions per [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/) < 5.0. ## Web Frameworks and Libraries [supported-technologies-web] @@ -28,7 +28,7 @@ We test against all supported minor versions of Rails, Sinatra, and Grape. ### Ruby on Rails [supported-technologies-rails] -We currently support Rails >= 4.2 <= 7.2. This follows Rails' own [Security policy](https://rubyonrails.org/security/). +We currently support Rails >= 4.2 <= 8.1. This follows Rails' own [Security policy](https://rubyonrails.org/security/). See [Getting started with Rails](/reference/getting-started-rails.md). @@ -131,4 +131,3 @@ To instrument a server, add the `ElasticAPM::GRPC::ServerInterceptor`. ```ruby GRPC::RpcServer.new(interceptors: [ElasticAPM::GRPC::ServerInterceptor.new]) ``` - From 1d00d5a26ef21d79cc2026800d2da7e2b5ef0d95 Mon Sep 17 00:00:00 2001 From: Vlado Cingel Date: Fri, 24 Jul 2026 20:05:13 +0200 Subject: [PATCH 4/5] Only test Rails 8.1 with Ruby >= 3.4 --- .ci/.exclude.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.ci/.exclude.yml b/.ci/.exclude.yml index 232c2186c..4025f5dd9 100644 --- a/.ci/.exclude.yml +++ b/.ci/.exclude.yml @@ -140,13 +140,13 @@ exclude: - VERSION: ruby:3.1 FRAMEWORK: rails-5.1 - # Ony test Rails 8.1 with Ruby 4.0 - - VERSION: ruby:3.4 - FRAMEWORK: rails-8.1 + # Only test Rails 8.1 with Ruby >= 3.4 - VERSION: ruby:3.1 FRAMEWORK: rails-8.1 - VERSION: ruby:2.7 FRAMEWORK: rails-8.1 + - VERSION: ruby:2.6 + FRAMEWORK: rails-8.1 - VERSION: ruby:2.4 FRAMEWORK: rails-8.1 - VERSION: jruby:9.2 From b78768fe9b577d204ac753902ade3680d8b2ce26 Mon Sep 17 00:00:00 2001 From: Vlado Cingel Date: Fri, 24 Jul 2026 23:10:38 +0200 Subject: [PATCH 5/5] Only test Ruby 4 with Rails >= 7.0 --- .ci/.exclude.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.ci/.exclude.yml b/.ci/.exclude.yml index 4025f5dd9..940ae1db2 100644 --- a/.ci/.exclude.yml +++ b/.ci/.exclude.yml @@ -140,6 +140,16 @@ exclude: - VERSION: ruby:3.1 FRAMEWORK: rails-5.1 + # Only test Ruby 4 with Rails >= 7.0 + - VERSION: ruby:4.0 + FRAMEWORK: rails-6.1 + - VERSION: ruby:4.0 + FRAMEWORK: rails-5.2 + - VERSION: ruby:4.0 + FRAMEWORK: rails-5.1 + - VERSION: ruby:4.0 + FRAMEWORK: rails-4.2 + # Only test Rails 8.1 with Ruby >= 3.4 - VERSION: ruby:3.1 FRAMEWORK: rails-8.1