From e4ce6d9b555bcfc7fd42c086123cc2a30c942b59 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 13 Nov 2024 23:56:06 +0100 Subject: [PATCH] Gemfile migration --- Gemfile | 95 +--------------------------------------------- Gemfile-2.5 | 1 - Gemfile-2.6 | 1 - Gemfile-2.7 | 1 - Gemfile-3.0 | 1 - Gemfile-3.1 | 1 - Gemfile-3.2 | 1 - Gemfile-3.3 | 1 - Gemfile-3.4 | 1 - Gemfile-jruby-9.2 | 1 - Gemfile-jruby-9.3 | 1 - Gemfile-jruby-9.4 | 1 - docker-compose.yml | 22 +++++------ jruby-9.2.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ jruby-9.3.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ jruby-9.4.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-2.5.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-2.6.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-2.7.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-3.0.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-3.1.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-3.2.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-3.3.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ ruby-3.4.gemfile | 94 +++++++++++++++++++++++++++++++++++++++++++++ 24 files changed, 1046 insertions(+), 116 deletions(-) delete mode 120000 Gemfile-2.5 delete mode 120000 Gemfile-2.6 delete mode 120000 Gemfile-2.7 delete mode 120000 Gemfile-3.0 delete mode 120000 Gemfile-3.1 delete mode 120000 Gemfile-3.2 delete mode 120000 Gemfile-3.3 delete mode 120000 Gemfile-3.4 delete mode 120000 Gemfile-jruby-9.2 delete mode 120000 Gemfile-jruby-9.3 delete mode 120000 Gemfile-jruby-9.4 create mode 100644 jruby-9.2.gemfile create mode 100644 jruby-9.3.gemfile create mode 100644 jruby-9.4.gemfile create mode 100644 ruby-2.5.gemfile create mode 100644 ruby-2.6.gemfile create mode 100644 ruby-2.7.gemfile create mode 100644 ruby-3.0.gemfile create mode 100644 ruby-3.1.gemfile create mode 100644 ruby-3.2.gemfile create mode 100644 ruby-3.3.gemfile create mode 100644 ruby-3.4.gemfile diff --git a/Gemfile b/Gemfile index 4dbf105905..058d2a6477 100644 --- a/Gemfile +++ b/Gemfile @@ -1,94 +1 @@ -source 'https://rubygems.org' - -gemspec - -gem 'appraisal', '~> 2.4.0' -gem 'benchmark-ips', '~> 2.8' -gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ - -gem 'climate_control', '~> 0.2.0' - -gem 'concurrent-ruby' -gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog -gem 'json-schema', '< 3' # V3 only works with 2.5+ -gem 'memory_profiler', '~> 0.9' - -gem 'os', '~> 1.1' -gem 'pimpmychangelog', '>= 0.1.2' -gem 'pry' -if RUBY_PLATFORM != 'java' - # There's a few incompatibilities between pry/pry-byebug on older Rubies - # There's also a few temproary incompatibilities with newer rubies - gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' - gem 'pry-nav' if RUBY_VERSION < '2.6.0' - gem 'pry-stack_explorer' -else - gem 'pry-debugger-jruby' -end -gem 'rake', '>= 10.5' -gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions -gem 'rspec', '~> 3.13' -gem 'rspec-collection_matchers', '~> 1.1' -gem 'rspec-wait', '~> 0' - -gem 'rspec_junit_formatter', '>= 0.5.1' - -# Merging branch coverage results does not work for old, unsupported rubies and JRuby -# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, -# but given it only affects unsupported version of Ruby, it might not get merged. -gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' -gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov - -gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb -gem 'webmock', '>= 3.10.0' - -gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ - -if RUBY_VERSION.start_with?('3.4.') - # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out - gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' -elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 - gem 'webrick', '>= 1.7.0' -end - -if RUBY_VERSION >= '2.6.0' - # 1.50 is the last version to support Ruby 2.6 - gem 'rubocop', '~> 1.50.0', require: false - gem 'rubocop-packaging', '~> 0.5.2', require: false - gem 'rubocop-performance', '~> 1.9', require: false - # 2.20 is the last version to support Ruby 2.6 - gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false -end - -# Optional extensions -# TODO: Move this to Appraisals? -# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. -# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 -gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' - -# Profiler testing dependencies -# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. -# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add -# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. -if RUBY_PLATFORM != 'java' - if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems - gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] - else - gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] - end -end - -group :check do - if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' - gem 'rbs', '~> 3.6', require: false - gem 'steep', '~> 1.7.0', require: false - end - gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' - gem 'standard', require: false -end - -group :dev do - gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' -end - -gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' +eval_gemfile("#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION.split(".").take(2).join(".")}.gemfile") diff --git a/Gemfile-2.5 b/Gemfile-2.5 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-2.5 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-2.6 b/Gemfile-2.6 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-2.6 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-2.7 b/Gemfile-2.7 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-2.7 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-3.0 b/Gemfile-3.0 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-3.0 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-3.1 b/Gemfile-3.1 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-3.1 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-3.2 b/Gemfile-3.2 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-3.2 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-3.3 b/Gemfile-3.3 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-3.3 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-3.4 b/Gemfile-3.4 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-3.4 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-jruby-9.2 b/Gemfile-jruby-9.2 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-jruby-9.2 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-jruby-9.3 b/Gemfile-jruby-9.3 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-jruby-9.3 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-jruby-9.4 b/Gemfile-jruby-9.4 deleted file mode 120000 index 6ab79009c0..0000000000 --- a/Gemfile-jruby-9.4 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index fc39811f1f..88d53d5a13 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: - testagent env_file: ./.env environment: &common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.5 + BUNDLE_GEMFILE: /app/ruby-2.5.gemfile DD_AGENT_HOST: testagent DD_TRACE_AGENT_PORT: 9126 TEST_DATADOG_INTEGRATION: 1 @@ -45,7 +45,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.6 + BUNDLE_GEMFILE: /app/ruby-2.6.gemfile stdin_open: true tty: true volumes: @@ -61,7 +61,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.7 + BUNDLE_GEMFILE: /app/ruby-2.7.gemfile stdin_open: true tty: true volumes: @@ -77,7 +77,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-3.0 + BUNDLE_GEMFILE: /app/ruby-3.0.gemfile stdin_open: true tty: true volumes: @@ -93,7 +93,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-3.1 + BUNDLE_GEMFILE: /app/ruby-3.1.gemfile stdin_open: true tty: true volumes: @@ -109,7 +109,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-3.2 + BUNDLE_GEMFILE: /app/ruby-3.2.gemfile stdin_open: true tty: true volumes: @@ -125,7 +125,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-3.3 + BUNDLE_GEMFILE: /app/ruby-3.3.gemfile stdin_open: true tty: true volumes: @@ -141,7 +141,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-3.4 + BUNDLE_GEMFILE: /app/ruby-3.4.gemfile stdin_open: true tty: true volumes: @@ -158,7 +158,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-jruby-9.2 + BUNDLE_GEMFILE: /app/jruby-9.2.gemfile stdin_open: true tty: true volumes: @@ -173,7 +173,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-jruby-9.3 + BUNDLE_GEMFILE: /app/jruby-9.3.gemfile stdin_open: true tty: true volumes: @@ -188,7 +188,7 @@ services: env_file: ./.env environment: <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-jruby-9.4 + BUNDLE_GEMFILE: /app/jruby-9.4.gemfile stdin_open: true tty: true volumes: diff --git a/jruby-9.2.gemfile b/jruby-9.2.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/jruby-9.2.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/jruby-9.3.gemfile b/jruby-9.3.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/jruby-9.3.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/jruby-9.4.gemfile b/jruby-9.4.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/jruby-9.4.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-2.5.gemfile b/ruby-2.5.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-2.5.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-2.6.gemfile b/ruby-2.6.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-2.6.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-2.7.gemfile b/ruby-2.7.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-2.7.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-3.0.gemfile b/ruby-3.0.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-3.0.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-3.1.gemfile b/ruby-3.1.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-3.1.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-3.2.gemfile b/ruby-3.2.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-3.2.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-3.3.gemfile b/ruby-3.3.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-3.3.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3' diff --git a/ruby-3.4.gemfile b/ruby-3.4.gemfile new file mode 100644 index 0000000000..4dbf105905 --- /dev/null +++ b/ruby-3.4.gemfile @@ -0,0 +1,94 @@ +source 'https://rubygems.org' + +gemspec + +gem 'appraisal', '~> 2.4.0' +gem 'benchmark-ips', '~> 2.8' +gem 'benchmark-memory', '< 0.2' # V0.2 only works with 2.5+ + +gem 'climate_control', '~> 0.2.0' + +gem 'concurrent-ruby' +gem 'extlz4', '~> 0.3', '>= 0.3.3' if RUBY_PLATFORM != 'java' # Used to test lz4 compression done by libdatadog +gem 'json-schema', '< 3' # V3 only works with 2.5+ +gem 'memory_profiler', '~> 0.9' + +gem 'os', '~> 1.1' +gem 'pimpmychangelog', '>= 0.1.2' +gem 'pry' +if RUBY_PLATFORM != 'java' + # There's a few incompatibilities between pry/pry-byebug on older Rubies + # There's also a few temproary incompatibilities with newer rubies + gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby' && RUBY_VERSION < '3.2.0' + gem 'pry-nav' if RUBY_VERSION < '2.6.0' + gem 'pry-stack_explorer' +else + gem 'pry-debugger-jruby' +end +gem 'rake', '>= 10.5' +gem 'rake-compiler', '~> 1.1', '>= 1.1.1' # To compile native extensions +gem 'rspec', '~> 3.13' +gem 'rspec-collection_matchers', '~> 1.1' +gem 'rspec-wait', '~> 0' + +gem 'rspec_junit_formatter', '>= 0.5.1' + +# Merging branch coverage results does not work for old, unsupported rubies and JRuby +# We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972, +# but given it only affects unsupported version of Ruby, it might not get merged. +gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db' +gem 'simplecov-cobertura', '~> 2.1.0' # Used by codecov + +gem 'warning', '~> 1' # NOTE: Used in spec_helper.rb +gem 'webmock', '>= 3.10.0' + +gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/ + +if RUBY_VERSION.start_with?('3.4.') + # ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out + gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe' +elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0 + gem 'webrick', '>= 1.7.0' +end + +if RUBY_VERSION >= '2.6.0' + # 1.50 is the last version to support Ruby 2.6 + gem 'rubocop', '~> 1.50.0', require: false + gem 'rubocop-packaging', '~> 0.5.2', require: false + gem 'rubocop-performance', '~> 1.9', require: false + # 2.20 is the last version to support Ruby 2.6 + gem 'rubocop-rspec', ['~> 2.20', '< 2.21'], require: false +end + +# Optional extensions +# TODO: Move this to Appraisals? +# dogstatsd v5, but lower than 5.2, has possible memory leak with datadog. +# @see https://github.com/DataDog/dogstatsd-ruby/issues/182 +gem 'dogstatsd-ruby', '>= 3.3.0', '!= 5.0.0', '!= 5.0.1', '!= 5.1.0' + +# Profiler testing dependencies +# NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424. +# Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add +# to our CI, so we just shortcut and exclude specific versions that were affecting our CI. +if RUBY_PLATFORM != 'java' + if RUBY_VERSION >= '2.7.0' # Bundler 1.x fails to find that versions >= 3.8.0 are not compatible because of binary gems + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] + else + gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1', '< 3.19.2'] + end +end + +group :check do + if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' + gem 'rbs', '~> 3.6', require: false + gem 'steep', '~> 1.7.0', require: false + end + gem 'ruby_memcheck', '>= 3' if RUBY_VERSION >= '3.4.0' && RUBY_PLATFORM != 'java' + gem 'standard', require: false +end + +group :dev do + gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java' +end + +gem 'uri', '~> 0.13.1' if RUBY_VERSION.start_with? '3'