Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[NO-TICKET] Bootstrap Ruby 3.4.0-preview1 image for early testing
**What does this PR do?** This PR does the minimal amount of work to enable us to start tackling Ruby 3.4 testing. There's a number of tests failing just in the core test suite: ``` 4328 examples, 15 failures, 48 pending Failed examples: rspec ./spec/datadog/core/utils/safe_dup_spec.rb:49 # Datadog::Core::Utils::SafeDup String .frozen_dup when given a string returns a frozen duplicate rspec ./spec/datadog/core/utils/safe_dup_spec.rb:20 # Datadog::Core::Utils::SafeDup String .frozen_or_dup when given a string returns a non-frozen dupliacte rspec ./spec/datadog/core/error_spec.rb:87 # Datadog::Core::Error.build_from with an exception with a cause reports nested errors rspec ./spec/datadog/core/telemetry/event_spec.rb:31 # Datadog::Core::Telemetry::Event AppStarted is expected to match {:products=>{:appsec=>{:enabled=>false}, :profiler=>{:enabled=>false, :error=>#<RSpec::Mocks::ArgumentMatchers::AnyArgMatcher:0x0000705250507db0>}}, :configuration=>[{:name=>"DD_AGENT_HOST", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"1.2.3.4"}, {:name=>"DD_AGENT_TRANSPORT", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"TCP"}, {:name=>"DD_TRACE_SAMPLE_RATE", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"0.5"}, {:name=>"DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>true}, {:name=>"DD_TRACE_PEER_SERVICE_MAPPING", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"foo:bar"}, {:name=>"logger.level", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>0}, {:name=>"profiling.advanced.code_provenance_enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>true}, {:name=>"profiling.advanced.endpoint.collection.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>true}, {:name=>"profiling.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"runtime_metrics.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"tracing.analytics.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>true}, {:name=>"tracing.propagation_style_extract", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"[\"datadog\", \"tracecontext\"]"}, {:name=>"tracing.propagation_style_inject", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"[\"datadog\", \"tracecontext\"]"}, {:name=>"tracing.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>true}, {:name=>"tracing.log_injection", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>true}, {:name=>"tracing.partial_flush.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"tracing.partial_flush.min_spans_threshold", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>500}, {:name=>"tracing.report_hostname", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"tracing.sampling.rate_limit", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>100}, {:name=>"tracing.auto_instrument.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"tracing.writer_options.buffer_size", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>123}, {:name=>"tracing.writer_options.flush_interval", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>456}, {:name=>"tracing.opentelemetry.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"logger.instance", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>"MyLogger"}, {:name=>"appsec.enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}, {:name=>"appsec.sca_enabled", :origin=>"code", :seq_id=>#<Double "seq_id">, :value=>false}], :install_signature=>{:install_id=>"id", :install_time=>"time", :install_type=>"type"}} rspec ./spec/datadog/tracing/remote_spec.rb:33 # Datadog::Tracing::Remote#process_config with an empty content sets errored apply state rspec ./spec/datadog/release_gem_spec.rb:8 # gem release process datadog.gemspec files includes all important files rspec ./spec/datadog/core/environment/execution_spec.rb:69 # Datadog::Core::Environment::Execution.development? when not in an RSpec test when in a Pry session returns true rspec ./spec/datadog/tracing/trace_segment_spec.rb:207 # Datadog::Tracing::TraceSegment::new given tags :origin is expected to have attributes {:origin => (be a copy of "synthetics")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:230 # Datadog::Tracing::TraceSegment::new given tags :resource is expected to have attributes {:resource => (be a copy of "generate_report")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:200 # Datadog::Tracing::TraceSegment::new given tags :name is expected to have attributes {:name => (be a copy of "job.work")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:276 # Datadog::Tracing::TraceSegment::new given tags :service is expected to have attributes {:service => (be a copy of "job-worker")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:150 # Datadog::Tracing::TraceSegment::new given arguments :service is expected to have attributes {:service => (be a copy of "job-worker")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:87 # Datadog::Tracing::TraceSegment::new given arguments :name is expected to have attributes {:name => (be a copy of "job.work")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:94 # Datadog::Tracing::TraceSegment::new given arguments :origin is expected to have attributes {:origin => (be a copy of "synthetics")} rspec ./spec/datadog/tracing/trace_segment_spec.rb:115 # Datadog::Tracing::TraceSegment::new given arguments :resource is expected to have attributes {:resource => (be a copy of "generate_report")} ``` **Motivation:** Start working on supporting Ruby 3.4. **Additional Notes:** We'll need to later do the full onboarding: add appraisals, integration apps, write up CI, etc (e.g. see #2863 as inspiration). **How to test the change?** This change only affects testing. You can use `docker-compose run --rm tracer-3.4 /bin/bash --init-file .config` to start experimenting with Ruby 3.4.
- Loading branch information