ddtrace 0.43.0 → 0.45.0

Sign up to get free protection for your applications and to get access to all the features.
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