diff --git a/.ci/.exclude.yml b/.ci/.exclude.yml index c3b6c1b95..940ae1db2 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,31 @@ exclude: FRAMEWORK: rails-5.2 - 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 + - 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 + 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 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]) ``` - 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)/})