ddtrace 0.43.0 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +148 -130
  3. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  4. data/.github/workflows/add-milestone-to-pull-requests.yml +1 -1
  5. data/.simplecov +4 -1
  6. data/Appraisals +215 -14
  7. data/CHANGELOG.md +1048 -377
  8. data/Gemfile +4 -2
  9. data/README.md +1 -0
  10. data/Rakefile +172 -6
  11. data/ddtrace.gemspec +6 -8
  12. data/docker-compose.yml +30 -0
  13. data/docs/GettingStarted.md +112 -14
  14. data/lib/ddtrace.rb +8 -0
  15. data/lib/ddtrace/auto_instrument.rb +3 -0
  16. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  17. data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
  18. data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
  19. data/lib/ddtrace/contrib/action_view/event.rb +0 -4
  20. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  21. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  22. data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
  23. data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
  24. data/lib/ddtrace/contrib/active_record/utils.rb +67 -21
  25. data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
  26. data/lib/ddtrace/contrib/auto_instrument.rb +48 -0
  27. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  28. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +2 -0
  29. data/lib/ddtrace/contrib/cucumber/integration.rb +5 -0
  30. data/lib/ddtrace/contrib/ethon/easy_patch.rb +6 -5
  31. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  32. data/lib/ddtrace/contrib/extensions.rb +27 -1
  33. data/lib/ddtrace/contrib/grape/endpoint.rb +29 -11
  34. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  35. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  36. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  37. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +152 -0
  38. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  39. data/lib/ddtrace/contrib/httpclient/patcher.rb +35 -0
  40. data/lib/ddtrace/contrib/httprb/instrumentation.rb +1 -1
  41. data/lib/ddtrace/contrib/patchable.rb +18 -7
  42. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  43. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  44. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  45. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  46. data/lib/ddtrace/contrib/qless/qless_job.rb +72 -0
  47. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +32 -0
  48. data/lib/ddtrace/contrib/rack/integration.rb +7 -0
  49. data/lib/ddtrace/contrib/rack/middlewares.rb +1 -1
  50. data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
  51. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  52. data/lib/ddtrace/contrib/rails/utils.rb +4 -0
  53. data/lib/ddtrace/contrib/rake/integration.rb +1 -1
  54. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +3 -1
  55. data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
  56. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  57. data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
  58. data/lib/ddtrace/contrib/redis/quantize.rb +27 -0
  59. data/lib/ddtrace/contrib/redis/tags.rb +5 -1
  60. data/lib/ddtrace/contrib/rspec/integration.rb +5 -0
  61. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +2 -2
  62. data/lib/ddtrace/ext/ci.rb +42 -10
  63. data/lib/ddtrace/ext/git.rb +0 -1
  64. data/lib/ddtrace/propagation/http_propagator.rb +17 -2
  65. data/lib/ddtrace/version.rb +1 -1
  66. data/lib/ddtrace/workers/runtime_metrics.rb +7 -3
  67. metadata +91 -20
data/Gemfile CHANGED
@@ -2,6 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- # Add debugger for pry that's compatible with 0.10.4
6
- gem 'pry-nav', git: 'https://github.com/nixme/pry-nav.git', branch: 'master'
5
+ if RUBY_VERSION >= '3.0.0'
6
+ gem 'webrick', '>= 1.7.0' # No longer bundled by default since Ruby 3.0
7
+ end
8
+
7
9
  # This file was generated by Appraisal
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Datadog Trace Client
2
2
 
3
3
  [![CircleCI](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master.svg?style=svg&circle-token=b0bd5ef866ec7f7b018f48731bb495f2d1372cc1)](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master)
4
+ [![codecov](https://codecov.io/gh/DataDog/dd-trace-rb/branch/master/graph/badge.svg)](https://app.codecov.io/gh/DataDog/dd-trace-rb/branch/master)
4
5
 
5
6
  ``ddtrace`` is Datadog’s tracing client for Ruby. It is used to trace requests as they flow across web servers,
6
7
  databases and microservices so that developers have great visiblity into bottlenecks and troublesome requests.
data/Rakefile CHANGED
@@ -17,7 +17,8 @@ namespace :spec do
17
17
 
18
18
  RSpec::Core::RakeTask.new(:main) do |t, args|
19
19
  t.pattern = 'spec/**/*_spec.rb'
20
- t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry}/**/*_spec.rb'
20
+ t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry,auto_instrument}/**/*_spec.rb,'\
21
+ ' spec/**/auto_instrument_spec.rb'
21
22
  t.rspec_opts = args.to_a.join(' ')
22
23
  end
23
24
 
@@ -38,7 +39,7 @@ namespace :spec do
38
39
 
39
40
  RSpec::Core::RakeTask.new(:rails) do |t, args|
40
41
  t.pattern = 'spec/ddtrace/contrib/rails/**/*_spec.rb'
41
- t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{active_job,disable_env,redis_cache}*_spec.rb'
42
+ t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{active_job,disable_env,redis_cache,auto_instrument}*_spec.rb'
42
43
  t.rspec_opts = args.to_a.join(' ')
43
44
  end
44
45
 
@@ -57,6 +58,16 @@ namespace :spec do
57
58
  t.rspec_opts = args.to_a.join(' ')
58
59
  end
59
60
 
61
+ RSpec::Core::RakeTask.new(:railsautoinstrument) do |t, args|
62
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*auto_instrument*_spec.rb'
63
+ t.rspec_opts = args.to_a.join(' ')
64
+ end
65
+
66
+ RSpec::Core::RakeTask.new(:autoinstrument) do |t, args|
67
+ t.pattern = 'spec/ddtrace/auto_instrument_spec.rb'
68
+ t.rspec_opts = args.to_a.join(' ')
69
+ end
70
+
60
71
  RSpec::Core::RakeTask.new(:contrib) do |t, args|
61
72
  contrib_paths = [
62
73
  'analytics',
@@ -96,11 +107,13 @@ namespace :spec do
96
107
  :graphql,
97
108
  :grpc,
98
109
  :http,
110
+ :httpclient,
99
111
  :httprb,
100
112
  :kafka,
101
113
  :mongodb,
102
114
  :mysql2,
103
115
  :presto,
116
+ :qless,
104
117
  :que,
105
118
  :racecar,
106
119
  :rack,
@@ -219,6 +232,7 @@ task :ci do
219
232
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
220
233
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
221
234
  declare 'bundle exec appraisal contrib-old rake spec:active_support'
235
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
222
236
  declare 'bundle exec appraisal contrib-old rake spec:aws'
223
237
  declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
224
238
  declare 'bundle exec appraisal contrib-old rake spec:dalli'
@@ -228,6 +242,7 @@ task :ci do
228
242
  declare 'bundle exec appraisal contrib-old rake spec:excon'
229
243
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
230
244
  declare 'bundle exec appraisal contrib-old rake spec:http'
245
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
231
246
  declare 'bundle exec appraisal contrib-old rake spec:httprb'
232
247
  declare 'bundle exec appraisal contrib-old rake spec:mongodb'
233
248
  declare 'bundle exec appraisal contrib-old rake spec:mysql2'
@@ -245,10 +260,12 @@ task :ci do
245
260
  # Rails minitests
246
261
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
247
262
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
263
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
248
264
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
249
265
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
250
266
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
251
267
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
268
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
252
269
  # Rails specs
253
270
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
254
271
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -274,6 +291,7 @@ task :ci do
274
291
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
275
292
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
276
293
  declare 'bundle exec appraisal contrib-old rake spec:active_support'
294
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
277
295
  declare 'bundle exec appraisal contrib-old rake spec:aws'
278
296
  declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
279
297
  declare 'bundle exec appraisal contrib-old rake spec:dalli'
@@ -283,6 +301,7 @@ task :ci do
283
301
  declare 'bundle exec appraisal contrib-old rake spec:excon'
284
302
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
285
303
  declare 'bundle exec appraisal contrib-old rake spec:http'
304
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
286
305
  declare 'bundle exec appraisal contrib-old rake spec:httprb'
287
306
  declare 'bundle exec appraisal contrib-old rake spec:kafka'
288
307
  declare 'bundle exec appraisal contrib-old rake spec:mongodb'
@@ -302,14 +321,17 @@ task :ci do
302
321
  # Rails minitests
303
322
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
304
323
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
324
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
305
325
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
306
326
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
307
327
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
308
328
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
329
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
309
330
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
310
331
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
311
332
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
312
333
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
334
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
313
335
  # Rails specs
314
336
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
315
337
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -338,6 +360,7 @@ task :ci do
338
360
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
339
361
  declare 'bundle exec appraisal contrib rake spec:active_record'
340
362
  declare 'bundle exec appraisal contrib rake spec:active_support'
363
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
341
364
  declare 'bundle exec appraisal contrib rake spec:aws'
342
365
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
343
366
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -350,11 +373,13 @@ task :ci do
350
373
  declare 'bundle exec appraisal contrib rake spec:graphql'
351
374
  declare 'bundle exec appraisal contrib rake spec:grpc'
352
375
  declare 'bundle exec appraisal contrib rake spec:http'
376
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
353
377
  declare 'bundle exec appraisal contrib rake spec:httprb'
354
378
  declare 'bundle exec appraisal contrib rake spec:kafka'
355
379
  declare 'bundle exec appraisal contrib rake spec:mongodb'
356
380
  declare 'bundle exec appraisal contrib rake spec:mysql2'
357
381
  declare 'bundle exec appraisal contrib rake spec:presto'
382
+ declare 'bundle exec appraisal contrib rake spec:qless'
358
383
  declare 'bundle exec appraisal contrib rake spec:que'
359
384
  declare 'bundle exec appraisal contrib rake spec:racecar'
360
385
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -373,14 +398,17 @@ task :ci do
373
398
  # Rails minitests
374
399
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
375
400
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
401
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
376
402
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
377
403
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
378
404
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
379
405
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
406
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
380
407
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
381
408
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
382
409
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
383
410
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
411
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
384
412
  declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
385
413
  declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
386
414
  declare 'bundle exec appraisal rails5-postgres rake test:rails'
@@ -388,6 +416,7 @@ task :ci do
388
416
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
389
417
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
390
418
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
419
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
391
420
  # Rails specs
392
421
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
393
422
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -413,6 +442,7 @@ task :ci do
413
442
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
414
443
  declare 'bundle exec appraisal contrib rake spec:active_record'
415
444
  declare 'bundle exec appraisal contrib rake spec:active_support'
445
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
416
446
  declare 'bundle exec appraisal contrib rake spec:aws'
417
447
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
418
448
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -425,6 +455,7 @@ task :ci do
425
455
  declare 'bundle exec appraisal contrib rake spec:graphql'
426
456
  declare 'bundle exec appraisal contrib rake spec:grpc'
427
457
  declare 'bundle exec appraisal contrib rake spec:http'
458
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
428
459
  declare 'bundle exec appraisal contrib rake spec:httprb'
429
460
  declare 'bundle exec appraisal contrib rake spec:kafka'
430
461
  declare 'bundle exec appraisal contrib rake spec:mongodb'
@@ -450,14 +481,17 @@ task :ci do
450
481
  # Rails minitests
451
482
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
452
483
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
484
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
453
485
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
454
486
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
455
487
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
456
488
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
489
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
457
490
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
458
491
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
459
492
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
460
493
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
494
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
461
495
  declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
462
496
  declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
463
497
  declare 'bundle exec appraisal rails5-postgres rake test:rails'
@@ -465,6 +499,7 @@ task :ci do
465
499
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
466
500
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
467
501
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
502
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
468
503
  # Rails specs
469
504
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
470
505
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -495,6 +530,7 @@ task :ci do
495
530
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
496
531
  declare 'bundle exec appraisal contrib rake spec:active_record'
497
532
  declare 'bundle exec appraisal contrib rake spec:active_support'
533
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
498
534
  declare 'bundle exec appraisal contrib rake spec:aws'
499
535
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
500
536
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -507,6 +543,7 @@ task :ci do
507
543
  declare 'bundle exec appraisal contrib rake spec:graphql'
508
544
  declare 'bundle exec appraisal contrib rake spec:grpc'
509
545
  declare 'bundle exec appraisal contrib rake spec:http'
546
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
510
547
  declare 'bundle exec appraisal contrib rake spec:httprb'
511
548
  declare 'bundle exec appraisal contrib rake spec:kafka'
512
549
  declare 'bundle exec appraisal contrib rake spec:mongodb'
@@ -537,6 +574,7 @@ task :ci do
537
574
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
538
575
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
539
576
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
577
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
540
578
  # Rails specs
541
579
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
542
580
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
@@ -564,6 +602,7 @@ task :ci do
564
602
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
565
603
  declare 'bundle exec appraisal contrib rake spec:active_record'
566
604
  declare 'bundle exec appraisal contrib rake spec:active_support'
605
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
567
606
  declare 'bundle exec appraisal contrib rake spec:aws'
568
607
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
569
608
  declare 'bundle exec appraisal contrib rake spec:cucumber'
@@ -577,11 +616,13 @@ task :ci do
577
616
  declare 'bundle exec appraisal contrib rake spec:graphql'
578
617
  declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
579
618
  declare 'bundle exec appraisal contrib rake spec:http'
619
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
580
620
  declare 'bundle exec appraisal contrib rake spec:httprb'
581
621
  declare 'bundle exec appraisal contrib rake spec:kafka'
582
622
  declare 'bundle exec appraisal contrib rake spec:mongodb'
583
623
  declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
584
624
  declare 'bundle exec appraisal contrib rake spec:presto'
625
+ declare 'bundle exec appraisal contrib rake spec:qless'
585
626
  declare 'bundle exec appraisal contrib rake spec:que'
586
627
  declare 'bundle exec appraisal contrib rake spec:racecar'
587
628
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -607,19 +648,29 @@ task :ci do
607
648
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
608
649
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
609
650
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
651
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
610
652
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
611
653
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
612
654
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
613
655
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
614
656
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
615
657
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
658
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
616
659
  # Rails specs
617
660
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
618
661
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
619
662
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
620
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
663
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
621
664
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
622
665
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
666
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
667
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
668
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
669
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
670
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
671
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
672
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
673
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
623
674
 
624
675
  # explicitly test resque-2x compatability
625
676
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
@@ -646,6 +697,7 @@ task :ci do
646
697
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
647
698
  declare 'bundle exec appraisal contrib rake spec:active_record'
648
699
  declare 'bundle exec appraisal contrib rake spec:active_support'
700
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
649
701
  declare 'bundle exec appraisal contrib rake spec:aws'
650
702
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
651
703
  declare 'bundle exec appraisal contrib rake spec:cucumber'
@@ -659,11 +711,13 @@ task :ci do
659
711
  declare 'bundle exec appraisal contrib rake spec:graphql'
660
712
  declare 'bundle exec appraisal contrib rake spec:grpc'
661
713
  declare 'bundle exec appraisal contrib rake spec:http'
714
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
662
715
  declare 'bundle exec appraisal contrib rake spec:httprb'
663
716
  declare 'bundle exec appraisal contrib rake spec:kafka'
664
717
  declare 'bundle exec appraisal contrib rake spec:mongodb'
665
718
  declare 'bundle exec appraisal contrib rake spec:mysql2'
666
719
  declare 'bundle exec appraisal contrib rake spec:presto'
720
+ declare 'bundle exec appraisal contrib rake spec:qless'
667
721
  declare 'bundle exec appraisal contrib rake spec:que'
668
722
  declare 'bundle exec appraisal contrib rake spec:racecar'
669
723
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -679,6 +733,7 @@ task :ci do
679
733
  declare 'bundle exec appraisal contrib rake spec:sneakers'
680
734
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
681
735
  declare 'bundle exec appraisal contrib rake spec:suite'
736
+
682
737
  # Contrib specs with old gem versions
683
738
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
684
739
  # Rails minitests
@@ -689,19 +744,29 @@ task :ci do
689
744
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
690
745
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
691
746
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
747
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
692
748
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
693
749
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
694
750
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
695
751
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
696
752
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
697
753
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
754
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
698
755
  # Rails specs
699
756
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
700
757
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
701
758
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
702
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
759
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
703
760
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
704
761
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
762
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
763
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
764
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
765
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
766
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
767
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
768
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
769
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
705
770
 
706
771
  # explicitly test resque-2x compatability
707
772
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
@@ -712,7 +777,8 @@ task :ci do
712
777
  declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
713
778
  declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
714
779
  end
715
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
780
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
781
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
716
782
  # Main library
717
783
  declare 'bundle exec rake test:main'
718
784
  declare 'bundle exec rake spec:main'
@@ -728,6 +794,7 @@ task :ci do
728
794
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
729
795
  declare 'bundle exec appraisal contrib rake spec:active_record'
730
796
  declare 'bundle exec appraisal contrib rake spec:active_support'
797
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
731
798
  declare 'bundle exec appraisal contrib rake spec:aws'
732
799
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
733
800
  declare 'bundle exec appraisal contrib rake spec:cucumber'
@@ -741,11 +808,13 @@ task :ci do
741
808
  declare 'bundle exec appraisal contrib rake spec:graphql'
742
809
  declare 'bundle exec appraisal contrib rake spec:grpc'
743
810
  declare 'bundle exec appraisal contrib rake spec:http'
811
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
744
812
  declare 'bundle exec appraisal contrib rake spec:httprb'
745
813
  declare 'bundle exec appraisal contrib rake spec:kafka'
746
814
  declare 'bundle exec appraisal contrib rake spec:mongodb'
747
815
  declare 'bundle exec appraisal contrib rake spec:mysql2'
748
816
  declare 'bundle exec appraisal contrib rake spec:presto'
817
+ declare 'bundle exec appraisal contrib rake spec:qless'
749
818
  declare 'bundle exec appraisal contrib rake spec:que'
750
819
  declare 'bundle exec appraisal contrib rake spec:racecar'
751
820
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -761,6 +830,7 @@ task :ci do
761
830
  declare 'bundle exec appraisal contrib rake spec:sneakers'
762
831
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
763
832
  declare 'bundle exec appraisal contrib rake spec:suite'
833
+
764
834
  # Contrib specs with old gem versions
765
835
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
766
836
  # Rails minitests
@@ -771,17 +841,99 @@ task :ci do
771
841
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
772
842
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
773
843
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
844
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
774
845
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
775
846
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
776
847
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
777
848
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
778
849
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
779
850
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
851
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
780
852
  # Rails specs
781
853
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
782
854
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
855
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
783
856
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
784
857
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
858
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
859
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
860
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
861
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
862
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
863
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
864
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
865
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
866
+
867
+ # explicitly test resque-2x compatability
868
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
869
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
870
+
871
+ # explicitly test cucumber compatibility
872
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
873
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
874
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
875
+ end
876
+ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
877
+ # Main library
878
+ declare 'bundle exec rake test:main'
879
+ declare 'bundle exec rake spec:main'
880
+ declare 'bundle exec rake spec:contrib'
881
+ declare 'bundle exec rake spec:opentracer'
882
+ declare 'bundle exec rake spec:opentelemetry'
883
+
884
+ if RUBY_PLATFORM != 'java'
885
+ # Contrib minitests
886
+ # Contrib specs
887
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
888
+ declare 'bundle exec appraisal contrib rake spec:action_view'
889
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
890
+ declare 'bundle exec appraisal contrib rake spec:active_record'
891
+ declare 'bundle exec appraisal contrib rake spec:active_support'
892
+ declare 'bundle exec appraisal contrib rake spec:aws'
893
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
894
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
895
+ declare 'bundle exec appraisal contrib rake spec:dalli'
896
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
897
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
898
+ declare 'bundle exec appraisal contrib rake spec:ethon'
899
+ declare 'bundle exec appraisal contrib rake spec:excon'
900
+ declare 'bundle exec appraisal contrib rake spec:faraday'
901
+ declare 'bundle exec appraisal contrib rake spec:grape'
902
+ declare 'bundle exec appraisal contrib rake spec:graphql'
903
+ # declare 'bundle exec appraisal contrib rake spec:grpc' # Pending https://github.com/protocolbuffers/protobuf/issues/7922
904
+ declare 'bundle exec appraisal contrib rake spec:http'
905
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
906
+ declare 'bundle exec appraisal contrib rake spec:httprb'
907
+ declare 'bundle exec appraisal contrib rake spec:kafka'
908
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
909
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
910
+ declare 'bundle exec appraisal contrib rake spec:presto'
911
+ declare 'bundle exec appraisal contrib rake spec:qless'
912
+ declare 'bundle exec appraisal contrib rake spec:que'
913
+ # declare 'bundle exec appraisal contrib rake spec:racecar' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
914
+ declare 'bundle exec appraisal contrib rake spec:rack'
915
+ declare 'bundle exec appraisal contrib rake spec:rake'
916
+ declare 'bundle exec appraisal contrib rake spec:redis'
917
+ declare 'bundle exec appraisal contrib rake spec:resque'
918
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
919
+ declare 'bundle exec appraisal contrib rake spec:rspec'
920
+ declare 'bundle exec appraisal contrib rake spec:sequel'
921
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
922
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
923
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
924
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
925
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
926
+ declare 'bundle exec appraisal contrib rake spec:suite'
927
+
928
+ # Rails
929
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
930
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
931
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
932
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
933
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
934
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
935
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
936
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
785
937
 
786
938
  # explicitly test resque-2x compatability
787
939
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
@@ -805,7 +957,13 @@ namespace :coverage do
805
957
 
806
958
  SimpleCov.collate resultset_files do
807
959
  coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
808
- formatter SimpleCov::Formatter::HTMLFormatter
960
+ if ENV['CI'] == 'true'
961
+ require 'codecov'
962
+ formatter SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter,
963
+ SimpleCov::Formatter::Codecov])
964
+ else
965
+ formatter SimpleCov::Formatter::HTMLFormatter
966
+ end
809
967
  end
810
968
  end
811
969
 
@@ -824,4 +982,12 @@ namespace :coverage do
824
982
  end
825
983
  end
826
984
 
985
+ namespace :changelog do
986
+ task :format do
987
+ require 'pimpmychangelog'
988
+
989
+ PimpMyChangelog::CLI.run!
990
+ end
991
+ end
992
+
827
993
  task default: :test