From be4718956266af82cc984e3fe5aa710f6cdab1d5 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 14 Aug 2024 12:04:52 +0200 Subject: [PATCH 01/44] Add http.route to rails journey router --- .../action_dispatch/instrumentation.rb | 61 +++++++++++++++++++ .../action_pack/action_dispatch/patcher.rb | 33 ++++++++++ .../tracing/contrib/action_pack/patcher.rb | 2 + lib/datadog/tracing/metadata/ext.rb | 1 + sig/datadog/tracing/metadata/ext.rbs | 1 + .../action_dispatch/instrumentation_spec.rb | 28 +++++++++ 6 files changed, 126 insertions(+) create mode 100644 lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb create mode 100644 lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb create mode 100644 spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb new file mode 100644 index 00000000000..cab649229b2 --- /dev/null +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -0,0 +1,61 @@ +# frozen_string_literal: true + +require_relative '../../../metadata/ext' + +module Datadog + module Tracing + module Contrib + module ActionPack + module ActionDispatch + # Instrumentation for ActionDispatch components + module Instrumentation + module_function + + def add_http_route_tag(http_route) + return unless Tracing.enabled? + + active_span = Tracing.active_span + return if active_span.nil? + + active_span.set_tag( + Tracing::Metadata::Ext::HTTP::TAG_ROUTE, + http_route.gsub(/\(.:format\)$/, '') + ) + rescue StandardError => e + Datadog.logger.error(e.message) + end + + # Instrumentation for ActionDispatch::Journey components + module Journey + # Instrumentation for ActionDispatch::Journey::Router + # for Rails versions older than 7.1 + module Router + def find_routes(req) + result = super(req) + + Instrumentation.add_http_route_tag(result.last.last.path.spec.to_s) + + result + end + end + + # Since Rails 7.1 `Router#serve` adds `#route_uri_pattern` attribute + # to the request, and the `Router#find_routes` now takes a block as + # an argument to make the route computation lazy + # https://github.com/rails/rails/commit/35b280fcc2d5d474f9f2be3aca3ae7aa6bba66eb + module LazyRouter + def serve(req) + response = super + + Instrumentation.add_http_route_tag(req.route_uri_pattern) + + response + end + end + end + end + end + end + end + end +end diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb new file mode 100644 index 00000000000..f73d95acead --- /dev/null +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require_relative '../../patcher' +require_relative 'instrumentation' + +module Datadog + module Tracing + module Contrib + module ActionPack + module ActionDispatch + # Patcher for ActionController components + module Patcher + include Contrib::Patcher + + module_function + + def target_version + Integration.version + end + + def patch + if ::Rails.gem_version >= Gem::Version.new(7.1) + ::ActionDispatch::Journey::Router.prepend(ActionDispatch::Instrumentation::Journey::LazyRouter) + else + ::ActionDispatch::Journey::Router.prepend(ActionDispatch::Instrumentation::Journey::Router) + end + end + end + end + end + end + end +end diff --git a/lib/datadog/tracing/contrib/action_pack/patcher.rb b/lib/datadog/tracing/contrib/action_pack/patcher.rb index c124718921d..ebab1741813 100644 --- a/lib/datadog/tracing/contrib/action_pack/patcher.rb +++ b/lib/datadog/tracing/contrib/action_pack/patcher.rb @@ -2,6 +2,7 @@ require_relative '../patcher' require_relative 'action_controller/patcher' +require_relative 'action_dispatch/patcher' module Datadog module Tracing @@ -19,6 +20,7 @@ def target_version def patch ActionController::Patcher.patch + ActionDispatch::Patcher.patch end end end diff --git a/lib/datadog/tracing/metadata/ext.rb b/lib/datadog/tracing/metadata/ext.rb index 02b87b86877..c32f4f41d72 100644 --- a/lib/datadog/tracing/metadata/ext.rb +++ b/lib/datadog/tracing/metadata/ext.rb @@ -87,6 +87,7 @@ module HTTP TAG_STATUS_CODE = 'http.status_code' TAG_USER_AGENT = 'http.useragent' TAG_URL = 'http.url' + TAG_ROUTE = 'http.route' TYPE_INBOUND = AppTypes::TYPE_WEB.freeze TYPE_OUTBOUND = 'http' TYPE_PROXY = 'proxy' diff --git a/sig/datadog/tracing/metadata/ext.rbs b/sig/datadog/tracing/metadata/ext.rbs index aeca3b827a1..9820be2b123 100644 --- a/sig/datadog/tracing/metadata/ext.rbs +++ b/sig/datadog/tracing/metadata/ext.rbs @@ -45,6 +45,7 @@ module Datadog TAG_STATUS_CODE: ::String TAG_USER_AGENT: ::String TAG_URL: ::String + TAG_ROUTE: ::String TYPE_INBOUND: untyped TYPE_OUTBOUND: ::String TYPE_PROXY: ::String diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb new file mode 100644 index 00000000000..aa542767f86 --- /dev/null +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -0,0 +1,28 @@ +require 'datadog/tracing/contrib/support/spec_helper' + +require 'datadog' +require 'datadog/tracing/contrib/action_pack/action_dispatch/instrumentation' + +RSpec.describe Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Instrumentation do + describe '::add_http_route_tag' do + let(:active_span) { active_trace.active_span } + let(:http_route) { '/api/users/:id(.:format)' } + + it 'sets http_route tag' do + Datadog::Tracing.trace('web.request') do |_span_op, _trace_op| + described_class.add_http_route_tag(http_route) + end + + expect(spans).to have(1).item + expect(spans.first.tags).to have_key('http.route') + end + + it 'removes (.:format) route part' do + Datadog::Tracing.trace('web.request') do |_span_op, _trace_op| + described_class.add_http_route_tag(http_route) + end + + expect(spans.first.tags.fetch('http.route')).to eq('/api/users/:id') + end + end +end From 0cc1427a6d5b0b3fc9b3d27cc0bfe99e2e409633 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 14 Aug 2024 18:47:04 +0200 Subject: [PATCH 02/44] Add http.route tag to sinatra route span --- lib/datadog/tracing/contrib/sinatra/tracer.rb | 1 + lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb | 5 ++++- spec/datadog/tracing/contrib/sinatra/tracer_spec.rb | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/datadog/tracing/contrib/sinatra/tracer.rb b/lib/datadog/tracing/contrib/sinatra/tracer.rb index 4c535c0c8c8..87a41d91b6f 100644 --- a/lib/datadog/tracing/contrib/sinatra/tracer.rb +++ b/lib/datadog/tracing/contrib/sinatra/tracer.rb @@ -59,6 +59,7 @@ def route_eval ) do |span, trace| span.set_tag(Ext::TAG_APP_NAME, settings.name || settings.superclass.name) span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) + span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, datadog_route) if request.script_name && !request.script_name.empty? span.set_tag(Ext::TAG_SCRIPT_NAME, request.script_name) diff --git a/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb b/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb index 6a6e2d015a8..483cb3562e0 100644 --- a/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +++ b/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb @@ -49,7 +49,10 @@ def call(env) datadog_route = Sinatra::Env.route_path(env) - span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) if datadog_route + if datadog_route + span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) + span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, datadog_route) + end if request.script_name && !request.script_name.empty? span.set_tag(Ext::TAG_SCRIPT_NAME, request.script_name) diff --git a/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb b/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb index 68e1bc3816a..a203d4f9d38 100644 --- a/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb +++ b/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb @@ -557,6 +557,7 @@ expect(span.resource).to eq(resource) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_METHOD)).to eq(http_method) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_URL)).to eq(url) + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq(url) expect(span.get_tag('http.response.headers.content-type')).to eq('text/html;charset=utf-8') expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_ROUTE_PATH)).to eq(url) expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_SCRIPT_NAME)).to be_nil @@ -590,6 +591,7 @@ expect(span.resource).to eq(resource) expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_APP_NAME)).to eq(opts[:app_name]) expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_ROUTE_PATH)).to eq(url) + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq(url) expect(span.type).to eq(Datadog::Tracing::Metadata::Ext::HTTP::TYPE_INBOUND) expect(span).to_not have_error expect(span.parent_id).to be(opts[:parent].id) if opts[:parent] From 632e687735050b2800c3c673d04daa06b2ee61c3 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 15 Aug 2024 11:46:56 +0200 Subject: [PATCH 03/44] Add comment to Journey::Router instrumentation --- .../contrib/action_pack/action_dispatch/instrumentation.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index cab649229b2..00abb3f4281 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -14,6 +14,7 @@ module Instrumentation def add_http_route_tag(http_route) return unless Tracing.enabled? + # TODO: check how it behaves with rails engine active_span = Tracing.active_span return if active_span.nil? @@ -33,7 +34,10 @@ module Router def find_routes(req) result = super(req) - Instrumentation.add_http_route_tag(result.last.last.path.spec.to_s) + # Journey::Router#find_routes retuns an array for each matching route. + # This array is [match_data, path_parameters, route]. + # We need the route object, since it has a path with route specification. + Instrumentation.add_http_route_tag(result.last&.last&.path&.spec.to_s) result end From 8e4df6121dc2cf54689e2d395f42ab89bcd19f90 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 15 Aug 2024 14:20:39 +0200 Subject: [PATCH 04/44] Fix http route identification for rails engines --- .../action_dispatch/instrumentation.rb | 53 +++++++++++++------ .../action_dispatch/instrumentation_spec.rb | 24 ++++----- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 00abb3f4281..2b2abd8d2fc 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -11,19 +11,15 @@ module ActionDispatch module Instrumentation module_function - def add_http_route_tag(http_route) - return unless Tracing.enabled? + def set_http_route_tag(http_route) + return if http_route.nil? - # TODO: check how it behaves with rails engine - active_span = Tracing.active_span - return if active_span.nil? + trace = Tracing.active_trace || TraceOperation.new - active_span.set_tag( + trace.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, http_route.gsub(/\(.:format\)$/, '') ) - rescue StandardError => e - Datadog.logger.error(e.message) end # Instrumentation for ActionDispatch::Journey components @@ -34,24 +30,49 @@ module Router def find_routes(req) result = super(req) - # Journey::Router#find_routes retuns an array for each matching route. - # This array is [match_data, path_parameters, route]. - # We need the route object, since it has a path with route specification. - Instrumentation.add_http_route_tag(result.last&.last&.path&.spec.to_s) + return response unless Tracing.enabled? + + begin + # Journey::Router#find_routes retuns an array for each matching route. + # This array is [match_data, path_parameters, route]. + # We need the route object, since it has a path with route specification. + current_route = result.last&.last&.path&.spec.to_s + + # When Rails is serving requests to Rails Engine routes, this function is called + # twice: first time for the route on which the engine is mounted, and second + # time for the internal engine route. + last_route = Tracing.active_trace&.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) + Instrumentation.set_http_route_tag(last_route.to_s + current_route) + rescue StandardError => e + Datadog.logger.error(e.message) + end result end end - # Since Rails 7.1 `Router#serve` adds `#route_uri_pattern` attribute - # to the request, and the `Router#find_routes` now takes a block as - # an argument to make the route computation lazy + # Since Rails 7.1 `Router#serve` adds `#route_uri_pattern` attribute to the request, + # and the `Router#find_routes` now takes a block as an argument to make the route computation lazy # https://github.com/rails/rails/commit/35b280fcc2d5d474f9f2be3aca3ae7aa6bba66eb module LazyRouter def serve(req) response = super - Instrumentation.add_http_route_tag(req.route_uri_pattern) + return response unless Tracing.enabled? + + begin + return response if req.route_uri_pattern.nil? + + # For normal Rails routes `#route_uri_pattern` is the full route and `#script_name` is nil. + # + # For Rails Engine routes `#route_uri_pattern` is the route as defined in the engine, + # and `#script_name` is the route prefix at which the engine is mounted. + http_route = req.script_name.to_s + req.route_uri_pattern + + Instrumentation.set_http_route_tag(http_route) + rescue StandardError => e + Datadog.logger.error(e.message) + end response end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb index aa542767f86..1d1b51e6b54 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -4,25 +4,21 @@ require 'datadog/tracing/contrib/action_pack/action_dispatch/instrumentation' RSpec.describe Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Instrumentation do - describe '::add_http_route_tag' do - let(:active_span) { active_trace.active_span } - let(:http_route) { '/api/users/:id(.:format)' } + describe '::set_http_route_tag' do + it 'sets http_route tag without (.:format) part' do + Datadog::Tracing.trace('web.request') do |_span_op, trace_op| + described_class.set_http_route_tag('/api/users/:id(.:format)') - it 'sets http_route tag' do - Datadog::Tracing.trace('web.request') do |_span_op, _trace_op| - described_class.add_http_route_tag(http_route) + expect(trace_op.tags.fetch('http.route')).to eq('/api/users/:id') end - - expect(spans).to have(1).item - expect(spans.first.tags).to have_key('http.route') end - it 'removes (.:format) route part' do - Datadog::Tracing.trace('web.request') do |_span_op, _trace_op| - described_class.add_http_route_tag(http_route) - end + it 'does not set http_route tag when the route is nil' do + Datadog::Tracing.trace('web.request') do |_span_op, trace_op| + described_class.set_http_route_tag(nil) - expect(spans.first.tags.fetch('http.route')).to eq('/api/users/:id') + expect(trace_op.tags).not_to have_key('http.route') + end end end end From fc667ff0d4ffa9bf8c7c61076d2a8b45528e206d Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 15 Aug 2024 17:42:35 +0200 Subject: [PATCH 05/44] Fix version checking for ActionPack patcher We are not loading Rails in specs for this patcher, and we should check `ActionPack` version instead. --- .../tracing/contrib/action_pack/action_dispatch/patcher.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb index f73d95acead..5d13d8cb223 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb @@ -19,7 +19,7 @@ def target_version end def patch - if ::Rails.gem_version >= Gem::Version.new(7.1) + if ::ActionPack.gem_version >= Gem::Version.new(7.1) ::ActionDispatch::Journey::Router.prepend(ActionDispatch::Instrumentation::Journey::LazyRouter) else ::ActionDispatch::Journey::Router.prepend(ActionDispatch::Instrumentation::Journey::Router) From 8c96b50d6233c2474dc5b472e49c6d704c8bf2c7 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 16 Aug 2024 12:12:27 +0200 Subject: [PATCH 06/44] Add type signatures for action pack patcher and instrumentation --- .../action_dispatch/instrumentation.rbs | 21 +++++++++++++++++++ .../action_pack/action_dispatch/patcher.rbs | 17 +++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 sig/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rbs create mode 100644 sig/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rbs diff --git a/sig/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rbs b/sig/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rbs new file mode 100644 index 00000000000..87364b3d313 --- /dev/null +++ b/sig/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rbs @@ -0,0 +1,21 @@ +module Datadog + module Tracing + module Contrib + module ActionPack + module ActionDispatch + module Instrumentation + def self?.set_http_route_tag: (untyped http_route) -> (nil | untyped) + module Journey + module Router + def find_routes: (untyped req) -> untyped + end + module LazyRouter + def serve: (untyped req) -> untyped + end + end + end + end + end + end + end +end diff --git a/sig/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rbs b/sig/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rbs new file mode 100644 index 00000000000..c4ade81bee1 --- /dev/null +++ b/sig/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rbs @@ -0,0 +1,17 @@ +module Datadog + module Tracing + module Contrib + module ActionPack + module ActionDispatch + module Patcher + include Contrib::Patcher + + def self?.target_version: () -> untyped + + def self?.patch: () -> untyped + end + end + end + end + end +end From 4014673a3afc78e80af198b2a28eb2d39646af38 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 16 Aug 2024 16:42:55 +0200 Subject: [PATCH 07/44] Add http.route to Grape --- lib/datadog/tracing/contrib/grape/endpoint.rb | 1 + .../tracing/contrib/grape/tracer_spec.rb | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/lib/datadog/tracing/contrib/grape/endpoint.rb b/lib/datadog/tracing/contrib/grape/endpoint.rb index 834a0ce1da7..d1c0e527066 100644 --- a/lib/datadog/tracing/contrib/grape/endpoint.rb +++ b/lib/datadog/tracing/contrib/grape/endpoint.rb @@ -60,6 +60,7 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN) + span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, path) if path Thread.current[KEY_RUN] = true rescue StandardError => e diff --git a/spec/datadog/tracing/contrib/grape/tracer_spec.rb b/spec/datadog/tracing/contrib/grape/tracer_spec.rb index 08be34f2eed..80970cd3368 100644 --- a/spec/datadog/tracing/contrib/grape/tracer_spec.rb +++ b/spec/datadog/tracing/contrib/grape/tracer_spec.rb @@ -197,6 +197,9 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/success') + expect(run_span.get_tag('http.status_code')).to eq('200') end end @@ -263,6 +266,8 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/filtered/before_after') expect(run_span.get_tag('http.status_code')).to eq('200') end @@ -296,6 +301,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/hard_failure') end end end @@ -351,6 +358,8 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/hard_failure') # Status code has not been set yet at this instrumentation point expect(run_span.get_tag('http.status_code')).to be_nil end @@ -402,6 +411,8 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/filtered_exception/before') end end end @@ -419,6 +430,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') end context 'and error_responses' do @@ -435,6 +448,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') end end @@ -452,6 +467,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') end end @@ -469,6 +486,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') end end @@ -486,6 +505,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') end end end @@ -533,6 +554,8 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') expect(run_span.get_tag('http.status_code')).to eq('500') end @@ -583,6 +606,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/widgets') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/widgets') end end @@ -629,6 +654,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/widgets') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('POST') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/widgets') end end @@ -665,6 +692,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/nested/widgets') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/nested/widgets') end end end @@ -752,6 +781,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/success') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/success') expect(rack_span.name).to eq('rack.request') expect(rack_span.type).to eq('web') @@ -817,6 +848,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/hard_failure') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/hard_failure') expect(rack_span.name).to eq('rack.request') expect(rack_span.type).to eq('web') @@ -845,6 +878,8 @@ expect(span.resource).to eq('GET 404') expect(span).to_not have_error expect(span).to be_root_span + expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to be_nil end end @@ -859,6 +894,8 @@ run_span = spans.find { |s| s.name == 'grape.endpoint_run' } expect(run_span.name).to eq('grape.endpoint_run') expect(run_span.resource).to eq('RackTestingAPI GET /span_resource_rack/span_resource') + expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/span_resource_rack/span_resource') end it 'sets the trace resource before calling the endpoint' do From 7d47f3e8cfe3779709ccbc1c9da6a01bc5e37ddc Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 16 Aug 2024 18:06:22 +0200 Subject: [PATCH 08/44] Add integration tests for Rails journey router patch --- .../action_dispatch/instrumentation.rb | 10 +- .../action_dispatch/instrumentation_spec.rb | 8 +- .../action_dispatch/journey/router_spec.rb | 94 ++++++++ .../tracing/contrib/rails/support/rails7.rb | 219 ++++++++++++++++++ 4 files changed, 323 insertions(+), 8 deletions(-) create mode 100644 spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb create mode 100644 spec/datadog/tracing/contrib/rails/support/rails7.rb diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 2b2abd8d2fc..d5bb8aecfcf 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -14,9 +14,10 @@ module Instrumentation def set_http_route_tag(http_route) return if http_route.nil? - trace = Tracing.active_trace || TraceOperation.new + active_span = Tracing.active_span + return unless active_span - trace.set_tag( + active_span.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, http_route.gsub(/\(.:format\)$/, '') ) @@ -36,13 +37,14 @@ def find_routes(req) # Journey::Router#find_routes retuns an array for each matching route. # This array is [match_data, path_parameters, route]. # We need the route object, since it has a path with route specification. - current_route = result.last&.last&.path&.spec.to_s + current_route = result.last&.last&.path&.spec + return unless current_route # When Rails is serving requests to Rails Engine routes, this function is called # twice: first time for the route on which the engine is mounted, and second # time for the internal engine route. last_route = Tracing.active_trace&.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) - Instrumentation.set_http_route_tag(last_route.to_s + current_route) + Instrumentation.set_http_route_tag(last_route.to_s + current_route.to_s) rescue StandardError => e Datadog.logger.error(e.message) end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb index 1d1b51e6b54..b2fd06d90f5 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -6,18 +6,18 @@ RSpec.describe Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Instrumentation do describe '::set_http_route_tag' do it 'sets http_route tag without (.:format) part' do - Datadog::Tracing.trace('web.request') do |_span_op, trace_op| + Datadog::Tracing.trace('web.request') do |span_op, _trace_op| described_class.set_http_route_tag('/api/users/:id(.:format)') - expect(trace_op.tags.fetch('http.route')).to eq('/api/users/:id') + expect(span_op.tags.fetch('http.route')).to eq('/api/users/:id') end end it 'does not set http_route tag when the route is nil' do - Datadog::Tracing.trace('web.request') do |_span_op, trace_op| + Datadog::Tracing.trace('web.request') do |span_op, _trace_op| described_class.set_http_route_tag(nil) - expect(trace_op.tags).not_to have_key('http.route') + expect(span_op.tags).not_to have_key('http.route') end end end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb new file mode 100644 index 00000000000..6eb9efc2e9b --- /dev/null +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -0,0 +1,94 @@ +require 'datadog/tracing/contrib/support/spec_helper' +require 'datadog/tracing/contrib/action_pack/action_dispatch/instrumentation' + +require 'action_pack' +require 'action_controller/railtie' +require 'active_job/railtie' +require 'rails/test_unit/railtie' + +require 'spec/datadog/tracing/contrib/rails/support/configuration' +require 'spec/datadog/tracing/contrib/rails/support/application' + +RSpec.describe 'Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Journey::Router' do + let(:no_db) { true } + + include Rack::Test::Methods + include_context 'Rails test application' + + after do + Datadog.configuration.tracing[:action_pack].reset! + Datadog.registry[:rack].reset_configuration! + end + + describe '#serve' do + before do + rails_test_application.instance.routes.append do + namespace :api, defaults: { format: :json } do + resources :users, only: %i[show] + end + end + end + + let(:controllers) { [controller] } + + let(:controller) do + stub_const( + 'UsersController', + Class.new(ActionController::Base) do + def show + head :ok + end + end + ) + end + + context 'with default configuration' do + before do + Datadog.configure do |c| + c.tracing.instrument :rack + c.tracing.instrument :action_pack + end + + clear_traces! + end + + it 'sets http.route when requesting a known route' do + get '/api/users/1' + + rack_span = spans.first + + expect(rack_span).to be_root_span + expect(rack_span.name).to eq('rack.request') + + expect(rack_span.get_tag('http.route')).to eq('/api/users/:id') + end + + it 'sets no http.route when requesting an unknown route' do + get '/nope' + + rack_span = spans.first + + expect(rack_span).to be_root_span + expect(rack_span.name).to eq('rack.request') + + expect(rack_span.tags).not_to have_key('http.route') + end + end + + context 'when tracing is disabled' do + before do + Datadog.configure do |c| + c.tracing.enabled = false + end + + clear_traces! + end + + it 'sets http.route when requesting a known route' do + get '/api/users/1' + + expect(spans).to be_empty + end + end + end +end diff --git a/spec/datadog/tracing/contrib/rails/support/rails7.rb b/spec/datadog/tracing/contrib/rails/support/rails7.rb new file mode 100644 index 00000000000..77294f13ff9 --- /dev/null +++ b/spec/datadog/tracing/contrib/rails/support/rails7.rb @@ -0,0 +1,219 @@ +# Loaded by the `bin/rails` script in a real Rails application +require 'rails/command' + +# We may not always want to require rails/all, especially when we don't have a database. +# require is already done where Rails test application is used, manually or through rails_helper. + +if ENV['USE_SIDEKIQ'] + require 'sidekiq/testing' + require 'datadog/tracing/contrib/sidekiq/server_tracer' +end + +RSpec.shared_context 'Rails 7 test application' do + let(:rails_base_application) do + klass = Class.new(Rails::Application) do + def config.database_configuration + parsed = super + raise parsed.to_yaml # Replace this line to add custom connections to the hash from database.yml + end + end + during_init = initialize_block + + klass.send(:define_method, :initialize) do |*args| + super(*args) + redis_cache = + if Gem.loaded_specs['redis-activesupport'] + [:redis_store, { url: ENV['REDIS_URL'] }] + else + [:redis_cache_store, { url: ENV['REDIS_URL'] }] + end + file_cache = [:file_store, '/tmp/datadog-rb/cache/'] + + config.load_defaults '7.0' + config.secret_key_base = 'f624861242e4ccf20eacb6bb48a886da' + config.active_record.cache_versioning = false if Gem.loaded_specs['redis-activesupport'] + config.cache_store = ENV['REDIS_URL'] ? redis_cache : file_cache + config.eager_load = false + config.consider_all_requests_local = true + config.hosts.clear # Allow requests for any hostname during tests + config.active_support.remove_deprecated_time_with_zone_name = false + + instance_eval(&during_init) + + config.active_job.queue_adapter = :inline + if ENV['USE_SIDEKIQ'] + config.active_job.queue_adapter = :sidekiq + # add Sidekiq middleware + Sidekiq::Testing.server_middleware do |chain| + chain.add( + Datadog::Tracing::Contrib::Sidekiq::ServerTracer + ) + end + end + end + + before_test_init = before_test_initialize_block + after_test_init = after_test_initialize_block + + klass.send(:define_method, :test_initialize!) do + # we want to disable explicit instrumentation + # when testing auto patching + if ENV['TEST_AUTO_INSTRUMENT'] == 'true' + require 'datadog/auto_instrument' + else + # Enables the auto-instrumentation for the testing application + Datadog.configure do |c| + c.tracing.instrument :rails + c.tracing.instrument :redis if Gem.loaded_specs['redis'] && defined?(::Redis) + end + end + + Rails.application.config.active_job.queue_adapter = if ENV['USE_SIDEKIQ'] + :sidekiq + else + :inline + end + + Rails.application.config.file_watcher = Class.new(ActiveSupport::FileUpdateChecker) do + # When running in full application mode, Rails tries to monitor + # the file system for changes. This causes issues when using + # {ActionView::FixtureResolver} to mock the filesystem for templates + # as this test resolver wasn't meant to work with a full application. + # + # Because {ActionView::FixtureResolver} doesn't have a complete filesystem, + # it sets its base path to '', which later in the file watcher gets translated to: + # "Monitor '**/*' for changes", which means monitoring the whole system, causing + # many "permission denied errors". + # + # This method removes the blank path ('') created by {ActionView::FixtureResolver} + # in order to allow the file watcher to skip monitoring the "filesystem changes" + # of the in-memory fixtures. + def initialize(files, dirs = {}, &block) + dirs = dirs.delete('') if dirs.include?('') + + super(files, dirs, &block) + end + end + + before_test_init.call + initialize! + after_test_init.call + end + Class.new(klass) + end + + let(:before_test_initialize_block) do + proc do + append_routes! + end + end + + let(:after_test_initialize_block) do + proc do + # Rails autoloader recommends controllers to be loaded + # after initialization. This will be enforced when `zeitwerk` + # becomes the only supported autoloader. + append_controllers! + + # Force connection to initialize, and dump some spans + application_record.connection unless (defined? no_db) && no_db + + # Skip default Rails exception page rendering. + # This avoid polluting the trace under test + # with render and partial_render templates for the + # error page. + # + # We could completely disable the {DebugExceptions} middleware, + # but that affects Rails' internal error propagation logic. + # render_for_browser_request(request, wrapper) + allow_any_instance_of(::ActionDispatch::DebugExceptions).to receive(:render_exception) do |this, env, exception| + wrapper = ::ActionDispatch::ExceptionWrapper.new(env, exception) + + this.send(:render, wrapper.status_code, 'Test error response body', 'text/plain') + end + end + end + + before do + reset_rails_configuration! + end + + after do + reset_rails_configuration! + + # Push this to base when Rails 3 removed + # Reset references stored in the Rails class + Rails.app_class = nil + Rails.cache = nil + end + + def append_routes! + # Make sure to load controllers first + # otherwise routes won't draw properly. + test_routes = routes + + rails_test_application.instance.routes.append do + test_routes.each do |k, v| + if k.is_a?(Array) + send(k.first, k.last => v) + else + get k => v + end + end + end + + # ActionText requires ApplicationController to be loaded since Rails 6 + example = self + ActiveSupport.on_load(:action_text_content) do + example.stub_const('ApplicationController', Class.new(ActionController::Base)) + end + end + + def append_controllers! + controllers + end + + # Rails 5 leaves a bunch of global class configuration on Rails::Railtie::Configuration in class variables + # We need to reset these so they don't carry over between example runs + def reset_rails_configuration! + # Reset autoloaded constants + ActiveSupport::Dependencies.clear if Rails.application + + # TODO: Remove this side-effect on missing log entries + Lograge.remove_existing_log_subscriptions if defined?(::Lograge) + + if Module.const_defined?(:ActiveRecord) + reset_class_variable(ActiveRecord::Railtie::Configuration, :@@options) + + # After `deep_dup`, the sentinel `NULL_OPTION` is inadvertently changed. We restore it here. + if Rails::VERSION::MINOR < 1 + ActiveRecord::Railtie.config.action_view.finalize_compiled_template_methods = ActionView::Railtie::NULL_OPTION + end + end + + ActiveSupport::Dependencies.autoload_paths = [] + ActiveSupport::Dependencies.autoload_once_paths = [] + ActiveSupport::Dependencies._eager_load_paths = Set.new + ActiveSupport::Dependencies._autoloaded_tracked_classes = Set.new + + Rails::Railtie::Configuration.class_variable_set(:@@eager_load_namespaces, nil) + Rails::Railtie::Configuration.class_variable_set(:@@watchable_files, nil) + Rails::Railtie::Configuration.class_variable_set(:@@watchable_dirs, nil) + if Rails::Railtie::Configuration.class_variable_defined?(:@@app_middleware) + Rails::Railtie::Configuration.class_variable_set(:@@app_middleware, Rails::Configuration::MiddlewareStackProxy.new) + end + Rails::Railtie::Configuration.class_variable_set(:@@app_generators, nil) + Rails::Railtie::Configuration.class_variable_set(:@@to_prepare_blocks, nil) + end + + # Resets configuration that needs to be restored to its original value + # between each run of a Rails application. + def reset_class_variable(clazz, variable) + value = Datadog::Tracing::Contrib::Rails::Test::Configuration.fetch( + "#{clazz}.#{variable}", + clazz.class_variable_get(variable) + ) + + clazz.class_variable_set(variable, value.deep_dup) + end +end From 73d570667b1582ff9bfecbc07cf8a2ffc37972a1 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 16 Aug 2024 18:08:40 +0200 Subject: [PATCH 09/44] Fix comment in rails 7 spec support file --- spec/datadog/tracing/contrib/rails/support/rails7.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/datadog/tracing/contrib/rails/support/rails7.rb b/spec/datadog/tracing/contrib/rails/support/rails7.rb index 77294f13ff9..8e185eb5283 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails7.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails7.rb @@ -173,7 +173,7 @@ def append_controllers! controllers end - # Rails 5 leaves a bunch of global class configuration on Rails::Railtie::Configuration in class variables + # Rails leaves a bunch of global class configuration on Rails::Railtie::Configuration in class variables # We need to reset these so they don't carry over between example runs def reset_rails_configuration! # Reset autoloaded constants From 3cd9d3ee9ddd0b3f3f9da5d3a2432a5d2cae94ef Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 16 Aug 2024 18:16:20 +0200 Subject: [PATCH 10/44] Add rails7 spec helper file to rubocop ignore list --- .rubocop_todo.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 99797623fbf..ca95277508c 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -131,3 +131,4 @@ Style/ClassVars: - 'spec/datadog/tracing/contrib/rails/support/rails4.rb' - 'spec/datadog/tracing/contrib/rails/support/rails5.rb' - 'spec/datadog/tracing/contrib/rails/support/rails6.rb' + - 'spec/datadog/tracing/contrib/rails/support/rails7.rb' From 7bd59cb732c0966d9b36f9df919ed0332baa3060 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Mon, 19 Aug 2024 10:14:19 +0200 Subject: [PATCH 11/44] Remove active_job require from Journey test --- .../action_dispatch/journey/router_spec.rb | 2 +- .../tracing/contrib/rails/support/rails7.rb | 26 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index 6eb9efc2e9b..67f29f13a4c 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -3,7 +3,7 @@ require 'action_pack' require 'action_controller/railtie' -require 'active_job/railtie' +require 'action_view/railtie' require 'rails/test_unit/railtie' require 'spec/datadog/tracing/contrib/rails/support/configuration' diff --git a/spec/datadog/tracing/contrib/rails/support/rails7.rb b/spec/datadog/tracing/contrib/rails/support/rails7.rb index 8e185eb5283..abff99660d5 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails7.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails7.rb @@ -40,14 +40,16 @@ def config.database_configuration instance_eval(&during_init) - config.active_job.queue_adapter = :inline - if ENV['USE_SIDEKIQ'] - config.active_job.queue_adapter = :sidekiq - # add Sidekiq middleware - Sidekiq::Testing.server_middleware do |chain| - chain.add( - Datadog::Tracing::Contrib::Sidekiq::ServerTracer - ) + if defined?(ActiveJob) + config.active_job.queue_adapter = :inline + if ENV['USE_SIDEKIQ'] + config.active_job.queue_adapter = :sidekiq + # add Sidekiq middleware + Sidekiq::Testing.server_middleware do |chain| + chain.add( + Datadog::Tracing::Contrib::Sidekiq::ServerTracer + ) + end end end end @@ -68,11 +70,9 @@ def config.database_configuration end end - Rails.application.config.active_job.queue_adapter = if ENV['USE_SIDEKIQ'] - :sidekiq - else - :inline - end + if defined?(ActiveJob) + Rails.application.config.active_job.queue_adapter = ENV['USE_SIDEKIQ'] ? :sidekiq : :inline + end Rails.application.config.file_watcher = Class.new(ActiveSupport::FileUpdateChecker) do # When running in full application mode, Rails tries to monitor From aa4cf484489e651501adb26686d1e28630054538 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Mon, 19 Aug 2024 10:44:06 +0200 Subject: [PATCH 12/44] Fix rails configuration spec helpers --- .../action_dispatch/instrumentation.rb | 2 +- .../tracing/contrib/rails/rack_spec.rb | 6 +++ .../tracing/contrib/rails/support/rails5.rb | 32 ++++++++------- .../tracing/contrib/rails/support/rails6.rb | 40 ++++++++++--------- .../tracing/contrib/rails/support/rails7.rb | 13 ++---- 5 files changed, 49 insertions(+), 44 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index d5bb8aecfcf..bea7947f1bd 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -38,7 +38,7 @@ def find_routes(req) # This array is [match_data, path_parameters, route]. # We need the route object, since it has a path with route specification. current_route = result.last&.last&.path&.spec - return unless current_route + return result unless current_route # When Rails is serving requests to Rails Engine routes, this function is called # twice: first time for the route on which the engine is mounted, and second diff --git a/spec/datadog/tracing/contrib/rails/rack_spec.rb b/spec/datadog/tracing/contrib/rails/rack_spec.rb index f0b58c89231..27395a4217b 100644 --- a/spec/datadog/tracing/contrib/rails/rack_spec.rb +++ b/spec/datadog/tracing/contrib/rails/rack_spec.rb @@ -144,6 +144,7 @@ def internal_server_error expect(request_span.service).to eq(tracer.default_service) expect(request_span.resource).to eq('TestController#full') expect(request_span.get_tag('http.url')).to eq('/full') + expect(request_span.get_tag('http.route')).to eq('/full') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('200') expect(request_span).to be_measured @@ -379,6 +380,7 @@ def internal_server_error expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#error') expect(request_span.get_tag('http.url')).to eq('/error') + expect(request_span.get_tag('http.route')).to eq('/error') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('500') expect(request_span).to have_error @@ -414,6 +416,7 @@ def internal_server_error expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#soft_error') expect(request_span.get_tag('http.url')).to eq('/soft_error') + expect(request_span.get_tag('http.route')).to eq('/soft_error') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('520') expect(request_span).to have_error @@ -449,6 +452,7 @@ def internal_server_error expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#sub_error') expect(request_span.get_tag('http.url')).to eq('/sub_error') + expect(request_span.get_tag('http.route')).to eq('/sub_error') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('500') expect(request_span).to have_error @@ -578,6 +582,7 @@ def internal_server_error expect(request_span.type).to eq('web') expect(request_span.resource).to eq('GET 404') expect(request_span.get_tag('http.url')).to eq('/this_route_does_not_exist') + expect(request_span.tags).not_to have_key('http.route') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('404') expect(request_span).to_not have_error @@ -604,6 +609,7 @@ def internal_server_error expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#explicitly_not_found') expect(request_span.get_tag('http.url')).to eq('/explicitly_not_found') + expect(request_span.get_tag('http.route')).to eq('/explicitly_not_found') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('404') expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)) diff --git a/spec/datadog/tracing/contrib/rails/support/rails5.rb b/spec/datadog/tracing/contrib/rails/support/rails5.rb index 8eb099e4624..8b149a4d48e 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails5.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails5.rb @@ -36,14 +36,16 @@ def config.database_configuration instance_eval(&during_init) - config.active_job.queue_adapter = :inline - if ENV['USE_SIDEKIQ'] - config.active_job.queue_adapter = :sidekiq - # add Sidekiq middleware - Sidekiq::Testing.server_middleware do |chain| - chain.add( - Datadog::Tracing::Contrib::Sidekiq::ServerTracer - ) + if defined?(ActiveJob) + config.active_job.queue_adapter = :inline + if ENV['USE_SIDEKIQ'] + config.active_job.queue_adapter = :sidekiq + # add Sidekiq middleware + Sidekiq::Testing.server_middleware do |chain| + chain.add( + Datadog::Tracing::Contrib::Sidekiq::ServerTracer + ) + end end end end @@ -64,11 +66,13 @@ def config.database_configuration end end - Rails.application.config.active_job.queue_adapter = if ENV['USE_SIDEKIQ'] - :sidekiq - else - :inline - end + if Rails.application.config.respond_to?(:active_job) + Rails.application.config.active_job.queue_adapter = if ENV['USE_SIDEKIQ'] + :sidekiq + else + :inline + end + end before_test_init.call initialize! @@ -91,7 +95,7 @@ def config.database_configuration append_controllers! # Force connection to initialize, and dump some spans - application_record.connection + application_record&.connection # Skip default Rails exception page rendering. # This avoid polluting the trace under test diff --git a/spec/datadog/tracing/contrib/rails/support/rails6.rb b/spec/datadog/tracing/contrib/rails/support/rails6.rb index 4289f553bdb..212f9c9a81b 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails6.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails6.rb @@ -39,14 +39,16 @@ def config.database_configuration instance_eval(&during_init) - config.active_job.queue_adapter = :inline - if ENV['USE_SIDEKIQ'] - config.active_job.queue_adapter = :sidekiq - # add Sidekiq middleware - Sidekiq::Testing.server_middleware do |chain| - chain.add( - Datadog::Tracing::Contrib::Sidekiq::ServerTracer - ) + if config.respond_to?(:active_job) + config.active_job.queue_adapter = :inline + if ENV['USE_SIDEKIQ'] + config.active_job.queue_adapter = :sidekiq + # add Sidekiq middleware + Sidekiq::Testing.server_middleware do |chain| + chain.add( + Datadog::Tracing::Contrib::Sidekiq::ServerTracer + ) + end end end end @@ -67,11 +69,13 @@ def config.database_configuration end end - Rails.application.config.active_job.queue_adapter = if ENV['USE_SIDEKIQ'] - :sidekiq - else - :inline - end + if Rails.application.config.respond_to?(:active_job) + Rails.application.config.active_job.queue_adapter = if ENV['USE_SIDEKIQ'] + :sidekiq + else + :inline + end + end Rails.application.config.file_watcher = Class.new(ActiveSupport::FileUpdateChecker) do # When running in full application mode, Rails tries to monitor @@ -181,13 +185,11 @@ def reset_rails_configuration! # TODO: Remove this side-effect on missing log entries Lograge.remove_existing_log_subscriptions if defined?(::Lograge) - if Module.const_defined?(:ActiveRecord) - reset_class_variable(ActiveRecord::Railtie::Configuration, :@@options) + reset_class_variable(ActiveRecord::Railtie::Configuration, :@@options) if Module.const_defined?(:ActiveRecord) - # After `deep_dup`, the sentinel `NULL_OPTION` is inadvertently changed. We restore it here. - if Rails::VERSION::MINOR < 1 - ActiveRecord::Railtie.config.action_view.finalize_compiled_template_methods = ActionView::Railtie::NULL_OPTION - end + # After `deep_dup`, the sentinel `NULL_OPTION` is inadvertently changed. We restore it here. + if Rails::VERSION::MINOR < 1 + ActionView::Railtie.config.action_view.finalize_compiled_template_methods = ActionView::Railtie::NULL_OPTION end reset_class_variable(ActiveSupport::Dependencies, :@@autoload_paths) diff --git a/spec/datadog/tracing/contrib/rails/support/rails7.rb b/spec/datadog/tracing/contrib/rails/support/rails7.rb index abff99660d5..add64283313 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails7.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails7.rb @@ -40,7 +40,7 @@ def config.database_configuration instance_eval(&during_init) - if defined?(ActiveJob) + if config.respond_to?(:active_job) config.active_job.queue_adapter = :inline if ENV['USE_SIDEKIQ'] config.active_job.queue_adapter = :sidekiq @@ -70,7 +70,7 @@ def config.database_configuration end end - if defined?(ActiveJob) + if Rails.application.config.respond_to?(:active_job) Rails.application.config.active_job.queue_adapter = ENV['USE_SIDEKIQ'] ? :sidekiq : :inline end @@ -182,14 +182,7 @@ def reset_rails_configuration! # TODO: Remove this side-effect on missing log entries Lograge.remove_existing_log_subscriptions if defined?(::Lograge) - if Module.const_defined?(:ActiveRecord) - reset_class_variable(ActiveRecord::Railtie::Configuration, :@@options) - - # After `deep_dup`, the sentinel `NULL_OPTION` is inadvertently changed. We restore it here. - if Rails::VERSION::MINOR < 1 - ActiveRecord::Railtie.config.action_view.finalize_compiled_template_methods = ActionView::Railtie::NULL_OPTION - end - end + reset_class_variable(ActiveRecord::Railtie::Configuration, :@@options) if Module.const_defined?(:ActiveRecord) ActiveSupport::Dependencies.autoload_paths = [] ActiveSupport::Dependencies.autoload_once_paths = [] From ec064d855715ce317e28fcb90f2a238a7fec80ed Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Mon, 19 Aug 2024 15:47:53 +0200 Subject: [PATCH 13/44] Fix engine route handling for rails < 7.1 --- .../contrib/action_pack/action_dispatch/instrumentation.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index bea7947f1bd..63687737542 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -43,7 +43,7 @@ def find_routes(req) # When Rails is serving requests to Rails Engine routes, this function is called # twice: first time for the route on which the engine is mounted, and second # time for the internal engine route. - last_route = Tracing.active_trace&.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) + last_route = Tracing.active_span&.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) Instrumentation.set_http_route_tag(last_route.to_s + current_route.to_s) rescue StandardError => e Datadog.logger.error(e.message) From ba280ace69ef8117f9af47758184c2acaab56309 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Mon, 19 Aug 2024 16:20:09 +0200 Subject: [PATCH 14/44] Fix sinatra integration We want to put http.route tag on rack.request span, not on sinatra spans. --- lib/datadog/tracing/contrib/sinatra/tracer.rb | 1 - .../contrib/sinatra/tracer_middleware.rb | 8 ++++---- .../tracing/contrib/sinatra/multi_app_spec.rb | 1 - .../tracing/contrib/sinatra/tracer_spec.rb | 20 +++++++++++++++++-- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/lib/datadog/tracing/contrib/sinatra/tracer.rb b/lib/datadog/tracing/contrib/sinatra/tracer.rb index 87a41d91b6f..4c535c0c8c8 100644 --- a/lib/datadog/tracing/contrib/sinatra/tracer.rb +++ b/lib/datadog/tracing/contrib/sinatra/tracer.rb @@ -59,7 +59,6 @@ def route_eval ) do |span, trace| span.set_tag(Ext::TAG_APP_NAME, settings.name || settings.superclass.name) span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) - span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, datadog_route) if request.script_name && !request.script_name.empty? span.set_tag(Ext::TAG_SCRIPT_NAME, request.script_name) diff --git a/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb b/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb index 483cb3562e0..172de14f42a 100644 --- a/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +++ b/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb @@ -19,6 +19,7 @@ def initialize(app, opt = {}) end # rubocop:disable Metrics/MethodLength + # rubocop:disable Metrics/AbcSize def call(env) # Find out if this is Sinatra within Sinatra return @app.call(env) if Sinatra::Env.datadog_span(env) @@ -49,10 +50,7 @@ def call(env) datadog_route = Sinatra::Env.route_path(env) - if datadog_route - span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) - span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, datadog_route) - end + span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) if datadog_route if request.script_name && !request.script_name.empty? span.set_tag(Ext::TAG_SCRIPT_NAME, request.script_name) @@ -68,6 +66,7 @@ def call(env) # since the latter is unaware of what the resource might be # and would fallback to a generic resource name when unset rack_request_span.resource ||= span.resource if rack_request_span + rack_request_span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, datadog_route) if datadog_route if response if (status = response[0]) @@ -91,6 +90,7 @@ def call(env) end end # rubocop:enable Metrics/MethodLength + # rubocop:enable Metrics/AbcSize private diff --git a/spec/datadog/tracing/contrib/sinatra/multi_app_spec.rb b/spec/datadog/tracing/contrib/sinatra/multi_app_spec.rb index 0007524bfcd..edf09d60dd0 100644 --- a/spec/datadog/tracing/contrib/sinatra/multi_app_spec.rb +++ b/spec/datadog/tracing/contrib/sinatra/multi_app_spec.rb @@ -78,7 +78,6 @@ end expect(span.resource).to eq('GET /endpoint') - expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_ROUTE_PATH)).to eq('/endpoint') expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_SCRIPT_NAME)).to eq('/one') end end diff --git a/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb b/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb index a203d4f9d38..c89148a126f 100644 --- a/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb +++ b/spec/datadog/tracing/contrib/sinatra/tracer_spec.rb @@ -124,6 +124,8 @@ it do is_expected.to be_ok + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/') + expect(span.resource).to eq('GET /') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_URL)).to eq('/') end @@ -136,6 +138,8 @@ it do expect(response).to be_ok + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/wildcard/*') + expect(span.resource).to eq('GET /wildcard/*') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_URL)).to eq('/wildcard/1/2/3') # expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_ROUTE_PATH)).to eq('/wildcard/*') @@ -156,6 +160,10 @@ expect(response).to be_ok end + it 'sets http.route on the rack span' do + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/erb') + end + describe 'the sinatra.request span' do subject(:span) { request_span } @@ -210,6 +218,10 @@ expect(spans).to have(5).items end + it 'sets http.route on the rack span' do + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/erb_literal') + end + describe 'the sinatra.request span' do it do expect(span.resource).to eq('GET /erb_literal') @@ -271,6 +283,8 @@ expect(span).to_not have_error_type expect(span).to_not have_error_message expect(span.status).to eq(1) + + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/server_error') end end @@ -283,6 +297,8 @@ expect(span).to have_error_type('RuntimeError') expect(span).to have_error_message('test error') expect(span.status).to eq(1) + + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/error') end end @@ -296,6 +312,8 @@ expect(trace.resource).to eq('GET') + expect(rack_span.tags).not_to have_key(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE) + expect(span.service).to eq(tracer.default_service) expect(span.resource).to eq('GET') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_METHOD)).to eq('GET') @@ -557,7 +575,6 @@ expect(span.resource).to eq(resource) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_METHOD)).to eq(http_method) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_URL)).to eq(url) - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq(url) expect(span.get_tag('http.response.headers.content-type')).to eq('text/html;charset=utf-8') expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_ROUTE_PATH)).to eq(url) expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_SCRIPT_NAME)).to be_nil @@ -591,7 +608,6 @@ expect(span.resource).to eq(resource) expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_APP_NAME)).to eq(opts[:app_name]) expect(span.get_tag(Datadog::Tracing::Contrib::Sinatra::Ext::TAG_ROUTE_PATH)).to eq(url) - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq(url) expect(span.type).to eq(Datadog::Tracing::Metadata::Ext::HTTP::TYPE_INBOUND) expect(span).to_not have_error expect(span.parent_id).to be(opts[:parent].id) if opts[:parent] From 40f02e4b22ea40ce5f844339c5f43ca6868d543d Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Mon, 19 Aug 2024 16:42:06 +0200 Subject: [PATCH 15/44] Disable datadog static analysis for rails 7 spec helper --- spec/datadog/tracing/contrib/rails/support/rails7.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/datadog/tracing/contrib/rails/support/rails7.rb b/spec/datadog/tracing/contrib/rails/support/rails7.rb index add64283313..a8d00d9a0af 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails7.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails7.rb @@ -154,6 +154,7 @@ def append_routes! rails_test_application.instance.routes.append do test_routes.each do |k, v| + # no-dd-sa if k.is_a?(Array) send(k.first, k.last => v) else From 30c93623e5e63b7f6fb240cae750bf3877af0fee Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 21 Aug 2024 10:02:26 +0200 Subject: [PATCH 16/44] Fix checking of route presence in ActionDispatch instrumentation --- .../contrib/action_pack/action_dispatch/instrumentation.rb | 2 +- .../action_pack/action_dispatch/instrumentation_spec.rb | 4 ++-- .../action_pack/action_dispatch/journey/router_spec.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 63687737542..569db150f21 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -12,7 +12,7 @@ module Instrumentation module_function def set_http_route_tag(http_route) - return if http_route.nil? + return if http_route.empty? active_span = Tracing.active_span return unless active_span diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb index b2fd06d90f5..517ad34198c 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -13,9 +13,9 @@ end end - it 'does not set http_route tag when the route is nil' do + it 'does not set http_route tag when the route is empty' do Datadog::Tracing.trace('web.request') do |span_op, _trace_op| - described_class.set_http_route_tag(nil) + described_class.set_http_route_tag('') expect(span_op.tags).not_to have_key('http.route') end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index 67f29f13a4c..cf8c849f2e5 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -33,7 +33,7 @@ let(:controller) do stub_const( - 'UsersController', + 'Api::UsersController', Class.new(ActionController::Base) do def show head :ok From bb72ebc9a8404901e4655fcf8d79f7a8924feea3 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 21 Aug 2024 11:36:27 +0200 Subject: [PATCH 17/44] Add appraisals for action_pack Rails router changed it's internals in 7.1 and it makes sense to test our integration against multiple ActionPack versions. --- Matrixfile | 5 +- appraisal/jruby-9.2.rb | 4 + appraisal/jruby-9.3.rb | 4 + appraisal/jruby-9.4.rb | 4 + appraisal/ruby-2.5.rb | 4 + appraisal/ruby-2.6.rb | 4 + appraisal/ruby-2.7.rb | 4 + appraisal/ruby-3.0.rb | 9 + appraisal/ruby-3.1.rb | 9 + appraisal/ruby-3.2.rb | 9 + appraisal/ruby-3.3.rb | 9 + appraisal/ruby-3.4.rb | 9 + gemfiles/jruby_9.2_actionpack_5.0.gemfile | 41 ++ .../jruby_9.2_actionpack_5.0.gemfile.lock | 259 +++++++++++++ gemfiles/jruby_9.3_actionpack_5.0.gemfile | 45 +++ .../jruby_9.3_actionpack_5.0.gemfile.lock | 309 ++++++++++++++++ gemfiles/ruby_2.5_actionpack_5.0.gemfile | 44 +++ gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock | 267 ++++++++++++++ gemfiles/ruby_2.6_actionpack_5.0.gemfile | 48 +++ gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock | 298 +++++++++++++++ gemfiles/ruby_2.7_actionpack_6.0.gemfile | 48 +++ gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock | 318 ++++++++++++++++ gemfiles/ruby_3.0_actionpack_7.0.gemfile | 49 +++ gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock | 319 ++++++++++++++++ gemfiles/ruby_3.0_actionpack_7.1.gemfile | 49 +++ gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock | 349 ++++++++++++++++++ gemfiles/ruby_3.1_actionpack_7.0.gemfile | 49 +++ gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock | 319 ++++++++++++++++ gemfiles/ruby_3.1_actionpack_7.1.gemfile | 49 +++ gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock | 349 ++++++++++++++++++ gemfiles/ruby_3.2_actionpack_7.0.gemfile | 48 +++ gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock | 314 ++++++++++++++++ gemfiles/ruby_3.2_actionpack_7.1.gemfile | 48 +++ gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock | 344 +++++++++++++++++ gemfiles/ruby_3.3_actionpack_7.0.gemfile | 48 +++ gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock | 314 ++++++++++++++++ gemfiles/ruby_3.3_actionpack_7.1.gemfile | 48 +++ gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock | 344 +++++++++++++++++ .../action_dispatch/instrumentation.rb | 6 +- .../action_pack/action_dispatch/patcher.rb | 2 +- .../contrib/rails/support/deprecation.rb | 8 +- 41 files changed, 4801 insertions(+), 6 deletions(-) create mode 100644 gemfiles/jruby_9.2_actionpack_5.0.gemfile create mode 100644 gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock create mode 100644 gemfiles/jruby_9.3_actionpack_5.0.gemfile create mode 100644 gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock create mode 100644 gemfiles/ruby_2.5_actionpack_5.0.gemfile create mode 100644 gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock create mode 100644 gemfiles/ruby_2.6_actionpack_5.0.gemfile create mode 100644 gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock create mode 100644 gemfiles/ruby_2.7_actionpack_6.0.gemfile create mode 100644 gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock create mode 100644 gemfiles/ruby_3.0_actionpack_7.0.gemfile create mode 100644 gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock create mode 100644 gemfiles/ruby_3.0_actionpack_7.1.gemfile create mode 100644 gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock create mode 100644 gemfiles/ruby_3.1_actionpack_7.0.gemfile create mode 100644 gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock create mode 100644 gemfiles/ruby_3.1_actionpack_7.1.gemfile create mode 100644 gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock create mode 100644 gemfiles/ruby_3.2_actionpack_7.0.gemfile create mode 100644 gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock create mode 100644 gemfiles/ruby_3.2_actionpack_7.1.gemfile create mode 100644 gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock create mode 100644 gemfiles/ruby_3.3_actionpack_7.0.gemfile create mode 100644 gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock create mode 100644 gemfiles/ruby_3.3_actionpack_7.1.gemfile create mode 100644 gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock diff --git a/Matrixfile b/Matrixfile index 4fc7a3b9ec6..4bb4b3f8002 100644 --- a/Matrixfile +++ b/Matrixfile @@ -27,7 +27,10 @@ 'opentelemetry' => '❌ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby' }, 'action_pack' => { - 'activesupport' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'actionpack-5.0' => '✅ 2.5 / ✅ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', + 'actionpack-6.0' => '❌ 2.5 / ❌ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', + 'actionpack-7.0' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', + 'actionpack-7.1' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', }, 'action_view' => { 'activesupport' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', diff --git a/appraisal/jruby-9.2.rb b/appraisal/jruby-9.2.rb index b7b82e77db9..45ecb8e68ba 100644 --- a/appraisal/jruby-9.2.rb +++ b/appraisal/jruby-9.2.rb @@ -225,6 +225,10 @@ gem 'ruby-kafka', '>= 0.7.10' end +appraise 'actionpack-5.0' do + gem 'rails', '~> 5.0' +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/jruby-9.3.rb b/appraisal/jruby-9.3.rb index 1eb0a2e9a0d..ccfdafe16f0 100644 --- a/appraisal/jruby-9.3.rb +++ b/appraisal/jruby-9.3.rb @@ -198,6 +198,10 @@ gem 'ruby-kafka', '>= 0.7.10' end +appraise 'actionpack-5.0' do + gem 'rails', '~> 6.0' +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/jruby-9.4.rb b/appraisal/jruby-9.4.rb index 6e025eecd21..80d42fbbbfd 100644 --- a/appraisal/jruby-9.4.rb +++ b/appraisal/jruby-9.4.rb @@ -102,6 +102,10 @@ gem 'ruby-kafka', '>= 0.7.10' end +appraise 'actionpack-6.0' do + gem 'rails', '~> 6.0' +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-2.5.rb b/appraisal/ruby-2.5.rb index 8445ce499ad..e45a8fd0b0e 100644 --- a/appraisal/ruby-2.5.rb +++ b/appraisal/ruby-2.5.rb @@ -245,6 +245,10 @@ gem 'ruby-kafka', '>= 0.7.10' end +appraise 'actionpack-5.0' do + gem 'rails', '~> 5.0' +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-2.6.rb b/appraisal/ruby-2.6.rb index 41360b29ae8..b9b019a1462 100644 --- a/appraisal/ruby-2.6.rb +++ b/appraisal/ruby-2.6.rb @@ -198,6 +198,10 @@ gem 'ruby-kafka', '>= 0.7.10' end +appraise 'actionpack-5.0' do + gem 'rails', '~> 5.0' +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-2.7.rb b/appraisal/ruby-2.7.rb index 1f30aa2a7b5..c2e09a2bb91 100644 --- a/appraisal/ruby-2.7.rb +++ b/appraisal/ruby-2.7.rb @@ -198,6 +198,10 @@ gem 'ruby-kafka', '>= 0.7.10' end +appraise 'actionpack-6.0' do + gem 'rails', '~> 6.0' +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.0.rb b/appraisal/ruby-3.0.rb index 01422fb46c1..cacd426c9f7 100644 --- a/appraisal/ruby-3.0.rb +++ b/appraisal/ruby-3.0.rb @@ -112,6 +112,15 @@ gem 'ruby-kafka', '>= 0.7.10' end +[ + '7.0', + '7.1', +].each do |v| + appraise "actionpack-#{v}" do + gem 'rails', "~> #{v}.0" + end +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.1.rb b/appraisal/ruby-3.1.rb index 01422fb46c1..cacd426c9f7 100644 --- a/appraisal/ruby-3.1.rb +++ b/appraisal/ruby-3.1.rb @@ -112,6 +112,15 @@ gem 'ruby-kafka', '>= 0.7.10' end +[ + '7.0', + '7.1', +].each do |v| + appraise "actionpack-#{v}" do + gem 'rails', "~> #{v}.0" + end +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.2.rb b/appraisal/ruby-3.2.rb index 01422fb46c1..cacd426c9f7 100644 --- a/appraisal/ruby-3.2.rb +++ b/appraisal/ruby-3.2.rb @@ -112,6 +112,15 @@ gem 'ruby-kafka', '>= 0.7.10' end +[ + '7.0', + '7.1', +].each do |v| + appraise "actionpack-#{v}" do + gem 'rails', "~> #{v}.0" + end +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.3.rb b/appraisal/ruby-3.3.rb index 7f59d0054e1..888d9e65b6d 100644 --- a/appraisal/ruby-3.3.rb +++ b/appraisal/ruby-3.3.rb @@ -112,6 +112,15 @@ gem 'ruby-kafka', '>= 0.7.10' end +[ + '7.0', + '7.1', +].each do |v| + appraise "actionpack-#{v}" do + gem 'rails', "~> #{v}.0" + end +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.4.rb b/appraisal/ruby-3.4.rb index 27a7711d172..09f4db7fb26 100644 --- a/appraisal/ruby-3.4.rb +++ b/appraisal/ruby-3.4.rb @@ -112,6 +112,15 @@ gem 'ruby-kafka', '>= 0.7.10' end +[ + '7.0', + '7.1', +].each do |v| + appraise "actionpack-#{v}" do + gem 'rails', "~> #{v}.0" + end +end + appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/gemfiles/jruby_9.2_actionpack_5.0.gemfile b/gemfiles/jruby_9.2_actionpack_5.0.gemfile new file mode 100644 index 00000000000..e6f91013c40 --- /dev/null +++ b/gemfiles/jruby_9.2_actionpack_5.0.gemfile @@ -0,0 +1,41 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-debugger-jruby" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "yard", "~> 0.9" +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 5.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock b/gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock new file mode 100644 index 00000000000..e2d441bf37f --- /dev/null +++ b/gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock @@ -0,0 +1,259 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) + globalid (>= 0.3.6) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) + arel (>= 9.0) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + arel (9.0.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8-java) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + debase-ruby_core_source (3.3.1) + diff-lcs (1.5.1) + digest (3.1.1-java) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + ffi (1.16.3-java) + globalid (1.1.0) + activesupport (>= 5.0) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-wait (0.3.1-java) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0) + libddwaf (1.14.0.0.0-java) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.2) + minitest (5.15.0) + msgpack (1.7.2-java) + net-imap (0.2.2) + digest + net-protocol + strscan + net-pop (0.1.2) + net-protocol + net-protocol (0.1.2) + io-wait + timeout + net-smtp (0.3.0) + digest + net-protocol + timeout + nio4r (2.7.3-java) + nokogiri (1.12.5-java) + racc (~> 1.4) + os (1.1.4) + pimpmychangelog (0.1.3) + pry (0.14.2-java) + coderay (~> 1.1) + method_source (~> 1.0) + spoon (~> 0.0) + pry-debugger-jruby (2.1.1-java) + pry (>= 0.13, < 0.15) + ruby-debug-base (>= 0.10.4, < 0.12) + public_suffix (4.0.7) + racc (1.8.1-java) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) + bundler (>= 1.3.0) + railties (= 5.2.8.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + ruby-debug-base (0.11.0-java) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + spoon (0.0.6) + ffi + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + strscan (3.1.0-java) + thor (1.2.2) + thread_safe (0.3.6-java) + timeout (0.4.0) + tzinfo (1.2.11) + thread_safe (~> 0.1) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.7.6-java) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + +PLATFORMS + universal-java-1.8 + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + ffi (~> 1.16.3) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-debugger-jruby + rails (~> 5.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/jruby_9.3_actionpack_5.0.gemfile b/gemfiles/jruby_9.3_actionpack_5.0.gemfile new file mode 100644 index 00000000000..f3ab8c8c758 --- /dev/null +++ b/gemfiles/jruby_9.3_actionpack_5.0.gemfile @@ -0,0 +1,45 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-debugger-jruby" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 6.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock b/gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock new file mode 100644 index 00000000000..89ef57626e9 --- /dev/null +++ b/gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock @@ -0,0 +1,309 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + mail (>= 2.7.1) + actionmailer (6.1.7.8) + actionpack (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activesupport (= 6.1.7.8) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.7.8) + actionview (= 6.1.7.8) + activesupport (= 6.1.7.8) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.7.8) + actionpack (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + nokogiri (>= 1.8.5) + actionview (6.1.7.8) + activesupport (= 6.1.7.8) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.7.8) + activesupport (= 6.1.7.8) + globalid (>= 0.3.6) + activemodel (6.1.7.8) + activesupport (= 6.1.7.8) + activerecord (6.1.7.8) + activemodel (= 6.1.7.8) + activesupport (= 6.1.7.8) + activestorage (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activesupport (= 6.1.7.8) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (6.1.7.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8-java) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4-java) + debase-ruby_core_source (3.3.1) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + ffi (1.16.3-java) + globalid (1.2.1) + activesupport (>= 6.1) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2-java) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0) + libddwaf (1.14.0.0.0-java) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2-java) + net-imap (0.3.7) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3-java) + nokogiri (1.13.10-java) + racc (~> 1.4) + os (1.1.4) + parallel (1.24.0) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2-java) + coderay (~> 1.1) + method_source (~> 1.0) + spoon (~> 0.0) + pry-debugger-jruby (2.1.1-java) + pry (>= 0.13, < 0.15) + ruby-debug-base (>= 0.10.4, < 0.12) + public_suffix (5.1.1) + racc (1.8.1-java) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (6.1.7.8) + actioncable (= 6.1.7.8) + actionmailbox (= 6.1.7.8) + actionmailer (= 6.1.7.8) + actionpack (= 6.1.7.8) + actiontext (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activemodel (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + bundler (>= 1.15.0) + railties (= 6.1.7.8) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) + method_source + rake (>= 12.2) + thor (~> 1.0) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.18.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.17.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-debug-base (0.11.0-java) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + spoon (0.0.6) + ffi + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) + sprockets (>= 3.0.0) + strscan (3.1.0-java) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.7.6-java) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + universal-java-11 + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + ffi (~> 1.16.3) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-debugger-jruby + rails (~> 6.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_2.5_actionpack_5.0.gemfile b/gemfiles/ruby_2.5_actionpack_5.0.gemfile new file mode 100644 index 00000000000..5f92fd05f78 --- /dev/null +++ b/gemfiles/ruby_2.5_actionpack_5.0.gemfile @@ -0,0 +1,44 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-nav" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "yard", "~> 0.9" +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1", "< 3.19.2"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 5.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock b/gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock new file mode 100644 index 00000000000..5b0af5ebf4e --- /dev/null +++ b/gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock @@ -0,0 +1,267 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) + globalid (>= 0.3.6) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) + arel (>= 9.0) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + arel (9.0.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (0.8.0) + debug_inspector (>= 0.0.1) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + digest (3.1.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.1.0) + activesupport (>= 5.0) + google-protobuf (3.19.1) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-wait (0.3.1) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.2) + mini_portile2 (2.6.1) + minitest (5.15.0) + msgpack (1.7.2) + net-imap (0.2.2) + digest + net-protocol + strscan + net-pop (0.1.2) + net-protocol + net-protocol (0.1.2) + io-wait + timeout + net-smtp (0.3.0) + digest + net-protocol + timeout + nio4r (2.7.3) + nokogiri (1.12.5) + mini_portile2 (~> 2.6.1) + racc (~> 1.4) + os (1.1.4) + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-nav (1.0.0) + pry (>= 0.9.10, < 0.15) + pry-stack_explorer (0.4.13) + binding_of_caller (~> 0.7) + pry (~> 0.13) + public_suffix (4.0.7) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) + bundler (>= 1.3.0) + railties (= 5.2.8.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + strscan (3.1.0) + thor (1.2.2) + thread_safe (0.3.6) + timeout (0.4.0) + tzinfo (1.2.11) + thread_safe (~> 0.1) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, < 3.19.2, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-nav + pry-stack_explorer + rails (~> 5.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_2.6_actionpack_5.0.gemfile b/gemfiles/ruby_2.6_actionpack_5.0.gemfile new file mode 100644 index 00000000000..ac408b8e514 --- /dev/null +++ b/gemfiles/ruby_2.6_actionpack_5.0.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1", "< 3.19.2"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 5.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock b/gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock new file mode 100644 index 00000000000..d7582129e9c --- /dev/null +++ b/gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock @@ -0,0 +1,298 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) + globalid (>= 0.3.6) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) + arel (>= 9.0) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + arel (9.0.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.1.0) + activesupport (>= 5.0) + google-protobuf (3.19.1) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.3.7) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.13.10-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.24.0) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.8.0) + byebug (~> 11.0) + pry (~> 0.10) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (5.1.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) + bundler (>= 1.3.0) + railties (= 5.2.8.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) + method_source + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.18.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.17.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + strscan (3.1.0) + thor (1.3.1) + thread_safe (0.3.6) + timeout (0.4.1) + tzinfo (1.2.11) + thread_safe (~> 0.1) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, < 3.19.2, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rails (~> 5.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_2.7_actionpack_6.0.gemfile b/gemfiles/ruby_2.7_actionpack_6.0.gemfile new file mode 100644 index 00000000000..f7457816151 --- /dev/null +++ b/gemfiles/ruby_2.7_actionpack_6.0.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 6.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock b/gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock new file mode 100644 index 00000000000..d94e49830a3 --- /dev/null +++ b/gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock @@ -0,0 +1,318 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + mail (>= 2.7.1) + actionmailer (6.1.7.8) + actionpack (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activesupport (= 6.1.7.8) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.7.8) + actionview (= 6.1.7.8) + activesupport (= 6.1.7.8) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.7.8) + actionpack (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + nokogiri (>= 1.8.5) + actionview (6.1.7.8) + activesupport (= 6.1.7.8) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.7.8) + activesupport (= 6.1.7.8) + globalid (>= 0.3.6) + activemodel (6.1.7.8) + activesupport (= 6.1.7.8) + activerecord (6.1.7.8) + activemodel (= 6.1.7.8) + activesupport (= 6.1.7.8) + activestorage (6.1.7.8) + actionpack (= 6.1.7.8) + activejob (= 6.1.7.8) + activerecord (= 6.1.7.8) + activesupport (= 6.1.7.8) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (6.1.7.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.15.6-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (5.1.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (6.1.7.8) + actioncable (= 6.1.7.8) + actionmailbox (= 6.1.7.8) + actionmailer (= 6.1.7.8) + actionpack (= 6.1.7.8) + actiontext (= 6.1.7.8) + actionview (= 6.1.7.8) + activejob (= 6.1.7.8) + activemodel (= 6.1.7.8) + activerecord (= 6.1.7.8) + activestorage (= 6.1.7.8) + activesupport (= 6.1.7.8) + bundler (>= 1.15.0) + railties (= 6.1.7.8) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (6.1.7.8) + actionpack (= 6.1.7.8) + activesupport (= 6.1.7.8) + method_source + rake (>= 12.2) + thor (~> 1.0) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + sprockets (4.2.1) + concurrent-ruby (~> 1.0) + rack (>= 2.2.4, < 4) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) + sprockets (>= 3.0.0) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rails (~> 6.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.0_actionpack_7.0.gemfile b/gemfiles/ruby_3.0_actionpack_7.0.gemfile new file mode 100644 index 00000000000..ecc0e84be0d --- /dev/null +++ b/gemfiles/ruby_3.0_actionpack_7.0.gemfile @@ -0,0 +1,49 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.0.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock new file mode 100644 index 00000000000..8b79e418d96 --- /dev/null +++ b/gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock @@ -0,0 +1,319 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8.4) + actionpack (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.8.4) + actionview (= 7.0.8.4) + activesupport (= 7.0.8.4) + rack (~> 2.0, >= 2.2.4) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8.4) + actionpack (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8.4) + activesupport (= 7.0.8.4) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.3.6) + activemodel (7.0.8.4) + activesupport (= 7.0.8.4) + activerecord (7.0.8.4) + activemodel (= 7.0.8.4) + activesupport (= 7.0.8.4) + activestorage (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activesupport (= 7.0.8.4) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.8.4) + actioncable (= 7.0.8.4) + actionmailbox (= 7.0.8.4) + actionmailer (= 7.0.8.4) + actionpack (= 7.0.8.4) + actiontext (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activemodel (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + bundler (>= 1.15.0) + railties (= 7.0.8.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rails (~> 7.0.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.0_actionpack_7.1.gemfile b/gemfiles/ruby_3.0_actionpack_7.1.gemfile new file mode 100644 index 00000000000..029e84b7b45 --- /dev/null +++ b/gemfiles/ruby_3.0_actionpack_7.1.gemfile @@ -0,0 +1,49 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.1.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock new file mode 100644 index 00000000000..2c36c039fbb --- /dev/null +++ b/gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock @@ -0,0 +1,349 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.1.3.4) + actionpack (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.2) + actionpack (7.1.3.4) + actionview (= 7.1.3.4) + activesupport (= 7.1.3.4) + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.3.4) + actionpack (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.1.3.4) + activesupport (= 7.1.3.4) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.3.6) + activemodel (7.1.3.4) + activesupport (= 7.1.3.4) + activerecord (7.1.3.4) + activemodel (= 7.1.3.4) + activesupport (= 7.1.3.4) + timeout (>= 0.4.0) + activestorage (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activesupport (= 7.1.3.4) + marcel (~> 1.0) + activesupport (7.1.3.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + base64 (0.2.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + drb (2.2.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-console (0.7.2) + irb (1.14.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + mutex_m (0.2.0) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + psych (5.1.2) + stringio + public_suffix (6.0.1) + racc (1.8.1) + rack (3.1.7) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails (7.1.3.4) + actioncable (= 7.1.3.4) + actionmailbox (= 7.1.3.4) + actionmailer (= 7.1.3.4) + actionpack (= 7.1.3.4) + actiontext (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activemodel (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + bundler (>= 1.15.0) + railties (= 7.1.3.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + irb + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rdoc (6.7.0) + psych (>= 4.0.0) + regexp_parser (2.9.2) + reline (0.5.9) + io-console (~> 0.5) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + stringio (3.1.1) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rails (~> 7.1.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.1_actionpack_7.0.gemfile b/gemfiles/ruby_3.1_actionpack_7.0.gemfile new file mode 100644 index 00000000000..ecc0e84be0d --- /dev/null +++ b/gemfiles/ruby_3.1_actionpack_7.0.gemfile @@ -0,0 +1,49 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.0.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock new file mode 100644 index 00000000000..8b79e418d96 --- /dev/null +++ b/gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock @@ -0,0 +1,319 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8.4) + actionpack (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.8.4) + actionview (= 7.0.8.4) + activesupport (= 7.0.8.4) + rack (~> 2.0, >= 2.2.4) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8.4) + actionpack (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8.4) + activesupport (= 7.0.8.4) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.3.6) + activemodel (7.0.8.4) + activesupport (= 7.0.8.4) + activerecord (7.0.8.4) + activemodel (= 7.0.8.4) + activesupport (= 7.0.8.4) + activestorage (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activesupport (= 7.0.8.4) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.8.4) + actioncable (= 7.0.8.4) + actionmailbox (= 7.0.8.4) + actionmailer (= 7.0.8.4) + actionpack (= 7.0.8.4) + actiontext (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activemodel (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + bundler (>= 1.15.0) + railties (= 7.0.8.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rails (~> 7.0.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.1_actionpack_7.1.gemfile b/gemfiles/ruby_3.1_actionpack_7.1.gemfile new file mode 100644 index 00000000000..029e84b7b45 --- /dev/null +++ b/gemfiles/ruby_3.1_actionpack_7.1.gemfile @@ -0,0 +1,49 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.1.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock new file mode 100644 index 00000000000..2c36c039fbb --- /dev/null +++ b/gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock @@ -0,0 +1,349 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.1.3.4) + actionpack (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.2) + actionpack (7.1.3.4) + actionview (= 7.1.3.4) + activesupport (= 7.1.3.4) + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.3.4) + actionpack (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.1.3.4) + activesupport (= 7.1.3.4) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.3.6) + activemodel (7.1.3.4) + activesupport (= 7.1.3.4) + activerecord (7.1.3.4) + activemodel (= 7.1.3.4) + activesupport (= 7.1.3.4) + timeout (>= 0.4.0) + activestorage (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activesupport (= 7.1.3.4) + marcel (~> 1.0) + activesupport (7.1.3.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + base64 (0.2.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + drb (2.2.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-console (0.7.2) + irb (1.14.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + mutex_m (0.2.0) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + psych (5.1.2) + stringio + public_suffix (6.0.1) + racc (1.8.1) + rack (3.1.7) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails (7.1.3.4) + actioncable (= 7.1.3.4) + actionmailbox (= 7.1.3.4) + actionmailer (= 7.1.3.4) + actionpack (= 7.1.3.4) + actiontext (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activemodel (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + bundler (>= 1.15.0) + railties (= 7.1.3.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + irb + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rdoc (6.7.0) + psych (>= 4.0.0) + regexp_parser (2.9.2) + reline (0.5.9) + io-console (~> 0.5) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + stringio (3.1.1) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rails (~> 7.1.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.2_actionpack_7.0.gemfile b/gemfiles/ruby_3.2_actionpack_7.0.gemfile new file mode 100644 index 00000000000..2c90032f074 --- /dev/null +++ b/gemfiles/ruby_3.2_actionpack_7.0.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.0.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock new file mode 100644 index 00000000000..41503556ebe --- /dev/null +++ b/gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock @@ -0,0 +1,314 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8.4) + actionpack (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.8.4) + actionview (= 7.0.8.4) + activesupport (= 7.0.8.4) + rack (~> 2.0, >= 2.2.4) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8.4) + actionpack (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8.4) + activesupport (= 7.0.8.4) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.3.6) + activemodel (7.0.8.4) + activesupport (= 7.0.8.4) + activerecord (7.0.8.4) + activemodel (= 7.0.8.4) + activesupport (= 7.0.8.4) + activestorage (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activesupport (= 7.0.8.4) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.8.4) + actioncable (= 7.0.8.4) + actionmailbox (= 7.0.8.4) + actionmailer (= 7.0.8.4) + actionpack (= 7.0.8.4) + actiontext (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activemodel (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + bundler (>= 1.15.0) + railties (= 7.0.8.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rails (~> 7.0.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.2_actionpack_7.1.gemfile b/gemfiles/ruby_3.2_actionpack_7.1.gemfile new file mode 100644 index 00000000000..77d66c84b11 --- /dev/null +++ b/gemfiles/ruby_3.2_actionpack_7.1.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.1.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock new file mode 100644 index 00000000000..1d4329f7820 --- /dev/null +++ b/gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock @@ -0,0 +1,344 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.1.3.4) + actionpack (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.2) + actionpack (7.1.3.4) + actionview (= 7.1.3.4) + activesupport (= 7.1.3.4) + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.3.4) + actionpack (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.1.3.4) + activesupport (= 7.1.3.4) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.3.6) + activemodel (7.1.3.4) + activesupport (= 7.1.3.4) + activerecord (7.1.3.4) + activemodel (= 7.1.3.4) + activesupport (= 7.1.3.4) + timeout (>= 0.4.0) + activestorage (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activesupport (= 7.1.3.4) + marcel (~> 1.0) + activesupport (7.1.3.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + base64 (0.2.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + drb (2.2.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-console (0.7.2) + irb (1.14.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + mutex_m (0.2.0) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + psych (5.1.2) + stringio + public_suffix (6.0.1) + racc (1.8.1) + rack (3.1.7) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails (7.1.3.4) + actioncable (= 7.1.3.4) + actionmailbox (= 7.1.3.4) + actionmailer (= 7.1.3.4) + actionpack (= 7.1.3.4) + actiontext (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activemodel (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + bundler (>= 1.15.0) + railties (= 7.1.3.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + irb + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rdoc (6.7.0) + psych (>= 4.0.0) + regexp_parser (2.9.2) + reline (0.5.9) + io-console (~> 0.5) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + stringio (3.1.1) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rails (~> 7.1.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.3_actionpack_7.0.gemfile b/gemfiles/ruby_3.3_actionpack_7.0.gemfile new file mode 100644 index 00000000000..2c90032f074 --- /dev/null +++ b/gemfiles/ruby_3.3_actionpack_7.0.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.0.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock new file mode 100644 index 00000000000..41503556ebe --- /dev/null +++ b/gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock @@ -0,0 +1,314 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8.4) + actionpack (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.8.4) + actionview (= 7.0.8.4) + activesupport (= 7.0.8.4) + rack (~> 2.0, >= 2.2.4) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8.4) + actionpack (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8.4) + activesupport (= 7.0.8.4) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.3.6) + activemodel (7.0.8.4) + activesupport (= 7.0.8.4) + activerecord (7.0.8.4) + activemodel (= 7.0.8.4) + activesupport (= 7.0.8.4) + activestorage (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activesupport (= 7.0.8.4) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.8.4) + actioncable (= 7.0.8.4) + actionmailbox (= 7.0.8.4) + actionmailer (= 7.0.8.4) + actionpack (= 7.0.8.4) + actiontext (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activemodel (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + bundler (>= 1.15.0) + railties (= 7.0.8.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rails (~> 7.0.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/gemfiles/ruby_3.3_actionpack_7.1.gemfile b/gemfiles/ruby_3.3_actionpack_7.1.gemfile new file mode 100644 index 00000000000..77d66c84b11 --- /dev/null +++ b/gemfiles/ruby_3.3_actionpack_7.1.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "yard", "~> 0.9" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "rails", "~> 7.1.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock new file mode 100644 index 00000000000..1d4329f7820 --- /dev/null +++ b/gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock @@ -0,0 +1,344 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.1.3.4) + actionpack (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.2) + actionpack (7.1.3.4) + actionview (= 7.1.3.4) + activesupport (= 7.1.3.4) + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.3.4) + actionpack (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.1.3.4) + activesupport (= 7.1.3.4) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.3.6) + activemodel (7.1.3.4) + activesupport (= 7.1.3.4) + activerecord (7.1.3.4) + activemodel (= 7.1.3.4) + activesupport (= 7.1.3.4) + timeout (>= 0.4.0) + activestorage (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activesupport (= 7.1.3.4) + marcel (~> 1.0) + activesupport (7.1.3.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + base64 (0.2.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + drb (2.2.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4-aarch64-linux) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-console (0.7.2) + irb (1.14.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + minitest (5.25.1) + msgpack (1.7.2) + mutex_m (0.2.0) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + net-protocol + nio4r (2.7.3) + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + psych (5.1.2) + stringio + public_suffix (6.0.1) + racc (1.8.1) + rack (3.1.7) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails (7.1.3.4) + actioncable (= 7.1.3.4) + actionmailbox (= 7.1.3.4) + actionmailer (= 7.1.3.4) + actionpack (= 7.1.3.4) + actiontext (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activemodel (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + bundler (>= 1.15.0) + railties (= 7.1.3.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + irb + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rdoc (6.7.0) + psych (>= 4.0.0) + regexp_parser (2.9.2) + reline (0.5.9) + io-console (~> 0.5) + rexml (3.3.5) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + stringio (3.1.1) + strscan (3.1.0) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rails (~> 7.1.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.3.27 diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 569db150f21..4fae7d389a4 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -19,7 +19,7 @@ def set_http_route_tag(http_route) active_span.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, - http_route.gsub(/\(.:format\)$/, '') + http_route.gsub(/\(.:format\)\z/, '') ) end @@ -29,9 +29,9 @@ module Journey # for Rails versions older than 7.1 module Router def find_routes(req) - result = super(req) + result = super - return response unless Tracing.enabled? + return result unless Tracing.enabled? begin # Journey::Router#find_routes retuns an array for each matching route. diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb index 5d13d8cb223..bb371f81d2d 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb @@ -19,7 +19,7 @@ def target_version end def patch - if ::ActionPack.gem_version >= Gem::Version.new(7.1) + if ::ActionPack.gem_version >= Gem::Version.new('7.1') ::ActionDispatch::Journey::Router.prepend(ActionDispatch::Instrumentation::Journey::LazyRouter) else ::ActionDispatch::Journey::Router.prepend(ActionDispatch::Instrumentation::Journey::Router) diff --git a/spec/datadog/tracing/contrib/rails/support/deprecation.rb b/spec/datadog/tracing/contrib/rails/support/deprecation.rb index 095cd45bfcc..5724fa9a582 100644 --- a/spec/datadog/tracing/contrib/rails/support/deprecation.rb +++ b/spec/datadog/tracing/contrib/rails/support/deprecation.rb @@ -4,5 +4,11 @@ def raise_on_rails_deprecation! # was introduced that allows fine grain configuration # of which warnings are allowed, in case we need # such feature. - ActiveSupport::Deprecation.behavior = :raise + # + # In Rails 7.1 calling ActiveSupport::Deprecation.behavior= is deprecated + if defined?(Rails) && Rails.gem_version >= Gem::Version.new(7.1) + Rails.deprecator.behavior = :raise + else + ActiveSupport::Deprecation.behavior = :raise + end end From 0bdc2b9d1d0492f362f2131a4a4c7e3275ac49d6 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 21 Aug 2024 12:45:50 +0200 Subject: [PATCH 18/44] Remove ::set_http_route_tag and add a method to format the route --- .../action_dispatch/instrumentation.rb | 31 +++++++++++-------- .../action_dispatch/instrumentation_spec.rb | 18 +++-------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 4fae7d389a4..0faf9c124ae 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -11,16 +11,8 @@ module ActionDispatch module Instrumentation module_function - def set_http_route_tag(http_route) - return if http_route.empty? - - active_span = Tracing.active_span - return unless active_span - - active_span.set_tag( - Tracing::Metadata::Ext::HTTP::TAG_ROUTE, - http_route.gsub(/\(.:format\)\z/, '') - ) + def format_http_route(http_route) + http_route.gsub(/\(.:format\)\z/, '') end # Instrumentation for ActionDispatch::Journey components @@ -33,6 +25,9 @@ def find_routes(req) return result unless Tracing.enabled? + active_span = Tracing.active_span + return result unless active_span + begin # Journey::Router#find_routes retuns an array for each matching route. # This array is [match_data, path_parameters, route]. @@ -43,8 +38,12 @@ def find_routes(req) # When Rails is serving requests to Rails Engine routes, this function is called # twice: first time for the route on which the engine is mounted, and second # time for the internal engine route. - last_route = Tracing.active_span&.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) - Instrumentation.set_http_route_tag(last_route.to_s + current_route.to_s) + last_route = active_span.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) + + active_span.set_tag( + Tracing::Metadata::Ext::HTTP::TAG_ROUTE, + Instrumentation.format_http_route(last_route.to_s + current_route.to_s) + ) rescue StandardError => e Datadog.logger.error(e.message) end @@ -62,6 +61,9 @@ def serve(req) return response unless Tracing.enabled? + active_span = Tracing.active_span + return response unless active_span + begin return response if req.route_uri_pattern.nil? @@ -71,7 +73,10 @@ def serve(req) # and `#script_name` is the route prefix at which the engine is mounted. http_route = req.script_name.to_s + req.route_uri_pattern - Instrumentation.set_http_route_tag(http_route) + active_span.set_tag( + Tracing::Metadata::Ext::HTTP::TAG_ROUTE, + Instrumentation.format_http_route(http_route) + ) rescue StandardError => e Datadog.logger.error(e.message) end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb index 517ad34198c..bfd10f52aae 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -4,21 +4,13 @@ require 'datadog/tracing/contrib/action_pack/action_dispatch/instrumentation' RSpec.describe Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Instrumentation do - describe '::set_http_route_tag' do - it 'sets http_route tag without (.:format) part' do - Datadog::Tracing.trace('web.request') do |span_op, _trace_op| - described_class.set_http_route_tag('/api/users/:id(.:format)') - - expect(span_op.tags.fetch('http.route')).to eq('/api/users/:id') - end + describe '::format_http_route' do + it 'removes (.:format) part of the route' do + expect(described_class.format_http_route('/api/users/:id(.:format)')).to eq('/api/users/:id') end - it 'does not set http_route tag when the route is empty' do - Datadog::Tracing.trace('web.request') do |span_op, _trace_op| - described_class.set_http_route_tag('') - - expect(span_op.tags).not_to have_key('http.route') - end + it 'does not remove optional params from the route' do + expect(described_class.format_http_route('/api/users/(:id)')).to eq('/api/users/(:id)') end end end From ddb1ccd39e91e3dada230cf970bdf801ab73b955 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 21 Aug 2024 13:43:54 +0200 Subject: [PATCH 19/44] Fix Journey router instrumentation test description --- .../contrib/action_pack/action_dispatch/journey/router_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index cf8c849f2e5..95a7d95f8eb 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -84,7 +84,7 @@ def show clear_traces! end - it 'sets http.route when requesting a known route' do + it 'does not set http.route' do get '/api/users/1' expect(spans).to be_empty From 5ba0feff11e20c684148c18eb103aaa41d79b2dc Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 22 Aug 2024 17:12:38 +0200 Subject: [PATCH 20/44] Remove actionpack appraisal We want to reuse rails appraisals for testing actionpack to reduce the amount of appraisals we have. --- Matrixfile | 8 +- appraisal/jruby-9.2.rb | 4 - appraisal/jruby-9.3.rb | 4 - appraisal/jruby-9.4.rb | 4 - appraisal/ruby-2.5.rb | 4 - appraisal/ruby-2.7.rb | 4 - appraisal/ruby-3.0.rb | 17 +- appraisal/ruby-3.1.rb | 17 +- appraisal/ruby-3.2.rb | 17 +- appraisal/ruby-3.3.rb | 17 +- appraisal/ruby-3.4.rb | 17 +- gemfiles/jruby_9.2_actionpack_5.0.gemfile | 41 -- .../jruby_9.2_actionpack_5.0.gemfile.lock | 259 ------------- gemfiles/jruby_9.3_actionpack_5.0.gemfile | 45 --- .../jruby_9.3_actionpack_5.0.gemfile.lock | 309 ---------------- gemfiles/ruby_2.5_actionpack_5.0.gemfile | 44 --- gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock | 267 -------------- gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock | 298 --------------- gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock | 318 ---------------- ...ck_7.0.gemfile => ruby_3.0_rails7.gemfile} | 0 ...file.lock => ruby_3.0_rails7.gemfile.lock} | 2 +- ...k_7.1.gemfile => ruby_3.0_rails71.gemfile} | 0 ...ile.lock => ruby_3.0_rails71.gemfile.lock} | 2 +- ...ck_7.0.gemfile => ruby_3.1_rails7.gemfile} | 0 ...file.lock => ruby_3.1_rails7.gemfile.lock} | 2 +- ...k_7.1.gemfile => ruby_3.1_rails71.gemfile} | 0 ...ile.lock => ruby_3.1_rails71.gemfile.lock} | 2 +- ...ck_7.0.gemfile => ruby_3.2_rails7.gemfile} | 0 ...file.lock => ruby_3.2_rails7.gemfile.lock} | 2 +- ...k_7.1.gemfile => ruby_3.2_rails71.gemfile} | 0 ...ile.lock => ruby_3.2_rails71.gemfile.lock} | 2 +- ...ck_7.0.gemfile => ruby_3.3_rails7.gemfile} | 0 ...file.lock => ruby_3.3_rails7.gemfile.lock} | 2 +- ...k_7.1.gemfile => ruby_3.3_rails71.gemfile} | 0 ...ile.lock => ruby_3.3_rails71.gemfile.lock} | 2 +- ...ck_6.0.gemfile => ruby_3.4_rails7.gemfile} | 4 +- gemfiles/ruby_3.4_rails7.gemfile.lock | 319 ++++++++++++++++ ...k_5.0.gemfile => ruby_3.4_rails71.gemfile} | 6 +- gemfiles/ruby_3.4_rails71.gemfile.lock | 349 ++++++++++++++++++ 39 files changed, 725 insertions(+), 1663 deletions(-) delete mode 100644 gemfiles/jruby_9.2_actionpack_5.0.gemfile delete mode 100644 gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock delete mode 100644 gemfiles/jruby_9.3_actionpack_5.0.gemfile delete mode 100644 gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock delete mode 100644 gemfiles/ruby_2.5_actionpack_5.0.gemfile delete mode 100644 gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock delete mode 100644 gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock delete mode 100644 gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock rename gemfiles/{ruby_3.0_actionpack_7.0.gemfile => ruby_3.0_rails7.gemfile} (100%) rename gemfiles/{ruby_3.0_actionpack_7.0.gemfile.lock => ruby_3.0_rails7.gemfile.lock} (99%) rename gemfiles/{ruby_3.0_actionpack_7.1.gemfile => ruby_3.0_rails71.gemfile} (100%) rename gemfiles/{ruby_3.1_actionpack_7.1.gemfile.lock => ruby_3.0_rails71.gemfile.lock} (99%) rename gemfiles/{ruby_3.1_actionpack_7.0.gemfile => ruby_3.1_rails7.gemfile} (100%) rename gemfiles/{ruby_3.1_actionpack_7.0.gemfile.lock => ruby_3.1_rails7.gemfile.lock} (99%) rename gemfiles/{ruby_3.1_actionpack_7.1.gemfile => ruby_3.1_rails71.gemfile} (100%) rename gemfiles/{ruby_3.0_actionpack_7.1.gemfile.lock => ruby_3.1_rails71.gemfile.lock} (99%) rename gemfiles/{ruby_3.2_actionpack_7.0.gemfile => ruby_3.2_rails7.gemfile} (100%) rename gemfiles/{ruby_3.3_actionpack_7.0.gemfile.lock => ruby_3.2_rails7.gemfile.lock} (99%) rename gemfiles/{ruby_3.2_actionpack_7.1.gemfile => ruby_3.2_rails71.gemfile} (100%) rename gemfiles/{ruby_3.2_actionpack_7.1.gemfile.lock => ruby_3.2_rails71.gemfile.lock} (99%) rename gemfiles/{ruby_3.3_actionpack_7.0.gemfile => ruby_3.3_rails7.gemfile} (100%) rename gemfiles/{ruby_3.2_actionpack_7.0.gemfile.lock => ruby_3.3_rails7.gemfile.lock} (99%) rename gemfiles/{ruby_3.3_actionpack_7.1.gemfile => ruby_3.3_rails71.gemfile} (100%) rename gemfiles/{ruby_3.3_actionpack_7.1.gemfile.lock => ruby_3.3_rails71.gemfile.lock} (99%) rename gemfiles/{ruby_2.7_actionpack_6.0.gemfile => ruby_3.4_rails7.gemfile} (96%) create mode 100644 gemfiles/ruby_3.4_rails7.gemfile.lock rename gemfiles/{ruby_2.6_actionpack_5.0.gemfile => ruby_3.4_rails71.gemfile} (91%) create mode 100644 gemfiles/ruby_3.4_rails71.gemfile.lock diff --git a/Matrixfile b/Matrixfile index 4bb4b3f8002..da0f497a2b2 100644 --- a/Matrixfile +++ b/Matrixfile @@ -27,10 +27,10 @@ 'opentelemetry' => '❌ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby' }, 'action_pack' => { - 'actionpack-5.0' => '✅ 2.5 / ✅ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', - 'actionpack-6.0' => '❌ 2.5 / ❌ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', - 'actionpack-7.0' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', - 'actionpack-7.1' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', + 'rails5-mysql' => '✅ 2.5 / ✅ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', + 'rails6-mysql' => '❌ 2.5 / ❌ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', + 'rails7' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', + 'rails71' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', }, 'action_view' => { 'activesupport' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', diff --git a/appraisal/jruby-9.2.rb b/appraisal/jruby-9.2.rb index 45ecb8e68ba..b7b82e77db9 100644 --- a/appraisal/jruby-9.2.rb +++ b/appraisal/jruby-9.2.rb @@ -225,10 +225,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -appraise 'actionpack-5.0' do - gem 'rails', '~> 5.0' -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/jruby-9.3.rb b/appraisal/jruby-9.3.rb index ccfdafe16f0..1eb0a2e9a0d 100644 --- a/appraisal/jruby-9.3.rb +++ b/appraisal/jruby-9.3.rb @@ -198,10 +198,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -appraise 'actionpack-5.0' do - gem 'rails', '~> 6.0' -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/jruby-9.4.rb b/appraisal/jruby-9.4.rb index 80d42fbbbfd..6e025eecd21 100644 --- a/appraisal/jruby-9.4.rb +++ b/appraisal/jruby-9.4.rb @@ -102,10 +102,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -appraise 'actionpack-6.0' do - gem 'rails', '~> 6.0' -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-2.5.rb b/appraisal/ruby-2.5.rb index e45a8fd0b0e..8445ce499ad 100644 --- a/appraisal/ruby-2.5.rb +++ b/appraisal/ruby-2.5.rb @@ -245,10 +245,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -appraise 'actionpack-5.0' do - gem 'rails', '~> 5.0' -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-2.7.rb b/appraisal/ruby-2.7.rb index c2e09a2bb91..1f30aa2a7b5 100644 --- a/appraisal/ruby-2.7.rb +++ b/appraisal/ruby-2.7.rb @@ -198,10 +198,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -appraise 'actionpack-6.0' do - gem 'rails', '~> 6.0' -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.0.rb b/appraisal/ruby-3.0.rb index cacd426c9f7..08928261c02 100644 --- a/appraisal/ruby-3.0.rb +++ b/appraisal/ruby-3.0.rb @@ -50,6 +50,14 @@ gem 'net-smtp' end +appraise 'rails7' do + gem 'rails', '~> 7.0.0' +end + +appraise 'rails71' do + gem 'rails', '~> 7.1.0' +end + appraise 'resque2-redis3' do gem 'redis', '< 4.0' gem 'resque', '>= 2.0' @@ -112,15 +120,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -[ - '7.0', - '7.1', -].each do |v| - appraise "actionpack-#{v}" do - gem 'rails', "~> #{v}.0" - end -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.1.rb b/appraisal/ruby-3.1.rb index cacd426c9f7..08928261c02 100644 --- a/appraisal/ruby-3.1.rb +++ b/appraisal/ruby-3.1.rb @@ -50,6 +50,14 @@ gem 'net-smtp' end +appraise 'rails7' do + gem 'rails', '~> 7.0.0' +end + +appraise 'rails71' do + gem 'rails', '~> 7.1.0' +end + appraise 'resque2-redis3' do gem 'redis', '< 4.0' gem 'resque', '>= 2.0' @@ -112,15 +120,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -[ - '7.0', - '7.1', -].each do |v| - appraise "actionpack-#{v}" do - gem 'rails', "~> #{v}.0" - end -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.2.rb b/appraisal/ruby-3.2.rb index cacd426c9f7..08928261c02 100644 --- a/appraisal/ruby-3.2.rb +++ b/appraisal/ruby-3.2.rb @@ -50,6 +50,14 @@ gem 'net-smtp' end +appraise 'rails7' do + gem 'rails', '~> 7.0.0' +end + +appraise 'rails71' do + gem 'rails', '~> 7.1.0' +end + appraise 'resque2-redis3' do gem 'redis', '< 4.0' gem 'resque', '>= 2.0' @@ -112,15 +120,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -[ - '7.0', - '7.1', -].each do |v| - appraise "actionpack-#{v}" do - gem 'rails', "~> #{v}.0" - end -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.3.rb b/appraisal/ruby-3.3.rb index 888d9e65b6d..0112b3951ec 100644 --- a/appraisal/ruby-3.3.rb +++ b/appraisal/ruby-3.3.rb @@ -50,6 +50,14 @@ gem 'net-smtp' end +appraise 'rails7' do + gem 'rails', '~> 7.0.0' +end + +appraise 'rails71' do + gem 'rails', '~> 7.1.0' +end + appraise 'resque2-redis3' do gem 'redis', '< 4.0' gem 'resque', '>= 2.0' @@ -112,15 +120,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -[ - '7.0', - '7.1', -].each do |v| - appraise "actionpack-#{v}" do - gem 'rails', "~> #{v}.0" - end -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/appraisal/ruby-3.4.rb b/appraisal/ruby-3.4.rb index 09f4db7fb26..5a4b91bf337 100644 --- a/appraisal/ruby-3.4.rb +++ b/appraisal/ruby-3.4.rb @@ -50,6 +50,14 @@ gem 'net-smtp' end +appraise 'rails7' do + gem 'rails', '~> 7.0.0' +end + +appraise 'rails71' do + gem 'rails', '~> 7.1.0' +end + appraise 'resque2-redis3' do gem 'redis', '< 4.0' gem 'resque', '>= 2.0' @@ -112,15 +120,6 @@ gem 'ruby-kafka', '>= 0.7.10' end -[ - '7.0', - '7.1', -].each do |v| - appraise "actionpack-#{v}" do - gem 'rails', "~> #{v}.0" - end -end - appraise 'contrib' do gem 'concurrent-ruby' gem 'dalli', '>= 3.0.0' diff --git a/gemfiles/jruby_9.2_actionpack_5.0.gemfile b/gemfiles/jruby_9.2_actionpack_5.0.gemfile deleted file mode 100644 index e6f91013c40..00000000000 --- a/gemfiles/jruby_9.2_actionpack_5.0.gemfile +++ /dev/null @@ -1,41 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "appraisal", "~> 2.4.0" -gem "benchmark-ips", "~> 2.8" -gem "benchmark-memory", "< 0.2" -gem "builder" -gem "climate_control", "~> 0.2.0" -gem "concurrent-ruby" -gem "json-schema", "< 3" -gem "memory_profiler", "~> 0.9" -gem "os", "~> 1.1" -gem "pimpmychangelog", ">= 0.1.2" -gem "pry" -gem "pry-debugger-jruby" -gem "rake", ">= 10.5" -gem "rake-compiler", "~> 1.1", ">= 1.1.1" -gem "rspec", "~> 3.12" -gem "rspec-collection_matchers", "~> 1.1" -gem "rspec-wait", "~> 0" -gem "rspec_junit_formatter", ">= 0.5.1" -gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" -gem "simplecov-cobertura", "~> 2.1.0" -gem "warning", "~> 1" -gem "webmock", ">= 3.10.0" -gem "rexml", ">= 3.2.7" -gem "yard", "~> 0.9" -gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" -gem "ffi", "~> 1.16.3", require: false -gem "rails", "~> 5.0" - -group :check do - -end - -group :dev do - -end - -gemspec path: "../" diff --git a/gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock b/gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock deleted file mode 100644 index e2d441bf37f..00000000000 --- a/gemfiles/jruby_9.2_actionpack_5.0.gemfile.lock +++ /dev/null @@ -1,259 +0,0 @@ -GIT - remote: https://github.com/DataDog/simplecov - revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - specs: - simplecov (0.21.2) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - -PATH - remote: .. - specs: - datadog (2.2.0) - debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) - libddwaf (~> 1.14.0.0.0) - msgpack - -GEM - remote: https://rubygems.org/ - specs: - actioncable (5.2.8.1) - actionpack (= 5.2.8.1) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailer (5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.2.8.1) - actionview (= 5.2.8.1) - activesupport (= 5.2.8.1) - rack (~> 2.0, >= 2.0.8) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.8.1) - activesupport (= 5.2.8.1) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.8.1) - activesupport (= 5.2.8.1) - globalid (>= 0.3.6) - activemodel (5.2.8.1) - activesupport (= 5.2.8.1) - activerecord (5.2.8.1) - activemodel (= 5.2.8.1) - activesupport (= 5.2.8.1) - arel (>= 9.0) - activestorage (5.2.8.1) - actionpack (= 5.2.8.1) - activerecord (= 5.2.8.1) - marcel (~> 1.0.0) - activesupport (5.2.8.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - appraisal (2.4.1) - bundler - rake - thor (>= 0.14.0) - arel (9.0.0) - benchmark-ips (2.13.0) - benchmark-memory (0.1.2) - memory_profiler (~> 0.9) - bigdecimal (3.1.8-java) - builder (3.3.0) - climate_control (0.2.0) - coderay (1.1.3) - concurrent-ruby (1.3.4) - crack (1.0.0) - bigdecimal - rexml - crass (1.0.6) - debase-ruby_core_source (3.3.1) - diff-lcs (1.5.1) - digest (3.1.1-java) - docile (1.4.1) - dogstatsd-ruby (5.6.1) - erubi (1.13.0) - ffi (1.16.3-java) - globalid (1.1.0) - activesupport (>= 5.0) - hashdiff (1.1.1) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - io-wait (0.3.1-java) - json-schema (2.8.1) - addressable (>= 2.4) - libdatadog (11.0.0.1.0) - libddwaf (1.14.0.0.0-java) - ffi (~> 1.0) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.4) - memory_profiler (0.9.14) - method_source (1.1.0) - mini_mime (1.1.2) - minitest (5.15.0) - msgpack (1.7.2-java) - net-imap (0.2.2) - digest - net-protocol - strscan - net-pop (0.1.2) - net-protocol - net-protocol (0.1.2) - io-wait - timeout - net-smtp (0.3.0) - digest - net-protocol - timeout - nio4r (2.7.3-java) - nokogiri (1.12.5-java) - racc (~> 1.4) - os (1.1.4) - pimpmychangelog (0.1.3) - pry (0.14.2-java) - coderay (~> 1.1) - method_source (~> 1.0) - spoon (~> 0.0) - pry-debugger-jruby (2.1.1-java) - pry (>= 0.13, < 0.15) - ruby-debug-base (>= 0.10.4, < 0.12) - public_suffix (4.0.7) - racc (1.8.1-java) - rack (2.2.9) - rack-test (2.1.0) - rack (>= 1.3) - rails (5.2.8.1) - actioncable (= 5.2.8.1) - actionmailer (= 5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - activemodel (= 5.2.8.1) - activerecord (= 5.2.8.1) - activestorage (= 5.2.8.1) - activesupport (= 5.2.8.1) - bundler (>= 1.3.0) - railties (= 5.2.8.1) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (5.2.8.1) - actionpack (= 5.2.8.1) - activesupport (= 5.2.8.1) - method_source - rake (>= 0.8.7) - thor (>= 0.19.0, < 2.0) - rake (13.2.1) - rake-compiler (1.2.7) - rake - rexml (3.3.5) - strscan - rspec (3.13.0) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-collection_matchers (1.2.1) - rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.13.0) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rspec-wait (0.0.10) - rspec (>= 3.0) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) - ruby-debug-base (0.11.0-java) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - spoon (0.0.6) - ffi - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - strscan (3.1.0-java) - thor (1.2.2) - thread_safe (0.3.6-java) - timeout (0.4.0) - tzinfo (1.2.11) - thread_safe (~> 0.1) - warning (1.4.0) - webmock (3.23.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.6-java) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - yard (0.9.36) - -PLATFORMS - universal-java-1.8 - -DEPENDENCIES - appraisal (~> 2.4.0) - benchmark-ips (~> 2.8) - benchmark-memory (< 0.2) - builder - climate_control (~> 0.2.0) - concurrent-ruby - datadog! - dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) - ffi (~> 1.16.3) - json-schema (< 3) - memory_profiler (~> 0.9) - os (~> 1.1) - pimpmychangelog (>= 0.1.2) - pry - pry-debugger-jruby - rails (~> 5.0) - rake (>= 10.5) - rake-compiler (~> 1.1, >= 1.1.1) - rexml (>= 3.2.7) - rspec (~> 3.12) - rspec-collection_matchers (~> 1.1) - rspec-wait (~> 0) - rspec_junit_formatter (>= 0.5.1) - simplecov! - simplecov-cobertura (~> 2.1.0) - warning (~> 1) - webmock (>= 3.10.0) - yard (~> 0.9) - -BUNDLED WITH - 2.3.27 diff --git a/gemfiles/jruby_9.3_actionpack_5.0.gemfile b/gemfiles/jruby_9.3_actionpack_5.0.gemfile deleted file mode 100644 index f3ab8c8c758..00000000000 --- a/gemfiles/jruby_9.3_actionpack_5.0.gemfile +++ /dev/null @@ -1,45 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "appraisal", "~> 2.4.0" -gem "benchmark-ips", "~> 2.8" -gem "benchmark-memory", "< 0.2" -gem "builder" -gem "climate_control", "~> 0.2.0" -gem "concurrent-ruby" -gem "json-schema", "< 3" -gem "memory_profiler", "~> 0.9" -gem "os", "~> 1.1" -gem "pimpmychangelog", ">= 0.1.2" -gem "pry" -gem "pry-debugger-jruby" -gem "rake", ">= 10.5" -gem "rake-compiler", "~> 1.1", ">= 1.1.1" -gem "rspec", "~> 3.12" -gem "rspec-collection_matchers", "~> 1.1" -gem "rspec-wait", "~> 0" -gem "rspec_junit_formatter", ">= 0.5.1" -gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" -gem "simplecov-cobertura", "~> 2.1.0" -gem "warning", "~> 1" -gem "webmock", ">= 3.10.0" -gem "rexml", ">= 3.2.7" -gem "yard", "~> 0.9" -gem "rubocop", "~> 1.50.0", require: false -gem "rubocop-packaging", "~> 0.5.2", require: false -gem "rubocop-performance", "~> 1.9", require: false -gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false -gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" -gem "ffi", "~> 1.16.3", require: false -gem "rails", "~> 6.0" - -group :check do - -end - -group :dev do - -end - -gemspec path: "../" diff --git a/gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock b/gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock deleted file mode 100644 index 89ef57626e9..00000000000 --- a/gemfiles/jruby_9.3_actionpack_5.0.gemfile.lock +++ /dev/null @@ -1,309 +0,0 @@ -GIT - remote: https://github.com/DataDog/simplecov - revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - specs: - simplecov (0.21.2) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - -PATH - remote: .. - specs: - datadog (2.2.0) - debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) - libddwaf (~> 1.14.0.0.0) - msgpack - -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - mail (>= 2.7.1) - actionmailer (6.1.7.8) - actionpack (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activesupport (= 6.1.7.8) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.1.7.8) - actionview (= 6.1.7.8) - activesupport (= 6.1.7.8) - rack (~> 2.0, >= 2.0.9) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.8) - actionpack (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - nokogiri (>= 1.8.5) - actionview (6.1.7.8) - activesupport (= 6.1.7.8) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.7.8) - activesupport (= 6.1.7.8) - globalid (>= 0.3.6) - activemodel (6.1.7.8) - activesupport (= 6.1.7.8) - activerecord (6.1.7.8) - activemodel (= 6.1.7.8) - activesupport (= 6.1.7.8) - activestorage (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activesupport (= 6.1.7.8) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (6.1.7.8) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - appraisal (2.4.1) - bundler - rake - thor (>= 0.14.0) - ast (2.4.2) - benchmark-ips (2.13.0) - benchmark-memory (0.1.2) - memory_profiler (~> 0.9) - bigdecimal (3.1.8-java) - builder (3.3.0) - climate_control (0.2.0) - coderay (1.1.3) - concurrent-ruby (1.3.4) - crack (1.0.0) - bigdecimal - rexml - crass (1.0.6) - date (3.3.4-java) - debase-ruby_core_source (3.3.1) - diff-lcs (1.5.1) - docile (1.4.1) - dogstatsd-ruby (5.6.1) - erubi (1.13.0) - ffi (1.16.3-java) - globalid (1.2.1) - activesupport (>= 6.1) - hashdiff (1.1.1) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - json (2.7.2-java) - json-schema (2.8.1) - addressable (>= 2.4) - libdatadog (11.0.0.1.0) - libddwaf (1.14.0.0.0-java) - ffi (~> 1.0) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.4) - memory_profiler (0.9.14) - method_source (1.1.0) - mini_mime (1.1.5) - minitest (5.25.1) - msgpack (1.7.2-java) - net-imap (0.3.7) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.2) - timeout - net-smtp (0.5.0) - net-protocol - nio4r (2.7.3-java) - nokogiri (1.13.10-java) - racc (~> 1.4) - os (1.1.4) - parallel (1.24.0) - parser (3.3.4.2) - ast (~> 2.4.1) - racc - pimpmychangelog (0.1.3) - pry (0.14.2-java) - coderay (~> 1.1) - method_source (~> 1.0) - spoon (~> 0.0) - pry-debugger-jruby (2.1.1-java) - pry (>= 0.13, < 0.15) - ruby-debug-base (>= 0.10.4, < 0.12) - public_suffix (5.1.1) - racc (1.8.1-java) - rack (2.2.9) - rack-test (2.1.0) - rack (>= 1.3) - rails (6.1.7.8) - actioncable (= 6.1.7.8) - actionmailbox (= 6.1.7.8) - actionmailer (= 6.1.7.8) - actionpack (= 6.1.7.8) - actiontext (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activemodel (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - bundler (>= 1.15.0) - railties (= 6.1.7.8) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) - method_source - rake (>= 12.2) - thor (~> 1.0) - rainbow (3.1.1) - rake (13.2.1) - rake-compiler (1.2.7) - rake - regexp_parser (2.9.2) - rexml (3.3.5) - strscan - rspec (3.13.0) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-collection_matchers (1.2.1) - rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.13.0) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rspec-wait (0.0.10) - rspec (>= 3.0) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.50.2) - json (~> 2.3) - parallel (~> 1.10) - parser (>= 3.2.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.28.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) - rubocop-capybara (2.18.0) - rubocop (~> 1.41) - rubocop-packaging (0.5.2) - rubocop (>= 1.33, < 2.0) - rubocop-performance (1.17.1) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-rspec (2.20.0) - rubocop (~> 1.33) - rubocop-capybara (~> 2.17) - ruby-debug-base (0.11.0-java) - ruby-progressbar (1.13.0) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - spoon (0.0.6) - ffi - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.5.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - sprockets (>= 3.0.0) - strscan (3.1.0-java) - thor (1.3.1) - timeout (0.4.1) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) - warning (1.4.0) - webmock (3.23.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.6-java) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - yard (0.9.36) - zeitwerk (2.6.17) - -PLATFORMS - universal-java-11 - -DEPENDENCIES - appraisal (~> 2.4.0) - benchmark-ips (~> 2.8) - benchmark-memory (< 0.2) - builder - climate_control (~> 0.2.0) - concurrent-ruby - datadog! - dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) - ffi (~> 1.16.3) - json-schema (< 3) - memory_profiler (~> 0.9) - os (~> 1.1) - pimpmychangelog (>= 0.1.2) - pry - pry-debugger-jruby - rails (~> 6.0) - rake (>= 10.5) - rake-compiler (~> 1.1, >= 1.1.1) - rexml (>= 3.2.7) - rspec (~> 3.12) - rspec-collection_matchers (~> 1.1) - rspec-wait (~> 0) - rspec_junit_formatter (>= 0.5.1) - rubocop (~> 1.50.0) - rubocop-packaging (~> 0.5.2) - rubocop-performance (~> 1.9) - rubocop-rspec (~> 2.20, < 2.21) - simplecov! - simplecov-cobertura (~> 2.1.0) - warning (~> 1) - webmock (>= 3.10.0) - yard (~> 0.9) - -BUNDLED WITH - 2.3.27 diff --git a/gemfiles/ruby_2.5_actionpack_5.0.gemfile b/gemfiles/ruby_2.5_actionpack_5.0.gemfile deleted file mode 100644 index 5f92fd05f78..00000000000 --- a/gemfiles/ruby_2.5_actionpack_5.0.gemfile +++ /dev/null @@ -1,44 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "appraisal", "~> 2.4.0" -gem "benchmark-ips", "~> 2.8" -gem "benchmark-memory", "< 0.2" -gem "builder" -gem "climate_control", "~> 0.2.0" -gem "concurrent-ruby" -gem "extlz4", "~> 0.3", ">= 0.3.3" -gem "json-schema", "< 3" -gem "memory_profiler", "~> 0.9" -gem "os", "~> 1.1" -gem "pimpmychangelog", ">= 0.1.2" -gem "pry" -gem "pry-nav" -gem "pry-stack_explorer" -gem "rake", ">= 10.5" -gem "rake-compiler", "~> 1.1", ">= 1.1.1" -gem "rspec", "~> 3.12" -gem "rspec-collection_matchers", "~> 1.1" -gem "rspec-wait", "~> 0" -gem "rspec_junit_formatter", ">= 0.5.1" -gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" -gem "simplecov-cobertura", "~> 2.1.0" -gem "warning", "~> 1" -gem "webmock", ">= 3.10.0" -gem "rexml", ">= 3.2.7" -gem "yard", "~> 0.9" -gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" -gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1", "< 3.19.2"] -gem "ffi", "~> 1.16.3", require: false -gem "rails", "~> 5.0" - -group :check do - -end - -group :dev do - -end - -gemspec path: "../" diff --git a/gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock b/gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock deleted file mode 100644 index 5b0af5ebf4e..00000000000 --- a/gemfiles/ruby_2.5_actionpack_5.0.gemfile.lock +++ /dev/null @@ -1,267 +0,0 @@ -GIT - remote: https://github.com/DataDog/simplecov - revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - specs: - simplecov (0.21.2) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - -PATH - remote: .. - specs: - datadog (2.2.0) - debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) - libddwaf (~> 1.14.0.0.0) - msgpack - -GEM - remote: https://rubygems.org/ - specs: - actioncable (5.2.8.1) - actionpack (= 5.2.8.1) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailer (5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.2.8.1) - actionview (= 5.2.8.1) - activesupport (= 5.2.8.1) - rack (~> 2.0, >= 2.0.8) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.8.1) - activesupport (= 5.2.8.1) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.8.1) - activesupport (= 5.2.8.1) - globalid (>= 0.3.6) - activemodel (5.2.8.1) - activesupport (= 5.2.8.1) - activerecord (5.2.8.1) - activemodel (= 5.2.8.1) - activesupport (= 5.2.8.1) - arel (>= 9.0) - activestorage (5.2.8.1) - actionpack (= 5.2.8.1) - activerecord (= 5.2.8.1) - marcel (~> 1.0.0) - activesupport (5.2.8.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - appraisal (2.4.1) - bundler - rake - thor (>= 0.14.0) - arel (9.0.0) - benchmark-ips (2.13.0) - benchmark-memory (0.1.2) - memory_profiler (~> 0.9) - bigdecimal (3.1.8) - binding_of_caller (0.8.0) - debug_inspector (>= 0.0.1) - builder (3.3.0) - climate_control (0.2.0) - coderay (1.1.3) - concurrent-ruby (1.3.4) - crack (1.0.0) - bigdecimal - rexml - crass (1.0.6) - debase-ruby_core_source (3.3.1) - debug_inspector (1.2.0) - diff-lcs (1.5.1) - digest (3.1.1) - docile (1.4.1) - dogstatsd-ruby (5.6.1) - erubi (1.13.0) - extlz4 (0.3.4) - ffi (1.16.3) - globalid (1.1.0) - activesupport (>= 5.0) - google-protobuf (3.19.1) - hashdiff (1.1.1) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - io-wait (0.3.1) - json-schema (2.8.1) - addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) - libddwaf (1.14.0.0.0-aarch64-linux) - ffi (~> 1.0) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.4) - memory_profiler (0.9.14) - method_source (1.1.0) - mini_mime (1.1.2) - mini_portile2 (2.6.1) - minitest (5.15.0) - msgpack (1.7.2) - net-imap (0.2.2) - digest - net-protocol - strscan - net-pop (0.1.2) - net-protocol - net-protocol (0.1.2) - io-wait - timeout - net-smtp (0.3.0) - digest - net-protocol - timeout - nio4r (2.7.3) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) - racc (~> 1.4) - os (1.1.4) - pimpmychangelog (0.1.3) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-nav (1.0.0) - pry (>= 0.9.10, < 0.15) - pry-stack_explorer (0.4.13) - binding_of_caller (~> 0.7) - pry (~> 0.13) - public_suffix (4.0.7) - racc (1.8.1) - rack (2.2.9) - rack-test (2.1.0) - rack (>= 1.3) - rails (5.2.8.1) - actioncable (= 5.2.8.1) - actionmailer (= 5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - activemodel (= 5.2.8.1) - activerecord (= 5.2.8.1) - activestorage (= 5.2.8.1) - activesupport (= 5.2.8.1) - bundler (>= 1.3.0) - railties (= 5.2.8.1) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (5.2.8.1) - actionpack (= 5.2.8.1) - activesupport (= 5.2.8.1) - method_source - rake (>= 0.8.7) - thor (>= 0.19.0, < 2.0) - rake (13.2.1) - rake-compiler (1.2.7) - rake - rexml (3.3.5) - strscan - rspec (3.13.0) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-collection_matchers (1.2.1) - rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.13.0) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rspec-wait (0.0.10) - rspec (>= 3.0) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - strscan (3.1.0) - thor (1.2.2) - thread_safe (0.3.6) - timeout (0.4.0) - tzinfo (1.2.11) - thread_safe (~> 0.1) - warning (1.4.0) - webmock (3.23.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.6) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - yard (0.9.36) - -PLATFORMS - aarch64-linux - -DEPENDENCIES - appraisal (~> 2.4.0) - benchmark-ips (~> 2.8) - benchmark-memory (< 0.2) - builder - climate_control (~> 0.2.0) - concurrent-ruby - datadog! - dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) - extlz4 (~> 0.3, >= 0.3.3) - ffi (~> 1.16.3) - google-protobuf (~> 3.0, < 3.19.2, != 3.7.1, != 3.7.0) - json-schema (< 3) - memory_profiler (~> 0.9) - os (~> 1.1) - pimpmychangelog (>= 0.1.2) - pry - pry-nav - pry-stack_explorer - rails (~> 5.0) - rake (>= 10.5) - rake-compiler (~> 1.1, >= 1.1.1) - rexml (>= 3.2.7) - rspec (~> 3.12) - rspec-collection_matchers (~> 1.1) - rspec-wait (~> 0) - rspec_junit_formatter (>= 0.5.1) - simplecov! - simplecov-cobertura (~> 2.1.0) - warning (~> 1) - webmock (>= 3.10.0) - yard (~> 0.9) - -BUNDLED WITH - 2.3.27 diff --git a/gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock b/gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock deleted file mode 100644 index d7582129e9c..00000000000 --- a/gemfiles/ruby_2.6_actionpack_5.0.gemfile.lock +++ /dev/null @@ -1,298 +0,0 @@ -GIT - remote: https://github.com/DataDog/simplecov - revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - specs: - simplecov (0.21.2) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - -PATH - remote: .. - specs: - datadog (2.2.0) - debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) - libddwaf (~> 1.14.0.0.0) - msgpack - -GEM - remote: https://rubygems.org/ - specs: - actioncable (5.2.8.1) - actionpack (= 5.2.8.1) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailer (5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.2.8.1) - actionview (= 5.2.8.1) - activesupport (= 5.2.8.1) - rack (~> 2.0, >= 2.0.8) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.8.1) - activesupport (= 5.2.8.1) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.8.1) - activesupport (= 5.2.8.1) - globalid (>= 0.3.6) - activemodel (5.2.8.1) - activesupport (= 5.2.8.1) - activerecord (5.2.8.1) - activemodel (= 5.2.8.1) - activesupport (= 5.2.8.1) - arel (>= 9.0) - activestorage (5.2.8.1) - actionpack (= 5.2.8.1) - activerecord (= 5.2.8.1) - marcel (~> 1.0.0) - activesupport (5.2.8.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - appraisal (2.4.1) - bundler - rake - thor (>= 0.14.0) - arel (9.0.0) - ast (2.4.2) - benchmark-ips (2.13.0) - benchmark-memory (0.1.2) - memory_profiler (~> 0.9) - bigdecimal (3.1.8) - binding_of_caller (1.0.1) - debug_inspector (>= 1.2.0) - builder (3.3.0) - byebug (11.1.3) - climate_control (0.2.0) - coderay (1.1.3) - concurrent-ruby (1.3.4) - crack (1.0.0) - bigdecimal - rexml - crass (1.0.6) - date (3.3.4) - debase-ruby_core_source (3.3.1) - debug_inspector (1.2.0) - diff-lcs (1.5.1) - docile (1.4.1) - dogstatsd-ruby (5.6.1) - erubi (1.13.0) - extlz4 (0.3.4) - ffi (1.16.3) - globalid (1.1.0) - activesupport (>= 5.0) - google-protobuf (3.19.1) - hashdiff (1.1.1) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - json (2.7.2) - json-schema (2.8.1) - addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) - libddwaf (1.14.0.0.0-aarch64-linux) - ffi (~> 1.0) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.4) - memory_profiler (0.9.14) - method_source (1.1.0) - mini_mime (1.1.5) - minitest (5.25.1) - msgpack (1.7.2) - net-imap (0.3.7) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.2) - timeout - net-smtp (0.5.0) - net-protocol - nio4r (2.7.3) - nokogiri (1.13.10-aarch64-linux) - racc (~> 1.4) - os (1.1.4) - parallel (1.24.0) - parser (3.3.4.2) - ast (~> 2.4.1) - racc - pimpmychangelog (0.1.3) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.8.0) - byebug (~> 11.0) - pry (~> 0.10) - pry-stack_explorer (0.6.1) - binding_of_caller (~> 1.0) - pry (~> 0.13) - public_suffix (5.1.1) - racc (1.8.1) - rack (2.2.9) - rack-test (2.1.0) - rack (>= 1.3) - rails (5.2.8.1) - actioncable (= 5.2.8.1) - actionmailer (= 5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - activemodel (= 5.2.8.1) - activerecord (= 5.2.8.1) - activestorage (= 5.2.8.1) - activesupport (= 5.2.8.1) - bundler (>= 1.3.0) - railties (= 5.2.8.1) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (5.2.8.1) - actionpack (= 5.2.8.1) - activesupport (= 5.2.8.1) - method_source - rake (>= 0.8.7) - thor (>= 0.19.0, < 2.0) - rainbow (3.1.1) - rake (13.2.1) - rake-compiler (1.2.7) - rake - regexp_parser (2.9.2) - rexml (3.3.5) - strscan - rspec (3.13.0) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-collection_matchers (1.2.1) - rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.13.0) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rspec-wait (0.0.10) - rspec (>= 3.0) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.50.2) - json (~> 2.3) - parallel (~> 1.10) - parser (>= 3.2.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.28.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) - rubocop-capybara (2.18.0) - rubocop (~> 1.41) - rubocop-packaging (0.5.2) - rubocop (>= 1.33, < 2.0) - rubocop-performance (1.17.1) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-rspec (2.20.0) - rubocop (~> 1.33) - rubocop-capybara (~> 2.17) - ruby-progressbar (1.13.0) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - strscan (3.1.0) - thor (1.3.1) - thread_safe (0.3.6) - timeout (0.4.1) - tzinfo (1.2.11) - thread_safe (~> 0.1) - unicode-display_width (2.5.0) - warning (1.4.0) - webmock (3.23.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.6) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - yard (0.9.36) - -PLATFORMS - aarch64-linux - -DEPENDENCIES - appraisal (~> 2.4.0) - benchmark-ips (~> 2.8) - benchmark-memory (< 0.2) - builder - climate_control (~> 0.2.0) - concurrent-ruby - datadog! - dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) - extlz4 (~> 0.3, >= 0.3.3) - ffi (~> 1.16.3) - google-protobuf (~> 3.0, < 3.19.2, != 3.7.1, != 3.7.0) - json-schema (< 3) - memory_profiler (~> 0.9) - os (~> 1.1) - pimpmychangelog (>= 0.1.2) - pry - pry-byebug - pry-stack_explorer - rails (~> 5.0) - rake (>= 10.5) - rake-compiler (~> 1.1, >= 1.1.1) - rexml (>= 3.2.7) - rspec (~> 3.12) - rspec-collection_matchers (~> 1.1) - rspec-wait (~> 0) - rspec_junit_formatter (>= 0.5.1) - rubocop (~> 1.50.0) - rubocop-packaging (~> 0.5.2) - rubocop-performance (~> 1.9) - rubocop-rspec (~> 2.20, < 2.21) - simplecov! - simplecov-cobertura (~> 2.1.0) - warning (~> 1) - webmock (>= 3.10.0) - yard (~> 0.9) - -BUNDLED WITH - 2.3.27 diff --git a/gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock b/gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock deleted file mode 100644 index d94e49830a3..00000000000 --- a/gemfiles/ruby_2.7_actionpack_6.0.gemfile.lock +++ /dev/null @@ -1,318 +0,0 @@ -GIT - remote: https://github.com/DataDog/simplecov - revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db - specs: - simplecov (0.21.2) - docile (~> 1.1) - simplecov-html (~> 0.11) - simplecov_json_formatter (~> 0.1) - -PATH - remote: .. - specs: - datadog (2.2.0) - debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) - libddwaf (~> 1.14.0.0.0) - msgpack - -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - mail (>= 2.7.1) - actionmailer (6.1.7.8) - actionpack (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activesupport (= 6.1.7.8) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.1.7.8) - actionview (= 6.1.7.8) - activesupport (= 6.1.7.8) - rack (~> 2.0, >= 2.0.9) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.8) - actionpack (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - nokogiri (>= 1.8.5) - actionview (6.1.7.8) - activesupport (= 6.1.7.8) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.7.8) - activesupport (= 6.1.7.8) - globalid (>= 0.3.6) - activemodel (6.1.7.8) - activesupport (= 6.1.7.8) - activerecord (6.1.7.8) - activemodel (= 6.1.7.8) - activesupport (= 6.1.7.8) - activestorage (6.1.7.8) - actionpack (= 6.1.7.8) - activejob (= 6.1.7.8) - activerecord (= 6.1.7.8) - activesupport (= 6.1.7.8) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (6.1.7.8) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - appraisal (2.4.1) - bundler - rake - thor (>= 0.14.0) - ast (2.4.2) - benchmark-ips (2.13.0) - benchmark-memory (0.1.2) - memory_profiler (~> 0.9) - bigdecimal (3.1.8) - binding_of_caller (1.0.1) - debug_inspector (>= 1.2.0) - builder (3.3.0) - byebug (11.1.3) - climate_control (0.2.0) - coderay (1.1.3) - concurrent-ruby (1.3.4) - crack (1.0.0) - bigdecimal - rexml - crass (1.0.6) - date (3.3.4) - debase-ruby_core_source (3.3.1) - debug_inspector (1.2.0) - diff-lcs (1.5.1) - docile (1.4.1) - dogstatsd-ruby (5.6.1) - erubi (1.13.0) - extlz4 (0.3.4) - ffi (1.16.3) - globalid (1.2.1) - activesupport (>= 6.1) - google-protobuf (3.25.4) - hashdiff (1.1.1) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - json (2.7.2) - json-schema (2.8.1) - addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) - libddwaf (1.14.0.0.0-aarch64-linux) - ffi (~> 1.0) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.4) - memory_profiler (0.9.14) - method_source (1.1.0) - mini_mime (1.1.5) - minitest (5.25.1) - msgpack (1.7.2) - net-imap (0.4.14) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.2) - timeout - net-smtp (0.5.0) - net-protocol - nio4r (2.7.3) - nokogiri (1.15.6-aarch64-linux) - racc (~> 1.4) - os (1.1.4) - parallel (1.26.3) - parser (3.3.4.2) - ast (~> 2.4.1) - racc - pimpmychangelog (0.1.3) - pry (0.14.2) - coderay (~> 1.1) - method_source (~> 1.0) - pry-byebug (3.10.1) - byebug (~> 11.0) - pry (>= 0.13, < 0.15) - pry-stack_explorer (0.6.1) - binding_of_caller (~> 1.0) - pry (~> 0.13) - public_suffix (5.1.1) - racc (1.8.1) - rack (2.2.9) - rack-test (2.1.0) - rack (>= 1.3) - rails (6.1.7.8) - actioncable (= 6.1.7.8) - actionmailbox (= 6.1.7.8) - actionmailer (= 6.1.7.8) - actionpack (= 6.1.7.8) - actiontext (= 6.1.7.8) - actionview (= 6.1.7.8) - activejob (= 6.1.7.8) - activemodel (= 6.1.7.8) - activerecord (= 6.1.7.8) - activestorage (= 6.1.7.8) - activesupport (= 6.1.7.8) - bundler (>= 1.15.0) - railties (= 6.1.7.8) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (6.1.7.8) - actionpack (= 6.1.7.8) - activesupport (= 6.1.7.8) - method_source - rake (>= 12.2) - thor (~> 1.0) - rainbow (3.1.1) - rake (13.2.1) - rake-compiler (1.2.7) - rake - regexp_parser (2.9.2) - rexml (3.3.5) - strscan - rspec (3.13.0) - rspec-core (~> 3.13.0) - rspec-expectations (~> 3.13.0) - rspec-mocks (~> 3.13.0) - rspec-collection_matchers (1.2.1) - rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.13.0) - rspec-support (~> 3.13.0) - rspec-expectations (3.13.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.13.0) - rspec-support (3.13.1) - rspec-wait (0.0.10) - rspec (>= 3.0) - rspec_junit_formatter (0.6.0) - rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.50.2) - json (~> 2.3) - parallel (~> 1.10) - parser (>= 3.2.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.28.0, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.1) - parser (>= 3.3.1.0) - rubocop-capybara (2.21.0) - rubocop (~> 1.41) - rubocop-packaging (0.5.2) - rubocop (>= 1.33, < 2.0) - rubocop-performance (1.21.1) - rubocop (>= 1.48.1, < 2.0) - rubocop-ast (>= 1.31.1, < 2.0) - rubocop-rspec (2.20.0) - rubocop (~> 1.33) - rubocop-capybara (~> 2.17) - ruby-progressbar (1.13.0) - simplecov-cobertura (2.1.0) - rexml - simplecov (~> 0.19) - simplecov-html (0.12.3) - simplecov_json_formatter (0.1.4) - sprockets (4.2.1) - concurrent-ruby (~> 1.0) - rack (>= 2.2.4, < 4) - sprockets-rails (3.5.2) - actionpack (>= 6.1) - activesupport (>= 6.1) - sprockets (>= 3.0.0) - strscan (3.1.0) - thor (1.3.1) - timeout (0.4.1) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (2.5.0) - warning (1.4.0) - webmock (3.23.1) - addressable (>= 2.8.0) - crack (>= 0.3.2) - hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.6) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - yard (0.9.36) - zeitwerk (2.6.17) - -PLATFORMS - aarch64-linux - -DEPENDENCIES - appraisal (~> 2.4.0) - benchmark-ips (~> 2.8) - benchmark-memory (< 0.2) - builder - climate_control (~> 0.2.0) - concurrent-ruby - datadog! - dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) - extlz4 (~> 0.3, >= 0.3.3) - ffi (~> 1.16.3) - google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) - json-schema (< 3) - memory_profiler (~> 0.9) - os (~> 1.1) - pimpmychangelog (>= 0.1.2) - pry - pry-byebug - pry-stack_explorer - rails (~> 6.0) - rake (>= 10.5) - rake-compiler (~> 1.1, >= 1.1.1) - rexml (>= 3.2.7) - rspec (~> 3.12) - rspec-collection_matchers (~> 1.1) - rspec-wait (~> 0) - rspec_junit_formatter (>= 0.5.1) - rubocop (~> 1.50.0) - rubocop-packaging (~> 0.5.2) - rubocop-performance (~> 1.9) - rubocop-rspec (~> 2.20, < 2.21) - simplecov! - simplecov-cobertura (~> 2.1.0) - warning (~> 1) - webmock (>= 3.10.0) - yard (~> 0.9) - -BUNDLED WITH - 2.3.27 diff --git a/gemfiles/ruby_3.0_actionpack_7.0.gemfile b/gemfiles/ruby_3.0_rails7.gemfile similarity index 100% rename from gemfiles/ruby_3.0_actionpack_7.0.gemfile rename to gemfiles/ruby_3.0_rails7.gemfile diff --git a/gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.0_rails7.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock rename to gemfiles/ruby_3.0_rails7.gemfile.lock index 8b79e418d96..8be31eb5dba 100644 --- a/gemfiles/ruby_3.0_actionpack_7.0.gemfile.lock +++ b/gemfiles/ruby_3.0_rails7.gemfile.lock @@ -207,7 +207,7 @@ GEM rake-compiler (1.2.7) rake regexp_parser (2.9.2) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.0_actionpack_7.1.gemfile b/gemfiles/ruby_3.0_rails71.gemfile similarity index 100% rename from gemfiles/ruby_3.0_actionpack_7.1.gemfile rename to gemfiles/ruby_3.0_rails71.gemfile diff --git a/gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.0_rails71.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock rename to gemfiles/ruby_3.0_rails71.gemfile.lock index 2c36c039fbb..1d68a5e7345 100644 --- a/gemfiles/ruby_3.1_actionpack_7.1.gemfile.lock +++ b/gemfiles/ruby_3.0_rails71.gemfile.lock @@ -236,7 +236,7 @@ GEM regexp_parser (2.9.2) reline (0.5.9) io-console (~> 0.5) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.1_actionpack_7.0.gemfile b/gemfiles/ruby_3.1_rails7.gemfile similarity index 100% rename from gemfiles/ruby_3.1_actionpack_7.0.gemfile rename to gemfiles/ruby_3.1_rails7.gemfile diff --git a/gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.1_rails7.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock rename to gemfiles/ruby_3.1_rails7.gemfile.lock index 8b79e418d96..8be31eb5dba 100644 --- a/gemfiles/ruby_3.1_actionpack_7.0.gemfile.lock +++ b/gemfiles/ruby_3.1_rails7.gemfile.lock @@ -207,7 +207,7 @@ GEM rake-compiler (1.2.7) rake regexp_parser (2.9.2) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.1_actionpack_7.1.gemfile b/gemfiles/ruby_3.1_rails71.gemfile similarity index 100% rename from gemfiles/ruby_3.1_actionpack_7.1.gemfile rename to gemfiles/ruby_3.1_rails71.gemfile diff --git a/gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.1_rails71.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock rename to gemfiles/ruby_3.1_rails71.gemfile.lock index 2c36c039fbb..1d68a5e7345 100644 --- a/gemfiles/ruby_3.0_actionpack_7.1.gemfile.lock +++ b/gemfiles/ruby_3.1_rails71.gemfile.lock @@ -236,7 +236,7 @@ GEM regexp_parser (2.9.2) reline (0.5.9) io-console (~> 0.5) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.2_actionpack_7.0.gemfile b/gemfiles/ruby_3.2_rails7.gemfile similarity index 100% rename from gemfiles/ruby_3.2_actionpack_7.0.gemfile rename to gemfiles/ruby_3.2_rails7.gemfile diff --git a/gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.2_rails7.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock rename to gemfiles/ruby_3.2_rails7.gemfile.lock index 41503556ebe..9995253356f 100644 --- a/gemfiles/ruby_3.3_actionpack_7.0.gemfile.lock +++ b/gemfiles/ruby_3.2_rails7.gemfile.lock @@ -203,7 +203,7 @@ GEM rake-compiler (1.2.7) rake regexp_parser (2.9.2) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.2_actionpack_7.1.gemfile b/gemfiles/ruby_3.2_rails71.gemfile similarity index 100% rename from gemfiles/ruby_3.2_actionpack_7.1.gemfile rename to gemfiles/ruby_3.2_rails71.gemfile diff --git a/gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.2_rails71.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock rename to gemfiles/ruby_3.2_rails71.gemfile.lock index 1d4329f7820..4c22296e1c4 100644 --- a/gemfiles/ruby_3.2_actionpack_7.1.gemfile.lock +++ b/gemfiles/ruby_3.2_rails71.gemfile.lock @@ -232,7 +232,7 @@ GEM regexp_parser (2.9.2) reline (0.5.9) io-console (~> 0.5) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.3_actionpack_7.0.gemfile b/gemfiles/ruby_3.3_rails7.gemfile similarity index 100% rename from gemfiles/ruby_3.3_actionpack_7.0.gemfile rename to gemfiles/ruby_3.3_rails7.gemfile diff --git a/gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock b/gemfiles/ruby_3.3_rails7.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock rename to gemfiles/ruby_3.3_rails7.gemfile.lock index 41503556ebe..9995253356f 100644 --- a/gemfiles/ruby_3.2_actionpack_7.0.gemfile.lock +++ b/gemfiles/ruby_3.3_rails7.gemfile.lock @@ -203,7 +203,7 @@ GEM rake-compiler (1.2.7) rake regexp_parser (2.9.2) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_3.3_actionpack_7.1.gemfile b/gemfiles/ruby_3.3_rails71.gemfile similarity index 100% rename from gemfiles/ruby_3.3_actionpack_7.1.gemfile rename to gemfiles/ruby_3.3_rails71.gemfile diff --git a/gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock b/gemfiles/ruby_3.3_rails71.gemfile.lock similarity index 99% rename from gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock rename to gemfiles/ruby_3.3_rails71.gemfile.lock index 1d4329f7820..4c22296e1c4 100644 --- a/gemfiles/ruby_3.3_actionpack_7.1.gemfile.lock +++ b/gemfiles/ruby_3.3_rails71.gemfile.lock @@ -232,7 +232,7 @@ GEM regexp_parser (2.9.2) reline (0.5.9) io-console (~> 0.5) - rexml (3.3.5) + rexml (3.3.6) strscan rspec (3.13.0) rspec-core (~> 3.13.0) diff --git a/gemfiles/ruby_2.7_actionpack_6.0.gemfile b/gemfiles/ruby_3.4_rails7.gemfile similarity index 96% rename from gemfiles/ruby_2.7_actionpack_6.0.gemfile rename to gemfiles/ruby_3.4_rails7.gemfile index f7457816151..2c90032f074 100644 --- a/gemfiles/ruby_2.7_actionpack_6.0.gemfile +++ b/gemfiles/ruby_3.4_rails7.gemfile @@ -14,7 +14,6 @@ gem "memory_profiler", "~> 0.9" gem "os", "~> 1.1" gem "pimpmychangelog", ">= 0.1.2" gem "pry" -gem "pry-byebug" gem "pry-stack_explorer" gem "rake", ">= 10.5" gem "rake-compiler", "~> 1.1", ">= 1.1.1" @@ -27,6 +26,7 @@ gem "simplecov-cobertura", "~> 2.1.0" gem "warning", "~> 1" gem "webmock", ">= 3.10.0" gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" gem "yard", "~> 0.9" gem "rubocop", "~> 1.50.0", require: false gem "rubocop-packaging", "~> 0.5.2", require: false @@ -35,7 +35,7 @@ gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] gem "ffi", "~> 1.16.3", require: false -gem "rails", "~> 6.0" +gem "rails", "~> 7.0.0" group :check do diff --git a/gemfiles/ruby_3.4_rails7.gemfile.lock b/gemfiles/ruby_3.4_rails7.gemfile.lock new file mode 100644 index 00000000000..87a8d1dc38b --- /dev/null +++ b/gemfiles/ruby_3.4_rails7.gemfile.lock @@ -0,0 +1,319 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8.4) + actionpack (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activesupport (= 7.0.8.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.8.4) + actionview (= 7.0.8.4) + activesupport (= 7.0.8.4) + rack (~> 2.0, >= 2.2.4) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8.4) + actionpack (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8.4) + activesupport (= 7.0.8.4) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8.4) + activesupport (= 7.0.8.4) + globalid (>= 0.3.6) + activemodel (7.0.8.4) + activesupport (= 7.0.8.4) + activerecord (7.0.8.4) + activemodel (= 7.0.8.4) + activesupport (= 7.0.8.4) + activestorage (7.0.8.4) + actionpack (= 7.0.8.4) + activejob (= 7.0.8.4) + activerecord (= 7.0.8.4) + activesupport (= 7.0.8.4) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + mini_portile2 (2.8.7) + minitest (5.25.1) + msgpack (1.7.2) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + nio4r (2.7.3) + nokogiri (1.16.7) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rack (2.2.9) + rack-test (2.1.0) + rack (>= 1.3) + rails (7.0.8.4) + actioncable (= 7.0.8.4) + actionmailbox (= 7.0.8.4) + actionmailer (= 7.0.8.4) + actionpack (= 7.0.8.4) + actiontext (= 7.0.8.4) + actionview (= 7.0.8.4) + activejob (= 7.0.8.4) + activemodel (= 7.0.8.4) + activerecord (= 7.0.8.4) + activestorage (= 7.0.8.4) + activesupport (= 7.0.8.4) + bundler (>= 1.15.0) + railties (= 7.0.8.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.8.4) + actionpack (= 7.0.8.4) + activesupport (= 7.0.8.4) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.6) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + strscan (3.1.1) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + ruby + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rails (~> 7.0.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.6.0.dev diff --git a/gemfiles/ruby_2.6_actionpack_5.0.gemfile b/gemfiles/ruby_3.4_rails71.gemfile similarity index 91% rename from gemfiles/ruby_2.6_actionpack_5.0.gemfile rename to gemfiles/ruby_3.4_rails71.gemfile index ac408b8e514..77d66c84b11 100644 --- a/gemfiles/ruby_2.6_actionpack_5.0.gemfile +++ b/gemfiles/ruby_3.4_rails71.gemfile @@ -14,7 +14,6 @@ gem "memory_profiler", "~> 0.9" gem "os", "~> 1.1" gem "pimpmychangelog", ">= 0.1.2" gem "pry" -gem "pry-byebug" gem "pry-stack_explorer" gem "rake", ">= 10.5" gem "rake-compiler", "~> 1.1", ">= 1.1.1" @@ -27,15 +26,16 @@ gem "simplecov-cobertura", "~> 2.1.0" gem "warning", "~> 1" gem "webmock", ">= 3.10.0" gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" gem "yard", "~> 0.9" gem "rubocop", "~> 1.50.0", require: false gem "rubocop-packaging", "~> 0.5.2", require: false gem "rubocop-performance", "~> 1.9", require: false gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" -gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1", "< 3.19.2"] +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] gem "ffi", "~> 1.16.3", require: false -gem "rails", "~> 5.0" +gem "rails", "~> 7.1.0" group :check do diff --git a/gemfiles/ruby_3.4_rails71.gemfile.lock b/gemfiles/ruby_3.4_rails71.gemfile.lock new file mode 100644 index 00000000000..8e7dfb5e461 --- /dev/null +++ b/gemfiles/ruby_3.4_rails71.gemfile.lock @@ -0,0 +1,349 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.2.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 11.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + actioncable (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.1.3.4) + actionpack (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activesupport (= 7.1.3.4) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.2) + actionpack (7.1.3.4) + actionview (= 7.1.3.4) + activesupport (= 7.1.3.4) + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4) + rack-session (>= 1.0.1) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.3.4) + actionpack (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.1.3.4) + activesupport (= 7.1.3.4) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.3.4) + activesupport (= 7.1.3.4) + globalid (>= 0.3.6) + activemodel (7.1.3.4) + activesupport (= 7.1.3.4) + activerecord (7.1.3.4) + activemodel (= 7.1.3.4) + activesupport (= 7.1.3.4) + timeout (>= 0.4.0) + activestorage (7.1.3.4) + actionpack (= 7.1.3.4) + activejob (= 7.1.3.4) + activerecord (= 7.1.3.4) + activesupport (= 7.1.3.4) + marcel (~> 1.0) + activesupport (7.1.3.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + base64 (0.2.0) + benchmark-ips (2.13.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + date (3.3.4) + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + drb (2.2.1) + erubi (1.13.0) + extlz4 (0.3.4) + ffi (1.16.3) + globalid (1.2.1) + activesupport (>= 6.1) + google-protobuf (3.25.4) + hashdiff (1.1.1) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + io-console (0.7.2) + irb (1.14.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (11.0.0.1.0) + libdatadog (11.0.0.1.0-aarch64-linux) + libddwaf (1.14.0.0.0) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.4) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_mime (1.1.5) + mini_portile2 (2.8.7) + minitest (5.25.1) + msgpack (1.7.2) + mutex_m (0.2.0) + net-imap (0.4.14) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.0) + nio4r (2.7.3) + nokogiri (1.16.7) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.4.2) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + psych (5.1.2) + stringio + public_suffix (6.0.1) + racc (1.8.1) + rack (3.1.7) + rack-session (2.0.0) + rack (>= 3.0.0) + rack-test (2.1.0) + rack (>= 1.3) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails (7.1.3.4) + actioncable (= 7.1.3.4) + actionmailbox (= 7.1.3.4) + actionmailer (= 7.1.3.4) + actionpack (= 7.1.3.4) + actiontext (= 7.1.3.4) + actionview (= 7.1.3.4) + activejob (= 7.1.3.4) + activemodel (= 7.1.3.4) + activerecord (= 7.1.3.4) + activestorage (= 7.1.3.4) + activesupport (= 7.1.3.4) + bundler (>= 1.15.0) + railties (= 7.1.3.4) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.1.3.4) + actionpack (= 7.1.3.4) + activesupport (= 7.1.3.4) + irb + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rdoc (6.7.0) + psych (>= 4.0.0) + regexp_parser (2.9.2) + reline (0.5.9) + io-console (~> 0.5) + rexml (3.3.6) + strscan + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.1) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.21.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + stringio (3.1.1) + strscan (3.1.1) + thor (1.3.1) + timeout (0.4.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (2.5.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + yard (0.9.36) + zeitwerk (2.6.17) + +PLATFORMS + aarch64-linux + ruby + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rails (~> 7.1.0) + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + yard (~> 0.9) + +BUNDLED WITH + 2.6.0.dev From 7609f5470cee8037572e1dfb0ef033c5d2e6cec9 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 22 Aug 2024 17:26:29 +0200 Subject: [PATCH 21/44] Fix Matrixfile for ruby 2.x for actionpack --- Matrixfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Matrixfile b/Matrixfile index da0f497a2b2..07da156ff54 100644 --- a/Matrixfile +++ b/Matrixfile @@ -27,8 +27,8 @@ 'opentelemetry' => '❌ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby' }, 'action_pack' => { - 'rails5-mysql' => '✅ 2.5 / ✅ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', - 'rails6-mysql' => '❌ 2.5 / ❌ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', + 'rails5-mysql2' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', + 'rails6-mysql2' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ❌ 3.0 / ❌ 3.1 / ❌ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', 'rails7' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', 'rails71' => '❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ❌ jruby', }, From 2a6130dd452e99cb02f850abfa25b0a82a4908e0 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Mon, 26 Aug 2024 15:16:52 +0200 Subject: [PATCH 22/44] Add http.route tag setting to rack middleware as fallback --- gemfiles/ruby_3.3_rails7.gemfile.lock | 2 +- gemfiles/ruby_3.3_rails71.gemfile.lock | 2 +- .../tracing/contrib/rack/middlewares.rb | 4 ++ .../tracing/contrib/rack/http_route_spec.rb | 70 +++++++++++++++++++ 4 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 spec/datadog/tracing/contrib/rack/http_route_spec.rb diff --git a/gemfiles/ruby_3.3_rails7.gemfile.lock b/gemfiles/ruby_3.3_rails7.gemfile.lock index 9995253356f..351f18fc616 100644 --- a/gemfiles/ruby_3.3_rails7.gemfile.lock +++ b/gemfiles/ruby_3.3_rails7.gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) libdatadog (~> 11.0.0.1.0) libddwaf (~> 1.14.0.0.0) diff --git a/gemfiles/ruby_3.3_rails71.gemfile.lock b/gemfiles/ruby_3.3_rails71.gemfile.lock index 4c22296e1c4..b91df70b133 100644 --- a/gemfiles/ruby_3.3_rails71.gemfile.lock +++ b/gemfiles/ruby_3.3_rails71.gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) libdatadog (~> 11.0.0.1.0) libddwaf (~> 1.14.0.0.0) diff --git a/lib/datadog/tracing/contrib/rack/middlewares.rb b/lib/datadog/tracing/contrib/rack/middlewares.rb index 6ac74e13719..dd800eb4c2c 100644 --- a/lib/datadog/tracing/contrib/rack/middlewares.rb +++ b/lib/datadog/tracing/contrib/rack/middlewares.rb @@ -195,6 +195,10 @@ def set_request_tags!(trace, request_span, env, status, headers, response, origi request_span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_USER_AGENT, user_agent) end + if request_span.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE).nil? && status != 404 + request_span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, env['PATH_INFO']) + end + HeaderTagging.tag_request_headers(request_span, request_header_collection, configuration) HeaderTagging.tag_response_headers(request_span, headers, configuration) if headers diff --git a/spec/datadog/tracing/contrib/rack/http_route_spec.rb b/spec/datadog/tracing/contrib/rack/http_route_spec.rb new file mode 100644 index 00000000000..5b78b4a95d7 --- /dev/null +++ b/spec/datadog/tracing/contrib/rack/http_route_spec.rb @@ -0,0 +1,70 @@ +require 'datadog/tracing/contrib/support/spec_helper' + +require 'rack/test' + +require 'datadog' +require 'datadog/tracing/contrib/rack/middlewares' + +RSpec.describe 'Rack testing for http.route' do + include Rack::Test::Methods + + before do + Datadog.configure do |c| + c.tracing.instrument :rack + end + end + + after do + Datadog.configuration.tracing[:rack].reset! + end + + let(:app) do + app = rack_app + + Rack::Builder.new do + use Datadog::Tracing::Contrib::Rack::TraceMiddleware + + map('/') { run app } + map('/rack') { run app } + end.to_app + end + + let(:rack_app) do + Rack::Builder.new do + map '/hello/world' do + run ->(_env) { [200, { 'content-type' => 'text/plain' }, 'hello world'] } + end + + map '/hello/:id' do + run ->(_env) { [200, { 'content-type' => 'text/plain' }, "hello #{params[:id]}"] } + end + end + end + + it 'sets http.route tag on request to base route' do + response = get('/hello/world') + + expect(response).to be_ok + expect(request_span.get_tag('http.route')).to eq('/hello/world') + end + + it 'sets http.route tag on request to nested app route' do + response = get('/rack/hello/world') + + expect(response).to be_ok + expect(request_span.get_tag('http.route')).to eq('/rack/hello/world') + end + + it 'sets no http.route tag when response status is 404' do + response = get('/no_route') + + expect(response).to be_not_found + expect(request_span.get_tag('http.route')).to be_nil + end + + def request_span + spans.detect do |span| + span.name == Datadog::Tracing::Contrib::Rack::Ext::SPAN_REQUEST + end + end +end From 079872b319334a9804ee42edb40318dd5ef11247 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 28 Aug 2024 18:01:35 +0200 Subject: [PATCH 23/44] Change patching of journey router for rails > 7.1 We don't want to patch #find_routes method instead of #serve method for rails > 7.1, to make sure that we are setting the http.route tag as early as possible. --- .../action_dispatch/instrumentation.rb | 78 +++++++------------ lib/datadog/tracing/metadata/ext.rb | 1 + .../action_dispatch/instrumentation_spec.rb | 62 +++++++++++++-- .../action_dispatch/journey/router_spec.rb | 22 +++--- .../tracing/contrib/rails/rack_spec.rb | 12 +-- 5 files changed, 100 insertions(+), 75 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 0faf9c124ae..83313a630f1 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -11,77 +11,51 @@ module ActionDispatch module Instrumentation module_function - def format_http_route(http_route) - http_route.gsub(/\(.:format\)\z/, '') + def set_http_route_tags(route_spec, script_name) + return unless Tracing.enabled? + + return unless route_spec + + request_trace = Tracing.active_trace + return unless request_trace + + request_trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, route_spec.to_s.gsub(/\(.:format\)\z/, '')) + request_trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, script_name) if script_name + rescue StandardError => e + Datadog.logger.error(e.message) end # Instrumentation for ActionDispatch::Journey components module Journey - # Instrumentation for ActionDispatch::Journey::Router - # for Rails versions older than 7.1 + # Instrumentation for ActionDispatch::Journey::Router for Rails versions older than 7.1 module Router def find_routes(req) result = super - return result unless Tracing.enabled? - - active_span = Tracing.active_span - return result unless active_span - - begin - # Journey::Router#find_routes retuns an array for each matching route. - # This array is [match_data, path_parameters, route]. - # We need the route object, since it has a path with route specification. - current_route = result.last&.last&.path&.spec - return result unless current_route - - # When Rails is serving requests to Rails Engine routes, this function is called - # twice: first time for the route on which the engine is mounted, and second - # time for the internal engine route. - last_route = active_span.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) + # result is an array of [match, parameters, route] tuples + routes = result.map(&:last) - active_span.set_tag( - Tracing::Metadata::Ext::HTTP::TAG_ROUTE, - Instrumentation.format_http_route(last_route.to_s + current_route.to_s) - ) - rescue StandardError => e - Datadog.logger.error(e.message) + routes.each do |route| + # non-dispatcher routes are not end routes, + # this could be a route prefix for a rails engine for example + Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) if route&.dispatcher? end result end end - # Since Rails 7.1 `Router#serve` adds `#route_uri_pattern` attribute to the request, - # and the `Router#find_routes` now takes a block as an argument to make the route computation lazy + # Since Rails 7.1 `Router#find_routes` makes the route computation lazy # https://github.com/rails/rails/commit/35b280fcc2d5d474f9f2be3aca3ae7aa6bba66eb module LazyRouter - def serve(req) - response = super - - return response unless Tracing.enabled? - - active_span = Tracing.active_span - return response unless active_span - - begin - return response if req.route_uri_pattern.nil? - - # For normal Rails routes `#route_uri_pattern` is the full route and `#script_name` is nil. - # - # For Rails Engine routes `#route_uri_pattern` is the route as defined in the engine, - # and `#script_name` is the route prefix at which the engine is mounted. - http_route = req.script_name.to_s + req.route_uri_pattern + def find_routes(req) + super do |match, parameters, route| + # non-dispatcher routes are not end routes, + # this could be a route prefix for a rails engine for example + Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) if route&.dispatcher? - active_span.set_tag( - Tracing::Metadata::Ext::HTTP::TAG_ROUTE, - Instrumentation.format_http_route(http_route) - ) - rescue StandardError => e - Datadog.logger.error(e.message) + yield [match, parameters, route] end - - response end end end diff --git a/lib/datadog/tracing/metadata/ext.rb b/lib/datadog/tracing/metadata/ext.rb index c32f4f41d72..95cf3d4e7f0 100644 --- a/lib/datadog/tracing/metadata/ext.rb +++ b/lib/datadog/tracing/metadata/ext.rb @@ -88,6 +88,7 @@ module HTTP TAG_USER_AGENT = 'http.useragent' TAG_URL = 'http.url' TAG_ROUTE = 'http.route' + TAG_ROUTE_PATH = 'http.route.path' TYPE_INBOUND = AppTypes::TYPE_WEB.freeze TYPE_OUTBOUND = 'http' TYPE_PROXY = 'proxy' diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb index bfd10f52aae..47d55570eb2 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -4,13 +4,65 @@ require 'datadog/tracing/contrib/action_pack/action_dispatch/instrumentation' RSpec.describe Datadog::Tracing::Contrib::ActionPack::ActionDispatch::Instrumentation do - describe '::format_http_route' do - it 'removes (.:format) part of the route' do - expect(described_class.format_http_route('/api/users/:id(.:format)')).to eq('/api/users/:id') + describe '::set_http_route_tags' do + let(:tracing_enabled) { true } + + before do + expect(Datadog::Tracing).to receive(:enabled?).and_return(tracing_enabled) + end + + context 'when tracing is disabled' do + let(:tracing_enabled) { false } + + it 'sets no tags' do + Datadog::Tracing.trace('rack.request') do |_span, trace| + described_class.set_http_route_tags('/users/:id', '/auth') + + expect(trace.send(:meta)).not_to have_key('http.route') + expect(trace.send(:meta)).not_to have_key('http.route.path') + end + end end - it 'does not remove optional params from the route' do - expect(described_class.format_http_route('/api/users/(:id)')).to eq('/api/users/(:id)') + it 'sets http.route and http.route.path tags on existing trace' do + Datadog::Tracing.trace('rack.request') do |_span, trace| + described_class.set_http_route_tags('/users/:id(.:format)', '/auth') + + expect(trace.send(:meta).fetch('http.route')).to eq('/users/:id') + expect(trace.send(:meta).fetch('http.route.path')).to eq('/auth') + end + end + + it 'sets no http.route.path when script name is nil' do + Datadog::Tracing.trace('rack.request') do |_span, trace| + described_class.set_http_route_tags('/users/:id(.:format)', nil) + + expect(trace.send(:meta).fetch('http.route')).to eq('/users/:id') + expect(trace.send(:meta)).not_to have_key('http.route.path') + end + end + + it 'sets no tags when route spec is nil' do + Datadog::Tracing.trace('rack.request') do |_span, trace| + described_class.set_http_route_tags(nil, '/auth') + + expect(trace.send(:meta)).not_to have_key('http.route') + expect(trace.send(:meta)).not_to have_key('http.route.path') + end + end + + it 'does not create new traces when no active trace is present' do + described_class.set_http_route_tags('/users/:id', '/auth') + + expect(traces).to be_empty + end + + it 'rescues exceptions' do + expect(Datadog::Tracing).to receive(:active_trace).and_raise('boom') + + expect(Datadog.logger).to receive(:error).with('boom') + + described_class.set_http_route_tags('/users/:id', '/auth') end end end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index 95a7d95f8eb..c514b4f9d62 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -20,7 +20,7 @@ Datadog.registry[:rack].reset_configuration! end - describe '#serve' do + describe '#find_routes' do before do rails_test_application.instance.routes.append do namespace :api, defaults: { format: :json } do @@ -55,23 +55,21 @@ def show it 'sets http.route when requesting a known route' do get '/api/users/1' - rack_span = spans.first + rack_trace = traces.first - expect(rack_span).to be_root_span - expect(rack_span.name).to eq('rack.request') - - expect(rack_span.get_tag('http.route')).to eq('/api/users/:id') + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta).fetch('http.route')).to eq('/api/users/:id') + expect(rack_trace.send(:meta).fetch('http.route.path')).to be_empty end it 'sets no http.route when requesting an unknown route' do get '/nope' - rack_span = spans.first - - expect(rack_span).to be_root_span - expect(rack_span.name).to eq('rack.request') + rack_trace = traces.first - expect(rack_span.tags).not_to have_key('http.route') + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta)).not_to have_key('http.route') + expect(rack_trace.send(:meta)).not_to have_key('http.route.path') end end @@ -87,7 +85,7 @@ def show it 'does not set http.route' do get '/api/users/1' - expect(spans).to be_empty + expect(traces).to be_empty end end end diff --git a/spec/datadog/tracing/contrib/rails/rack_spec.rb b/spec/datadog/tracing/contrib/rails/rack_spec.rb index 27395a4217b..ab3c2b2c22d 100644 --- a/spec/datadog/tracing/contrib/rails/rack_spec.rb +++ b/spec/datadog/tracing/contrib/rails/rack_spec.rb @@ -138,13 +138,13 @@ def internal_server_error request_span, controller_span, cache_span, render_span = spans expect(trace.resource).to eq('TestController#full') + expect(trace.send(:meta).fetch('http.route')).to eq('/full') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') expect(request_span.service).to eq(tracer.default_service) expect(request_span.resource).to eq('TestController#full') expect(request_span.get_tag('http.url')).to eq('/full') - expect(request_span.get_tag('http.route')).to eq('/full') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('200') expect(request_span).to be_measured @@ -375,12 +375,12 @@ def internal_server_error request_span, controller_span = spans expect(trace.resource).to eq('TestController#error') + expect(trace.send(:meta).fetch('http.route')).to eq('/error') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#error') expect(request_span.get_tag('http.url')).to eq('/error') - expect(request_span.get_tag('http.route')).to eq('/error') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('500') expect(request_span).to have_error @@ -411,12 +411,12 @@ def internal_server_error request_span, controller_span = spans expect(trace.resource).to eq('TestController#soft_error') + expect(trace.send(:meta).fetch('http.route')).to eq('/soft_error') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#soft_error') expect(request_span.get_tag('http.url')).to eq('/soft_error') - expect(request_span.get_tag('http.route')).to eq('/soft_error') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('520') expect(request_span).to have_error @@ -447,12 +447,12 @@ def internal_server_error request_span, controller_span = spans expect(trace.resource).to eq('TestController#sub_error') + expect(trace.send(:meta).fetch('http.route')).to eq('/sub_error') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#sub_error') expect(request_span.get_tag('http.url')).to eq('/sub_error') - expect(request_span.get_tag('http.route')).to eq('/sub_error') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('500') expect(request_span).to have_error @@ -577,12 +577,12 @@ def internal_server_error request_span = spans[0] expect(trace.resource).to eq('GET 404') + expect(trace.send(:meta)).not_to have_key('http.route') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') expect(request_span.resource).to eq('GET 404') expect(request_span.get_tag('http.url')).to eq('/this_route_does_not_exist') - expect(request_span.tags).not_to have_key('http.route') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('404') expect(request_span).to_not have_error @@ -604,12 +604,12 @@ def internal_server_error request_span = spans[0] expect(trace.resource).to eq('TestController#explicitly_not_found') + expect(trace.send(:meta).fetch('http.route')).to eq('/explicitly_not_found') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') expect(request_span.resource).to eq('TestController#explicitly_not_found') expect(request_span.get_tag('http.url')).to eq('/explicitly_not_found') - expect(request_span.get_tag('http.route')).to eq('/explicitly_not_found') expect(request_span.get_tag('http.method')).to eq('GET') expect(request_span.get_tag('http.status_code')).to eq('404') expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)) From 60ceee416e553c935f3c2cd44a09a2ee336fc878 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 29 Aug 2024 11:50:48 +0200 Subject: [PATCH 24/44] Add handling of ambiguous rails routes with constraints --- .../action_dispatch/instrumentation.rb | 18 ++- .../action_dispatch/journey/router_spec.rb | 109 +++++++++++++++++- 2 files changed, 117 insertions(+), 10 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 83313a630f1..71f36645f56 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -20,7 +20,10 @@ def set_http_route_tags(route_spec, script_name) return unless request_trace request_trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, route_spec.to_s.gsub(/\(.:format\)\z/, '')) - request_trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, script_name) if script_name + + if script_name && !script_name.empty? + request_trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, script_name) + end rescue StandardError => e Datadog.logger.error(e.message) end @@ -36,9 +39,12 @@ def find_routes(req) routes = result.map(&:last) routes.each do |route| - # non-dispatcher routes are not end routes, - # this could be a route prefix for a rails engine for example - Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) if route&.dispatcher? + # we only want to set route tags for dispatcher routes, + # since they instantiate controller that processes the request + if route&.dispatcher? + Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) + break + end end result @@ -50,8 +56,8 @@ def find_routes(req) module LazyRouter def find_routes(req) super do |match, parameters, route| - # non-dispatcher routes are not end routes, - # this could be a route prefix for a rails engine for example + # we only want to set route tags for dispatcher routes, + # since they instantiate controller that processes the request Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) if route&.dispatcher? yield [match, parameters, route] diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index c514b4f9d62..6988c9778b8 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -22,16 +22,29 @@ describe '#find_routes' do before do + engine.routes.append do + post '/sign-in/(:expires_in)' => 'tokens#create' + end + + auth_engine = engine + rails_test_application.instance.routes.append do namespace :api, defaults: { format: :json } do resources :users, only: %i[show] + + mount auth_engine => '/auth' end + + get '/items/:id', to: 'items#by_id', id: /\d+/ + get '/items/:slug', to: 'items#by_slug', id: /(\w-)+/ + + get 'books/*section/:title', to: 'books#show' end end - let(:controllers) { [controller] } + let(:controllers) { [users_controller, items_controller, books_controller] } - let(:controller) do + let(:users_controller) do stub_const( 'Api::UsersController', Class.new(ActionController::Base) do @@ -42,6 +55,54 @@ def show ) end + let(:items_controller) do + stub_const( + 'ItemsController', + Class.new(ActionController::Base) do + def by_id + head :ok + end + + def by_slug + head :ok + end + end + ) + end + + let(:books_controller) do + stub_const( + 'BooksController', + Class.new(ActionController::Base) do + def show + head :ok + end + end + ) + end + + let(:status_controller) do + stub_const( + 'StatusesController', + Class.new(ActionController::Base) do + def show + head :ok + end + end + ) + end + + let(:engine) do + stub_const('AuthEngine', Module.new) + + stub_const( + 'AuthEngine::Engine', + Class.new(::Rails::Engine) do + isolate_namespace AuthEngine + end + ) + end + context 'with default configuration' do before do Datadog.configure do |c| @@ -59,10 +120,50 @@ def show expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta).fetch('http.route')).to eq('/api/users/:id') - expect(rack_trace.send(:meta).fetch('http.route.path')).to be_empty + expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + end + + it 'sets http.route correctly for ambiguous route with constraints' do + get '/items/1' + + rack_trace = traces.first + + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta).fetch('http.route')).to eq('/items/:id') + expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + end + + it 'sets http.route correctly for ambiguous route with constraints, case two' do + get '/items/something' + + rack_trace = traces.first + + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta).fetch('http.route')).to eq('/items/:slug') + expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + end + + it 'sets http.route correctly for routes with globbing' do + get 'books/some/section/title' + + rack_trace = traces.first + + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta).fetch('http.route')).to eq('/books/*section/:title') + expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + end + + it 'sets http.route and http.route.path for rails engine routes' do + post '/api/auth/sign-in' + + rack_trace = traces.first + + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta).fetch('http.route')).to eq('/sign-in(/:expires_in)') + expect(rack_trace.send(:meta).fetch('http.route.path')).to eq('/api/auth') end - it 'sets no http.route when requesting an unknown route' do + it 'does not set http.route when requesting an unknown route' do get '/nope' rack_trace = traces.first From 2e3a70ba59b09470a10ce6c15a66b49603f10829 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Thu, 29 Aug 2024 16:35:07 +0200 Subject: [PATCH 25/44] Add handling for rack applications mounted in Rails --- .../action_dispatch/instrumentation.rb | 19 +++++--- .../action_dispatch/journey/router_spec.rb | 44 ++++++++++++++++++- 2 files changed, 55 insertions(+), 8 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index 71f36645f56..f527bd99558 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -28,6 +28,15 @@ def set_http_route_tags(route_spec, script_name) Datadog.logger.error(e.message) end + def dispatcher_route?(route) + return true if route.dispatcher? + + # in Rails 4 there is no #rack_app method on the app + return true if route.app.respond_to?(:rack_app) && !route.app.rack_app.nil? + + false + end + # Instrumentation for ActionDispatch::Journey components module Journey # Instrumentation for ActionDispatch::Journey::Router for Rails versions older than 7.1 @@ -39,9 +48,7 @@ def find_routes(req) routes = result.map(&:last) routes.each do |route| - # we only want to set route tags for dispatcher routes, - # since they instantiate controller that processes the request - if route&.dispatcher? + if Instrumentation.dispatcher_route?(route) Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) break end @@ -56,9 +63,9 @@ def find_routes(req) module LazyRouter def find_routes(req) super do |match, parameters, route| - # we only want to set route tags for dispatcher routes, - # since they instantiate controller that processes the request - Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) if route&.dispatcher? + if Instrumentation.dispatcher_route?(route) + Instrumentation.set_http_route_tags(route.path.spec, req.env['SCRIPT_NAME']) + end yield [match, parameters, route] end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index 6988c9778b8..05deabb6a42 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -23,16 +23,19 @@ describe '#find_routes' do before do engine.routes.append do - post '/sign-in/(:expires_in)' => 'tokens#create' + get '/sign-in/(:expires_in)' => 'tokens#create' end auth_engine = engine + rack_status_app = rack_app.new rails_test_application.instance.routes.append do namespace :api, defaults: { format: :json } do resources :users, only: %i[show] mount auth_engine => '/auth' + + match '/status', to: rack_status_app, via: :get end get '/items/:id', to: 'items#by_id', id: /\d+/ @@ -42,6 +45,17 @@ end end + let(:rack_app) do + stub_const( + 'RackStatusApp', + Class.new do + def call(_env) + [200, { 'Content-Type' => 'text/plain' }, ['OK']] + end + end + ) + end + let(:controllers) { [users_controller, items_controller, books_controller] } let(:users_controller) do @@ -95,6 +109,15 @@ def show let(:engine) do stub_const('AuthEngine', Module.new) + stub_const( + 'AuthEngine::TokensController', + Class.new(ActionController::Base) do + def create + head :ok + end + end + ) + stub_const( 'AuthEngine::Engine', Class.new(::Rails::Engine) do @@ -118,6 +141,7 @@ def show rack_trace = traces.first + expect(last_response).to be_ok expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta).fetch('http.route')).to eq('/api/users/:id') expect(rack_trace.send(:meta)).not_to have_key('http.route.path') @@ -128,6 +152,7 @@ def show rack_trace = traces.first + expect(last_response).to be_ok expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta).fetch('http.route')).to eq('/items/:id') expect(rack_trace.send(:meta)).not_to have_key('http.route.path') @@ -138,6 +163,7 @@ def show rack_trace = traces.first + expect(last_response).to be_ok expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta).fetch('http.route')).to eq('/items/:slug') expect(rack_trace.send(:meta)).not_to have_key('http.route.path') @@ -148,26 +174,40 @@ def show rack_trace = traces.first + expect(last_response).to be_ok expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta).fetch('http.route')).to eq('/books/*section/:title') expect(rack_trace.send(:meta)).not_to have_key('http.route.path') end it 'sets http.route and http.route.path for rails engine routes' do - post '/api/auth/sign-in' + get '/api/auth/sign-in' rack_trace = traces.first + expect(last_response).to be_ok expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta).fetch('http.route')).to eq('/sign-in(/:expires_in)') expect(rack_trace.send(:meta).fetch('http.route.path')).to eq('/api/auth') end + it 'sets http.route for a route to a rack app' do + get '/api/status' + + rack_trace = traces.first + + expect(last_response).to be_ok + expect(rack_trace.name).to eq('rack.request') + expect(rack_trace.send(:meta).fetch('http.route')).to eq('/api/status') + expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + end + it 'does not set http.route when requesting an unknown route' do get '/nope' rack_trace = traces.first + expect(last_response).to be_not_found expect(rack_trace.name).to eq('rack.request') expect(rack_trace.send(:meta)).not_to have_key('http.route') expect(rack_trace.send(:meta)).not_to have_key('http.route.path') From d5bbc947e8cad116c52cb4f94c62408e7cf64674 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 30 Aug 2024 14:59:25 +0200 Subject: [PATCH 26/44] Add concatenation of route and script name to rack middleware --- lib/datadog/tracing/contrib/grape/endpoint.rb | 11 +++- .../tracing/contrib/rack/middlewares.rb | 23 +++++++ lib/datadog/tracing/contrib/sinatra/tracer.rb | 4 ++ .../contrib/sinatra/tracer_middleware.rb | 3 - .../action_dispatch/journey/router_spec.rb | 56 ++++++++--------- .../tracing/contrib/grape/tracer_spec.rb | 60 +++++++++++-------- .../tracing/contrib/rails/rack_spec.rb | 12 ++-- 7 files changed, 107 insertions(+), 62 deletions(-) diff --git a/lib/datadog/tracing/contrib/grape/endpoint.rb b/lib/datadog/tracing/contrib/grape/endpoint.rb index d1c0e527066..5c6b9f25a1b 100644 --- a/lib/datadog/tracing/contrib/grape/endpoint.rb +++ b/lib/datadog/tracing/contrib/grape/endpoint.rb @@ -41,6 +41,7 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) # collect endpoint details endpoint = payload.fetch(:endpoint) + env = payload.fetch(:env) api_view = api_view(endpoint.options[:for]) request_method = endpoint.options.fetch(:method).first path = endpoint_expand_path(endpoint) @@ -60,7 +61,15 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN) - span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, path) if path + + if (grape_route = env['grape.routing_args'] && env['grape.routing_args'][:route_info]) + trace.set_tag( + Tracing::Metadata::Ext::HTTP::TAG_ROUTE, + grape_route.path&.gsub(/\(\.{1}:?\w+\)\z/, '') + ) + + trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, env['SCRIPT_NAME']) + end Thread.current[KEY_RUN] = true rescue StandardError => e diff --git a/lib/datadog/tracing/contrib/rack/middlewares.rb b/lib/datadog/tracing/contrib/rack/middlewares.rb index dd800eb4c2c..68e5cf0bc3e 100644 --- a/lib/datadog/tracing/contrib/rack/middlewares.rb +++ b/lib/datadog/tracing/contrib/rack/middlewares.rb @@ -138,6 +138,29 @@ def set_request_tags!(trace, request_span, env, status, headers, response, origi request_span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST) request_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER) + if status != 404 && (last_route = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + last_script_name = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH).to_s + + # If the last_script_name is empty but the env['SCRIPT_NAME'] is NOT empty + # then the current rack request was not routed and must be accounted for + # which only happens in pure nested rack requests i.e /rack/rack/hello/world + # + # To account for the unaccounted nested rack requests of /rack/hello/world, + # we use 'PATH_INFO knowing that rack cannot have named parameters + if last_script_name == '' && env['SCRIPT_NAME'] != '' + last_script_name = last_route + last_route = env['PATH_INFO'] + end + + # Clear the route and route path tags from the request trace to avoid possibility of misplacement + trace.clear_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE) + trace.clear_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH) + + # Ensure tags are placed in rack.request span as desired + request_span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, last_script_name + last_route) + request_span.clear_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH) + end + # Set analytics sample rate if Contrib::Analytics.enabled?(configuration[:analytics_enabled]) Contrib::Analytics.set_sample_rate(request_span, configuration[:analytics_sample_rate]) diff --git a/lib/datadog/tracing/contrib/sinatra/tracer.rb b/lib/datadog/tracing/contrib/sinatra/tracer.rb index 4c535c0c8c8..36b823933e8 100644 --- a/lib/datadog/tracing/contrib/sinatra/tracer.rb +++ b/lib/datadog/tracing/contrib/sinatra/tracer.rb @@ -69,6 +69,10 @@ def route_eval trace.resource = span.resource + _, path = env['sinatra.route'].split(' ', 2) + trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, path) + trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, env['SCRIPT_NAME']) + sinatra_request_span = Sinatra::Env.datadog_span(env) sinatra_request_span.resource = span.resource diff --git a/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb b/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb index 172de14f42a..6a6e2d015a8 100644 --- a/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +++ b/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb @@ -19,7 +19,6 @@ def initialize(app, opt = {}) end # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/AbcSize def call(env) # Find out if this is Sinatra within Sinatra return @app.call(env) if Sinatra::Env.datadog_span(env) @@ -66,7 +65,6 @@ def call(env) # since the latter is unaware of what the resource might be # and would fallback to a generic resource name when unset rack_request_span.resource ||= span.resource if rack_request_span - rack_request_span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE, datadog_route) if datadog_route if response if (status = response[0]) @@ -90,7 +88,6 @@ def call(env) end end # rubocop:enable Metrics/MethodLength - # rubocop:enable Metrics/AbcSize private diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index 05deabb6a42..6fab8071ba0 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -139,78 +139,78 @@ def create it 'sets http.route when requesting a known route' do get '/api/users/1' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_ok - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta).fetch('http.route')).to eq('/api/users/:id') - expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/api/users/:id') + expect(request_span.tags).not_to have_key('http.route.path') end it 'sets http.route correctly for ambiguous route with constraints' do get '/items/1' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_ok - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta).fetch('http.route')).to eq('/items/:id') - expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/items/:id') + expect(request_span.tags).not_to have_key('http.route.path') end it 'sets http.route correctly for ambiguous route with constraints, case two' do get '/items/something' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_ok - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta).fetch('http.route')).to eq('/items/:slug') - expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/items/:slug') + expect(request_span.tags).not_to have_key('http.route.path') end it 'sets http.route correctly for routes with globbing' do get 'books/some/section/title' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_ok - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta).fetch('http.route')).to eq('/books/*section/:title') - expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/books/*section/:title') + expect(request_span.tags).not_to have_key('http.route.path') end it 'sets http.route and http.route.path for rails engine routes' do get '/api/auth/sign-in' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_ok - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta).fetch('http.route')).to eq('/sign-in(/:expires_in)') - expect(rack_trace.send(:meta).fetch('http.route.path')).to eq('/api/auth') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/api/auth/sign-in(/:expires_in)') + expect(request_span.tags).not_to have_key('http.route.path') end it 'sets http.route for a route to a rack app' do get '/api/status' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_ok - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta).fetch('http.route')).to eq('/api/status') - expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/api/status') + expect(request_span.tags).not_to have_key('http.route.path') end it 'does not set http.route when requesting an unknown route' do get '/nope' - rack_trace = traces.first + request_span = spans.first expect(last_response).to be_not_found - expect(rack_trace.name).to eq('rack.request') - expect(rack_trace.send(:meta)).not_to have_key('http.route') - expect(rack_trace.send(:meta)).not_to have_key('http.route.path') + expect(request_span.name).to eq('rack.request') + expect(request_span.tags).not_to have_key('http.route') + expect(request_span.tags).not_to have_key('http.route.path') end end diff --git a/spec/datadog/tracing/contrib/grape/tracer_spec.rb b/spec/datadog/tracing/contrib/grape/tracer_spec.rb index 80970cd3368..933e9db5525 100644 --- a/spec/datadog/tracing/contrib/grape/tracer_spec.rb +++ b/spec/datadog/tracing/contrib/grape/tracer_spec.rb @@ -13,6 +13,7 @@ let(:render_span) { spans.find { |x| x.name == Datadog::Tracing::Contrib::Grape::Ext::SPAN_ENDPOINT_RENDER } } let(:run_span) { spans.find { |x| x.name == Datadog::Tracing::Contrib::Grape::Ext::SPAN_ENDPOINT_RUN } } + let(:rack_span) { sorted_spans.reverse.find { |x| x.name == Datadog::Tracing::Contrib::Rack::Ext::SPAN_REQUEST } } let(:run_filter_span) { spans.find { |x| x.name == Datadog::Tracing::Contrib::Grape::Ext::SPAN_ENDPOINT_RUN_FILTERS } } let(:span) { spans.last } @@ -197,10 +198,10 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/base/success') - expect(run_span.get_tag('http.status_code')).to eq('200') + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/success') end end @@ -266,10 +267,11 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/filtered/before_after') expect(run_span.get_tag('http.status_code')).to eq('200') + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/filtered/before_after') end end end @@ -301,7 +303,7 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/base/hard_failure') end end @@ -358,10 +360,11 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/base/hard_failure') # Status code has not been set yet at this instrumentation point expect(run_span.get_tag('http.status_code')).to be_nil + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/hard_failure') end end @@ -411,7 +414,7 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/filtered_exception/before') end end @@ -430,7 +433,7 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/base/soft_failure') end @@ -448,7 +451,7 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/base/soft_failure') end end @@ -467,7 +470,7 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/base/soft_failure') end end @@ -486,7 +489,7 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/base/soft_failure') end end @@ -505,7 +508,8 @@ expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') expect(span.get_tag('http.status_code')).to eq('405') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/base/soft_failure') end end @@ -554,10 +558,11 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grape') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('endpoint_run') - expect(span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/base/soft_failure') expect(run_span.get_tag('http.status_code')).to eq('500') + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/base/soft_failure') end end end @@ -606,7 +611,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/widgets') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/widgets') end end @@ -654,7 +660,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/widgets') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('POST') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/widgets') end end @@ -692,7 +699,8 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/nested/widgets') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + + expect(trace.send(:meta).fetch(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) .to eq('/nested/widgets') end end @@ -779,10 +787,7 @@ expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_METHOD)).to eq('GET') expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_URL)).to eq('/success') - expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/success') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/success') expect(rack_span.name).to eq('rack.request') expect(rack_span.type).to eq('web') @@ -790,6 +795,7 @@ expect(rack_span.resource).to eq('RackTestingAPI GET /success') expect(rack_span).to_not have_error expect(rack_span).to be_root_span + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)).to eq('/api/success') end end @@ -848,8 +854,6 @@ expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_PATH)).to eq('/hard_failure') expect(run_span.get_tag(Datadog::Tracing::Contrib::Grape::Ext::TAG_ROUTE_METHOD)).to eq('GET') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/hard_failure') expect(rack_span.name).to eq('rack.request') expect(rack_span.type).to eq('web') @@ -857,6 +861,8 @@ expect(rack_span.resource).to eq('RackTestingAPI GET /hard_failure') expect(rack_span).to have_error expect(rack_span).to be_root_span + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/api/hard_failure') end end @@ -894,8 +900,10 @@ run_span = spans.find { |s| s.name == 'grape.endpoint_run' } expect(run_span.name).to eq('grape.endpoint_run') expect(run_span.resource).to eq('RackTestingAPI GET /span_resource_rack/span_resource') - expect(run_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - .to eq('/span_resource_rack/span_resource') + + rack_span = spans.find { |x| x.name == Datadog::Tracing::Contrib::Rack::Ext::SPAN_REQUEST } + expect(rack_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/api/span_resource_rack/span_resource') end it 'sets the trace resource before calling the endpoint' do diff --git a/spec/datadog/tracing/contrib/rails/rack_spec.rb b/spec/datadog/tracing/contrib/rails/rack_spec.rb index ab3c2b2c22d..9967decb34d 100644 --- a/spec/datadog/tracing/contrib/rails/rack_spec.rb +++ b/spec/datadog/tracing/contrib/rails/rack_spec.rb @@ -138,7 +138,6 @@ def internal_server_error request_span, controller_span, cache_span, render_span = spans expect(trace.resource).to eq('TestController#full') - expect(trace.send(:meta).fetch('http.route')).to eq('/full') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') @@ -152,6 +151,8 @@ def internal_server_error .to eq('rack') expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/full') expect(controller_span.name).to eq('rails.action_controller') expect(controller_span.type).to eq('web') @@ -375,7 +376,6 @@ def internal_server_error request_span, controller_span = spans expect(trace.resource).to eq('TestController#error') - expect(trace.send(:meta).fetch('http.route')).to eq('/error') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') @@ -389,6 +389,8 @@ def internal_server_error .to eq('rack') expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/error') expect(controller_span.name).to eq('rails.action_controller') expect(controller_span).to have_error @@ -411,7 +413,6 @@ def internal_server_error request_span, controller_span = spans expect(trace.resource).to eq('TestController#soft_error') - expect(trace.send(:meta).fetch('http.route')).to eq('/soft_error') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') @@ -425,6 +426,8 @@ def internal_server_error .to eq('rack') expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/soft_error') expect(controller_span.name).to eq('rails.action_controller') expect(controller_span).to have_error @@ -447,7 +450,6 @@ def internal_server_error request_span, controller_span = spans expect(trace.resource).to eq('TestController#sub_error') - expect(trace.send(:meta).fetch('http.route')).to eq('/sub_error') expect(request_span.name).to eq('rack.request') expect(request_span.type).to eq('web') @@ -464,6 +466,8 @@ def internal_server_error .to eq('rack') expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/sub_error') expect(controller_span.name).to eq('rails.action_controller') expect(controller_span).to have_error From 4b6f5edc664b50006e05db18d5adab111266ab79 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 30 Aug 2024 15:31:29 +0200 Subject: [PATCH 27/44] Use a constant in rack http route specs --- spec/datadog/tracing/contrib/rack/http_route_spec.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spec/datadog/tracing/contrib/rack/http_route_spec.rb b/spec/datadog/tracing/contrib/rack/http_route_spec.rb index 5b78b4a95d7..12592bb99cb 100644 --- a/spec/datadog/tracing/contrib/rack/http_route_spec.rb +++ b/spec/datadog/tracing/contrib/rack/http_route_spec.rb @@ -45,21 +45,24 @@ response = get('/hello/world') expect(response).to be_ok - expect(request_span.get_tag('http.route')).to eq('/hello/world') + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/hello/world') end it 'sets http.route tag on request to nested app route' do response = get('/rack/hello/world') expect(response).to be_ok - expect(request_span.get_tag('http.route')).to eq('/rack/hello/world') + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to eq('/rack/hello/world') end it 'sets no http.route tag when response status is 404' do response = get('/no_route') expect(response).to be_not_found - expect(request_span.get_tag('http.route')).to be_nil + expect(request_span.get_tag(Datadog::Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) + .to be_nil end def request_span From cae659f4f62b2b976356afe212ca899fcba3041c Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 13 Sep 2024 20:44:14 +0200 Subject: [PATCH 28/44] Improve configuration reset in specs --- spec/datadog/tracing/contrib/rack/http_route_spec.rb | 6 +++--- spec/datadog/tracing/contrib/rails/support/rails7.rb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spec/datadog/tracing/contrib/rack/http_route_spec.rb b/spec/datadog/tracing/contrib/rack/http_route_spec.rb index 12592bb99cb..f5022c28b81 100644 --- a/spec/datadog/tracing/contrib/rack/http_route_spec.rb +++ b/spec/datadog/tracing/contrib/rack/http_route_spec.rb @@ -8,13 +8,13 @@ RSpec.describe 'Rack testing for http.route' do include Rack::Test::Methods - before do + around do |example| Datadog.configure do |c| c.tracing.instrument :rack end - end - after do + example.run + ensure Datadog.configuration.tracing[:rack].reset! end diff --git a/spec/datadog/tracing/contrib/rails/support/rails7.rb b/spec/datadog/tracing/contrib/rails/support/rails7.rb index a8d00d9a0af..63c20326dbe 100644 --- a/spec/datadog/tracing/contrib/rails/support/rails7.rb +++ b/spec/datadog/tracing/contrib/rails/support/rails7.rb @@ -134,11 +134,11 @@ def initialize(files, dirs = {}, &block) end end - before do + around do |example| reset_rails_configuration! - end - after do + example.run + ensure reset_rails_configuration! # Push this to base when Rails 3 removed From 3207b16ea39d9a5b7af0d7a1ae392058d2c39656 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Fri, 13 Sep 2024 20:57:55 +0200 Subject: [PATCH 29/44] Improve rack instrumentation and specs --- .../action_dispatch/instrumentation.rb | 2 -- lib/datadog/tracing/contrib/grape/endpoint.rb | 2 +- .../tracing/contrib/rack/middlewares.rb | 2 +- .../action_dispatch/instrumentation_spec.rb | 8 -------- .../action_dispatch/journey/router_spec.rb | 20 +++++++++++++++++-- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb index f527bd99558..d18ff8e2ca1 100644 --- a/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +++ b/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb @@ -24,8 +24,6 @@ def set_http_route_tags(route_spec, script_name) if script_name && !script_name.empty? request_trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, script_name) end - rescue StandardError => e - Datadog.logger.error(e.message) end def dispatcher_route?(route) diff --git a/lib/datadog/tracing/contrib/grape/endpoint.rb b/lib/datadog/tracing/contrib/grape/endpoint.rb index 37b8448b9a0..69e8da18413 100644 --- a/lib/datadog/tracing/contrib/grape/endpoint.rb +++ b/lib/datadog/tracing/contrib/grape/endpoint.rb @@ -66,7 +66,7 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) if (grape_route = env['grape.routing_args'] && env['grape.routing_args'][:route_info]) trace.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, - grape_route.path&.gsub(/\(\.{1}:?\w+\)\z/, '') + grape_route.path&.gsub(/\(\.:?\w+\)\z/, '') ) trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, env['SCRIPT_NAME']) diff --git a/lib/datadog/tracing/contrib/rack/middlewares.rb b/lib/datadog/tracing/contrib/rack/middlewares.rb index 68e5cf0bc3e..869093a7e06 100644 --- a/lib/datadog/tracing/contrib/rack/middlewares.rb +++ b/lib/datadog/tracing/contrib/rack/middlewares.rb @@ -139,7 +139,7 @@ def set_request_tags!(trace, request_span, env, status, headers, response, origi request_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER) if status != 404 && (last_route = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - last_script_name = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH).to_s + last_script_name = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH).to_s || '' # If the last_script_name is empty but the env['SCRIPT_NAME'] is NOT empty # then the current rack request was not routed and must be accounted for diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb index 47d55570eb2..4927478b802 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation_spec.rb @@ -56,13 +56,5 @@ expect(traces).to be_empty end - - it 'rescues exceptions' do - expect(Datadog::Tracing).to receive(:active_trace).and_raise('boom') - - expect(Datadog.logger).to receive(:error).with('boom') - - described_class.set_http_route_tags('/users/:id', '/auth') - end end end diff --git a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb index 6fab8071ba0..1a7610ca71a 100644 --- a/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb +++ b/spec/datadog/tracing/contrib/action_pack/action_dispatch/journey/router_spec.rb @@ -23,7 +23,7 @@ describe '#find_routes' do before do engine.routes.append do - get '/sign-in/(:expires_in)' => 'tokens#create' + get '/sign-in' => 'tokens#create' end auth_engine = engine @@ -41,6 +41,7 @@ get '/items/:id', to: 'items#by_id', id: /\d+/ get '/items/:slug', to: 'items#by_slug', id: /(\w-)+/ + get 'books(/:category)', to: 'books#index' get 'books/*section/:title', to: 'books#show' end end @@ -88,6 +89,10 @@ def by_slug stub_const( 'BooksController', Class.new(ActionController::Base) do + def index + head :ok + end + def show head :ok end @@ -180,6 +185,17 @@ def create expect(request_span.tags).not_to have_key('http.route.path') end + it 'sets http.route correctly for routes with optional parameter' do + get 'books/some-category' + + request_span = spans.first + + expect(last_response).to be_ok + expect(request_span.name).to eq('rack.request') + expect(request_span.tags.fetch('http.route')).to eq('/books(/:category)') + expect(request_span.tags).not_to have_key('http.route.path') + end + it 'sets http.route and http.route.path for rails engine routes' do get '/api/auth/sign-in' @@ -187,7 +203,7 @@ def create expect(last_response).to be_ok expect(request_span.name).to eq('rack.request') - expect(request_span.tags.fetch('http.route')).to eq('/api/auth/sign-in(/:expires_in)') + expect(request_span.tags.fetch('http.route')).to eq('/api/auth/sign-in') expect(request_span.tags).not_to have_key('http.route.path') end From 81217b9a69c3cee0b49c9df09a8b53f11a99f96b Mon Sep 17 00:00:00 2001 From: y9v Date: Fri, 13 Sep 2024 19:34:56 +0000 Subject: [PATCH 30/44] Update gemfiles/* --- gemfiles/ruby_3.0_rails7.gemfile.lock | 15 ++++++++++---- gemfiles/ruby_3.0_rails71.gemfile.lock | 15 ++++++++++---- gemfiles/ruby_3.1_rails7.gemfile.lock | 15 ++++++++++---- gemfiles/ruby_3.1_rails71.gemfile.lock | 15 ++++++++++---- gemfiles/ruby_3.2_rails7.gemfile.lock | 15 ++++++++++---- gemfiles/ruby_3.2_rails71.gemfile.lock | 15 ++++++++++---- gemfiles/ruby_3.3_rails7.gemfile.lock | 13 ++++++++++--- gemfiles/ruby_3.3_rails71.gemfile.lock | 13 ++++++++++--- gemfiles/ruby_3.4_rails7.gemfile | 4 ++-- gemfiles/ruby_3.4_rails7.gemfile.lock | 27 +++++++++++++++++++------- gemfiles/ruby_3.4_rails71.gemfile | 4 ++-- gemfiles/ruby_3.4_rails71.gemfile.lock | 27 +++++++++++++++++++------- 12 files changed, 130 insertions(+), 48 deletions(-) diff --git a/gemfiles/ruby_3.0_rails7.gemfile.lock b/gemfiles/ruby_3.0_rails7.gemfile.lock index 8be31eb5dba..55dc302e9a0 100644 --- a/gemfiles/ruby_3.0_rails7.gemfile.lock +++ b/gemfiles/ruby_3.0_rails7.gemfile.lock @@ -11,9 +11,9 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -119,15 +119,19 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -154,6 +158,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -276,6 +282,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -316,4 +323,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.0_rails71.gemfile.lock b/gemfiles/ruby_3.0_rails71.gemfile.lock index 1d68a5e7345..d81449167fd 100644 --- a/gemfiles/ruby_3.0_rails71.gemfile.lock +++ b/gemfiles/ruby_3.0_rails71.gemfile.lock @@ -11,9 +11,9 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -131,6 +131,7 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) @@ -141,9 +142,12 @@ GEM json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -171,6 +175,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -306,6 +312,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -346,4 +353,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.1_rails7.gemfile.lock b/gemfiles/ruby_3.1_rails7.gemfile.lock index 8be31eb5dba..55dc302e9a0 100644 --- a/gemfiles/ruby_3.1_rails7.gemfile.lock +++ b/gemfiles/ruby_3.1_rails7.gemfile.lock @@ -11,9 +11,9 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -119,15 +119,19 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -154,6 +158,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -276,6 +282,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -316,4 +323,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.1_rails71.gemfile.lock b/gemfiles/ruby_3.1_rails71.gemfile.lock index 1d68a5e7345..d81449167fd 100644 --- a/gemfiles/ruby_3.1_rails71.gemfile.lock +++ b/gemfiles/ruby_3.1_rails71.gemfile.lock @@ -11,9 +11,9 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -131,6 +131,7 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) @@ -141,9 +142,12 @@ GEM json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -171,6 +175,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -306,6 +312,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -346,4 +353,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.2_rails7.gemfile.lock b/gemfiles/ruby_3.2_rails7.gemfile.lock index 9995253356f..a02275f4b5d 100644 --- a/gemfiles/ruby_3.2_rails7.gemfile.lock +++ b/gemfiles/ruby_3.2_rails7.gemfile.lock @@ -11,9 +11,9 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -118,15 +118,19 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -153,6 +157,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -272,6 +278,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -311,4 +318,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.2_rails71.gemfile.lock b/gemfiles/ruby_3.2_rails71.gemfile.lock index 4c22296e1c4..db7b3876e27 100644 --- a/gemfiles/ruby_3.2_rails71.gemfile.lock +++ b/gemfiles/ruby_3.2_rails71.gemfile.lock @@ -11,9 +11,9 @@ GIT PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -130,6 +130,7 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) @@ -140,9 +141,12 @@ GEM json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -170,6 +174,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -302,6 +308,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -341,4 +348,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.3_rails7.gemfile.lock b/gemfiles/ruby_3.3_rails7.gemfile.lock index 351f18fc616..a02275f4b5d 100644 --- a/gemfiles/ruby_3.3_rails7.gemfile.lock +++ b/gemfiles/ruby_3.3_rails7.gemfile.lock @@ -13,7 +13,7 @@ PATH specs: datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -118,15 +118,19 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -153,6 +157,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -272,6 +278,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -311,4 +318,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.3_rails71.gemfile.lock b/gemfiles/ruby_3.3_rails71.gemfile.lock index b91df70b133..db7b3876e27 100644 --- a/gemfiles/ruby_3.3_rails71.gemfile.lock +++ b/gemfiles/ruby_3.3_rails71.gemfile.lock @@ -13,7 +13,7 @@ PATH specs: datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -130,6 +130,7 @@ GEM globalid (1.2.1) activesupport (>= 6.1) google-protobuf (3.25.4-aarch64-linux) + google-protobuf (3.25.4-x86_64-linux) hashdiff (1.1.1) i18n (1.14.5) concurrent-ruby (~> 1.0) @@ -140,9 +141,12 @@ GEM json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -170,6 +174,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) os (1.1.4) parallel (1.26.3) parser (3.3.4.2) @@ -302,6 +308,7 @@ GEM PLATFORMS aarch64-linux + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -341,4 +348,4 @@ DEPENDENCIES yard (~> 0.9) BUNDLED WITH - 2.3.27 + 2.3.26 diff --git a/gemfiles/ruby_3.4_rails7.gemfile b/gemfiles/ruby_3.4_rails7.gemfile index 2c90032f074..42fe17bfc2c 100644 --- a/gemfiles/ruby_3.4_rails7.gemfile +++ b/gemfiles/ruby_3.4_rails7.gemfile @@ -26,7 +26,7 @@ gem "simplecov-cobertura", "~> 2.1.0" gem "warning", "~> 1" gem "webmock", ">= 3.10.0" gem "rexml", ">= 3.2.7" -gem "webrick", ">= 1.7.0" +gem "webrick", git: "https://github.com/ruby/webrick.git", ref: "0c600e169bd4ae267cb5eeb6197277c848323bbe" gem "yard", "~> 0.9" gem "rubocop", "~> 1.50.0", require: false gem "rubocop-packaging", "~> 0.5.2", require: false @@ -38,7 +38,7 @@ gem "ffi", "~> 1.16.3", require: false gem "rails", "~> 7.0.0" group :check do - + gem "ruby_memcheck", ">= 3" end group :dev do diff --git a/gemfiles/ruby_3.4_rails7.gemfile.lock b/gemfiles/ruby_3.4_rails7.gemfile.lock index 87a8d1dc38b..0635a6f755b 100644 --- a/gemfiles/ruby_3.4_rails7.gemfile.lock +++ b/gemfiles/ruby_3.4_rails7.gemfile.lock @@ -8,12 +8,19 @@ GIT simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) +GIT + remote: https://github.com/ruby/webrick.git + revision: 0c600e169bd4ae267cb5eeb6197277c848323bbe + ref: 0c600e169bd4ae267cb5eeb6197277c848323bbe + specs: + webrick (1.8.1) + PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -124,12 +131,15 @@ GEM json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0) ffi (~> 1.0) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -251,6 +261,8 @@ GEM rubocop (~> 1.33) rubocop-capybara (~> 2.17) ruby-progressbar (1.13.0) + ruby_memcheck (3.0.0) + nokogiri simplecov-cobertura (2.1.0) rexml simplecov (~> 0.19) @@ -267,7 +279,6 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.8.1) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -277,6 +288,7 @@ GEM PLATFORMS aarch64-linux ruby + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -308,12 +320,13 @@ DEPENDENCIES rubocop-packaging (~> 0.5.2) rubocop-performance (~> 1.9) rubocop-rspec (~> 2.20, < 2.21) + ruby_memcheck (>= 3) simplecov! simplecov-cobertura (~> 2.1.0) warning (~> 1) webmock (>= 3.10.0) - webrick (>= 1.7.0) + webrick! yard (~> 0.9) BUNDLED WITH - 2.6.0.dev + 2.3.26 diff --git a/gemfiles/ruby_3.4_rails71.gemfile b/gemfiles/ruby_3.4_rails71.gemfile index 77d66c84b11..c197c00841b 100644 --- a/gemfiles/ruby_3.4_rails71.gemfile +++ b/gemfiles/ruby_3.4_rails71.gemfile @@ -26,7 +26,7 @@ gem "simplecov-cobertura", "~> 2.1.0" gem "warning", "~> 1" gem "webmock", ">= 3.10.0" gem "rexml", ">= 3.2.7" -gem "webrick", ">= 1.7.0" +gem "webrick", git: "https://github.com/ruby/webrick.git", ref: "0c600e169bd4ae267cb5eeb6197277c848323bbe" gem "yard", "~> 0.9" gem "rubocop", "~> 1.50.0", require: false gem "rubocop-packaging", "~> 0.5.2", require: false @@ -38,7 +38,7 @@ gem "ffi", "~> 1.16.3", require: false gem "rails", "~> 7.1.0" group :check do - + gem "ruby_memcheck", ">= 3" end group :dev do diff --git a/gemfiles/ruby_3.4_rails71.gemfile.lock b/gemfiles/ruby_3.4_rails71.gemfile.lock index 8e7dfb5e461..72ba81dc60a 100644 --- a/gemfiles/ruby_3.4_rails71.gemfile.lock +++ b/gemfiles/ruby_3.4_rails71.gemfile.lock @@ -8,12 +8,19 @@ GIT simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) +GIT + remote: https://github.com/ruby/webrick.git + revision: 0c600e169bd4ae267cb5eeb6197277c848323bbe + ref: 0c600e169bd4ae267cb5eeb6197277c848323bbe + specs: + webrick (1.8.1) + PATH remote: .. specs: - datadog (2.2.0) + datadog (2.3.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 11.0.0.1.0) + libdatadog (~> 12.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack @@ -140,12 +147,15 @@ GEM json (2.7.2) json-schema (2.8.1) addressable (>= 2.4) - libdatadog (11.0.0.1.0) - libdatadog (11.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) libddwaf (1.14.0.0.0) ffi (~> 1.0) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -280,6 +290,8 @@ GEM rubocop (~> 1.33) rubocop-capybara (~> 2.17) ruby-progressbar (1.13.0) + ruby_memcheck (3.0.0) + nokogiri simplecov-cobertura (2.1.0) rexml simplecov (~> 0.19) @@ -297,7 +309,6 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.8.1) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -307,6 +318,7 @@ GEM PLATFORMS aarch64-linux ruby + x86_64-linux DEPENDENCIES appraisal (~> 2.4.0) @@ -338,12 +350,13 @@ DEPENDENCIES rubocop-packaging (~> 0.5.2) rubocop-performance (~> 1.9) rubocop-rspec (~> 2.20, < 2.21) + ruby_memcheck (>= 3) simplecov! simplecov-cobertura (~> 2.1.0) warning (~> 1) webmock (>= 3.10.0) - webrick (>= 1.7.0) + webrick! yard (~> 0.9) BUNDLED WITH - 2.6.0.dev + 2.3.26 From fedd3e3b5fe74f6fa7d8eb8b42078fbe5f48ae2e Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Sat, 14 Sep 2024 18:20:05 +0200 Subject: [PATCH 31/44] Change around(:example) to around(:suite) for rack http route test --- spec/datadog/tracing/contrib/rack/http_route_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/datadog/tracing/contrib/rack/http_route_spec.rb b/spec/datadog/tracing/contrib/rack/http_route_spec.rb index f5022c28b81..d5d943c7c2c 100644 --- a/spec/datadog/tracing/contrib/rack/http_route_spec.rb +++ b/spec/datadog/tracing/contrib/rack/http_route_spec.rb @@ -8,7 +8,7 @@ RSpec.describe 'Rack testing for http.route' do include Rack::Test::Methods - around do |example| + around(:suite) do |example| Datadog.configure do |c| c.tracing.instrument :rack end From 7317018fe09188035e5f7799603c0d46b5a95912 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Tue, 17 Sep 2024 13:26:01 +0200 Subject: [PATCH 32/44] Fix route path tag in rack, improve grape route instrumentation code --- lib/datadog/tracing/contrib/grape/endpoint.rb | 4 ++-- lib/datadog/tracing/contrib/rack/middlewares.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/datadog/tracing/contrib/grape/endpoint.rb b/lib/datadog/tracing/contrib/grape/endpoint.rb index 69e8da18413..651132626f1 100644 --- a/lib/datadog/tracing/contrib/grape/endpoint.rb +++ b/lib/datadog/tracing/contrib/grape/endpoint.rb @@ -63,10 +63,10 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN) - if (grape_route = env['grape.routing_args'] && env['grape.routing_args'][:route_info]) + if (grape_route = env['grape.routing_args']) && grape_route[:route_info] trace.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, - grape_route.path&.gsub(/\(\.:?\w+\)\z/, '') + grape_route[:route_info].path&.gsub(/\(\.:?\w+\)\z/, '') ) trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, env['SCRIPT_NAME']) diff --git a/lib/datadog/tracing/contrib/rack/middlewares.rb b/lib/datadog/tracing/contrib/rack/middlewares.rb index 869093a7e06..3c4f43d3f61 100644 --- a/lib/datadog/tracing/contrib/rack/middlewares.rb +++ b/lib/datadog/tracing/contrib/rack/middlewares.rb @@ -139,7 +139,7 @@ def set_request_tags!(trace, request_span, env, status, headers, response, origi request_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER) if status != 404 && (last_route = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE)) - last_script_name = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH).to_s || '' + last_script_name = trace.get_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH) || '' # If the last_script_name is empty but the env['SCRIPT_NAME'] is NOT empty # then the current rack request was not routed and must be accounted for From c62c24d3bcde1492ce2b6dc3a95fe4a8bdc5e44f Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Tue, 17 Sep 2024 16:17:10 +0200 Subject: [PATCH 33/44] Add a comment to grape endpoint explaining route format removal --- lib/datadog/tracing/contrib/grape/endpoint.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/datadog/tracing/contrib/grape/endpoint.rb b/lib/datadog/tracing/contrib/grape/endpoint.rb index 651132626f1..726ed8c3fe1 100644 --- a/lib/datadog/tracing/contrib/grape/endpoint.rb +++ b/lib/datadog/tracing/contrib/grape/endpoint.rb @@ -64,8 +64,14 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN) if (grape_route = env['grape.routing_args']) && grape_route[:route_info] + puts '=' * 80 + puts grape_route[:route_info].path + puts '=' * 80 trace.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, + # here we are removing the format from the path: + # e.g. /path/to/resource(.json) => /path/to/resource + # e.g. /path/to/resource(.:format) => /path/to/resource grape_route[:route_info].path&.gsub(/\(\.:?\w+\)\z/, '') ) From b72916cf655d30ef5685ec7fed7a4882f853598f Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Tue, 17 Sep 2024 16:21:17 +0200 Subject: [PATCH 34/44] Add handling for possible nil value of env['SCRIPT_NAME'] --- lib/datadog/tracing/contrib/rack/middlewares.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/datadog/tracing/contrib/rack/middlewares.rb b/lib/datadog/tracing/contrib/rack/middlewares.rb index 3c4f43d3f61..fc2662c95ca 100644 --- a/lib/datadog/tracing/contrib/rack/middlewares.rb +++ b/lib/datadog/tracing/contrib/rack/middlewares.rb @@ -147,7 +147,7 @@ def set_request_tags!(trace, request_span, env, status, headers, response, origi # # To account for the unaccounted nested rack requests of /rack/hello/world, # we use 'PATH_INFO knowing that rack cannot have named parameters - if last_script_name == '' && env['SCRIPT_NAME'] != '' + if last_script_name == '' && env['SCRIPT_NAME'] && env['SCRIPT_NAME'] != '' last_script_name = last_route last_route = env['PATH_INFO'] end From deaba021ee07434ab2bd99da250ed5ba12f8cf19 Mon Sep 17 00:00:00 2001 From: Yury Lebedev Date: Wed, 18 Sep 2024 09:38:37 +0200 Subject: [PATCH 35/44] Remove debugging code --- lib/datadog/tracing/contrib/grape/endpoint.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/datadog/tracing/contrib/grape/endpoint.rb b/lib/datadog/tracing/contrib/grape/endpoint.rb index 726ed8c3fe1..1473585a422 100644 --- a/lib/datadog/tracing/contrib/grape/endpoint.rb +++ b/lib/datadog/tracing/contrib/grape/endpoint.rb @@ -64,9 +64,6 @@ def endpoint_start_process(_name, _start, _finish, _id, payload) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN) if (grape_route = env['grape.routing_args']) && grape_route[:route_info] - puts '=' * 80 - puts grape_route[:route_info].path - puts '=' * 80 trace.set_tag( Tracing::Metadata::Ext::HTTP::TAG_ROUTE, # here we are removing the format from the path: From 4dd912a00ae3f4d9ecc9ed013168cc6f7f9dd708 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 18 Sep 2024 11:44:09 +0200 Subject: [PATCH 36/44] Improve update gemfiles --- .github/workflows/lock-dependency.yml | 93 +++++++++++++++++++++++++++ .github/workflows/update-gemfiles.yml | 83 ------------------------ Appraisals | 2 +- appraisal/jruby-9.2.rb | 2 +- appraisal/jruby-9.3.rb | 2 +- appraisal/jruby-9.4.rb | 2 +- appraisal/ruby-2.5.rb | 2 +- appraisal/ruby-2.6.rb | 2 +- appraisal/ruby-2.7.rb | 2 +- appraisal/ruby-3.0.rb | 2 +- appraisal/ruby-3.1.rb | 2 +- appraisal/ruby-3.2.rb | 2 +- appraisal/ruby-3.3.rb | 2 +- appraisal/ruby-3.4.rb | 2 +- tasks/appraisal_conversion.rb | 49 ++++++++++++++ tasks/dependency.rake | 49 ++++++++++++++ tasks/edge.rake | 43 +------------ 17 files changed, 204 insertions(+), 137 deletions(-) create mode 100644 .github/workflows/lock-dependency.yml delete mode 100644 .github/workflows/update-gemfiles.yml create mode 100644 tasks/appraisal_conversion.rb create mode 100644 tasks/dependency.rake diff --git a/.github/workflows/lock-dependency.yml b/.github/workflows/lock-dependency.yml new file mode 100644 index 00000000000..1b977e1f241 --- /dev/null +++ b/.github/workflows/lock-dependency.yml @@ -0,0 +1,93 @@ +name: Lock Dependency + +on: + workflow_dispatch: + inputs: + branch: + description: 'Branch to be lock dependency' + required: true + # Testing purpose, to be removed before merge. + push: + branches: + - tonycthsu/automate-update-gemfiles + +# Ensure obsolete job is cancelled if another commit is pushed to the same branch. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + # TODO: In order to fully automate this workflow for each PR, + # have a reliable way to precheck job to understand whether it need to be updated + lock: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + engine: + # ADD NEW RUBIES HERE + - name: ruby + version: '3.4' + - name: ruby + version: '3.3' + - name: ruby + version: '3.2' + - name: ruby + version: '3.1' + - name: ruby + version: '3.0' + - name: ruby + version: '2.7' + - name: ruby + version: '2.6' + - name: ruby + version: '2.5' + - name: jruby + version: '9.4' + - name: jruby + version: '9.3' + - name: jruby + version: '9.2' + container: + image: ghcr.io/datadog/images-rb/engines/${{ matrix.engine.name }}:${{ matrix.engine.version }} + env: + BUNDLE_WITHOUT: check + steps: + - uses: actions/checkout@v4 + - run: ls -al + - run: | + ruby -v + gem -v + bundler -v + + - run: bundle install + + # TODO: Migrate away from `appraisal` + - run: bundle exec appraisal generate + - run: bundle exec rake dependency:lock + + - uses: actions/upload-artifact@v4 + with: + name: lock-dependency-${{ github.run_id }}-${{ matrix.engine.name }}-${{ matrix.engine.version }} + path: gemfiles/${{ matrix.engine.name }}_${{ matrix.engine.version }}* + + commit: + needs: lock + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - uses: actions/download-artifact@v4 + with: + path: gemfiles + pattern: lock-dependency-${{ github.run_id }}-* + merge-multiple: true + + - run: git diff --color + + - uses: stefanzweifel/git-auto-commit-action@v5 + with: + file_pattern: 'gemfiles/*' + commit_message: "[🤖] Lock Dependency: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" diff --git a/.github/workflows/update-gemfiles.yml b/.github/workflows/update-gemfiles.yml deleted file mode 100644 index 078a15ccd3d..00000000000 --- a/.github/workflows/update-gemfiles.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: Update Gemfiles - -# This action cannot be skipped altogether because it is a mandatory status check. -# Instead we conditionally skip it at job level, instead of workflow level. -on: - # Execute on `push` and not `pull_request` because `pull_request` - # always compares if the `paths` have changed compared to the PR base. - # This is an issue because it means that all commits to the branch - # will trigger the gemfile update process, which is unnecessary and expensive. - # - # By executing on `push`, GitHub compares `paths` with the parent commit, - # meaning the gemfile update process will only execute on the exact commit - # that changes any of the `paths`. - # - # Because this process is slow and expensive, and we commit the gemfile changes back - # to the branch, we have an additional filter to only execute this action on branches - # attached to a PR. - # - # We could do the inverse: execute this action on `pull_request`, and additionally check - # if `paths` was changed compared to the parent commit, but this proved more complicated. - push - -# Ensure obsolete job is cancelled if another commit is pushed to the same branch. -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - check: - name: Update Gemfiles - runs-on: ubuntu-22.04 - permissions: - contents: write - pull-requests: write - steps: - # Only execute if there's a PR attached to this branch. - # Because we execute on `push`, we have to double check here if this is part of a PR. - - name: Check if this branch is attached to a Pull Request - uses: 8bitjonny/gh-get-current-pr@2215326c76d51bfa3f2af0a470f32677f6c0cae9 # v2.2.0 - id: pr - with: - filterOutClosed: true # Don't trigger on commits with closed PRs, including merges into `master`. - - if: steps.pr.outputs.pr_found == 'true' - uses: actions/checkout@v4 - # And also, only execute if files that can affect gemfiles are modified. - - if: steps.pr.outputs.pr_found == 'true' - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 - id: filter - with: - base: ${{ github.ref_name }} - filters: | - gemfile: - # Files that declare the dependency tree - - Gemfile - - Appraisals - - datadog.gemspec - # Files that control gemfile generation - - tasks/appraisal.rake - - .github/workflows/update-gemfiles.yml - # The gem version is present in all lock files - - lib/datadog/version.rb - # In case the generated files were updated manually or in a merge commit - - appraisal/** - - gemfiles/** - - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.2' - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' - name: Ensure gemfiles/*.gemfile.lock match gem definition - run: bundle exec rake appraisal:lock - - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' - name: Add all supported platforms to gemfiles/*.gemfile.lock - run: bundle exec rake appraisal:platform - - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' - name: Remove obsolete gemfiles/* - run: bundle exec rake appraisal:clean - - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' - name: Commit gemfiles changes, if any, back to the branch - uses: stefanzweifel/git-auto-commit-action@3ea6ae190baf489ba007f7c92608f33ce20ef04a # v4.16.0 - with: - commit_message: Update gemfiles/* diff --git a/Appraisals b/Appraisals index b312f409b3e..ef649f43103 100644 --- a/Appraisals +++ b/Appraisals @@ -52,7 +52,7 @@ def build_coverage_matrix(integration, range, gem: nil, min: nil, meta: {}) if min appraise "#{integration}-min" do - gem gem, "= #{n}" + gem gem, "= #{min}" meta.each { |k, v| gem k, v } end end diff --git a/appraisal/jruby-9.2.rb b/appraisal/jruby-9.2.rb index cd3a5619f49..ed8c523b69f 100644 --- a/appraisal/jruby-9.2.rb +++ b/appraisal/jruby-9.2.rb @@ -189,7 +189,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/jruby-9.3.rb b/appraisal/jruby-9.3.rb index 3a98ded6920..6556d4f81bb 100644 --- a/appraisal/jruby-9.3.rb +++ b/appraisal/jruby-9.3.rb @@ -162,7 +162,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/jruby-9.4.rb b/appraisal/jruby-9.4.rb index 1968306e239..2bf7c0d5698 100644 --- a/appraisal/jruby-9.4.rb +++ b/appraisal/jruby-9.4.rb @@ -66,7 +66,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-2.5.rb b/appraisal/ruby-2.5.rb index 2e8d2cf9772..d0ff148a8d1 100644 --- a/appraisal/ruby-2.5.rb +++ b/appraisal/ruby-2.5.rb @@ -209,7 +209,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-2.6.rb b/appraisal/ruby-2.6.rb index 312a76cdba9..45d196a33b0 100644 --- a/appraisal/ruby-2.6.rb +++ b/appraisal/ruby-2.6.rb @@ -162,7 +162,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-2.7.rb b/appraisal/ruby-2.7.rb index 4e02ac9adc2..e7c203513b7 100644 --- a/appraisal/ruby-2.7.rb +++ b/appraisal/ruby-2.7.rb @@ -162,7 +162,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-3.0.rb b/appraisal/ruby-3.0.rb index 7dcd32e7a3f..c0f2d58b3fc 100644 --- a/appraisal/ruby-3.0.rb +++ b/appraisal/ruby-3.0.rb @@ -75,7 +75,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-3.1.rb b/appraisal/ruby-3.1.rb index 7dcd32e7a3f..c0f2d58b3fc 100644 --- a/appraisal/ruby-3.1.rb +++ b/appraisal/ruby-3.1.rb @@ -75,7 +75,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-3.2.rb b/appraisal/ruby-3.2.rb index 7dcd32e7a3f..c0f2d58b3fc 100644 --- a/appraisal/ruby-3.2.rb +++ b/appraisal/ruby-3.2.rb @@ -75,7 +75,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-3.3.rb b/appraisal/ruby-3.3.rb index 6bdd3958304..c740488fb1a 100644 --- a/appraisal/ruby-3.3.rb +++ b/appraisal/ruby-3.3.rb @@ -75,7 +75,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/appraisal/ruby-3.4.rb b/appraisal/ruby-3.4.rb index e38331b9dba..97baa215598 100644 --- a/appraisal/ruby-3.4.rb +++ b/appraisal/ruby-3.4.rb @@ -75,7 +75,7 @@ gem 'typhoeus' end -build_coverage_matrix('stripe', 7..12) +build_coverage_matrix('stripe', 7..12, min: '5.15.0') build_coverage_matrix('opensearch', 2..3, gem: 'opensearch-ruby') build_coverage_matrix('elasticsearch', 7..8) diff --git a/tasks/appraisal_conversion.rb b/tasks/appraisal_conversion.rb new file mode 100644 index 00000000000..685c544911f --- /dev/null +++ b/tasks/appraisal_conversion.rb @@ -0,0 +1,49 @@ +require 'pathname' + +# This module translates our custom mapping between appraisal and bundler. +# +# It cannot be included into `Appraisal` file, because it was invoked via `instance_eval`. +module AppraisalConversion + module_function + + @gemfile_dir = 'gemfiles' + @definition_dir = 'appraisal' + + def to_bundle_gemfile(group) + gemfile = "#{runtime_identifier}_#{group}.gemfile".tr('-', '_') + path = root_path.join(gemfile_dir, gemfile) + + if path.exist? + path.to_s + else + raise "Gemfile not found at #{path}" + end + end + + def definition + path = root_path.join(@definition_dir, "#{runtime_identifier}.rb") + + if path.exist? + path.to_s + else + raise "Definition not found at #{path}" + end + end + + def runtime_identifier + major, minor, = Gem::Version.new(RUBY_ENGINE_VERSION).segments + "#{RUBY_ENGINE}-#{major}.#{minor}" + end + + def gemfile_pattern + root_path + gemfile_dir + "#{runtime_identifier.tr('-', '_')}_*.gemfile" + end + + def gemfile_dir + @gemfile_dir + end + + def root_path + Pathname.pwd + end +end diff --git a/tasks/dependency.rake b/tasks/dependency.rake new file mode 100644 index 00000000000..4af85eb1e9f --- /dev/null +++ b/tasks/dependency.rake @@ -0,0 +1,49 @@ +require 'open3' + +require_relative 'appraisal_conversion' + +task :dep => :dependency +task :dependency => %w[dependency:lock] +namespace :dependency do + # rubocop:disable Style/MultilineBlockChain + Dir.glob(AppraisalConversion.gemfile_pattern).each do |gemfile| + # desc "Lock the dependencies for #{gemfile}" + task gemfile do + Bundler.with_unbundled_env do + command = +'bundle lock' + command << ' --add-platform x86_64-linux aarch64-linux' unless RUBY_PLATFORM == 'java' + output, = Open3.capture2e({ 'BUNDLE_GEMFILE' => gemfile.to_s }, command) + + puts output + end + end + end.tap do |gemfiles| + desc "Lock the dependencies for #{AppraisalConversion.runtime_identifier}" + # WHY can't we use `multitask :lock => gemfiles` here? + # + # Running bundler in parallel has various race conditions + # + # Race condition with the file system, particularly worse with JRuby. + # For instance, `Errno::ENOENT: No such file or directory - bundle` is raised with JRuby 9.2 + + # Even with CRuby, `simplcov` declaration with `github` in Gemfile causes + # race condition for the local gem cache with the following error: + + # ``` + # [/usr/local/bundle/bundler/gems/simplecov-3bb6b7ee58bf/simplecov.gemspec] isn't a Gem::Specification (NilClass instead). + # ``` + + # and + + # ``` + # fatal: Unable to create '/usr/local/bundle/bundler/gems/simplecov-3bb6b7ee58bf/.git/index.lock': File exists. + # Another git process seems to be running in this repository, e.g. + # an editor opened by 'git commit'. Please make sure all processes + # are terminated then try again. If it still fails, a git process + # may have crashed in this repository earlier: + # remove the file manually to continue. + # ``` + task :lock => gemfiles + end + # rubocop:enable Style/MultilineBlockChain +end diff --git a/tasks/edge.rake b/tasks/edge.rake index aee5e675150..5ee9766ccff 100644 --- a/tasks/edge.rake +++ b/tasks/edge.rake @@ -1,47 +1,6 @@ -# frozen_string_literal: true - require 'open3' -require 'pathname' - -# This module translates our custom mapping between appraisal and bundler. -# -# It cannot be included into `Appraisal` file, because it was invoked via `instance_eval`. -module AppraisalConversion - module_function - - @gemfile_dir = 'gemfiles' - @definition_dir = 'appraisal' - - def to_bundle_gemfile(group) - gemfile = "#{runtime_identifier}_#{group}.gemfile".tr('-', '_') - path = root_path.join(@gemfile_dir, gemfile) - - if path.exist? - path.to_s - else - raise "Gemfile not found at #{path}" - end - end - - def definition - path = root_path.join(@definition_dir, "#{runtime_identifier}.rb") - if path.exist? - path.to_s - else - raise "Definition not found at #{path}" - end - end - - def runtime_identifier - major, minor, = Gem::Version.new(RUBY_ENGINE_VERSION).segments - "#{RUBY_ENGINE}-#{major}.#{minor}" - end - - def root_path - Pathname.pwd - end -end +require_relative 'appraisal_conversion' # rubocop:disable Metrics/BlockLength namespace :edge do From 3b54135a1da4a60463e13be3d9e9c3fbf37d5ac5 Mon Sep 17 00:00:00 2001 From: Ivo Anjo Date: Thu, 19 Sep 2024 05:56:50 +0100 Subject: [PATCH 37/44] [NO-TICKET] Tweak duration of profiler_sample_serialize benchmark **What does this PR do?** This PR tweaks the default duration of the `benchmarks/profiler_sample_serialize.rb` benchmark. This duration gets used when we run benchmarks on every PR. **Motivation:** We've been seeing quite a bit of variance in the benchmarks from run-to-run which makes it seem like there are regressions/improvements even when nothing of consequence is touched (e.g. PR that changes docs even). This got better when we adjusted the thresholds used by the benchmarking platform, but I'm still seeing this benchmark in particular show up quite often in a "flaky" way. I suspect this behavior may be because each step on this benchmark takes more than one second (since it simulates 60 seconds of profiling data) and thus the low number of iterations creates more noise. I'm hoping that by raising the duration of this benchmark to 1 minute we'll see the run-to-run variation go down. **Additional Notes:** N/A **How to test the change?** Validate benchmark is running for 1 minute in CI. --- benchmarks/profiler_sample_serialize.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/profiler_sample_serialize.rb b/benchmarks/profiler_sample_serialize.rb index 1b02f1de623..08b67c410a4 100644 --- a/benchmarks/profiler_sample_serialize.rb +++ b/benchmarks/profiler_sample_serialize.rb @@ -34,7 +34,7 @@ def create_profiler def run_benchmark Benchmark.ips do |x| - benchmark_time = VALIDATE_BENCHMARK_MODE ? { time: 0.01, warmup: 0 } : { time: 10, warmup: 2 } + benchmark_time = VALIDATE_BENCHMARK_MODE ? { time: 0.01, warmup: 0 } : { time: 60, warmup: 2 } x.config( **benchmark_time, ) From bd2b1ce734f4086ddf214fc986dedf42ffc48f41 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 18 Sep 2024 23:56:45 +0200 Subject: [PATCH 38/44] On branch update --- .github/dependency_filters.yml | 9 +++ .github/workflows/lock-dependency.yml | 71 +++++++++++++++++------ .github/workflows/update-gemfiles.yml | 83 +++++++++++++++++++++++++++ 3 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 .github/dependency_filters.yml create mode 100644 .github/workflows/update-gemfiles.yml diff --git a/.github/dependency_filters.yml b/.github/dependency_filters.yml new file mode 100644 index 00000000000..b3c3aa1b287 --- /dev/null +++ b/.github/dependency_filters.yml @@ -0,0 +1,9 @@ +dependencies: + - Gemfile + - Appraisals + - datadog.gemspec + - tasks/appraisal.rake + - .github/workflows/lock-dependency.yml + - lib/datadog/version.rb + - appraisal/** + - gemfiles/** diff --git a/.github/workflows/lock-dependency.yml b/.github/workflows/lock-dependency.yml index 1b977e1f241..b226b135bc2 100644 --- a/.github/workflows/lock-dependency.yml +++ b/.github/workflows/lock-dependency.yml @@ -1,26 +1,65 @@ name: Lock Dependency +# TODO: Make this job mandatory +# TODO: Make this on workflow_dispatch + on: - workflow_dispatch: - inputs: - branch: - description: 'Branch to be lock dependency' - required: true - # Testing purpose, to be removed before merge. + # Limitation about `paths` types: + # > https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#git-diff-comparisons push: - branches: - - tonycthsu/automate-update-gemfiles + branches-ignore: + - master + - release + - '*-stable' + pull_request: + # Run this job when a PR is opened, covering the scenario where branch is ready and pushed before PR is opened. + types: + - opened + -# Ensure obsolete job is cancelled if another commit is pushed to the same branch. +# TODO: Improve concurrency between push event and pull_request event concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - # TODO: In order to fully automate this workflow for each PR, - # have a reliable way to precheck job to understand whether it need to be updated + pr: + name: Pull Request attached + runs-on: ubuntu-latest + outputs: + pr_found: ${{ steps.pr.outputs.pr_found }} + pr_base_ref: ${{ steps.pr.outputs.pr.base.ref }} + steps: + # Limitation with pull_request trigger: https://github.com/8BitJonny/gh-get-current-pr/tree/3.0.0/?tab=readme-ov-file#limitations + - uses: 8BitJonny/gh-get-current-pr@3.0.0 + id: pr + with: + filterOutClosed: true # Don't trigger on commits with closed PRs, including merges into `master`. + + dependency: + name: Depenedency changes + needs: pr + if: ${{ needs.pr.outputs.pr_found == 'true' }} + runs-on: ubuntu-latest + outputs: + changes: ${{ steps.changes.outputs.dependencies }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: changes + with: + # This is the best effort to get the diff comparison. + # The result remains time-sensitive since the `base` is constantly changing and + # the PR cannot be guaranteed to be up-to-date. + # + # Unless enable `Require branches to be up to date before merging` in the repository rule settings + base: ${{ needs.pr.outputs.pr_base_ref }} + filters: .github/dependency_filters.yml + lock: runs-on: ubuntu-latest + needs: dependency + if: ${{ needs.dependency.outputs.changes == 'true' }} strategy: fail-fast: false matrix: @@ -54,39 +93,35 @@ jobs: BUNDLE_WITHOUT: check steps: - uses: actions/checkout@v4 - - run: ls -al - run: | ruby -v gem -v bundler -v - - run: bundle install # TODO: Migrate away from `appraisal` - run: bundle exec appraisal generate - run: bundle exec rake dependency:lock - - uses: actions/upload-artifact@v4 with: name: lock-dependency-${{ github.run_id }}-${{ matrix.engine.name }}-${{ matrix.engine.version }} path: gemfiles/${{ matrix.engine.name }}_${{ matrix.engine.version }}* + # TODO: Change token to trigger workflow automation + # > New commit by GITHUB_TOKEN does not trigger workflow automation to prevent infinite loop commit: + name: Commit changes needs: lock runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 with: path: gemfiles pattern: lock-dependency-${{ github.run_id }}-* merge-multiple: true - - - run: git diff --color - - uses: stefanzweifel/git-auto-commit-action@v5 with: file_pattern: 'gemfiles/*' diff --git a/.github/workflows/update-gemfiles.yml b/.github/workflows/update-gemfiles.yml new file mode 100644 index 00000000000..078a15ccd3d --- /dev/null +++ b/.github/workflows/update-gemfiles.yml @@ -0,0 +1,83 @@ +name: Update Gemfiles + +# This action cannot be skipped altogether because it is a mandatory status check. +# Instead we conditionally skip it at job level, instead of workflow level. +on: + # Execute on `push` and not `pull_request` because `pull_request` + # always compares if the `paths` have changed compared to the PR base. + # This is an issue because it means that all commits to the branch + # will trigger the gemfile update process, which is unnecessary and expensive. + # + # By executing on `push`, GitHub compares `paths` with the parent commit, + # meaning the gemfile update process will only execute on the exact commit + # that changes any of the `paths`. + # + # Because this process is slow and expensive, and we commit the gemfile changes back + # to the branch, we have an additional filter to only execute this action on branches + # attached to a PR. + # + # We could do the inverse: execute this action on `pull_request`, and additionally check + # if `paths` was changed compared to the parent commit, but this proved more complicated. + push + +# Ensure obsolete job is cancelled if another commit is pushed to the same branch. +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + check: + name: Update Gemfiles + runs-on: ubuntu-22.04 + permissions: + contents: write + pull-requests: write + steps: + # Only execute if there's a PR attached to this branch. + # Because we execute on `push`, we have to double check here if this is part of a PR. + - name: Check if this branch is attached to a Pull Request + uses: 8bitjonny/gh-get-current-pr@2215326c76d51bfa3f2af0a470f32677f6c0cae9 # v2.2.0 + id: pr + with: + filterOutClosed: true # Don't trigger on commits with closed PRs, including merges into `master`. + - if: steps.pr.outputs.pr_found == 'true' + uses: actions/checkout@v4 + # And also, only execute if files that can affect gemfiles are modified. + - if: steps.pr.outputs.pr_found == 'true' + uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 + id: filter + with: + base: ${{ github.ref_name }} + filters: | + gemfile: + # Files that declare the dependency tree + - Gemfile + - Appraisals + - datadog.gemspec + # Files that control gemfile generation + - tasks/appraisal.rake + - .github/workflows/update-gemfiles.yml + # The gem version is present in all lock files + - lib/datadog/version.rb + # In case the generated files were updated manually or in a merge commit + - appraisal/** + - gemfiles/** + - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.2' + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' + name: Ensure gemfiles/*.gemfile.lock match gem definition + run: bundle exec rake appraisal:lock + - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' + name: Add all supported platforms to gemfiles/*.gemfile.lock + run: bundle exec rake appraisal:platform + - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' + name: Remove obsolete gemfiles/* + run: bundle exec rake appraisal:clean + - if: steps.pr.outputs.pr_found == 'true' && steps.filter.outputs.gemfile == 'true' + name: Commit gemfiles changes, if any, back to the branch + uses: stefanzweifel/git-auto-commit-action@3ea6ae190baf489ba007f7c92608f33ce20ef04a # v4.16.0 + with: + commit_message: Update gemfiles/* From 1b98fdd1278239773979361c99e69664251ca606 Mon Sep 17 00:00:00 2001 From: TonyCTHsu Date: Thu, 19 Sep 2024 09:09:36 +0000 Subject: [PATCH 39/44] =?UTF-8?q?[=F0=9F=A4=96]=20Lock=20Dependency:=20htt?= =?UTF-8?q?ps://github.com/DataDog/dd-trace-rb/actions/runs/10937852122?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gemfiles/jruby_9.2_stripe_min.gemfile | 40 +++++ gemfiles/jruby_9.2_stripe_min.gemfile.lock | 136 ++++++++++++++ gemfiles/jruby_9.3_stripe_min.gemfile | 44 +++++ gemfiles/jruby_9.3_stripe_min.gemfile.lock | 173 ++++++++++++++++++ gemfiles/jruby_9.4_stripe_min.gemfile | 45 +++++ gemfiles/jruby_9.4_stripe_min.gemfile.lock | 175 ++++++++++++++++++ gemfiles/ruby_2.5_stripe_min.gemfile | 43 +++++ gemfiles/ruby_2.5_stripe_min.gemfile.lock | 147 ++++++++++++++++ gemfiles/ruby_2.6_stripe_min.gemfile | 47 +++++ gemfiles/ruby_2.6_stripe_min.gemfile.lock | 186 ++++++++++++++++++++ gemfiles/ruby_2.7_stripe_min.gemfile | 47 +++++ gemfiles/ruby_2.7_stripe_min.gemfile.lock | 186 ++++++++++++++++++++ gemfiles/ruby_3.0_stripe_min.gemfile | 48 +++++ gemfiles/ruby_3.0_stripe_min.gemfile.lock | 188 ++++++++++++++++++++ gemfiles/ruby_3.1_stripe_min.gemfile | 48 +++++ gemfiles/ruby_3.1_stripe_min.gemfile.lock | 188 ++++++++++++++++++++ gemfiles/ruby_3.2_stripe_min.gemfile | 47 +++++ gemfiles/ruby_3.2_stripe_min.gemfile.lock | 183 +++++++++++++++++++ gemfiles/ruby_3.3_stripe_min.gemfile | 47 +++++ gemfiles/ruby_3.3_stripe_min.gemfile.lock | 183 +++++++++++++++++++ gemfiles/ruby_3.4_stripe_min.gemfile | 47 +++++ gemfiles/ruby_3.4_stripe_min.gemfile.lock | 195 +++++++++++++++++++++ 22 files changed, 2443 insertions(+) create mode 100644 gemfiles/jruby_9.2_stripe_min.gemfile create mode 100644 gemfiles/jruby_9.2_stripe_min.gemfile.lock create mode 100644 gemfiles/jruby_9.3_stripe_min.gemfile create mode 100644 gemfiles/jruby_9.3_stripe_min.gemfile.lock create mode 100644 gemfiles/jruby_9.4_stripe_min.gemfile create mode 100644 gemfiles/jruby_9.4_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_2.5_stripe_min.gemfile create mode 100644 gemfiles/ruby_2.5_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_2.6_stripe_min.gemfile create mode 100644 gemfiles/ruby_2.6_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_2.7_stripe_min.gemfile create mode 100644 gemfiles/ruby_2.7_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_3.0_stripe_min.gemfile create mode 100644 gemfiles/ruby_3.0_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_3.1_stripe_min.gemfile create mode 100644 gemfiles/ruby_3.1_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_3.2_stripe_min.gemfile create mode 100644 gemfiles/ruby_3.2_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_3.3_stripe_min.gemfile create mode 100644 gemfiles/ruby_3.3_stripe_min.gemfile.lock create mode 100644 gemfiles/ruby_3.4_stripe_min.gemfile create mode 100644 gemfiles/ruby_3.4_stripe_min.gemfile.lock diff --git a/gemfiles/jruby_9.2_stripe_min.gemfile b/gemfiles/jruby_9.2_stripe_min.gemfile new file mode 100644 index 00000000000..4186657ff5b --- /dev/null +++ b/gemfiles/jruby_9.2_stripe_min.gemfile @@ -0,0 +1,40 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-debugger-jruby" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.2_stripe_min.gemfile.lock b/gemfiles/jruby_9.2_stripe_min.gemfile.lock new file mode 100644 index 00000000000..b2f9c525ce8 --- /dev/null +++ b/gemfiles/jruby_9.2_stripe_min.gemfile.lock @@ -0,0 +1,136 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8-java) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + ffi (1.16.3-java) + hashdiff (1.1.1) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0) + libddwaf (1.14.0.0.0-java) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2-java) + os (1.1.4) + pimpmychangelog (0.1.3) + pry (0.14.2-java) + coderay (~> 1.1) + method_source (~> 1.0) + spoon (~> 0.0) + pry-debugger-jruby (2.1.1-java) + pry (>= 0.13, < 0.15) + ruby-debug-base (>= 0.10.4, < 0.12) + public_suffix (4.0.7) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + ruby-debug-base (0.11.0-java) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + spoon (0.0.6) + ffi + stripe (5.15.0) + thor (1.2.2) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + universal-java-1.8 + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + ffi (~> 1.16.3) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-debugger-jruby + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/jruby_9.3_stripe_min.gemfile b/gemfiles/jruby_9.3_stripe_min.gemfile new file mode 100644 index 00000000000..b9d758f7833 --- /dev/null +++ b/gemfiles/jruby_9.3_stripe_min.gemfile @@ -0,0 +1,44 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-debugger-jruby" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.3_stripe_min.gemfile.lock b/gemfiles/jruby_9.3_stripe_min.gemfile.lock new file mode 100644 index 00000000000..0c363830263 --- /dev/null +++ b/gemfiles/jruby_9.3_stripe_min.gemfile.lock @@ -0,0 +1,173 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8-java) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + ffi (1.16.3-java) + hashdiff (1.1.1) + json (2.7.2-java) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0) + libddwaf (1.14.0.0.0-java) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2-java) + os (1.1.4) + parallel (1.24.0) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2-java) + coderay (~> 1.1) + method_source (~> 1.0) + spoon (~> 0.0) + pry-debugger-jruby (2.1.1-java) + pry (>= 0.13, < 0.15) + ruby-debug-base (>= 0.10.4, < 0.12) + public_suffix (5.1.1) + racc (1.8.1-java) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.18.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.17.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-debug-base (0.11.0-java) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + spoon (0.0.6) + ffi + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + universal-java-11 + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + ffi (~> 1.16.3) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-debugger-jruby + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/jruby_9.4_stripe_min.gemfile b/gemfiles/jruby_9.4_stripe_min.gemfile new file mode 100644 index 00000000000..cfc1a46b497 --- /dev/null +++ b/gemfiles/jruby_9.4_stripe_min.gemfile @@ -0,0 +1,45 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-debugger-jruby" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.4_stripe_min.gemfile.lock b/gemfiles/jruby_9.4_stripe_min.gemfile.lock new file mode 100644 index 00000000000..15cba605b48 --- /dev/null +++ b/gemfiles/jruby_9.4_stripe_min.gemfile.lock @@ -0,0 +1,175 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8-java) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + ffi (1.16.3-java) + hashdiff (1.1.1) + json (2.7.2-java) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0) + libddwaf (1.14.0.0.0-java) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2-java) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2-java) + coderay (~> 1.1) + method_source (~> 1.0) + spoon (~> 0.0) + pry-debugger-jruby (2.1.1-java) + pry (>= 0.13, < 0.15) + ruby-debug-base (>= 0.10.4, < 0.12) + public_suffix (6.0.1) + racc (1.8.1-java) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-debug-base (0.11.0-java) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + spoon (0.0.6) + ffi + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + +PLATFORMS + universal-java-11 + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + ffi (~> 1.16.3) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-debugger-jruby + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_2.5_stripe_min.gemfile b/gemfiles/ruby_2.5_stripe_min.gemfile new file mode 100644 index 00000000000..ee85c7b28f5 --- /dev/null +++ b/gemfiles/ruby_2.5_stripe_min.gemfile @@ -0,0 +1,43 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-nav" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1", "< 3.19.2"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.5_stripe_min.gemfile.lock b/gemfiles/ruby_2.5_stripe_min.gemfile.lock new file mode 100644 index 00000000000..b752d9f8688 --- /dev/null +++ b/gemfiles/ruby_2.5_stripe_min.gemfile.lock @@ -0,0 +1,147 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (0.8.0) + debug_inspector (>= 0.0.1) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.19.1) + google-protobuf (3.19.1-x86_64-linux) + hashdiff (1.1.1) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-nav (1.0.0) + pry (>= 0.9.10, < 0.15) + pry-stack_explorer (0.4.13) + binding_of_caller (~> 0.7) + pry (~> 0.13) + public_suffix (4.0.7) + rake (13.2.1) + rake-compiler (1.2.7) + rake + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.2.2) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, < 3.19.2, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-nav + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_2.6_stripe_min.gemfile b/gemfiles/ruby_2.6_stripe_min.gemfile new file mode 100644 index 00000000000..d6308d3fbc6 --- /dev/null +++ b/gemfiles/ruby_2.6_stripe_min.gemfile @@ -0,0 +1,47 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1", "< 3.19.2"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.6_stripe_min.gemfile.lock b/gemfiles/ruby_2.6_stripe_min.gemfile.lock new file mode 100644 index 00000000000..f0f84de0d5c --- /dev/null +++ b/gemfiles/ruby_2.6_stripe_min.gemfile.lock @@ -0,0 +1,186 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.19.1) + google-protobuf (3.19.1-x86_64-linux) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + parallel (1.24.0) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.8.0) + byebug (~> 11.0) + pry (~> 0.10) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (5.1.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.18.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.17.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, < 3.19.2, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_2.7_stripe_min.gemfile b/gemfiles/ruby_2.7_stripe_min.gemfile new file mode 100644 index 00000000000..dfc03a39795 --- /dev/null +++ b/gemfiles/ruby_2.7_stripe_min.gemfile @@ -0,0 +1,47 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.7_stripe_min.gemfile.lock b/gemfiles/ruby_2.7_stripe_min.gemfile.lock new file mode 100644 index 00000000000..0875469be3b --- /dev/null +++ b/gemfiles/ruby_2.7_stripe_min.gemfile.lock @@ -0,0 +1,186 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.25.5-aarch64-linux) + google-protobuf (3.25.5-x86_64-linux) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (5.1.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.0_stripe_min.gemfile b/gemfiles/ruby_3.0_stripe_min.gemfile new file mode 100644 index 00000000000..582cd38479b --- /dev/null +++ b/gemfiles/ruby_3.0_stripe_min.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.0_stripe_min.gemfile.lock b/gemfiles/ruby_3.0_stripe_min.gemfile.lock new file mode 100644 index 00000000000..b2ace19edf5 --- /dev/null +++ b/gemfiles/ruby_3.0_stripe_min.gemfile.lock @@ -0,0 +1,188 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.25.5-aarch64-linux) + google-protobuf (3.25.5-x86_64-linux) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.1_stripe_min.gemfile b/gemfiles/ruby_3.1_stripe_min.gemfile new file mode 100644 index 00000000000..582cd38479b --- /dev/null +++ b/gemfiles/ruby_3.1_stripe_min.gemfile @@ -0,0 +1,48 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-byebug" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.1_stripe_min.gemfile.lock b/gemfiles/ruby_3.1_stripe_min.gemfile.lock new file mode 100644 index 00000000000..b2ace19edf5 --- /dev/null +++ b/gemfiles/ruby_3.1_stripe_min.gemfile.lock @@ -0,0 +1,188 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + byebug (11.1.3) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.25.5-aarch64-linux) + google-protobuf (3.25.5-x86_64-linux) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-byebug + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.2_stripe_min.gemfile b/gemfiles/ruby_3.2_stripe_min.gemfile new file mode 100644 index 00000000000..7bfa9ebd6c0 --- /dev/null +++ b/gemfiles/ruby_3.2_stripe_min.gemfile @@ -0,0 +1,47 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.2_stripe_min.gemfile.lock b/gemfiles/ruby_3.2_stripe_min.gemfile.lock new file mode 100644 index 00000000000..1094a376640 --- /dev/null +++ b/gemfiles/ruby_3.2_stripe_min.gemfile.lock @@ -0,0 +1,183 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.25.5-aarch64-linux) + google-protobuf (3.25.5-x86_64-linux) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.3_stripe_min.gemfile b/gemfiles/ruby_3.3_stripe_min.gemfile new file mode 100644 index 00000000000..7bfa9ebd6c0 --- /dev/null +++ b/gemfiles/ruby_3.3_stripe_min.gemfile @@ -0,0 +1,47 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", ">= 1.7.0" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.3_stripe_min.gemfile.lock b/gemfiles/ruby_3.3_stripe_min.gemfile.lock new file mode 100644 index 00000000000..1094a376640 --- /dev/null +++ b/gemfiles/ruby_3.3_stripe_min.gemfile.lock @@ -0,0 +1,183 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.25.5-aarch64-linux) + google-protobuf (3.25.5-x86_64-linux) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + msgpack (1.7.2) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick (>= 1.7.0) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.4_stripe_min.gemfile b/gemfiles/ruby_3.4_stripe_min.gemfile new file mode 100644 index 00000000000..b7991e779e6 --- /dev/null +++ b/gemfiles/ruby_3.4_stripe_min.gemfile @@ -0,0 +1,47 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", "~> 2.4.0" +gem "benchmark-ips", "~> 2.8" +gem "benchmark-memory", "< 0.2" +gem "builder" +gem "climate_control", "~> 0.2.0" +gem "concurrent-ruby" +gem "extlz4", "~> 0.3", ">= 0.3.3" +gem "json-schema", "< 3" +gem "memory_profiler", "~> 0.9" +gem "os", "~> 1.1" +gem "pimpmychangelog", ">= 0.1.2" +gem "pry" +gem "pry-stack_explorer" +gem "rake", ">= 10.5" +gem "rake-compiler", "~> 1.1", ">= 1.1.1" +gem "rspec", "~> 3.12" +gem "rspec-collection_matchers", "~> 1.1" +gem "rspec-wait", "~> 0" +gem "rspec_junit_formatter", ">= 0.5.1" +gem "simplecov", git: "https://github.com/DataDog/simplecov", ref: "3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db" +gem "simplecov-cobertura", "~> 2.1.0" +gem "warning", "~> 1" +gem "webmock", ">= 3.10.0" +gem "rexml", ">= 3.2.7" +gem "webrick", git: "https://github.com/ruby/webrick.git", ref: "0c600e169bd4ae267cb5eeb6197277c848323bbe" +gem "rubocop", "~> 1.50.0", require: false +gem "rubocop-packaging", "~> 0.5.2", require: false +gem "rubocop-performance", "~> 1.9", require: false +gem "rubocop-rspec", ["~> 2.20", "< 2.21"], require: false +gem "dogstatsd-ruby", ">= 3.3.0", "!= 5.0.0", "!= 5.0.1", "!= 5.1.0" +gem "google-protobuf", ["~> 3.0", "!= 3.7.0", "!= 3.7.1"] +gem "ffi", "~> 1.16.3", require: false +gem "stripe", "= 5.15.0" + +group :check do + gem "ruby_memcheck", ">= 3" +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.4_stripe_min.gemfile.lock b/gemfiles/ruby_3.4_stripe_min.gemfile.lock new file mode 100644 index 00000000000..7a420afc101 --- /dev/null +++ b/gemfiles/ruby_3.4_stripe_min.gemfile.lock @@ -0,0 +1,195 @@ +GIT + remote: https://github.com/DataDog/simplecov + revision: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + ref: 3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db + specs: + simplecov (0.21.2) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + +GIT + remote: https://github.com/ruby/webrick.git + revision: 0c600e169bd4ae267cb5eeb6197277c848323bbe + ref: 0c600e169bd4ae267cb5eeb6197277c848323bbe + specs: + webrick (1.8.1) + +PATH + remote: .. + specs: + datadog (2.3.0) + debase-ruby_core_source (= 3.3.1) + libdatadog (~> 12.0.0.1.0) + libddwaf (~> 1.14.0.0.0) + msgpack + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + appraisal (2.4.1) + bundler + rake + thor (>= 0.14.0) + ast (2.4.2) + benchmark-ips (2.14.0) + benchmark-memory (0.1.2) + memory_profiler (~> 0.9) + bigdecimal (3.1.8) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + builder (3.3.0) + climate_control (0.2.0) + coderay (1.1.3) + concurrent-ruby (1.3.4) + crack (1.0.0) + bigdecimal + rexml + debase-ruby_core_source (3.3.1) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dogstatsd-ruby (5.6.1) + extlz4 (0.3.4) + ffi (1.16.3) + google-protobuf (3.25.5) + hashdiff (1.1.1) + json (2.7.2) + json-schema (2.8.1) + addressable (>= 2.4) + libdatadog (12.0.0.1.0-aarch64-linux) + libdatadog (12.0.0.1.0-x86_64-linux) + libddwaf (1.14.0.0.0-aarch64-linux) + ffi (~> 1.0) + libddwaf (1.14.0.0.0-x86_64-linux) + ffi (~> 1.0) + memory_profiler (0.9.14) + method_source (1.1.0) + mini_portile2 (2.8.7) + msgpack (1.7.2) + nokogiri (1.16.7) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + os (1.1.4) + parallel (1.26.3) + parser (3.3.5.0) + ast (~> 2.4.1) + racc + pimpmychangelog (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-stack_explorer (0.6.1) + binding_of_caller (~> 1.0) + pry (~> 0.13) + public_suffix (6.0.1) + racc (1.8.1) + rainbow (3.1.1) + rake (13.2.1) + rake-compiler (1.2.7) + rake + regexp_parser (2.9.2) + rexml (3.3.7) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-collection_matchers (1.2.1) + rspec-expectations (>= 2.99.0.beta1) + rspec-core (3.13.1) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.1) + rspec-wait (0.0.10) + rspec (>= 3.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (1.50.2) + json (~> 2.3) + parallel (~> 1.10) + parser (>= 3.2.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.32.3) + parser (>= 3.3.1.0) + rubocop-capybara (2.21.0) + rubocop (~> 1.41) + rubocop-packaging (0.5.2) + rubocop (>= 1.33, < 2.0) + rubocop-performance (1.22.1) + rubocop (>= 1.48.1, < 2.0) + rubocop-ast (>= 1.31.1, < 2.0) + rubocop-rspec (2.20.0) + rubocop (~> 1.33) + rubocop-capybara (~> 2.17) + ruby-progressbar (1.13.0) + ruby_memcheck (3.0.0) + nokogiri + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + stripe (5.15.0) + thor (1.3.2) + unicode-display_width (2.6.0) + warning (1.4.0) + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + appraisal (~> 2.4.0) + benchmark-ips (~> 2.8) + benchmark-memory (< 0.2) + builder + climate_control (~> 0.2.0) + concurrent-ruby + datadog! + dogstatsd-ruby (>= 3.3.0, != 5.1.0, != 5.0.1, != 5.0.0) + extlz4 (~> 0.3, >= 0.3.3) + ffi (~> 1.16.3) + google-protobuf (~> 3.0, != 3.7.1, != 3.7.0) + json-schema (< 3) + memory_profiler (~> 0.9) + os (~> 1.1) + pimpmychangelog (>= 0.1.2) + pry + pry-stack_explorer + rake (>= 10.5) + rake-compiler (~> 1.1, >= 1.1.1) + rexml (>= 3.2.7) + rspec (~> 3.12) + rspec-collection_matchers (~> 1.1) + rspec-wait (~> 0) + rspec_junit_formatter (>= 0.5.1) + rubocop (~> 1.50.0) + rubocop-packaging (~> 0.5.2) + rubocop-performance (~> 1.9) + rubocop-rspec (~> 2.20, < 2.21) + ruby_memcheck (>= 3) + simplecov! + simplecov-cobertura (~> 2.1.0) + stripe (= 5.15.0) + warning (~> 1) + webmock (>= 3.10.0) + webrick! + +BUNDLED WITH + 2.3.26 From 34416f3e06f4ffbf4006c792315a63c4bd7d3a87 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Thu, 19 Sep 2024 11:02:35 +0200 Subject: [PATCH 40/44] Add `stripe-min` to matrix --- Matrixfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Matrixfile b/Matrixfile index b76c14e12be..bc1668c95e5 100644 --- a/Matrixfile +++ b/Matrixfile @@ -173,6 +173,8 @@ 'stripe-9' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', 'stripe-8' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', 'stripe-7' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + # TODO: Add stripe-5 and stripe-6 + 'stripe-min' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', # 5.15.0 }, 'sucker_punch' => { 'contrib' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby' From 93438f43cf2d4c5e49a3fd176224e57eb564d72b Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Thu, 19 Sep 2024 11:36:47 +0200 Subject: [PATCH 41/44] Fix missing `request_id` on `event` --- lib/datadog/tracing/contrib/stripe/request.rb | 5 +++-- spec/datadog/tracing/contrib/stripe/request_spec.rb | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/datadog/tracing/contrib/stripe/request.rb b/lib/datadog/tracing/contrib/stripe/request.rb index a05a52cd4c2..ac295b3af4c 100644 --- a/lib/datadog/tracing/contrib/stripe/request.rb +++ b/lib/datadog/tracing/contrib/stripe/request.rb @@ -47,8 +47,9 @@ def tag_span(span, event) # Measure service stats Contrib::Analytics.set_measured(span) - - span.set_tag(Ext::TAG_REQUEST_ID, event.request_id) + # `5.38.0` Add request_id to RequestEndEvent + # https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md#5380---2021-08-10 + span.set_tag(Ext::TAG_REQUEST_ID, event.request_id) if event.respond_to?(:request_id) span.set_tag(Ext::TAG_REQUEST_HTTP_STATUS, event.http_status.to_s) span.set_tag(Ext::TAG_REQUEST_METHOD, event.method) span.set_tag(Ext::TAG_REQUEST_PATH, event.path) diff --git a/spec/datadog/tracing/contrib/stripe/request_spec.rb b/spec/datadog/tracing/contrib/stripe/request_spec.rb index 5159d07bde3..2a8f522c1ea 100644 --- a/spec/datadog/tracing/contrib/stripe/request_spec.rb +++ b/spec/datadog/tracing/contrib/stripe/request_spec.rb @@ -41,7 +41,9 @@ expect(spans).to have(1).items expect(span.name).to eq('stripe.request') expect(span.resource).to eq('stripe.request') - expect(span.get_tag('stripe.request.id')).to eq('abc-123-def-456') + if Gem::Version.new(Stripe::VERSION) >= Gem::Version.new('5.38.0') + expect(span.get_tag('stripe.request.id')).to eq('abc-123-def-456') + end expect(span.get_tag('stripe.request.http_status')).to eq('200') expect(span.get_tag('stripe.request.method')).to eq('get') expect(span.get_tag('stripe.request.path')).to eq('/v1/customers/cus_123') @@ -69,7 +71,9 @@ def object_name expect(spans).to have(1).items expect(span.name).to eq('stripe.request') expect(span.resource).to eq('stripe.customer') - expect(span.get_tag('stripe.request.id')).to eq('abc-123-def-456') + if Gem::Version.new(Stripe::VERSION) >= Gem::Version.new('5.38.0') + expect(span.get_tag('stripe.request.id')).to eq('abc-123-def-456') + end expect(span.get_tag('stripe.request.http_status')).to eq('200') expect(span.get_tag('stripe.request.method')).to eq('get') expect(span.get_tag('stripe.request.path')).to eq('/v1/customers/cus_123') From 7d5aa55628edd11f499283f6c3c6fb9921209913 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Thu, 19 Sep 2024 12:13:05 +0200 Subject: [PATCH 42/44] Update action version for Node 20 --- .github/workflows/add-milestone-to-pull-requests.yml | 2 +- .github/workflows/build-gem.yml | 6 +++--- .github/workflows/pull-request-labeler.yml | 3 +-- .github/workflows/system-tests.yml | 2 +- .github/workflows/yard.yml | 6 +++--- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/add-milestone-to-pull-requests.yml b/.github/workflows/add-milestone-to-pull-requests.yml index b6c829c2a0e..50731476d0e 100644 --- a/.github/workflows/add-milestone-to-pull-requests.yml +++ b/.github/workflows/add-milestone-to-pull-requests.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout code # Checks out the branch that the pull request is merged into - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.base.ref }} diff --git a/.github/workflows/build-gem.yml b/.github/workflows/build-gem.yml index b82986029d7..5beb70f45d3 100644 --- a/.github/workflows/build-gem.yml +++ b/.github/workflows/build-gem.yml @@ -60,7 +60,7 @@ jobs: run: | find pkg - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: 'datadog-gem-${{ matrix.type }}-gha${{ github.run_id }}-g${{ github.sha }}' path: 'pkg/*.gem' @@ -77,7 +77,7 @@ jobs: - build steps: - name: Download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: 'datadog-gem-${{ matrix.type }}-gha${{ github.run_id }}-g${{ github.sha }}' path: 'pkg' @@ -103,7 +103,7 @@ jobs: if: ${{ inputs.push }} steps: - name: Download artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: 'datadog-gem-${{ matrix.type }}-gha${{ github.run_id }}-g${{ github.sha }}' path: 'pkg' diff --git a/.github/workflows/pull-request-labeler.yml b/.github/workflows/pull-request-labeler.yml index 869d0d63323..c4cf689fdec 100644 --- a/.github/workflows/pull-request-labeler.yml +++ b/.github/workflows/pull-request-labeler.yml @@ -9,8 +9,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: kachkaev/labeler@d89797c51d07680aec17049cc6790e9d323d9a93 # actions/labeler@v4 + https://github.com/actions/labeler/pull/316 + - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: .github/labeler.yml - dot: true # From https://github.com/actions/labeler/pull/316 \ No newline at end of file diff --git a/.github/workflows/system-tests.yml b/.github/workflows/system-tests.yml index 5a58e401e51..d04490e171a 100644 --- a/.github/workflows/system-tests.yml +++ b/.github/workflows/system-tests.yml @@ -376,7 +376,7 @@ jobs: - name: Log in to the Container registry run: | echo ${{ secrets.GITHUB_TOKEN }} | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin - - uses: actions/delete-package-versions@v4 + - uses: actions/delete-package-versions@v5 with: package-version-ids: 'gha${{ github.run_id }}-g${{ github.sha }}' package-name: 'system-tests/${{ matrix.image }}' diff --git a/.github/workflows/yard.yml b/.github/workflows/yard.yml index b17da55156e..3a303388763 100644 --- a/.github/workflows/yard.yml +++ b/.github/workflows/yard.yml @@ -38,12 +38,12 @@ jobs: - name: Generate YARD documentation run: bundle exec rake docs --rakefile=tasks/yard.rake - name: Setup Pages - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v5 - name: Upload artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v3 with: # Upload generated YARD directory path: 'doc/' - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v4 From e97a23c5dec75a3625ffb07cc14eb0f7459bade4 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev <156273877+p-datadog@users.noreply.github.com> Date: Thu, 19 Sep 2024 07:56:19 -0400 Subject: [PATCH 43/44] DEBUG-2334 add types for dynamic instrumentation settings (#3924) Co-authored-by: Oleg Pudeyev --- lib/datadog/di/redactor.rb | 7 ++-- sig/datadog/core/configuration/settings.rbs | 40 +++++++++++++++++++++ sig/datadog/di/redactor.rbs | 2 +- sig/datadog/di/serializer.rbs | 2 +- 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/lib/datadog/di/redactor.rb b/lib/datadog/di/redactor.rb index 0c3bdb52f66..1a3fc15c73e 100644 --- a/lib/datadog/di/redactor.rb +++ b/lib/datadog/di/redactor.rb @@ -72,10 +72,13 @@ def redacted_type_names_regexp if name.start_with?("::") # :: prefix is redundant, all names are expected to be # fully-qualified. - name = name[2...name.length] + # + # Defaulting to empty string is for steep. + name = name[2...name.length] || "" end if name.end_with?("*") - name = name[0..-2] + # Defaulting to empty string is for steep. + name = name[0..-2] || "" suffix = ".*" else suffix = "" diff --git a/sig/datadog/core/configuration/settings.rbs b/sig/datadog/core/configuration/settings.rbs index fe07d63c6db..48d9617ac7c 100644 --- a/sig/datadog/core/configuration/settings.rbs +++ b/sig/datadog/core/configuration/settings.rbs @@ -54,6 +54,44 @@ module Datadog def templates: () -> _TemplatesBlock end + interface _DI + def enabled: () -> bool + + def enabled=: (bool) -> void + + def untargeted_trace_points: () -> bool + + def untargeted_trace_points=: (bool) -> void + + def propagate_all_exceptions: () -> bool + + def propagate_all_exceptions=: (bool) -> void + + def redacted_identifiers: () -> Array[String] + + def redacted_identifiers=: (Array[String]) -> void + + def redacted_type_names: () -> Array[String] + + def redacted_type_names=: (Array[String]) -> void + + def max_capture_depth: () -> Integer + + def max_capture_depth=: (Integer) -> void + + def max_capture_collection_size: () -> Integer + + def max_capture_collection_size=: (Integer) -> void + + def max_capture_string_length: () -> Integer + + def max_capture_string_length=: (Integer) -> void + + def max_capture_attribute_count: () -> Integer + + def max_capture_attribute_count=: (Integer) -> void + end + interface _TemplatesBlock def html=: (::String) -> void @@ -84,6 +122,8 @@ module Datadog def appsec: (?untyped? options) -> Datadog::Core::Configuration::Settings::_AppSec + def dynamic_instrumentation: (?untyped? options) -> Datadog::Core::Configuration::Settings::_DI + def remote: (?untyped? options) -> Datadog::Core::Configuration::Settings::_Remote end end diff --git a/sig/datadog/di/redactor.rbs b/sig/datadog/di/redactor.rbs index b568e4d139f..5337bd3d0a2 100644 --- a/sig/datadog/di/redactor.rbs +++ b/sig/datadog/di/redactor.rbs @@ -9,7 +9,7 @@ module Datadog def initialize: (untyped settings) -> void - attr_reader settings: untyped + attr_reader settings: Datadog::Core::Configuration::Settings def redact_identifier?: (String name) -> (true | false) diff --git a/sig/datadog/di/serializer.rbs b/sig/datadog/di/serializer.rbs index e3060f5e959..54f075aa43a 100644 --- a/sig/datadog/di/serializer.rbs +++ b/sig/datadog/di/serializer.rbs @@ -7,7 +7,7 @@ module Datadog def initialize: (untyped settings, untyped redactor) -> void - attr_reader settings: untyped + attr_reader settings: Datadog::Core::Configuration::Settings attr_reader redactor: untyped def serialize_args: (untyped args, untyped kwargs) -> untyped From d2f09fd3ddab3d8d1ffd782688182b9c46432fe5 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev <156273877+p-datadog@users.noreply.github.com> Date: Thu, 19 Sep 2024 07:57:12 -0400 Subject: [PATCH 44/44] =?UTF-8?q?DEBUG-2334=20make=20serialize=5Fvalue=20o?= =?UTF-8?q?f=20Serializer=20public=20and=20add=20test=20cov=E2=80=A6=20(#3?= =?UTF-8?q?925)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For serializing method return values, we will need to call serialize_value from outside of Serializer and this call will not have a name provided. Make serialize_value public and add some tests for it (simple cases that were under serialize_vars previously + explicit redaction cases). Co-authored-by: Oleg Pudeyev --- lib/datadog/di/serializer.rb | 20 +++++++----- sig/datadog/di/serializer.rbs | 5 +-- spec/datadog/di/serializer_spec.rb | 51 +++++++++++++++++++++++++----- 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/lib/datadog/di/serializer.rb b/lib/datadog/di/serializer.rb index 8a6a0165c22..7958302dc86 100644 --- a/lib/datadog/di/serializer.rb +++ b/lib/datadog/di/serializer.rb @@ -60,21 +60,23 @@ def serialize_args(args, kwargs) # of executed code. def serialize_vars(vars) vars.each_with_object({}) do |(k, v), agg| - agg[k] = serialize_value(k, v) + agg[k] = serialize_value(v, name: k) end end - private - # Serializes a single named value. # - # The name is necessary to perform sensitive data redaction. + # The name is needed to perform sensitive data redaction. + # + # In some cases, the value being serialized does not have a name + # (for example, it is the return value of a method). + # In this case +name+ can be nil. # # Returns a data structure comprised of only values of basic types # (integers, strings, arrays, hashes). # # Respects string length, collection size and traversal depth limits. - def serialize_value(name, value, depth: settings.dynamic_instrumentation.max_capture_depth) + def serialize_value(value, name: nil, depth: settings.dynamic_instrumentation.max_capture_depth) if redactor.redact_type?(value) return {type: class_name(value.class), notCapturedReason: "redactedType"} end @@ -109,7 +111,7 @@ def serialize_value(name, value, depth: settings.dynamic_instrumentation.max_cap value = value[0...max] || [] end entries = value.map do |elt| - serialize_value(nil, elt, depth: depth - 1) + serialize_value(elt, depth: depth - 1) end serialized.update(elements: entries) end @@ -126,7 +128,7 @@ def serialize_value(name, value, depth: settings.dynamic_instrumentation.max_cap break end cur += 1 - entries << [serialize_value(nil, k, depth: depth - 1), serialize_value(k, v, depth: depth - 1)] + entries << [serialize_value(k, depth: depth - 1), serialize_value(v, name: k, depth: depth - 1)] end serialized.update(entries: entries) end @@ -166,7 +168,7 @@ def serialize_value(name, value, depth: settings.dynamic_instrumentation.max_cap break end cur += 1 - fields[ivar] = serialize_value(ivar, value.instance_variable_get(ivar), depth: depth - 1) + fields[ivar] = serialize_value(value.instance_variable_get(ivar), name: ivar, depth: depth - 1) end serialized.update(fields: fields) end @@ -174,6 +176,8 @@ def serialize_value(name, value, depth: settings.dynamic_instrumentation.max_cap serialized end + private + # Returns the name for the specified class object. # # Ruby can have nameless classes, e.g. Class.new is a class object diff --git a/sig/datadog/di/serializer.rbs b/sig/datadog/di/serializer.rbs index 54f075aa43a..aaaf674148e 100644 --- a/sig/datadog/di/serializer.rbs +++ b/sig/datadog/di/serializer.rbs @@ -9,12 +9,13 @@ module Datadog attr_reader settings: Datadog::Core::Configuration::Settings - attr_reader redactor: untyped + attr_reader redactor: Datadog::DI::Redactor + def serialize_args: (untyped args, untyped kwargs) -> untyped def serialize_vars: (untyped vars) -> untyped private - def serialize_value: (untyped name, untyped value, ?depth: untyped) -> ({ type: untyped, notCapturedReason: "redactedType" } | { type: untyped, notCapturedReason: "redactedIdent" } | untyped) + def serialize_value: (untyped value, ?name: String, ?depth: untyped) -> ({ type: untyped, notCapturedReason: "redactedType" } | { type: untyped, notCapturedReason: "redactedIdent" } | untyped) def class_name: (untyped cls) -> untyped end end diff --git a/spec/datadog/di/serializer_spec.rb b/spec/datadog/di/serializer_spec.rb index c32974c478c..a19d02b79e7 100644 --- a/spec/datadog/di/serializer_spec.rb +++ b/spec/datadog/di/serializer_spec.rb @@ -62,6 +62,49 @@ class DISerializerSpecTestClass; end described_class.new(settings, redactor) end + describe "#serialize_value" do + let(:serialized) do + serializer.serialize_value(value, **options) + end + + def self.define_cases(cases) + cases.each do |c| + value = c.fetch(:input) + expected = c.fetch(:expected) + var_name = c[:var_name] + + context c.fetch(:name) do + let(:value) { value } + + let(:options) do + {name: var_name} + end + + it "serializes as expected" do + expect(serialized).to eq(expected) + end + end + end + end + + cases = [ + {name: "nil value", input: nil, expected: {type: "NilClass", isNull: true}}, + {name: "true value", input: true, expected: {type: "TrueClass", value: "true"}}, + {name: "false value", input: false, expected: {type: "FalseClass", value: "false"}}, + {name: "int value", input: 42, expected: {type: "Integer", value: "42"}}, + {name: "bigint value", input: 420000000000000000000042, expected: {type: "Integer", value: "420000000000000000000042"}}, + {name: "float value", input: 42.02, expected: {type: "Float", value: "42.02"}}, + {name: "string value", input: "x", expected: {type: "String", value: "x"}}, + {name: "symbol value", input: :x, expected: {type: "Symbol", value: "x"}}, + {name: "redacted identifier in predefined list", input: "123", var_name: "password", + expected: {type: "String", notCapturedReason: "redactedIdent"}}, + {name: "variable name given and is not a redacted identifier", input: "123", var_name: "normal", + expected: {type: "String", value: "123"}}, + ] + + define_cases(cases) + end + describe "#serialize_vars" do let(:serialized) do serializer.serialize_vars(vars) @@ -83,14 +126,6 @@ def self.define_cases(cases) end cases = [ - {name: "nil value", input: {a: nil}, expected: {a: {type: "NilClass", isNull: true}}}, - {name: "true value", input: {a: true}, expected: {a: {type: "TrueClass", value: "true"}}}, - {name: "false value", input: {a: false}, expected: {a: {type: "FalseClass", value: "false"}}}, - {name: "int value", input: {a: 42}, expected: {a: {type: "Integer", value: "42"}}}, - {name: "bigint value", input: {a: 420000000000000000000042}, expected: {a: {type: "Integer", value: "420000000000000000000042"}}}, - {name: "float value", input: {a: 42.02}, expected: {a: {type: "Float", value: "42.02"}}}, - {name: "string value", input: {a: "x"}, expected: {a: {type: "String", value: "x"}}}, - {name: "symbol value", input: {a: :x}, expected: {a: {type: "Symbol", value: "x"}}}, {name: "redacted value in predefined list", input: {password: "123"}, expected: {password: {type: "String", notCapturedReason: "redactedIdent"}}}, {name: "redacted type", input: {value: DISerializerSpecSensitiveType.new},