-
Notifications
You must be signed in to change notification settings - Fork 375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NO-TICKET] Bootstrap Ruby 3.4.0-preview1 image for early testing #3711
Conversation
**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.
Note: I'll need to publish the images (https://github.com/DataDog/dd-trace-rb/blob/master/.circleci/images/primary/README.md#publishing-updates-to-images) before you can run with 3.4 in docker -- I built the image locally for my own testing. |
Triggered github action to build Ruby 3.4 image: https://github.com/DataDog/dd-trace-rb/actions/runs/9485896901 |
&& mv /tmp/docker/* /usr/bin \ | ||
&& rm -rf /tmp/docker /tmp/docker.tgz \ | ||
&& which docker \ | ||
&& (docker version || true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why || true
for docker version
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question... We've been copy-pasting this all the way from #434 . It's possible it hasn't been needed for a long time...
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:
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.