From 64f12978d367ffe06607ad37bb4c1cc9357b08e9 Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 25 Sep 2024 12:41:39 +0200 Subject: [PATCH 01/15] add new setting `get_time_provider` that allows redefining Core::Utils::Time.get_time method --- lib/datadog/core/configuration/settings.rb | 15 +++++ lib/datadog/core/utils/time.rb | 13 ++++ sig/datadog/core/utils/time.rbs | 1 + .../core/configuration/settings_spec.rb | 67 +++++++++++++++++++ 4 files changed, 96 insertions(+) diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index 45835ddcdcf..79f0ac14d17 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -654,6 +654,21 @@ def initialize(*_) end end + option :get_time_provider do |o| + o.default_proc { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) } + o.type :proc + + o.after_set do |get_time_provider| + Core::Utils::Time.get_time_provider = get_time_provider + end + + o.resetter do |_value| + lambda { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}.tap do |default| + Core::Utils::Time.get_time_provider = default + end + end + end + # The `version` tag in Datadog. Use it to enable [Deployment Tracking](https://docs.datadoghq.com/tracing/deployment_tracking/). # @see https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging # @default `DD_VERSION` environment variable, otherwise `nils` diff --git a/lib/datadog/core/utils/time.rb b/lib/datadog/core/utils/time.rb index 20b1c473914..631caa91433 100644 --- a/lib/datadog/core/utils/time.rb +++ b/lib/datadog/core/utils/time.rb @@ -34,6 +34,19 @@ def now_provider=(block) define_singleton_method(:now, &block) end + + # Overrides the implementation of `#get_time + # with the provided callable. + # + # Overriding the method `#get_time` instead of + # indirectly calling `block` removes + # one level of method call overhead. + # + # @param block [Proc] block that accepts unit and returns timestamp in the requested unit, since some unspecified starting point + def get_time_provider=(block) + define_singleton_method(:get_time, &block) + end + def measure(unit = :float_second) before = get_time(unit) yield diff --git a/sig/datadog/core/utils/time.rbs b/sig/datadog/core/utils/time.rbs index 74aeb383b29..39a01face69 100644 --- a/sig/datadog/core/utils/time.rbs +++ b/sig/datadog/core/utils/time.rbs @@ -5,6 +5,7 @@ module Datadog def self?.get_time: (?::Symbol unit) -> ::Numeric def self?.now: () -> ::Time def self?.now_provider=: (^() -> ::Time block) -> void + def self?.get_time_provider=: (^(?::Symbol unit) -> ::Numeric block) -> void def self?.measure: (?::Symbol unit) { () -> void } -> ::Numeric def self?.as_utc_epoch_ns: (::Time time) -> ::Integer end diff --git a/spec/datadog/core/configuration/settings_spec.rb b/spec/datadog/core/configuration/settings_spec.rb index a9c12188b95..bafdf3c0090 100644 --- a/spec/datadog/core/configuration/settings_spec.rb +++ b/spec/datadog/core/configuration/settings_spec.rb @@ -1392,6 +1392,73 @@ end end + describe '#get_time_provider=' do + subject(:set_get_time_provider) { settings.get_time_provider = get_time_provider } + + after { settings.reset! } + + let(:get_time) { 1 } + + let(:get_time_new_milliseconds) { 42 } + let(:get_time_new_seconds) { 0.042 } + + let(:unit) { :float_second } + let(:get_time_provider) do + new_milliseconds = get_time_new_milliseconds # Capture for closure + new_seconds = get_time_new_seconds # Capture for closure + + lambda { |unit| if unit == :float_millisecond then new_milliseconds else new_seconds end} + end + + context 'when default' do + before { allow(Process).to receive(:clock_gettime).with(Process::CLOCK_MONOTONIC, unit).and_return(1) } + + it 'delegates to Process.clock_gettime' do + expect(settings.get_time_provider.call(unit)).to eq(get_time) + expect(Datadog::Core::Utils::Time.get_time(unit)).to eq(get_time) + end + end + + context 'when given a value' do + before { set_get_time_provider } + + context "when unit is :float_second" do + it 'returns the provided time in float seconds' do + expect(settings.get_time_provider.call(unit)).to eq(get_time_new_seconds) + expect(Datadog::Core::Utils::Time.get_time(unit)).to eq(get_time_new_seconds) + end + end + + context "when unit is :float_millisecond" do + let(:unit) { :float_millisecond } + + it 'returns the provided time in float milliseconds' do + expect(settings.get_time_provider.call(unit)).to eq(get_time_new_milliseconds) + expect(Datadog::Core::Utils::Time.get_time(unit)).to eq(get_time_new_milliseconds) + end + end + end + + context 'then reset' do + let(:original_get_time) { 1 } + + before do + set_get_time_provider + allow(Process).to receive(:clock_gettime).with(Process::CLOCK_MONOTONIC, unit).and_return(original_get_time) + end + + it 'returns the provided time' do + expect(settings.get_time_provider.call(unit)).to eq(get_time_new_seconds) + expect(Datadog::Core::Utils::Time.get_time(unit)).to eq(get_time_new_seconds) + + settings.reset! + + expect(settings.get_time_provider.call(unit)).to eq(original_get_time) + expect(Datadog::Core::Utils::Time.get_time(unit)).to eq(original_get_time) + end + end + end + # Important note: These settings are used as inputs of the AgentSettingsResolver and are used by all components # that consume its result (e.g. tracing, profiling, and telemetry, as of January 2023). describe '#agent' do From d09de1e514a4283dc46054fe88b2932407027cc7 Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 25 Sep 2024 12:50:22 +0200 Subject: [PATCH 02/15] documentation for the new configuration option --- docs/GettingStarted.md | 11 ++++++++++- lib/datadog/core/configuration/settings.rb | 11 +++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index 8a1196fa138..ff1cdb2f97e 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -2044,6 +2044,7 @@ For example, if `tracing.sampling.default_rate` is configured by [Remote Configu | `service` | `DD_SERVICE` | `String` | _Ruby filename_ | Your application's default service name. (e.g. `billing-api`) This value is set as a tag on all traces. | | `tags` | `DD_TAGS` | `Hash` | `nil` | Custom tags in value pairs separated by `,` (e.g. `layer:api,team:intake`) These tags are set on all traces. See [Environment and tags](#environment-and-tags) for more details. | | `time_now_provider` | | `Proc` | `->{ Time.now }` | Changes how time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | +| `get_time_provider` | | `Proc` | `lambda { \|unit\| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }` | Changes how monotonic time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | | `version` | `DD_VERSION` | `String` | `nil` | Your application version (e.g. `2.5`, `202003181415`, `1.3-alpha`, etc.) This value is set as a tag on all traces. | | `telemetry.enabled` | `DD_INSTRUMENTATION_TELEMETRY_ENABLED` | `Bool` | `true` | Allows you to enable sending telemetry data to Datadog. Can be disabled, as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection). | | **Tracing** | | | | | @@ -2661,7 +2662,15 @@ Datadog.configure do |c| end ``` -Span duration calculation will still use the system monotonic clock when available, thus not being affected by this setting. +Span duration calculation uses the system monotonic clock when available, to change the function that provides monotonic clock, +configure the following: + +```ruby +Datadog.configure do |c| + # For Timecop, for example, `::Process.clock_gettime_without_mock` allows the tracer to use the real monotonic time. + c.get_time_provider = lambda { |unit| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) } +end +``` ### Metrics diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index 79f0ac14d17..ac5b2a94455 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -654,6 +654,17 @@ def initialize(*_) end end + # The monotonic time clocl provider used by Datadog. + # It must respect the interface of Datadog::Core::Utils::Time#get_time method. + # + # When testing, it can be helpful to use a different monotonic time clock provider. + # + # For [Timecop](https://rubygems.org/gems/timecop), for example, + # `lambda { |unit| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }` + # allows Datadog features to use the real monotonic time when time is frozen with `Timecop.mock_process_clock = true`. + # + # @default `lambda { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}` + # @return [Proc] option :get_time_provider do |o| o.default_proc { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) } o.type :proc From 3afa46fd0724baddd8d61d16f45498b28cbe5827 Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 25 Sep 2024 13:13:21 +0200 Subject: [PATCH 03/15] change the default get_time_provider value, add test for Tracing::SpanOperation when get_time_provider is set --- docs/GettingStarted.md | 4 ++-- lib/datadog/core/configuration/settings.rb | 14 +++++++------- spec/datadog/tracing/span_operation_spec.rb | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index ff1cdb2f97e..7d5b53668a5 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -2044,7 +2044,7 @@ For example, if `tracing.sampling.default_rate` is configured by [Remote Configu | `service` | `DD_SERVICE` | `String` | _Ruby filename_ | Your application's default service name. (e.g. `billing-api`) This value is set as a tag on all traces. | | `tags` | `DD_TAGS` | `Hash` | `nil` | Custom tags in value pairs separated by `,` (e.g. `layer:api,team:intake`) These tags are set on all traces. See [Environment and tags](#environment-and-tags) for more details. | | `time_now_provider` | | `Proc` | `->{ Time.now }` | Changes how time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | -| `get_time_provider` | | `Proc` | `lambda { \|unit\| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }` | Changes how monotonic time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | +| `get_time_provider` | | `Proc` | `lambda { \|unit = :float_second\| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }` | Changes how monotonic time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | | `version` | `DD_VERSION` | `String` | `nil` | Your application version (e.g. `2.5`, `202003181415`, `1.3-alpha`, etc.) This value is set as a tag on all traces. | | `telemetry.enabled` | `DD_INSTRUMENTATION_TELEMETRY_ENABLED` | `Bool` | `true` | Allows you to enable sending telemetry data to Datadog. Can be disabled, as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection). | | **Tracing** | | | | | @@ -2668,7 +2668,7 @@ configure the following: ```ruby Datadog.configure do |c| # For Timecop, for example, `::Process.clock_gettime_without_mock` allows the tracer to use the real monotonic time. - c.get_time_provider = lambda { |unit| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) } + c.get_time_provider = lambda { |unit = :float_second| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) } end ``` diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index ac5b2a94455..c8d12cef8be 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -654,19 +654,19 @@ def initialize(*_) end end - # The monotonic time clocl provider used by Datadog. - # It must respect the interface of Datadog::Core::Utils::Time#get_time method. + # The monotonic clock time provider used by Datadog. + # It must respect the interface of [Datadog::Core::Utils::Time#get_time] method. # - # When testing, it can be helpful to use a different monotonic time clock provider. + # When testing, it can be helpful to use a different monotonic clock time provider. # # For [Timecop](https://rubygems.org/gems/timecop), for example, - # `lambda { |unit| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }` + # `lambda { |unit = :float_second| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }` # allows Datadog features to use the real monotonic time when time is frozen with `Timecop.mock_process_clock = true`. # - # @default `lambda { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}` + # @default `lambda { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}` # @return [Proc] option :get_time_provider do |o| - o.default_proc { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) } + o.default_proc { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) } o.type :proc o.after_set do |get_time_provider| @@ -674,7 +674,7 @@ def initialize(*_) end o.resetter do |_value| - lambda { |unit| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}.tap do |default| + lambda { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}.tap do |default| Core::Utils::Time.get_time_provider = default end end diff --git a/spec/datadog/tracing/span_operation_spec.rb b/spec/datadog/tracing/span_operation_spec.rb index 6b10bebeb22..02e053df23d 100644 --- a/spec/datadog/tracing/span_operation_spec.rb +++ b/spec/datadog/tracing/span_operation_spec.rb @@ -872,6 +872,27 @@ expect(span_op.end_time - span_op.start_time).to eq 0 end end + + context 'with get_time_provider set' do + let(:clock_increment) { 0.42 } + before do + incr = clock_increment + clock_time = clock_increment + Datadog.configure do |c| + # Use a custom clock provider that increments by `clock_increment` + c.get_time_provider = lambda { |_unit = :float_second| clock_time += incr } + end + end + + after { without_warnings { Datadog.configuration.reset! } } + + it 'sets the duration to the provider increment' do + span_op.start + span_op.stop + + expect(span_op.duration).to be_within(0.01).of(clock_increment) + end + end end context 'with start_time provided' do From 1e9509080ceb64cbab6f1b6f937d43a3cabc3456 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 25 Sep 2024 13:18:23 +0200 Subject: [PATCH 04/15] Remove obsolete test that never ran --- .../contrib/active_record/performance_spec.rb | 59 ------------------- .../tracing/transport/http/benchmark_spec.rb | 50 ---------------- 2 files changed, 109 deletions(-) delete mode 100644 spec/datadog/tracing/contrib/active_record/performance_spec.rb delete mode 100644 spec/datadog/tracing/transport/http/benchmark_spec.rb diff --git a/spec/datadog/tracing/contrib/active_record/performance_spec.rb b/spec/datadog/tracing/contrib/active_record/performance_spec.rb deleted file mode 100644 index efdffe43937..00000000000 --- a/spec/datadog/tracing/contrib/active_record/performance_spec.rb +++ /dev/null @@ -1,59 +0,0 @@ -require 'datadog/tracing/contrib/support/spec_helper' -require 'datadog' - -require 'active_record' - -if PlatformHelpers.jruby? - require 'activerecord-jdbc-adapter' -else - require 'sqlite3' -end - -RSpec.describe 'ActiveRecord tracing performance' do - let(:options) { {} } - - before do - skip('Performance test does not run in CI.') - - # Configure the tracer - Datadog.configure do |c| - c.tracing.instrument :active_record, options - end - end - - after { Datadog.registry[:active_record].reset_configuration! } - - describe 'for an in-memory database' do - let!(:connection) do - ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') - end - - describe 'when queried with a simple select' do - subject(:measurement) { measure(iterations) } - - let(:iterations) { 100_000 } - - def measure(iterations = 1) - Benchmark.measure do - iterations.times do - connection.connection.execute('SELECT 42') - end - end - end - - before do - # Perform a measurement to warm up - measure(10) - - # Discard warm-up spans - clear_traces! - end - - it 'produces a measurement' do - expect { measurement }.to_not raise_error - expect(spans).to have(iterations).items - puts "\nRun time for #{iterations} iterations: #{measurement.utime}\n" - end - end - end -end diff --git a/spec/datadog/tracing/transport/http/benchmark_spec.rb b/spec/datadog/tracing/transport/http/benchmark_spec.rb deleted file mode 100644 index ef1258ef7f3..00000000000 --- a/spec/datadog/tracing/transport/http/benchmark_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -require 'spec_helper' - -require 'benchmark' -require 'datadog' -require 'datadog/tracing/transport/http' - -RSpec.describe 'Transport::HTTP benchmarks' do - let(:iterations) { 100 } - - before { skip('Performance test does not run in CI.') } - - describe '#send' do - let!(:default_transport) { Datadog::Tracing::Transport::HTTP.default } - let!(:net_transport) { Datadog::Tracing::Transport::HTTP.default { |t| t.adapter :net_http } } - let!(:unix_transport) { Datadog::Tracing::Transport::HTTP.default { |t| t.adapter :unix } } - let!(:test_transport) { Datadog::Tracing::Transport::HTTP.default { |t| t.adapter :test } } - - let!(:traces) { get_test_traces(2) } - - it do - Benchmark.bm do |x| - x.report('Default Datadog::Tracing::Transport::HTTP') do - iterations.times do - default_transport.send_traces(traces) - end - end - - x.report('Datadog::Tracing::Transport::HTTP with Net::HTTP adapter') do - iterations.times do - net_transport.send_traces(traces) - end - end - - # TODO: Enable me when Unix socket support for Datadog agent is released in 6.13. - # Then update the agent configuration for the test suite to enable Unix sockets. - # x.report('Datadog::Tracing::Transport::HTTP with Unix socket adapter') do - # iterations.times do - # unix_transport.send_traces(traces) - # end - # end - - x.report('Datadog::Tracing::Transport::HTTP with test adapter') do - iterations.times do - test_transport.send_traces(traces) - end - end - end - end - end -end From 6e4db879fb4e8ffeacc0ef9ea0ec1809ff6efe6e Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 25 Sep 2024 13:23:47 +0200 Subject: [PATCH 05/15] correct my lambda syntax usage --- docs/GettingStarted.md | 4 ++-- lib/datadog/core/configuration/settings.rb | 9 +++++---- lib/datadog/core/utils/time.rb | 3 +-- spec/datadog/core/configuration/settings_spec.rb | 6 +++--- spec/datadog/tracing/span_operation_spec.rb | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index 7d5b53668a5..5a68e5a6cd7 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -2044,7 +2044,7 @@ For example, if `tracing.sampling.default_rate` is configured by [Remote Configu | `service` | `DD_SERVICE` | `String` | _Ruby filename_ | Your application's default service name. (e.g. `billing-api`) This value is set as a tag on all traces. | | `tags` | `DD_TAGS` | `Hash` | `nil` | Custom tags in value pairs separated by `,` (e.g. `layer:api,team:intake`) These tags are set on all traces. See [Environment and tags](#environment-and-tags) for more details. | | `time_now_provider` | | `Proc` | `->{ Time.now }` | Changes how time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | -| `get_time_provider` | | `Proc` | `lambda { \|unit = :float_second\| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }` | Changes how monotonic time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | +| `get_time_provider` | | `Proc` | `->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }` | Changes how monotonic time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | | `version` | `DD_VERSION` | `String` | `nil` | Your application version (e.g. `2.5`, `202003181415`, `1.3-alpha`, etc.) This value is set as a tag on all traces. | | `telemetry.enabled` | `DD_INSTRUMENTATION_TELEMETRY_ENABLED` | `Bool` | `true` | Allows you to enable sending telemetry data to Datadog. Can be disabled, as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection). | | **Tracing** | | | | | @@ -2668,7 +2668,7 @@ configure the following: ```ruby Datadog.configure do |c| # For Timecop, for example, `::Process.clock_gettime_without_mock` allows the tracer to use the real monotonic time. - c.get_time_provider = lambda { |unit = :float_second| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) } + c.get_time_provider = ->(unit = :float_second) { ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) } end ``` diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index c8d12cef8be..be49b88fc55 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -660,10 +660,11 @@ def initialize(*_) # When testing, it can be helpful to use a different monotonic clock time provider. # # For [Timecop](https://rubygems.org/gems/timecop), for example, - # `lambda { |unit = :float_second| ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }` - # allows Datadog features to use the real monotonic time when time is frozen with `Timecop.mock_process_clock = true`. + # `->(unit = :float_second) { ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }` + # allows Datadog features to use the real monotonic time when time is frozen with + # `Timecop.mock_process_clock = true`. # - # @default `lambda { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}` + # @default `->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}` # @return [Proc] option :get_time_provider do |o| o.default_proc { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) } @@ -674,7 +675,7 @@ def initialize(*_) end o.resetter do |_value| - lambda { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}.tap do |default| + ->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }.tap do |default| Core::Utils::Time.get_time_provider = default end end diff --git a/lib/datadog/core/utils/time.rb b/lib/datadog/core/utils/time.rb index 631caa91433..79367097e05 100644 --- a/lib/datadog/core/utils/time.rb +++ b/lib/datadog/core/utils/time.rb @@ -34,7 +34,6 @@ def now_provider=(block) define_singleton_method(:now, &block) end - # Overrides the implementation of `#get_time # with the provided callable. # @@ -42,7 +41,7 @@ def now_provider=(block) # indirectly calling `block` removes # one level of method call overhead. # - # @param block [Proc] block that accepts unit and returns timestamp in the requested unit, since some unspecified starting point + # @param block [Proc] block that accepts unit and returns timestamp in the requested unit def get_time_provider=(block) define_singleton_method(:get_time, &block) end diff --git a/spec/datadog/core/configuration/settings_spec.rb b/spec/datadog/core/configuration/settings_spec.rb index bafdf3c0090..8703f477afc 100644 --- a/spec/datadog/core/configuration/settings_spec.rb +++ b/spec/datadog/core/configuration/settings_spec.rb @@ -1407,7 +1407,7 @@ new_milliseconds = get_time_new_milliseconds # Capture for closure new_seconds = get_time_new_seconds # Capture for closure - lambda { |unit| if unit == :float_millisecond then new_milliseconds else new_seconds end} + ->(unit) { unit == :float_millisecond ? new_milliseconds : new_seconds } end context 'when default' do @@ -1422,14 +1422,14 @@ context 'when given a value' do before { set_get_time_provider } - context "when unit is :float_second" do + context 'when unit is :float_second' do it 'returns the provided time in float seconds' do expect(settings.get_time_provider.call(unit)).to eq(get_time_new_seconds) expect(Datadog::Core::Utils::Time.get_time(unit)).to eq(get_time_new_seconds) end end - context "when unit is :float_millisecond" do + context 'when unit is :float_millisecond' do let(:unit) { :float_millisecond } it 'returns the provided time in float milliseconds' do diff --git a/spec/datadog/tracing/span_operation_spec.rb b/spec/datadog/tracing/span_operation_spec.rb index 02e053df23d..5eef0d6a69c 100644 --- a/spec/datadog/tracing/span_operation_spec.rb +++ b/spec/datadog/tracing/span_operation_spec.rb @@ -880,7 +880,7 @@ clock_time = clock_increment Datadog.configure do |c| # Use a custom clock provider that increments by `clock_increment` - c.get_time_provider = lambda { |_unit = :float_second| clock_time += incr } + c.get_time_provider = ->(_unit = :float_second) { clock_time += incr } end end From 6af5030b5357e44286c8623d33727dc96bae355a Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 25 Sep 2024 14:13:58 +0200 Subject: [PATCH 06/15] remove get_time_provider option from the public docs --- docs/GettingStarted.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index 5a68e5a6cd7..8a1196fa138 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -2044,7 +2044,6 @@ For example, if `tracing.sampling.default_rate` is configured by [Remote Configu | `service` | `DD_SERVICE` | `String` | _Ruby filename_ | Your application's default service name. (e.g. `billing-api`) This value is set as a tag on all traces. | | `tags` | `DD_TAGS` | `Hash` | `nil` | Custom tags in value pairs separated by `,` (e.g. `layer:api,team:intake`) These tags are set on all traces. See [Environment and tags](#environment-and-tags) for more details. | | `time_now_provider` | | `Proc` | `->{ Time.now }` | Changes how time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | -| `get_time_provider` | | `Proc` | `->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }` | Changes how monotonic time is retrieved. See [Setting the time provider](#setting-the-time-provider) for more details. | | `version` | `DD_VERSION` | `String` | `nil` | Your application version (e.g. `2.5`, `202003181415`, `1.3-alpha`, etc.) This value is set as a tag on all traces. | | `telemetry.enabled` | `DD_INSTRUMENTATION_TELEMETRY_ENABLED` | `Bool` | `true` | Allows you to enable sending telemetry data to Datadog. Can be disabled, as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection). | | **Tracing** | | | | | @@ -2662,15 +2661,7 @@ Datadog.configure do |c| end ``` -Span duration calculation uses the system monotonic clock when available, to change the function that provides monotonic clock, -configure the following: - -```ruby -Datadog.configure do |c| - # For Timecop, for example, `::Process.clock_gettime_without_mock` allows the tracer to use the real monotonic time. - c.get_time_provider = ->(unit = :float_second) { ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) } -end -``` +Span duration calculation will still use the system monotonic clock when available, thus not being affected by this setting. ### Metrics From b03599ca9920773a63dc28a5980b373dd14f9777 Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 25 Sep 2024 14:44:42 +0200 Subject: [PATCH 07/15] add comment that get_time_provider setting is internal --- lib/datadog/core/configuration/settings.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/datadog/core/configuration/settings.rb b/lib/datadog/core/configuration/settings.rb index be49b88fc55..31cddb33bf4 100644 --- a/lib/datadog/core/configuration/settings.rb +++ b/lib/datadog/core/configuration/settings.rb @@ -654,10 +654,10 @@ def initialize(*_) end end - # The monotonic clock time provider used by Datadog. - # It must respect the interface of [Datadog::Core::Utils::Time#get_time] method. + # The monotonic clock time provider used by Datadog. This option is internal and is used by `datadog-ci` + # gem to avoid traces' durations being skewed by timecop. # - # When testing, it can be helpful to use a different monotonic clock time provider. + # It must respect the interface of [Datadog::Core::Utils::Time#get_time] method. # # For [Timecop](https://rubygems.org/gems/timecop), for example, # `->(unit = :float_second) { ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }` From 24eebe9e59a1434af66a20921644ea6def3b735a Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 25 Sep 2024 12:46:20 +0200 Subject: [PATCH 08/15] Rescue instrumentation errors --- .../contrib/active_record/events/instantiation.rb | 4 +++- lib/datadog/tracing/contrib/active_record/events/sql.rb | 4 +++- .../tracing/contrib/active_support/cache/events/cache.rb | 4 ++++ lib/datadog/tracing/contrib/aws/instrumentation.rb | 5 +++++ lib/datadog/tracing/contrib/faraday/middleware.rb | 9 +++++++++ .../tracing/contrib/httpclient/instrumentation.rb | 3 +++ lib/datadog/tracing/contrib/httprb/instrumentation.rb | 3 +++ lib/datadog/tracing/contrib/mongodb/subscribers.rb | 2 ++ lib/datadog/tracing/contrib/redis/tags.rb | 4 ++++ 9 files changed, 36 insertions(+), 2 deletions(-) diff --git a/lib/datadog/tracing/contrib/active_record/events/instantiation.rb b/lib/datadog/tracing/contrib/active_record/events/instantiation.rb index 0d0cf07b6cc..fb0d4465f53 100644 --- a/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +++ b/lib/datadog/tracing/contrib/active_record/events/instantiation.rb @@ -4,6 +4,7 @@ require_relative '../../analytics' require_relative '../ext' require_relative '../event' +require_relative '../../../../core/telemetry/logger' module Datadog module Tracing @@ -48,7 +49,8 @@ def on_start(span, event, _id, payload) span.set_tag(Ext::TAG_INSTANTIATION_CLASS_NAME, payload.fetch(:class_name)) span.set_tag(Ext::TAG_INSTANTIATION_RECORD_COUNT, payload.fetch(:record_count)) rescue StandardError => e - Datadog.logger.debug(e.message) + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end end end diff --git a/lib/datadog/tracing/contrib/active_record/events/sql.rb b/lib/datadog/tracing/contrib/active_record/events/sql.rb index 1e1c1a87382..8640ac43aa9 100644 --- a/lib/datadog/tracing/contrib/active_record/events/sql.rb +++ b/lib/datadog/tracing/contrib/active_record/events/sql.rb @@ -6,6 +6,7 @@ require_relative '../ext' require_relative '../../analytics' require_relative '../../utils/database' +require_relative '../../../../core/telemetry/logger' module Datadog module Tracing @@ -68,7 +69,8 @@ def on_start(span, event, _id, payload) span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, config[:host]) if config[:host] span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, config[:port]) if config[:port] rescue StandardError => e - Datadog.logger.debug(e.message) + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end end end diff --git a/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb b/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb index 2abec4c1d26..0b98c7943ef 100644 --- a/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +++ b/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb @@ -2,6 +2,7 @@ require_relative '../../ext' require_relative '../event' +require_relative '../../../../../core/telemetry/logger' module Datadog module Tracing @@ -81,6 +82,9 @@ def on_start(span, event, _id, payload) span.set_tag('EVENT', event) set_cache_key(span, key, mapping[:multi_key]) + rescue StandardError => e + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end def set_cache_key(span, key, multi_key) diff --git a/lib/datadog/tracing/contrib/aws/instrumentation.rb b/lib/datadog/tracing/contrib/aws/instrumentation.rb index 7194ef9ae01..a19ea684877 100644 --- a/lib/datadog/tracing/contrib/aws/instrumentation.rb +++ b/lib/datadog/tracing/contrib/aws/instrumentation.rb @@ -29,6 +29,7 @@ def call(context) private # rubocop:disable Metrics/AbcSize + # rubocop:disable Metrics/MethodLength def annotate!(span, context) span.service = configuration[:service_name] span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND @@ -76,7 +77,11 @@ def annotate!(span, context) span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, context.safely(:status_code)) Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES) + rescue StandardError => e + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end + # rubocop:enable Metrics/MethodLength # rubocop:enable Metrics/AbcSize def configuration diff --git a/lib/datadog/tracing/contrib/faraday/middleware.rb b/lib/datadog/tracing/contrib/faraday/middleware.rb index 1134fb9379a..9bdea9c364b 100644 --- a/lib/datadog/tracing/contrib/faraday/middleware.rb +++ b/lib/datadog/tracing/contrib/faraday/middleware.rb @@ -7,6 +7,7 @@ require_relative '../analytics' require_relative 'ext' require_relative '../http_annotation_helper' +require_relative '../../../core/telemetry/logger' module Datadog module Tracing @@ -37,6 +38,7 @@ def call(env) attr_reader :app + # rubocop:disable Metrics/AbcSize def annotate!(span, env, options) span.resource = resource_name(env) span.service = service_name(env[:url].host, options) @@ -75,7 +77,11 @@ def annotate!(span, env, options) ) Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES) + rescue StandardError => e + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end + # rubocop:enable Metrics/AbcSize def handle_response(span, env, options) span.set_error(["Error #{env[:status]}", env[:body]]) if options[:error_status_codes].include? env[:status] @@ -85,6 +91,9 @@ def handle_response(span, env, options) span.set_tags( Datadog.configuration.tracing.header_tags.response_tags(env[:response_headers]) ) + rescue StandardError => e + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end def propagate!(trace, span, env) diff --git a/lib/datadog/tracing/contrib/httpclient/instrumentation.rb b/lib/datadog/tracing/contrib/httpclient/instrumentation.rb index 5a600970870..5cbc784bf59 100644 --- a/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +++ b/lib/datadog/tracing/contrib/httpclient/instrumentation.rb @@ -102,6 +102,9 @@ def annotate_span_with_response!(span, response, request_options) span.set_tags( Datadog.configuration.tracing.header_tags.response_tags(response.header) ) + rescue StandardError => e + Datadog.logger.error("error preparing span from httpclient response: #{e}, Source: #{e.backtrace}") + Datadog::Core::Telemetry::Logger.report(e) end def annotate_span_with_error!(span, error) diff --git a/lib/datadog/tracing/contrib/httprb/instrumentation.rb b/lib/datadog/tracing/contrib/httprb/instrumentation.rb index b935d3bd14b..c39916ebb4a 100644 --- a/lib/datadog/tracing/contrib/httprb/instrumentation.rb +++ b/lib/datadog/tracing/contrib/httprb/instrumentation.rb @@ -110,6 +110,9 @@ def annotate_span_with_response!(span, response, request_options) span.set_tags( Datadog.configuration.tracing.header_tags.response_tags(response.headers) ) + rescue StandardError => e + logger.error("error preparing span from http.rb response: #{e}, Source: #{e.backtrace}") + Datadog::Core::Telemetry::Logger.report(e) end def annotate_span_with_error!(span, error) diff --git a/lib/datadog/tracing/contrib/mongodb/subscribers.rb b/lib/datadog/tracing/contrib/mongodb/subscribers.rb index 06e67add3ef..fe34da1ad9e 100644 --- a/lib/datadog/tracing/contrib/mongodb/subscribers.rb +++ b/lib/datadog/tracing/contrib/mongodb/subscribers.rb @@ -70,6 +70,8 @@ def started(event) # set the resource with the quantized query span.resource = serialized_query + rescue StandardError => e + Datadog.logger.debug("error when handling MongoDB 'started' event: #{e}") end # rubocop:enable Metrics/AbcSize diff --git a/lib/datadog/tracing/contrib/redis/tags.rb b/lib/datadog/tracing/contrib/redis/tags.rb index 6e8feb49029..98de54f41a9 100644 --- a/lib/datadog/tracing/contrib/redis/tags.rb +++ b/lib/datadog/tracing/contrib/redis/tags.rb @@ -4,6 +4,7 @@ require_relative '../analytics' require_relative 'ext' require_relative '../ext' +require_relative '../../../core/telemetry/logger' module Datadog module Tracing @@ -45,6 +46,9 @@ def set_common_tags(client, span, raw_command) span.set_tag Ext::TAG_RAW_COMMAND, raw_command Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES) + rescue StandardError => e + Datadog.logger.error(e.message) + Datadog::Core::Telemetry::Logger.report(e) end private From 14681aa355e95c3b00c452d50841183dabf36bca Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 25 Sep 2024 15:16:17 +0200 Subject: [PATCH 09/15] Add tests --- .../active_support/cache/events/cache.rb | 2 +- .../events/instantiation_spec.rb | 32 +++++++++++++++++ .../contrib/active_record/events/sql_spec.rb | 34 +++++++++++++++++++ .../active_support/cache/events/cache_spec.rb | 20 +++++++++++ .../tracing/contrib/redis/tags_spec.rb | 24 +++++++++++++ 5 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 spec/datadog/tracing/contrib/active_record/events/instantiation_spec.rb create mode 100644 spec/datadog/tracing/contrib/active_record/events/sql_spec.rb create mode 100644 spec/datadog/tracing/contrib/active_support/cache/events/cache_spec.rb create mode 100644 spec/datadog/tracing/contrib/redis/tags_spec.rb diff --git a/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb b/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb index 0b98c7943ef..0b8820c8fec 100644 --- a/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +++ b/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb @@ -65,7 +65,7 @@ def on_start(span, event, _id, payload) key = payload[:key] store = payload[:store] - mapping = MAPPING[event] + mapping = MAPPING.fetch(event) span.service = configuration[:cache_service] span.resource = mapping[:resource] diff --git a/spec/datadog/tracing/contrib/active_record/events/instantiation_spec.rb b/spec/datadog/tracing/contrib/active_record/events/instantiation_spec.rb new file mode 100644 index 00000000000..c0a08a0ec39 --- /dev/null +++ b/spec/datadog/tracing/contrib/active_record/events/instantiation_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' +require 'datadog/tracing/contrib/active_record/events/instantiation' +require 'datadog/tracing/span_operation' + +RSpec.describe Datadog::Tracing::Contrib::ActiveRecord::Events::Instantiation do + describe '.event_name' do + it 'returns the correct event name' do + expect(described_class.event_name).to eq('instantiation.active_record') + end + end + + describe '.span_name' do + it 'returns the correct span name' do + expect(described_class.span_name).to eq('active_record.instantiation') + end + end + + describe '.on_start' do + context 'when an error occurs' do + let(:span) { Datadog::Tracing::SpanOperation.new('fake') } + + it 'logs the error' do + expect(Datadog.logger).to receive(:error).with(/key not found/) + expect(Datadog::Core::Telemetry::Logger).to receive(:report).with(a_kind_of(StandardError)) + + expect do + described_class.on_start(span, double, double, {}) + end.not_to raise_error + end + end + end +end diff --git a/spec/datadog/tracing/contrib/active_record/events/sql_spec.rb b/spec/datadog/tracing/contrib/active_record/events/sql_spec.rb new file mode 100644 index 00000000000..7bacaac6d25 --- /dev/null +++ b/spec/datadog/tracing/contrib/active_record/events/sql_spec.rb @@ -0,0 +1,34 @@ +require 'spec_helper' +require 'datadog/tracing/contrib/active_record/events/sql' +require 'datadog/tracing/span_operation' + +require 'active_record' + +RSpec.describe Datadog::Tracing::Contrib::ActiveRecord::Events::SQL do + describe '.event_name' do + it 'returns the correct event name' do + expect(described_class.event_name).to eq('sql.active_record') + end + end + + describe '.span_name' do + it 'returns the correct span name' do + expect(described_class.span_name).to eq('active_record.sql') + end + end + + describe '.on_start' do + context 'when an error occurs' do + let(:span) { Datadog::Tracing::SpanOperation.new('fake') } + + it 'logs the error' do + expect(Datadog.logger).to receive(:error).with(/key not found/) + expect(Datadog::Core::Telemetry::Logger).to receive(:report).with(a_kind_of(StandardError)) + + expect do + described_class.on_start(span, double, double, {}) + end.not_to raise_error + end + end + end +end diff --git a/spec/datadog/tracing/contrib/active_support/cache/events/cache_spec.rb b/spec/datadog/tracing/contrib/active_support/cache/events/cache_spec.rb new file mode 100644 index 00000000000..f0df41028b5 --- /dev/null +++ b/spec/datadog/tracing/contrib/active_support/cache/events/cache_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' +require 'datadog/tracing/contrib/active_support/cache/events/cache' +require 'datadog/tracing/span_operation' + +RSpec.describe Datadog::Tracing::Contrib::ActiveSupport::Cache::Events::Cache do + describe '.on_start' do + context 'when an error occurs' do + let(:span) { Datadog::Tracing::SpanOperation.new('fake') } + + it 'logs the error' do + expect(Datadog.logger).to receive(:error).with(/key not found/) + expect(Datadog::Core::Telemetry::Logger).to receive(:report).with(a_kind_of(StandardError)) + + expect do + described_class.on_start(span, double, double, {}) + end.not_to raise_error + end + end + end +end diff --git a/spec/datadog/tracing/contrib/redis/tags_spec.rb b/spec/datadog/tracing/contrib/redis/tags_spec.rb new file mode 100644 index 00000000000..895ab09361a --- /dev/null +++ b/spec/datadog/tracing/contrib/redis/tags_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper' +require 'datadog/tracing/contrib/redis/tags' + +require 'datadog/tracing/span_operation' + +RSpec.describe Datadog::Tracing::Contrib::Redis::Tags do + let(:client) { double('client') } + let(:span) { Datadog::Tracing::SpanOperation.new('fake') } + let(:raw_command) { 'SET key value' } + + describe '.set_common_tags' do + context 'when an error occurs' do + it 'logs the error' do + allow(client).to receive(:host).and_raise(StandardError.new('Oops...')) + expect(Datadog.logger).to receive(:error).with('Oops...') + expect(Datadog::Core::Telemetry::Logger).to receive(:report).with(a_kind_of(StandardError)) + + expect do + described_class.set_common_tags(client, span, raw_command) + end.not_to raise_error + end + end + end +end From 6df2e6e256891901bf4b128eb5558a2fe4dbb9b9 Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 25 Sep 2024 16:16:53 +0200 Subject: [PATCH 10/15] Expand rack matrix with latest --- Appraisals | 6 +++--- Matrixfile | 14 ++++++++------ appraisal/jruby-9.2.rb | 8 +------- appraisal/jruby-9.3.rb | 8 +------- appraisal/jruby-9.4.rb | 8 +------- appraisal/ruby-2.5.rb | 8 +------- appraisal/ruby-2.6.rb | 8 +------- appraisal/ruby-2.7.rb | 8 +------- appraisal/ruby-3.0.rb | 8 +------- appraisal/ruby-3.1.rb | 8 +------- appraisal/ruby-3.2.rb | 8 +------- appraisal/ruby-3.3.rb | 8 +------- appraisal/ruby-3.4.rb | 8 +------- tasks/edge.rake | 2 ++ 14 files changed, 24 insertions(+), 86 deletions(-) diff --git a/Appraisals b/Appraisals index ef649f43103..ab1c9c4949e 100644 --- a/Appraisals +++ b/Appraisals @@ -53,14 +53,14 @@ def build_coverage_matrix(integration, range, gem: nil, min: nil, meta: {}) if min appraise "#{integration}-min" do gem gem, "= #{min}" - meta.each { |k, v| gem k, v } + meta.each { |k, v| v ? gem(k, v) : gem(k) } end end range.each do |n| appraise "#{integration}-#{n}" do gem gem, "~> #{n}" - meta.each { |k, v| gem k, v } + meta.each { |k, v| v ? gem(k, v) : gem(k) } end end @@ -69,7 +69,7 @@ def build_coverage_matrix(integration, range, gem: nil, min: nil, meta: {}) # still requires being updated to pick up the next major version and # committing the changes to lockfiles. gem gem - meta.each { |k, v| gem k, v } + meta.each { |k, v| v ? gem(k, v) : gem(k) } end end diff --git a/Matrixfile b/Matrixfile index 0252861bb88..fd758cc1db2 100644 --- a/Matrixfile +++ b/Matrixfile @@ -134,10 +134,11 @@ 'activesupport' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby' }, 'rack' => { + 'rack-latest' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'rack-3' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'rack-2' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', # Non-deprecated form of Regexp.new does not backport to Rack 1.x, see: https://github.com/rack/rack/pull/1998 - 'rack-1' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', - 'rack-2' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', - 'rack-3' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'rack-1' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', }, 'rake' => { 'contrib' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby' @@ -257,10 +258,11 @@ 'redis-5' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby' }, 'appsec:rack' => { + 'rack-latest' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'rack-3' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'rack-2' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', # Non-deprecated form of Regexp.new does not backport to Rack 1.x, see: https://github.com/rack/rack/pull/1998 - 'rack-1' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', - 'rack-2' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', - 'rack-3' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + 'rack-1' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ❌ 3.3 / ❌ 3.4 / ✅ jruby', }, 'appsec:sinatra' => { 'sinatra-2' => '✅ 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 ed8c523b69f..571acd7252c 100644 --- a/appraisal/jruby-9.2.rb +++ b/appraisal/jruby-9.2.rb @@ -244,13 +244,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/jruby-9.3.rb b/appraisal/jruby-9.3.rb index 6556d4f81bb..f796fd81c21 100644 --- a/appraisal/jruby-9.3.rb +++ b/appraisal/jruby-9.3.rb @@ -217,13 +217,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/jruby-9.4.rb b/appraisal/jruby-9.4.rb index 2bf7c0d5698..6fce8d81830 100644 --- a/appraisal/jruby-9.4.rb +++ b/appraisal/jruby-9.4.rb @@ -129,13 +129,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3, 4].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-2.5.rb b/appraisal/ruby-2.5.rb index d0ff148a8d1..1249ba7e9c6 100644 --- a/appraisal/ruby-2.5.rb +++ b/appraisal/ruby-2.5.rb @@ -264,13 +264,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-2.6.rb b/appraisal/ruby-2.6.rb index 45d196a33b0..a468005b5a7 100644 --- a/appraisal/ruby-2.6.rb +++ b/appraisal/ruby-2.6.rb @@ -218,13 +218,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-2.7.rb b/appraisal/ruby-2.7.rb index e7c203513b7..695db369a61 100644 --- a/appraisal/ruby-2.7.rb +++ b/appraisal/ruby-2.7.rb @@ -220,13 +220,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) # Sinatra 4 requires Ruby (>= 2.7.8), but current image with Ruby 2.7.6 [2, 3].each do |n| diff --git a/appraisal/ruby-3.0.rb b/appraisal/ruby-3.0.rb index 7cec314f6aa..a5afc5065a9 100644 --- a/appraisal/ruby-3.0.rb +++ b/appraisal/ruby-3.0.rb @@ -148,13 +148,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3, 4].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-3.1.rb b/appraisal/ruby-3.1.rb index 7cec314f6aa..a5afc5065a9 100644 --- a/appraisal/ruby-3.1.rb +++ b/appraisal/ruby-3.1.rb @@ -148,13 +148,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3, 4].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-3.2.rb b/appraisal/ruby-3.2.rb index 7cec314f6aa..a5afc5065a9 100644 --- a/appraisal/ruby-3.2.rb +++ b/appraisal/ruby-3.2.rb @@ -148,13 +148,7 @@ end end -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 1..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3, 4].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-3.3.rb b/appraisal/ruby-3.3.rb index e10aa99feb1..29c2b11cf1f 100644 --- a/appraisal/ruby-3.3.rb +++ b/appraisal/ruby-3.3.rb @@ -148,13 +148,7 @@ end end -[2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 2..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3, 4].each do |n| appraise "sinatra-#{n}" do diff --git a/appraisal/ruby-3.4.rb b/appraisal/ruby-3.4.rb index 8c2b0c4c35f..5fad252ce15 100644 --- a/appraisal/ruby-3.4.rb +++ b/appraisal/ruby-3.4.rb @@ -149,13 +149,7 @@ end end -[2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end +build_coverage_matrix('rack', 2..3, meta: { 'rack-contrib' => nil, 'rack-test' => nil }) [2, 3, 4].each do |n| appraise "sinatra-#{n}" do diff --git a/tasks/edge.rake b/tasks/edge.rake index 5ee9766ccff..881b9d8d071 100644 --- a/tasks/edge.rake +++ b/tasks/edge.rake @@ -11,6 +11,7 @@ namespace :edge do 'stripe' => 'stripe', 'elasticsearch' => 'elasticsearch', 'opensearch' => 'opensearch-ruby', + 'rack' => 'rack', # Add more integrations here, when they are extracted to its own isolated group } @@ -45,6 +46,7 @@ namespace :edge do 'stripe' => 'stripe', 'elasticsearch' => 'elasticsearch', 'opensearch' => 'opensearch-ruby', + 'rack' => 'rack', # Add more integrations here, when hey are extracted to its own isolated group } From f377467f35e56ab8b5b7a498f521aade41392d3c Mon Sep 17 00:00:00 2001 From: TonyCTHsu Date: Wed, 25 Sep 2024 14:28:31 +0000 Subject: [PATCH 11/15] =?UTF-8?q?[=F0=9F=A4=96]=20Lock=20Dependency:=20htt?= =?UTF-8?q?ps://github.com/DataDog/dd-trace-rb/actions/runs/11035048086?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gemfiles/jruby_9.2_rack_latest.gemfile | 42 ++++ gemfiles/jruby_9.2_rack_latest.gemfile.lock | 142 ++++++++++++++ gemfiles/jruby_9.3_rack_latest.gemfile | 46 +++++ gemfiles/jruby_9.3_rack_latest.gemfile.lock | 179 +++++++++++++++++ gemfiles/jruby_9.4_rack_latest.gemfile | 47 +++++ gemfiles/jruby_9.4_rack_latest.gemfile.lock | 181 ++++++++++++++++++ gemfiles/ruby_2.5_rack_latest.gemfile | 45 +++++ gemfiles/ruby_2.5_rack_latest.gemfile.lock | 153 +++++++++++++++ gemfiles/ruby_2.6_rack_latest.gemfile | 49 +++++ gemfiles/ruby_2.6_rack_latest.gemfile.lock | 192 +++++++++++++++++++ gemfiles/ruby_2.7_rack_latest.gemfile | 49 +++++ gemfiles/ruby_2.7_rack_latest.gemfile.lock | 192 +++++++++++++++++++ gemfiles/ruby_3.0_rack_latest.gemfile | 50 +++++ gemfiles/ruby_3.0_rack_latest.gemfile.lock | 194 +++++++++++++++++++ gemfiles/ruby_3.1_rack_latest.gemfile | 50 +++++ gemfiles/ruby_3.1_rack_latest.gemfile.lock | 194 +++++++++++++++++++ gemfiles/ruby_3.2_rack_latest.gemfile | 49 +++++ gemfiles/ruby_3.2_rack_latest.gemfile.lock | 189 ++++++++++++++++++ gemfiles/ruby_3.3_rack_latest.gemfile | 49 +++++ gemfiles/ruby_3.3_rack_latest.gemfile.lock | 189 ++++++++++++++++++ gemfiles/ruby_3.4_rack_latest.gemfile | 49 +++++ gemfiles/ruby_3.4_rack_latest.gemfile.lock | 201 ++++++++++++++++++++ 22 files changed, 2531 insertions(+) create mode 100644 gemfiles/jruby_9.2_rack_latest.gemfile create mode 100644 gemfiles/jruby_9.2_rack_latest.gemfile.lock create mode 100644 gemfiles/jruby_9.3_rack_latest.gemfile create mode 100644 gemfiles/jruby_9.3_rack_latest.gemfile.lock create mode 100644 gemfiles/jruby_9.4_rack_latest.gemfile create mode 100644 gemfiles/jruby_9.4_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_2.5_rack_latest.gemfile create mode 100644 gemfiles/ruby_2.5_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_2.6_rack_latest.gemfile create mode 100644 gemfiles/ruby_2.6_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_2.7_rack_latest.gemfile create mode 100644 gemfiles/ruby_2.7_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_3.0_rack_latest.gemfile create mode 100644 gemfiles/ruby_3.0_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_3.1_rack_latest.gemfile create mode 100644 gemfiles/ruby_3.1_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_3.2_rack_latest.gemfile create mode 100644 gemfiles/ruby_3.2_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_3.3_rack_latest.gemfile create mode 100644 gemfiles/ruby_3.3_rack_latest.gemfile.lock create mode 100644 gemfiles/ruby_3.4_rack_latest.gemfile create mode 100644 gemfiles/ruby_3.4_rack_latest.gemfile.lock diff --git a/gemfiles/jruby_9.2_rack_latest.gemfile b/gemfiles/jruby_9.2_rack_latest.gemfile new file mode 100644 index 00000000000..0fd93d0d45c --- /dev/null +++ b/gemfiles/jruby_9.2_rack_latest.gemfile @@ -0,0 +1,42 @@ +# 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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.2_rack_latest.gemfile.lock b/gemfiles/jruby_9.2_rack_latest.gemfile.lock new file mode 100644 index 00000000000..f64aff7e3df --- /dev/null +++ b/gemfiles/jruby_9.2_rack_latest.gemfile.lock @@ -0,0 +1,142 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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 + 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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/jruby_9.3_rack_latest.gemfile b/gemfiles/jruby_9.3_rack_latest.gemfile new file mode 100644 index 00000000000..4a07001f8db --- /dev/null +++ b/gemfiles/jruby_9.3_rack_latest.gemfile @@ -0,0 +1,46 @@ +# 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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.3_rack_latest.gemfile.lock b/gemfiles/jruby_9.3_rack_latest.gemfile.lock new file mode 100644 index 00000000000..7cc49a3cfb5 --- /dev/null +++ b/gemfiles/jruby_9.3_rack_latest.gemfile.lock @@ -0,0 +1,179 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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 + 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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/jruby_9.4_rack_latest.gemfile b/gemfiles/jruby_9.4_rack_latest.gemfile new file mode 100644 index 00000000000..76233479748 --- /dev/null +++ b/gemfiles/jruby_9.4_rack_latest.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 "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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/jruby_9.4_rack_latest.gemfile.lock b/gemfiles/jruby_9.4_rack_latest.gemfile.lock new file mode 100644 index 00000000000..7c76055327b --- /dev/null +++ b/gemfiles/jruby_9.4_rack_latest.gemfile.lock @@ -0,0 +1,181 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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 + 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.2) + +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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_2.5_rack_latest.gemfile b/gemfiles/ruby_2.5_rack_latest.gemfile new file mode 100644 index 00000000000..a06f1fb56f3 --- /dev/null +++ b/gemfiles/ruby_2.5_rack_latest.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 "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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.5_rack_latest.gemfile.lock b/gemfiles/ruby_2.5_rack_latest.gemfile.lock new file mode 100644 index 00000000000..68e5137aa48 --- /dev/null +++ b/gemfiles/ruby_2.5_rack_latest.gemfile.lock @@ -0,0 +1,153 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_2.6_rack_latest.gemfile b/gemfiles/ruby_2.6_rack_latest.gemfile new file mode 100644 index 00000000000..e3268afe1d7 --- /dev/null +++ b/gemfiles/ruby_2.6_rack_latest.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 "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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.6_rack_latest.gemfile.lock b/gemfiles/ruby_2.6_rack_latest.gemfile.lock new file mode 100644 index 00000000000..c5670811997 --- /dev/null +++ b/gemfiles/ruby_2.6_rack_latest.gemfile.lock @@ -0,0 +1,192 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_2.7_rack_latest.gemfile b/gemfiles/ruby_2.7_rack_latest.gemfile new file mode 100644 index 00000000000..bc01f16ab77 --- /dev/null +++ b/gemfiles/ruby_2.7_rack_latest.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 "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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_2.7_rack_latest.gemfile.lock b/gemfiles/ruby_2.7_rack_latest.gemfile.lock new file mode 100644 index 00000000000..66e7191a80a --- /dev/null +++ b/gemfiles/ruby_2.7_rack_latest.gemfile.lock @@ -0,0 +1,192 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.0_rack_latest.gemfile b/gemfiles/ruby_3.0_rack_latest.gemfile new file mode 100644 index 00000000000..2fe9a1ab990 --- /dev/null +++ b/gemfiles/ruby_3.0_rack_latest.gemfile @@ -0,0 +1,50 @@ +# 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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.0_rack_latest.gemfile.lock b/gemfiles/ruby_3.0_rack_latest.gemfile.lock new file mode 100644 index 00000000000..439e56e07ea --- /dev/null +++ b/gemfiles/ruby_3.0_rack_latest.gemfile.lock @@ -0,0 +1,194 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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.2) + +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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.1_rack_latest.gemfile b/gemfiles/ruby_3.1_rack_latest.gemfile new file mode 100644 index 00000000000..2fe9a1ab990 --- /dev/null +++ b/gemfiles/ruby_3.1_rack_latest.gemfile @@ -0,0 +1,50 @@ +# 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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.1_rack_latest.gemfile.lock b/gemfiles/ruby_3.1_rack_latest.gemfile.lock new file mode 100644 index 00000000000..439e56e07ea --- /dev/null +++ b/gemfiles/ruby_3.1_rack_latest.gemfile.lock @@ -0,0 +1,194 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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.2) + +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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.2_rack_latest.gemfile b/gemfiles/ruby_3.2_rack_latest.gemfile new file mode 100644 index 00000000000..f1547c7765f --- /dev/null +++ b/gemfiles/ruby_3.2_rack_latest.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-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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.2_rack_latest.gemfile.lock b/gemfiles/ruby_3.2_rack_latest.gemfile.lock new file mode 100644 index 00000000000..693b231c0ae --- /dev/null +++ b/gemfiles/ruby_3.2_rack_latest.gemfile.lock @@ -0,0 +1,189 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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.2) + +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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.3_rack_latest.gemfile b/gemfiles/ruby_3.3_rack_latest.gemfile new file mode 100644 index 00000000000..f1547c7765f --- /dev/null +++ b/gemfiles/ruby_3.3_rack_latest.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-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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.3_rack_latest.gemfile.lock b/gemfiles/ruby_3.3_rack_latest.gemfile.lock new file mode 100644 index 00000000000..693b231c0ae --- /dev/null +++ b/gemfiles/ruby_3.3_rack_latest.gemfile.lock @@ -0,0 +1,189 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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.2) + +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 + rack + rack-contrib + rack-test + 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) + +BUNDLED WITH + 2.3.26 diff --git a/gemfiles/ruby_3.4_rack_latest.gemfile b/gemfiles/ruby_3.4_rack_latest.gemfile new file mode 100644 index 00000000000..ade15acb1ed --- /dev/null +++ b/gemfiles/ruby_3.4_rack_latest.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-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 "rack" +gem "rack-contrib" +gem "rack-test" + +group :check do + gem "ruby_memcheck", ">= 3" +end + +group :dev do + +end + +gemspec path: "../" diff --git a/gemfiles/ruby_3.4_rack_latest.gemfile.lock b/gemfiles/ruby_3.4_rack_latest.gemfile.lock new file mode 100644 index 00000000000..d6bca890608 --- /dev/null +++ b/gemfiles/ruby_3.4_rack_latest.gemfile.lock @@ -0,0 +1,201 @@ +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.2) + 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) + rack (3.1.7) + rack-contrib (2.5.0) + rack (< 4) + rack-test (2.1.0) + rack (>= 1.3) + 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) + 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 + rack + rack-contrib + rack-test + 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) + warning (~> 1) + webmock (>= 3.10.0) + webrick! + +BUNDLED WITH + 2.3.26 From 55f030d606e4527329927da80e3adaf3121ab329 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Wed, 25 Sep 2024 10:47:23 -0400 Subject: [PATCH 12/15] Retry apt-get install for memory-leaks config This configuration is frequently failing due to HTTP 503 error when installing valgrind. Retry the installation one time after a short break to see if this would make the configuration less flaky. --- .github/workflows/test-memory-leaks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-memory-leaks.yaml b/.github/workflows/test-memory-leaks.yaml index 95453a5d3a0..a80a55da14d 100644 --- a/.github/workflows/test-memory-leaks.yaml +++ b/.github/workflows/test-memory-leaks.yaml @@ -11,7 +11,7 @@ jobs: bundler-cache: true # runs 'bundle install' and caches installed gems automatically bundler: latest cache-version: v1 # bump this to invalidate cache - - run: sudo apt update && sudo apt install -y valgrind && valgrind --version + - run: sudo apt-get update && (sudo apt-get install -y valgrind || sleep 5 && sudo apt-get install -y valgrind) && valgrind --version - run: bundle exec rake compile spec:profiling:memcheck test-asan: # Temporarily disabled on 2024-09-17 until ruby-asan builds are available again on From f45b80523db47c6935370f3ec53352070e8f79ef Mon Sep 17 00:00:00 2001 From: Tony Hsu Date: Wed, 25 Sep 2024 17:23:32 +0200 Subject: [PATCH 13/15] Skip appsec:rack --- Matrixfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Matrixfile b/Matrixfile index fd758cc1db2..7808ba72551 100644 --- a/Matrixfile +++ b/Matrixfile @@ -258,7 +258,7 @@ 'redis-5' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby' }, 'appsec:rack' => { - 'rack-latest' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', + # 'rack-latest' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', 'rack-3' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', 'rack-2' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ jruby', # Non-deprecated form of Regexp.new does not backport to Rack 1.x, see: https://github.com/rack/rack/pull/1998 From b8e4ea8f28d30fef26f93663824df87c45be9929 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Wed, 25 Sep 2024 12:55:33 -0400 Subject: [PATCH 14/15] run ci From bcca296e5875a6d3e7e7320f2a64ccf77a01ed66 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev <156273877+p-datadog@users.noreply.github.com> Date: Thu, 26 Sep 2024 09:42:21 -0400 Subject: [PATCH 15/15] DEBUG-2334 run all existing DI tests only on supported configurations (#3955) Dynamic instrumentation will not work on Ruby 2.5 and JRuby. Some unit tests will pass on those configurations, but there is no reason to run them there because they run on all of the supported configurations already. Co-authored-by: Oleg Pudeyev --- spec/datadog/di/probe_builder_spec.rb | 3 +++ spec/datadog/di/probe_spec.rb | 3 +++ 2 files changed, 6 insertions(+) diff --git a/spec/datadog/di/probe_builder_spec.rb b/spec/datadog/di/probe_builder_spec.rb index 0a8e7609bd3..f81c0f34ff3 100644 --- a/spec/datadog/di/probe_builder_spec.rb +++ b/spec/datadog/di/probe_builder_spec.rb @@ -1,6 +1,9 @@ +require "datadog/di/spec_helper" require "datadog/di/probe_builder" RSpec.describe Datadog::DI::ProbeBuilder do + di_test + describe ".build_from_remote_config" do let(:probe) do described_class.build_from_remote_config(rc_probe_spec) diff --git a/spec/datadog/di/probe_spec.rb b/spec/datadog/di/probe_spec.rb index e37832ac46e..e0c78aa0723 100644 --- a/spec/datadog/di/probe_spec.rb +++ b/spec/datadog/di/probe_spec.rb @@ -1,6 +1,9 @@ +require "datadog/di/spec_helper" require "datadog/di/probe" RSpec.describe Datadog::DI::Probe do + di_test + shared_context "method probe" do let(:probe) do described_class.new(id: "42", type: "foo", type_name: "Foo", method_name: "bar")