ddtrace 0.35.2 → 0.40.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +59 -1
  3. data/.gitignore +2 -0
  4. data/.gitlab-ci.yml +27 -0
  5. data/.rubocop.yml +4 -0
  6. data/.simplecov +38 -0
  7. data/Appraisals +139 -12
  8. data/CHANGELOG.md +185 -1
  9. data/Rakefile +524 -464
  10. data/ddtrace.gemspec +6 -0
  11. data/docker-compose.yml +37 -2
  12. data/docs/DevelopmentGuide.md +16 -0
  13. data/docs/GettingStarted.md +192 -111
  14. data/lib/ddtrace.rb +4 -0
  15. data/lib/ddtrace/configuration.rb +36 -5
  16. data/lib/ddtrace/configuration/components.rb +4 -7
  17. data/lib/ddtrace/configuration/pin_setup.rb +3 -2
  18. data/lib/ddtrace/configuration/settings.rb +27 -3
  19. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +7 -2
  20. data/lib/ddtrace/contrib/action_cable/ext.rb +5 -2
  21. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +7 -2
  22. data/lib/ddtrace/contrib/action_pack/ext.rb +5 -2
  23. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +7 -2
  24. data/lib/ddtrace/contrib/action_view/ext.rb +5 -2
  25. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +7 -2
  26. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +5 -2
  27. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +7 -2
  28. data/lib/ddtrace/contrib/active_record/ext.rb +5 -2
  29. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -1
  30. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +7 -2
  31. data/lib/ddtrace/contrib/active_support/ext.rb +5 -2
  32. data/lib/ddtrace/contrib/active_support/notifications/event.rb +3 -1
  33. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -1
  34. data/lib/ddtrace/contrib/aws/configuration/settings.rb +7 -2
  35. data/lib/ddtrace/contrib/aws/ext.rb +5 -2
  36. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +5 -0
  37. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +9 -3
  38. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  39. data/lib/ddtrace/contrib/configuration/settings.rb +19 -0
  40. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +7 -2
  41. data/lib/ddtrace/contrib/dalli/ext.rb +5 -2
  42. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -5
  43. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +7 -2
  44. data/lib/ddtrace/contrib/delayed_job/ext.rb +5 -2
  45. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +7 -2
  46. data/lib/ddtrace/contrib/elasticsearch/ext.rb +5 -2
  47. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -2
  48. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +7 -2
  49. data/lib/ddtrace/contrib/ethon/ext.rb +5 -2
  50. data/lib/ddtrace/contrib/excon/configuration/settings.rb +7 -2
  51. data/lib/ddtrace/contrib/excon/ext.rb +5 -2
  52. data/lib/ddtrace/contrib/extensions.rb +39 -5
  53. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +7 -2
  54. data/lib/ddtrace/contrib/faraday/ext.rb +5 -2
  55. data/lib/ddtrace/contrib/faraday/middleware.rb +5 -3
  56. data/lib/ddtrace/contrib/faraday/patcher.rb +13 -5
  57. data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -3
  58. data/lib/ddtrace/contrib/grape/ext.rb +5 -2
  59. data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
  60. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +7 -2
  61. data/lib/ddtrace/contrib/graphql/ext.rb +5 -2
  62. data/lib/ddtrace/contrib/graphql/patcher.rb +6 -3
  63. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +7 -2
  64. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +1 -1
  65. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -3
  66. data/lib/ddtrace/contrib/grpc/ext.rb +5 -2
  67. data/lib/ddtrace/contrib/grpc/patcher.rb +1 -5
  68. data/lib/ddtrace/contrib/http/configuration/settings.rb +7 -2
  69. data/lib/ddtrace/contrib/http/ext.rb +5 -2
  70. data/lib/ddtrace/contrib/http/instrumentation.rb +12 -7
  71. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
  72. data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
  73. data/lib/ddtrace/contrib/httprb/instrumentation.rb +160 -0
  74. data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
  75. data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
  76. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +30 -0
  77. data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
  78. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
  79. data/lib/ddtrace/contrib/kafka/event.rb +51 -0
  80. data/lib/ddtrace/contrib/kafka/events.rb +44 -0
  81. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
  82. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
  83. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
  84. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
  85. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
  86. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
  87. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
  88. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
  89. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
  90. data/lib/ddtrace/contrib/kafka/ext.rb +41 -0
  91. data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
  92. data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
  93. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +7 -2
  94. data/lib/ddtrace/contrib/mongodb/ext.rb +5 -2
  95. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -2
  96. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +7 -2
  97. data/lib/ddtrace/contrib/mysql2/ext.rb +5 -2
  98. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -1
  99. data/lib/ddtrace/contrib/patcher.rb +14 -8
  100. data/lib/ddtrace/contrib/presto/configuration/settings.rb +7 -2
  101. data/lib/ddtrace/contrib/presto/ext.rb +5 -2
  102. data/lib/ddtrace/contrib/que/configuration/settings.rb +42 -0
  103. data/lib/ddtrace/contrib/que/ext.rb +30 -0
  104. data/lib/ddtrace/contrib/que/integration.rb +42 -0
  105. data/lib/ddtrace/contrib/que/patcher.rb +24 -0
  106. data/lib/ddtrace/contrib/que/tracer.rb +56 -0
  107. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +7 -2
  108. data/lib/ddtrace/contrib/racecar/events.rb +2 -0
  109. data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
  110. data/lib/ddtrace/contrib/racecar/ext.rb +6 -2
  111. data/lib/ddtrace/contrib/rack/configuration/settings.rb +7 -2
  112. data/lib/ddtrace/contrib/rack/ext.rb +5 -2
  113. data/lib/ddtrace/contrib/rack/middlewares.rb +17 -12
  114. data/lib/ddtrace/contrib/rails/configuration/settings.rb +10 -11
  115. data/lib/ddtrace/contrib/rails/ext.rb +6 -2
  116. data/lib/ddtrace/contrib/rails/framework.rb +52 -46
  117. data/lib/ddtrace/contrib/rails/integration.rb +1 -1
  118. data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
  119. data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
  120. data/lib/ddtrace/contrib/rails/patcher.rb +15 -0
  121. data/lib/ddtrace/contrib/rake/configuration/settings.rb +7 -3
  122. data/lib/ddtrace/contrib/rake/ext.rb +5 -2
  123. data/lib/ddtrace/contrib/redis/configuration/settings.rb +7 -2
  124. data/lib/ddtrace/contrib/redis/ext.rb +5 -2
  125. data/lib/ddtrace/contrib/redis/patcher.rb +1 -1
  126. data/lib/ddtrace/contrib/resque/configuration/settings.rb +7 -2
  127. data/lib/ddtrace/contrib/resque/ext.rb +5 -2
  128. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +7 -2
  129. data/lib/ddtrace/contrib/rest_client/ext.rb +5 -2
  130. data/lib/ddtrace/contrib/rest_client/request_patch.rb +2 -2
  131. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +7 -2
  132. data/lib/ddtrace/contrib/sequel/database.rb +1 -1
  133. data/lib/ddtrace/contrib/sequel/ext.rb +5 -2
  134. data/lib/ddtrace/contrib/sequel/utils.rb +19 -1
  135. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +7 -2
  136. data/lib/ddtrace/contrib/shoryuken/ext.rb +5 -2
  137. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +7 -2
  138. data/lib/ddtrace/contrib/sidekiq/ext.rb +6 -2
  139. data/lib/ddtrace/contrib/sidekiq/patcher.rb +8 -1
  140. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
  141. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +7 -2
  142. data/lib/ddtrace/contrib/sinatra/env.rb +5 -4
  143. data/lib/ddtrace/contrib/sinatra/ext.rb +5 -2
  144. data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -42
  145. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +50 -23
  146. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +32 -0
  147. data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
  148. data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
  149. data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
  150. data/lib/ddtrace/contrib/sneakers/tracer.rb +58 -0
  151. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +7 -2
  152. data/lib/ddtrace/contrib/sucker_punch/ext.rb +5 -2
  153. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +1 -1
  154. data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
  155. data/lib/ddtrace/environment.rb +17 -3
  156. data/lib/ddtrace/ext/diagnostics.rb +3 -0
  157. data/lib/ddtrace/ext/environment.rb +2 -0
  158. data/lib/ddtrace/ext/transport.rb +1 -0
  159. data/lib/ddtrace/logger.rb +1 -1
  160. data/lib/ddtrace/pin.rb +39 -15
  161. data/lib/ddtrace/pipeline/span_filter.rb +15 -15
  162. data/lib/ddtrace/runtime/metrics.rb +18 -4
  163. data/lib/ddtrace/sampler.rb +2 -0
  164. data/lib/ddtrace/span.rb +10 -0
  165. data/lib/ddtrace/tracer.rb +15 -8
  166. data/lib/ddtrace/transport/http.rb +15 -0
  167. data/lib/ddtrace/transport/http/adapters/net.rb +8 -0
  168. data/lib/ddtrace/transport/http/adapters/test.rb +6 -0
  169. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -0
  170. data/lib/ddtrace/transport/response.rb +11 -0
  171. data/lib/ddtrace/version.rb +2 -2
  172. data/lib/ddtrace/workers/async.rb +2 -2
  173. data/lib/ddtrace/workers/loop.rb +1 -1
  174. data/lib/ddtrace/workers/polling.rb +1 -1
  175. data/lib/ddtrace/workers/trace_writer.rb +3 -0
  176. data/lib/ddtrace/writer.rb +33 -12
  177. metadata +124 -4
@@ -2,6 +2,185 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.40.0] - 2020-09-08
6
+
7
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.40.0
8
+
9
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.39.0...v0.40.0
10
+
11
+ ### Added
12
+
13
+ - Rails `log_injection` option to auto enable log correlation (#1157)
14
+ - Que integration (#1141, #1146) (@hs-bguven)
15
+ - `Components#startup!` hook (#1151)
16
+ - Code coverage report (#1159)
17
+ - Every commit now has a `coverage` CI step that contains the code coverage report. This report can be found in the `Artifacts` tab of that CI step, under `coverage/index.html`.
18
+
19
+ ### Changed
20
+
21
+ - Use a single top level span for Racecar consumers (#1150) (@dasch)
22
+
23
+ ### Fixed
24
+
25
+ - Sinatra nested modular applications possibly leaking spans (#1035, #1145)
26
+
27
+ * **BREAKING** for nested modular Sinatra applications only:
28
+ ```ruby
29
+ class Nested < Sinatra::Base
30
+ end
31
+
32
+ class TopLevel < Sinatra::Base
33
+ use Nested # Nesting happens here
34
+ end
35
+ ```
36
+ * Non-breaking for classic applications nor modular non-nested applications.
37
+
38
+ Fixes issues introduced by #1015 (in 0.35.0), when we first introduced Sinatra support for modular applications.
39
+
40
+ The main issue we had to solve for modular support is how to handle nested applications, as only one application is actually responsible for handling the route. A naive implementation would cause the creation of nested `sinatra.request` spans, even for applications that did not handle the request. This is technically correct, as Sinatra is traversing that middleware, accruing overhead, but that does not aligned with our existing behavior of having a single `sinatra.request` span.
41
+
42
+ While trying to achieve backwards-compatibility, we had to resort to a solution that turned out brittle: `sinatra.request` spans had to start in one middleware level and finished it in another. This allowed us to only capture the `sinatra.request` for the matching route, and skip the non-matching one. This caused unexpected issues on some user setups, specially around Sinatra middleware that created spans in between the initialization and closure of `sinatra.request` spans.
43
+
44
+ This change now address these implementation issues by creating multiple `sinatra.request`, one for each traversed Sinatra application, even non-matching ones. This instrumentation is more correct, but at the cost of being a breaking change for nested modular applications.
45
+
46
+ Please see #1145 for more information, and example screenshots on how traces for affected applications will look like.
47
+
48
+ - Rack/Rails span error propagation with `rescue_from` (#1155, #1162)
49
+ - Prevent logger recursion during startup (#1158)
50
+ - Race condition on new worker classes (#1154)
51
+ - These classes represent future work, and not being used at the moment.
52
+
53
+ ### Refactored
54
+
55
+ - Run CI tests in parallel (#1156)
56
+ - Migrate minitest tests to RSpec (#1127, #1128, #1133, #1149, #1152, #1153)
57
+ - Improvements to test suite (#1134, #1148, #1163)
58
+ - Improvements to documentation (#1138)
59
+
60
+ ### Removed
61
+
62
+ - **Ruby 1.9 support ended, as it transitions from Maintenance to End-Of-Life (#1137)**
63
+ - GitLab status check when not applicable (#1160)
64
+ - Allows for PRs pass all status checks once again. Before this change, a `dd-gitlab/copy_to_s3` check would never leave the "Pending" status. This check tracks the deployment of a commit to an internal testing platform, which currently only happens on `master` branch or when manually triggered internally.
65
+
66
+ ## [0.39.0] - 2020-08-05
67
+
68
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.39.0
69
+
70
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...v0.39.0
71
+
72
+ ### Added
73
+
74
+ - JRuby 9.2 support (#1126)
75
+ - Sneakers integration (#1121) (@janz93)
76
+
77
+ ### Changed
78
+
79
+ - Consistent environment variables across languages (#1115)
80
+ - Default logger level from WARN to INFO (#1120) (@gingerlime)
81
+ - This change also reduces the startup environment log message to INFO level (#1104)
82
+
83
+ ### Fixed
84
+
85
+ - HTTP::StateError on error responses for http.rb (#1116, #1122) (@evan-waters)
86
+ - Startup log error when using the test adapter (#1125, #1131) (@benhutton)
87
+ - Warning message for Faraday < 1.0 (#1129) (@fledman, @tjwp)
88
+ - Propagate Rails error message to Rack span (#1124)
89
+
90
+ ### Refactored
91
+
92
+ - Improved ActiveRecord documentation (#1119)
93
+ - Improvements to test suite (#1105, #1118)
94
+
95
+ ## [0.38.0] - 2020-07-13
96
+
97
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.38.0
98
+
99
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0
100
+
101
+ ### Added
102
+
103
+ - http.rb integration (#529, #853)
104
+ - Kafka integration (#1070) (@tjwp)
105
+ - Span#set_tags (#1081) (@DocX)
106
+ - retry_count tag for Sidekiq jobs (#1089) (@elyalvarado)
107
+ - Startup environment log (#1104, #1109)
108
+ - DD_SITE and DD_API_KEY configuration (#1107)
109
+
110
+ ### Changed
111
+
112
+ - Auto instrument Faraday default connection (#1057)
113
+ - Sidekiq client middleware is now the same for client and server (#1099) (@drcapulet)
114
+ - Single pass SpanFilter (#1071) (@tjwp)
115
+
116
+ ### Fixed
117
+
118
+ - Ensure fatal exceptions are propagated (#1100)
119
+ - Respect child_of: option in Tracer#trace (#1082) (@DocX)
120
+ - Improve Writer thread safety (#1091) (@fledman)
121
+
122
+ ### Refactored
123
+
124
+ - Improvements to test suite (#1092, #1103)
125
+
126
+ ## [0.37.0] - 2020-06-24
127
+
128
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.37.0
129
+
130
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0
131
+
132
+ ### Refactored
133
+
134
+ - Documentation improvements regarding Datadog Agent defaults (#1074) (@cswatt)
135
+ - Improvements to test suite (#1043, #1051, #1062, #1075, #1076, #1086)
136
+
137
+ ### Removed
138
+
139
+ - **DEPRECATION**: Deprecate Contrib::Configuration::Settings#tracer= (#1072, #1079)
140
+ - The `tracer:` option is no longer supported for integration configuration. A deprecation warning will be issued when this option is used.
141
+ - Tracer instances are dynamically created when `ddtrace` is reconfigured (through `Datadog.configure{}` calls).
142
+
143
+ A reference to a tracer instance cannot be stored as it will be replaced by a new instance during reconfiguration.
144
+
145
+ Retrieving the global tracer instance, by invoking `Datadog.tracer`, is the only safe mechanism to acquire the active tracer instance.
146
+
147
+ Allowing an integration to set its tracer instance is effectively preventing that integration from dynamically retrieving the current active tracer in the future, thus causing it to record spans in a stale tracer instance. Spans recorded in a stale tracer instance will look disconnected from their parent context.
148
+
149
+ - **BREAKING**: Remove Pin#tracer= and DeprecatedPin#tracer= (#1073)
150
+ - The `Pin` and `DeprecatedPin` are internal tools used to provide more granular configuration for integrations.
151
+ - The APIs being removed are not public nor have been externally documented. The `DeprecatedPin` specifically has been considered deprecated since 0.20.0.
152
+ - This removal is a continuation of #1079 above, thus carrying the same rationale.
153
+
154
+ ### Migration
155
+
156
+ - Remove `tracer` argument provided to integrations (e.g. `c.use :rails, tracer: ...`).
157
+ - Remove `tracer` argument provided to `Pin` or `DeprecatedPin` initializers (e.g. `Pin.new(service, tracer: ...)`).
158
+ - If you require a custom tracer instance, use a global instance configuration:
159
+ ```ruby
160
+ Datadog.configure do |c|
161
+ c.tracer.instance = custom_tracer
162
+ end
163
+ ```
164
+
165
+ ## [0.36.0] - 2020-05-27
166
+
167
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.36.0
168
+
169
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0
170
+
171
+ ### Changed
172
+
173
+ - Prevent trace components from being re-initialized multiple times during setup (#1037)
174
+
175
+ ### Fixed
176
+
177
+ - Allow Rails patching if Railties are loaded (#993, #1054) (@mustela, @bheemreddy181, @vramaiah)
178
+ - Pin delegates to default tracer unless configured (#1041)
179
+
180
+ ### Refactored
181
+
182
+ - Improvements to test suite (#1027, #1031, #1045, #1046, #1047)
183
+
5
184
  ## [0.35.2] - 2020-05-08
6
185
 
7
186
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.2
@@ -1216,7 +1395,12 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
1216
1395
 
1217
1396
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
1218
1397
 
1219
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...master
1398
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.40.0...master
1399
+ [0.40.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.39.0...v0.40.0
1400
+ [0.39.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...v0.39.0
1401
+ [0.38.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0
1402
+ [0.37.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0
1403
+ [0.36.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0
1220
1404
  [0.35.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2
1221
1405
  [0.35.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.0...v0.35.1
1222
1406
  [0.35.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.34.2...v0.35.0
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ Dir.glob('tasks/*.rake').each { |r| import r }
11
11
  desc 'Run RSpec'
12
12
  # rubocop:disable Metrics/BlockLength
13
13
  namespace :spec do
14
- task all: [:main,
14
+ task all: [:main, :benchmark,
15
15
  :rails, :railsredis, :railsactivejob,
16
16
  :elasticsearch, :http, :redis, :sidekiq, :sinatra]
17
17
 
@@ -21,6 +21,11 @@ namespace :spec do
21
21
  t.rspec_opts = args.to_a.join(' ')
22
22
  end
23
23
 
24
+ RSpec::Core::RakeTask.new(:benchmark) do |t, args|
25
+ t.pattern = 'spec/ddtrace/benchmark/**/*_spec.rb'
26
+ t.rspec_opts = args.to_a.join(' ')
27
+ end
28
+
24
29
  RSpec::Core::RakeTask.new(:opentracer) do |t, args|
25
30
  t.pattern = 'spec/ddtrace/opentracer/**/*_spec.rb'
26
31
  t.rspec_opts = args.to_a.join(' ')
@@ -90,9 +95,12 @@ namespace :spec do
90
95
  :graphql,
91
96
  :grpc,
92
97
  :http,
98
+ :httprb,
99
+ :kafka,
93
100
  :mongodb,
94
101
  :mysql2,
95
102
  :presto,
103
+ :que,
96
104
  :racecar,
97
105
  :rack,
98
106
  :rake,
@@ -103,6 +111,7 @@ namespace :spec do
103
111
  :shoryuken,
104
112
  :sidekiq,
105
113
  :sinatra,
114
+ :sneakers,
106
115
  :sucker_punch,
107
116
  :suite
108
117
  ].each do |contrib|
@@ -116,7 +125,7 @@ end
116
125
  namespace :test do
117
126
  task all: [:main,
118
127
  :rails,
119
- :sidekiq, :monkey]
128
+ :monkey]
120
129
 
121
130
  Rake::TestTask.new(:main) do |t|
122
131
  t.libs << %w[test lib]
@@ -134,9 +143,6 @@ namespace :test do
134
143
  end
135
144
 
136
145
  [
137
- :grape,
138
- :sidekiq,
139
- :sucker_punch
140
146
  ].each do |contrib|
141
147
  Rake::TestTask.new(contrib) do |t|
142
148
  t.libs << %w[test lib]
@@ -178,6 +184,21 @@ task :'release:docs' => :docs do
178
184
  sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
179
185
  end
180
186
 
187
+ # Declare a command for execution.
188
+ # Jobs are parallelized if running in CI.
189
+ def declare(*args)
190
+ total_executors = ENV.key?('CIRCLE_NODE_TOTAL') ? ENV['CIRCLE_NODE_TOTAL'].to_i : nil
191
+ current_executor = ENV.key?('CIRCLE_NODE_INDEX') ? ENV['CIRCLE_NODE_INDEX'].to_i : nil
192
+
193
+ if total_executors && current_executor && total_executors > 1
194
+ @execution_count ||= 0
195
+ @execution_count += 1
196
+ sh(*args) if @execution_count % total_executors == current_executor
197
+ else
198
+ sh(*args)
199
+ end
200
+ end
201
+
181
202
  desc 'CI task; it runs all tests for current version of Ruby'
182
203
  task :ci do
183
204
  if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Datadog::VERSION::MINIMUM_RUBY_VERSION)
@@ -185,545 +206,584 @@ task :ci do
185
206
  elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
186
207
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
187
208
  # Main library
188
- sh 'bundle exec rake test:main'
189
- sh 'bundle exec rake spec:main'
190
- sh 'bundle exec rake spec:contrib'
209
+ declare 'bundle exec rake test:main'
210
+ declare 'bundle exec rake spec:main'
211
+ declare 'bundle exec rake spec:contrib'
212
+ # Benchmarks
213
+ declare 'bundle exec rake spec:benchmark'
191
214
 
192
215
  if RUBY_PLATFORM != 'java'
193
216
  # Contrib minitests
194
- sh 'bundle exec appraisal contrib-old rake test:monkey'
195
- sh 'bundle exec appraisal contrib-old rake test:sidekiq'
196
- sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
217
+ declare 'bundle exec appraisal contrib-old rake test:monkey'
197
218
  # Contrib specs
198
- sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
199
- sh 'bundle exec appraisal contrib-old rake spec:active_record'
200
- sh 'bundle exec appraisal contrib-old rake spec:active_support'
201
- sh 'bundle exec appraisal contrib-old rake spec:aws'
202
- sh 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
203
- sh 'bundle exec appraisal contrib-old rake spec:dalli'
204
- sh 'bundle exec appraisal contrib-old rake spec:delayed_job'
205
- sh 'bundle exec appraisal contrib-old rake spec:elasticsearch'
206
- sh 'bundle exec appraisal contrib-old rake spec:ethon'
207
- sh 'bundle exec appraisal contrib-old rake spec:excon'
208
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
209
- sh 'bundle exec appraisal contrib-old rake spec:http'
210
- sh 'bundle exec appraisal contrib-old rake spec:mongodb'
211
- sh 'bundle exec appraisal contrib-old rake spec:mysql2'
212
- sh 'bundle exec appraisal contrib-old rake spec:rack'
213
- sh 'bundle exec appraisal contrib-old rake spec:rake'
214
- sh 'bundle exec appraisal contrib-old rake spec:redis'
215
- sh 'bundle exec appraisal contrib-old rake spec:resque'
216
- sh 'bundle exec appraisal contrib-old rake spec:rest_client'
217
- sh 'bundle exec appraisal contrib-old rake spec:sequel'
218
- sh 'bundle exec appraisal contrib-old rake spec:sidekiq'
219
- sh 'bundle exec appraisal contrib-old rake spec:sinatra'
220
- sh 'bundle exec appraisal contrib-old rake spec:sucker_punch'
221
- sh 'bundle exec appraisal contrib-old rake spec:suite'
219
+ declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
220
+ declare 'bundle exec appraisal contrib-old rake spec:active_record'
221
+ declare 'bundle exec appraisal contrib-old rake spec:active_support'
222
+ declare 'bundle exec appraisal contrib-old rake spec:aws'
223
+ declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
224
+ declare 'bundle exec appraisal contrib-old rake spec:dalli'
225
+ declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
226
+ declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
227
+ declare 'bundle exec appraisal contrib-old rake spec:ethon'
228
+ declare 'bundle exec appraisal contrib-old rake spec:excon'
229
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
230
+ declare 'bundle exec appraisal contrib-old rake spec:http'
231
+ declare 'bundle exec appraisal contrib-old rake spec:httprb'
232
+ declare 'bundle exec appraisal contrib-old rake spec:mongodb'
233
+ declare 'bundle exec appraisal contrib-old rake spec:mysql2'
234
+ declare 'bundle exec appraisal contrib-old rake spec:rack'
235
+ declare 'bundle exec appraisal contrib-old rake spec:rake'
236
+ declare 'bundle exec appraisal contrib-old rake spec:redis'
237
+ declare 'bundle exec appraisal contrib-old rake spec:resque'
238
+ declare 'bundle exec appraisal contrib-old rake spec:rest_client'
239
+ declare 'bundle exec appraisal contrib-old rake spec:sequel'
240
+ declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
241
+ declare 'bundle exec appraisal contrib-old rake spec:sinatra'
242
+ declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
243
+ declare 'bundle exec appraisal contrib-old rake spec:suite'
222
244
  # Rails minitests
223
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
224
- sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
225
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
226
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
227
- sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
228
- sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
245
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
246
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
247
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
248
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
249
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
250
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
229
251
  # Rails specs
230
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
231
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
232
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
252
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
253
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
254
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
233
255
  # Rails suite specs
234
- sh 'bundle exec appraisal rails32-postgres rake spec:action_pack'
235
- sh 'bundle exec appraisal rails32-postgres rake spec:action_view'
236
- sh 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
237
- sh 'bundle exec appraisal rails32-postgres rake spec:active_support'
256
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
257
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
258
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
259
+ declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
238
260
  end
239
261
  elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
240
262
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
241
263
  # Main library
242
- sh 'bundle exec rake test:main'
243
- sh 'bundle exec rake spec:main'
244
- sh 'bundle exec rake spec:contrib'
245
- sh 'bundle exec rake spec:opentracer'
264
+ declare 'bundle exec rake test:main'
265
+ declare 'bundle exec rake spec:main'
266
+ declare 'bundle exec rake spec:contrib'
267
+ declare 'bundle exec rake spec:opentracer'
268
+ # Benchmarks
269
+ declare 'bundle exec rake spec:benchmark'
246
270
 
247
271
  if RUBY_PLATFORM != 'java'
248
272
  # Contrib minitests
249
- sh 'bundle exec appraisal contrib-old rake test:monkey'
250
- sh 'bundle exec appraisal contrib-old rake test:sidekiq'
251
- sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
273
+ declare 'bundle exec appraisal contrib-old rake test:monkey'
252
274
  # Contrib specs
253
- sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
254
- sh 'bundle exec appraisal contrib-old rake spec:active_record'
255
- sh 'bundle exec appraisal contrib-old rake spec:active_support'
256
- sh 'bundle exec appraisal contrib-old rake spec:aws'
257
- sh 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
258
- sh 'bundle exec appraisal contrib-old rake spec:dalli'
259
- sh 'bundle exec appraisal contrib-old rake spec:delayed_job'
260
- sh 'bundle exec appraisal contrib-old rake spec:elasticsearch'
261
- sh 'bundle exec appraisal contrib-old rake spec:ethon'
262
- sh 'bundle exec appraisal contrib-old rake spec:excon'
263
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
264
- sh 'bundle exec appraisal contrib-old rake spec:http'
265
- sh 'bundle exec appraisal contrib-old rake spec:mongodb'
266
- sh 'bundle exec appraisal contrib-old rake spec:mysql2'
267
- sh 'bundle exec appraisal contrib-old rake spec:presto'
268
- sh 'bundle exec appraisal contrib-old rake spec:rack'
269
- sh 'bundle exec appraisal contrib-old rake spec:rake'
270
- sh 'bundle exec appraisal contrib-old rake spec:redis'
271
- sh 'bundle exec appraisal contrib-old rake spec:resque'
272
- sh 'bundle exec appraisal contrib-old rake spec:rest_client'
273
- sh 'bundle exec appraisal contrib-old rake spec:sequel'
274
- sh 'bundle exec appraisal contrib-old rake spec:sidekiq'
275
- sh 'bundle exec appraisal contrib-old rake spec:sinatra'
276
- sh 'bundle exec appraisal contrib-old rake spec:sucker_punch'
277
- sh 'bundle exec appraisal contrib-old rake spec:suite'
275
+ declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
276
+ declare 'bundle exec appraisal contrib-old rake spec:active_record'
277
+ declare 'bundle exec appraisal contrib-old rake spec:active_support'
278
+ declare 'bundle exec appraisal contrib-old rake spec:aws'
279
+ declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
280
+ declare 'bundle exec appraisal contrib-old rake spec:dalli'
281
+ declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
282
+ declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
283
+ declare 'bundle exec appraisal contrib-old rake spec:ethon'
284
+ declare 'bundle exec appraisal contrib-old rake spec:excon'
285
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
286
+ declare 'bundle exec appraisal contrib-old rake spec:http'
287
+ declare 'bundle exec appraisal contrib-old rake spec:httprb'
288
+ declare 'bundle exec appraisal contrib-old rake spec:mongodb'
289
+ declare 'bundle exec appraisal contrib-old rake spec:mysql2'
290
+ declare 'bundle exec appraisal contrib-old rake spec:presto'
291
+ declare 'bundle exec appraisal contrib-old rake spec:rack'
292
+ declare 'bundle exec appraisal contrib-old rake spec:rake'
293
+ declare 'bundle exec appraisal contrib-old rake spec:redis'
294
+ declare 'bundle exec appraisal contrib-old rake spec:resque'
295
+ declare 'bundle exec appraisal contrib-old rake spec:rest_client'
296
+ declare 'bundle exec appraisal contrib-old rake spec:sequel'
297
+ declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
298
+ declare 'bundle exec appraisal contrib-old rake spec:sinatra'
299
+ declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
300
+ declare 'bundle exec appraisal contrib-old rake spec:suite'
278
301
  # Rails minitests
279
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
280
- sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
281
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
282
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
283
- sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
284
- sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
285
- sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
286
- sh 'bundle exec appraisal rails4-postgres rake test:rails'
287
- sh 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
288
- sh 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
302
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
303
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
304
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
305
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
306
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
307
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
308
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
309
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
310
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
311
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
289
312
  # Rails specs
290
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
291
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
292
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
293
- sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
294
- sh 'bundle exec appraisal rails4-postgres rake spec:rails'
313
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
314
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
315
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
316
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
317
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
295
318
  # Rails suite specs
296
- sh 'bundle exec appraisal rails32-postgres rake spec:action_pack'
297
- sh 'bundle exec appraisal rails32-postgres rake spec:action_view'
298
- sh 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
299
- sh 'bundle exec appraisal rails32-postgres rake spec:active_support'
319
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
320
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
321
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
322
+ declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
300
323
  end
301
324
  elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
302
325
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
303
326
  # Main library
304
- sh 'bundle exec rake test:main'
305
- sh 'bundle exec rake spec:main'
306
- sh 'bundle exec rake spec:contrib'
307
- sh 'bundle exec rake spec:opentracer'
327
+ declare 'bundle exec rake test:main'
328
+ declare 'bundle exec rake spec:main'
329
+ declare 'bundle exec rake spec:contrib'
330
+ declare 'bundle exec rake spec:opentracer'
331
+ # Benchmarks
332
+ declare 'bundle exec rake spec:benchmark'
308
333
 
309
334
  if RUBY_PLATFORM != 'java'
310
335
  # Contrib minitests
311
- sh 'bundle exec appraisal contrib rake test:grape'
312
- sh 'bundle exec appraisal contrib rake test:sidekiq'
313
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
314
336
  # Contrib specs
315
- sh 'bundle exec appraisal contrib rake spec:action_pack'
316
- sh 'bundle exec appraisal contrib rake spec:action_view'
317
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
318
- sh 'bundle exec appraisal contrib rake spec:active_record'
319
- sh 'bundle exec appraisal contrib rake spec:active_support'
320
- sh 'bundle exec appraisal contrib rake spec:aws'
321
- sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
322
- sh 'bundle exec appraisal contrib rake spec:dalli'
323
- sh 'bundle exec appraisal contrib rake spec:delayed_job'
324
- sh 'bundle exec appraisal contrib rake spec:elasticsearch'
325
- sh 'bundle exec appraisal contrib rake spec:ethon'
326
- sh 'bundle exec appraisal contrib rake spec:excon'
327
- sh 'bundle exec appraisal contrib rake spec:faraday'
328
- sh 'bundle exec appraisal contrib rake spec:grape'
329
- sh 'bundle exec appraisal contrib rake spec:graphql'
330
- sh 'bundle exec appraisal contrib rake spec:grpc'
331
- sh 'bundle exec appraisal contrib rake spec:http'
332
- sh 'bundle exec appraisal contrib rake spec:mongodb'
333
- sh 'bundle exec appraisal contrib rake spec:mysql2'
334
- sh 'bundle exec appraisal contrib rake spec:presto'
335
- sh 'bundle exec appraisal contrib rake spec:racecar'
336
- sh 'bundle exec appraisal contrib rake spec:rack'
337
- sh 'bundle exec appraisal contrib rake spec:rake'
338
- sh 'bundle exec appraisal contrib rake spec:redis'
339
- sh 'bundle exec appraisal contrib rake spec:resque'
340
- sh 'bundle exec appraisal contrib rake spec:rest_client'
341
- sh 'bundle exec appraisal contrib rake spec:sequel'
342
- sh 'bundle exec appraisal contrib rake spec:shoryuken'
343
- sh 'bundle exec appraisal contrib rake spec:sidekiq'
344
- sh 'bundle exec appraisal contrib rake spec:sinatra'
345
- sh 'bundle exec appraisal contrib rake spec:sucker_punch'
346
- sh 'bundle exec appraisal contrib rake spec:suite'
337
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
338
+ declare 'bundle exec appraisal contrib rake spec:action_view'
339
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
340
+ declare 'bundle exec appraisal contrib rake spec:active_record'
341
+ declare 'bundle exec appraisal contrib rake spec:active_support'
342
+ declare 'bundle exec appraisal contrib rake spec:aws'
343
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
344
+ declare 'bundle exec appraisal contrib rake spec:dalli'
345
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
346
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
347
+ declare 'bundle exec appraisal contrib rake spec:ethon'
348
+ declare 'bundle exec appraisal contrib rake spec:excon'
349
+ declare 'bundle exec appraisal contrib rake spec:faraday'
350
+ declare 'bundle exec appraisal contrib rake spec:grape'
351
+ declare 'bundle exec appraisal contrib rake spec:graphql'
352
+ declare 'bundle exec appraisal contrib rake spec:grpc'
353
+ declare 'bundle exec appraisal contrib rake spec:http'
354
+ declare 'bundle exec appraisal contrib rake spec:httprb'
355
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
356
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
357
+ declare 'bundle exec appraisal contrib rake spec:presto'
358
+ declare 'bundle exec appraisal contrib rake spec:que'
359
+ declare 'bundle exec appraisal contrib rake spec:racecar'
360
+ declare 'bundle exec appraisal contrib rake spec:rack'
361
+ declare 'bundle exec appraisal contrib rake spec:rake'
362
+ declare 'bundle exec appraisal contrib rake spec:redis'
363
+ declare 'bundle exec appraisal contrib rake spec:resque'
364
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
365
+ declare 'bundle exec appraisal contrib rake spec:sequel'
366
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
367
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
368
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
369
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
370
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
371
+ declare 'bundle exec appraisal contrib rake spec:suite'
347
372
  # Rails minitests
348
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
349
- sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
350
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
351
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
352
- sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
353
- sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
354
- sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
355
- sh 'bundle exec appraisal rails4-postgres rake test:rails'
356
- sh 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
357
- sh 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
358
- sh 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
359
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
360
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
361
- sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
362
- sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
363
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
364
- sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
373
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
374
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
375
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
376
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
377
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
378
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
379
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
380
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
381
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
382
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
383
+ declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
384
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
385
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
386
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
387
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
388
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
389
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
365
390
  # Rails specs
366
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
367
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
368
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
369
- sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
370
- sh 'bundle exec appraisal rails4-postgres rake spec:rails'
371
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
372
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
391
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
392
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
393
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
394
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
395
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
396
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
397
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
373
398
  end
374
399
  elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
375
400
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
376
401
  # Main library
377
- sh 'bundle exec rake test:main'
378
- sh 'bundle exec rake spec:main'
379
- sh 'bundle exec rake spec:contrib'
380
- sh 'bundle exec rake spec:opentracer'
402
+ declare 'bundle exec rake test:main'
403
+ declare 'bundle exec rake spec:main'
404
+ declare 'bundle exec rake spec:contrib'
405
+ declare 'bundle exec rake spec:opentracer'
406
+ # Benchmarks
407
+ declare 'bundle exec rake spec:benchmark'
381
408
 
382
409
  if RUBY_PLATFORM != 'java'
383
410
  # Contrib minitests
384
- sh 'bundle exec appraisal contrib rake test:grape'
385
- sh 'bundle exec appraisal contrib rake test:sidekiq'
386
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
387
411
  # Contrib specs
388
- sh 'bundle exec appraisal contrib rake spec:action_pack'
389
- sh 'bundle exec appraisal contrib rake spec:action_view'
390
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
391
- sh 'bundle exec appraisal contrib rake spec:active_record'
392
- sh 'bundle exec appraisal contrib rake spec:active_support'
393
- sh 'bundle exec appraisal contrib rake spec:aws'
394
- sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
395
- sh 'bundle exec appraisal contrib rake spec:dalli'
396
- sh 'bundle exec appraisal contrib rake spec:delayed_job'
397
- sh 'bundle exec appraisal contrib rake spec:elasticsearch'
398
- sh 'bundle exec appraisal contrib rake spec:ethon'
399
- sh 'bundle exec appraisal contrib rake spec:excon'
400
- sh 'bundle exec appraisal contrib rake spec:faraday'
401
- sh 'bundle exec appraisal contrib rake spec:grape'
402
- sh 'bundle exec appraisal contrib rake spec:graphql'
403
- sh 'bundle exec appraisal contrib rake spec:grpc'
404
- sh 'bundle exec appraisal contrib rake spec:http'
405
- sh 'bundle exec appraisal contrib rake spec:mongodb'
406
- sh 'bundle exec appraisal contrib rake spec:mysql2'
407
- sh 'bundle exec appraisal contrib rake spec:presto'
408
- sh 'bundle exec appraisal contrib rake spec:racecar'
409
- sh 'bundle exec appraisal contrib rake spec:rack'
410
- sh 'bundle exec appraisal contrib rake spec:rake'
411
- sh 'bundle exec appraisal contrib rake spec:redis'
412
- sh 'bundle exec appraisal contrib rake spec:resque'
413
- sh 'bundle exec appraisal contrib rake spec:rest_client'
414
- sh 'bundle exec appraisal contrib rake spec:sequel'
415
- sh 'bundle exec appraisal contrib rake spec:shoryuken'
416
- sh 'bundle exec appraisal contrib rake spec:sidekiq'
417
- sh 'bundle exec appraisal contrib rake spec:sinatra'
418
- sh 'bundle exec appraisal contrib rake spec:sucker_punch'
419
- sh 'bundle exec appraisal contrib rake spec:suite'
412
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
413
+ declare 'bundle exec appraisal contrib rake spec:action_view'
414
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
415
+ declare 'bundle exec appraisal contrib rake spec:active_record'
416
+ declare 'bundle exec appraisal contrib rake spec:active_support'
417
+ declare 'bundle exec appraisal contrib rake spec:aws'
418
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
419
+ declare 'bundle exec appraisal contrib rake spec:dalli'
420
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
421
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
422
+ declare 'bundle exec appraisal contrib rake spec:ethon'
423
+ declare 'bundle exec appraisal contrib rake spec:excon'
424
+ declare 'bundle exec appraisal contrib rake spec:faraday'
425
+ declare 'bundle exec appraisal contrib rake spec:grape'
426
+ declare 'bundle exec appraisal contrib rake spec:graphql'
427
+ declare 'bundle exec appraisal contrib rake spec:grpc'
428
+ declare 'bundle exec appraisal contrib rake spec:http'
429
+ declare 'bundle exec appraisal contrib rake spec:httprb'
430
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
431
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
432
+ declare 'bundle exec appraisal contrib rake spec:presto'
433
+ declare 'bundle exec appraisal contrib rake spec:que'
434
+ declare 'bundle exec appraisal contrib rake spec:racecar'
435
+ declare 'bundle exec appraisal contrib rake spec:rack'
436
+ declare 'bundle exec appraisal contrib rake spec:rake'
437
+ declare 'bundle exec appraisal contrib rake spec:redis'
438
+ declare 'bundle exec appraisal contrib rake spec:resque'
439
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
440
+ declare 'bundle exec appraisal contrib rake spec:sequel'
441
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
442
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
443
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
444
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
445
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
446
+ declare 'bundle exec appraisal contrib rake spec:suite'
420
447
  # Contrib specs with old gem versions
421
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
448
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
422
449
  # Rails minitests
423
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
424
- sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
425
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
426
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
427
- sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
428
- sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
429
- sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
430
- sh 'bundle exec appraisal rails4-postgres rake test:rails'
431
- sh 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
432
- sh 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
433
- sh 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
434
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
435
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
436
- sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
437
- sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
438
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
439
- sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
450
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
451
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
452
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
453
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
454
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
455
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
456
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
457
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
458
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
459
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
460
+ declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
461
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
462
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
463
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
464
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
465
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
466
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
440
467
  # Rails specs
441
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
442
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
443
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
444
- sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
445
- sh 'bundle exec appraisal rails4-postgres rake spec:rails'
446
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
447
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
468
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
469
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
470
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
471
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
472
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
473
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
474
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
448
475
  end
449
476
  elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
450
477
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
451
478
  # Main library
452
- sh 'bundle exec rake test:main'
453
- sh 'bundle exec rake spec:main'
454
- sh 'bundle exec rake spec:contrib'
455
- sh 'bundle exec rake spec:opentracer'
456
- sh 'bundle exec rake spec:opentelemetry'
479
+ declare 'bundle exec rake test:main'
480
+ declare 'bundle exec rake spec:main'
481
+ declare 'bundle exec rake spec:contrib'
482
+ declare 'bundle exec rake spec:opentracer'
483
+ declare 'bundle exec rake spec:opentelemetry'
484
+ # Benchmarks
485
+ declare 'bundle exec rake spec:benchmark'
457
486
 
458
487
  if RUBY_PLATFORM != 'java'
459
488
  # Benchmarks
460
- sh 'bundle exec rake benchmark'
489
+ declare 'bundle exec rake benchmark'
461
490
  # Contrib minitests
462
- sh 'bundle exec appraisal contrib rake test:grape'
463
- sh 'bundle exec appraisal contrib rake test:sidekiq'
464
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
465
491
  # Contrib specs
466
- sh 'bundle exec appraisal contrib rake spec:action_pack'
467
- sh 'bundle exec appraisal contrib rake spec:action_view'
468
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
469
- sh 'bundle exec appraisal contrib rake spec:active_record'
470
- sh 'bundle exec appraisal contrib rake spec:active_support'
471
- sh 'bundle exec appraisal contrib rake spec:aws'
472
- sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
473
- sh 'bundle exec appraisal contrib rake spec:dalli'
474
- sh 'bundle exec appraisal contrib rake spec:delayed_job'
475
- sh 'bundle exec appraisal contrib rake spec:elasticsearch'
476
- sh 'bundle exec appraisal contrib rake spec:ethon'
477
- sh 'bundle exec appraisal contrib rake spec:excon'
478
- sh 'bundle exec appraisal contrib rake spec:faraday'
479
- sh 'bundle exec appraisal contrib rake spec:grape'
480
- sh 'bundle exec appraisal contrib rake spec:graphql'
481
- sh 'bundle exec appraisal contrib rake spec:grpc'
482
- sh 'bundle exec appraisal contrib rake spec:http'
483
- sh 'bundle exec appraisal contrib rake spec:mongodb'
484
- sh 'bundle exec appraisal contrib rake spec:mysql2'
485
- sh 'bundle exec appraisal contrib rake spec:presto'
486
- sh 'bundle exec appraisal contrib rake spec:racecar'
487
- sh 'bundle exec appraisal contrib rake spec:rack'
488
- sh 'bundle exec appraisal contrib rake spec:rake'
489
- sh 'bundle exec appraisal contrib rake spec:redis'
490
- sh 'bundle exec appraisal contrib rake spec:resque'
491
- sh 'bundle exec appraisal contrib rake spec:rest_client'
492
- sh 'bundle exec appraisal contrib rake spec:sequel'
493
- sh 'bundle exec appraisal contrib rake spec:shoryuken'
494
- sh 'bundle exec appraisal contrib rake spec:sidekiq'
495
- sh 'bundle exec appraisal contrib rake spec:sinatra'
496
- sh 'bundle exec appraisal contrib rake spec:sucker_punch'
497
- sh 'bundle exec appraisal contrib rake spec:suite'
492
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
493
+ declare 'bundle exec appraisal contrib rake spec:action_view'
494
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
495
+ declare 'bundle exec appraisal contrib rake spec:active_record'
496
+ declare 'bundle exec appraisal contrib rake spec:active_support'
497
+ declare 'bundle exec appraisal contrib rake spec:aws'
498
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
499
+ declare 'bundle exec appraisal contrib rake spec:dalli'
500
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
501
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
502
+ declare 'bundle exec appraisal contrib rake spec:ethon'
503
+ declare 'bundle exec appraisal contrib rake spec:excon'
504
+ declare 'bundle exec appraisal contrib rake spec:faraday'
505
+ declare 'bundle exec appraisal contrib rake spec:grape'
506
+ declare 'bundle exec appraisal contrib rake spec:graphql'
507
+ declare 'bundle exec appraisal contrib rake spec:grpc'
508
+ declare 'bundle exec appraisal contrib rake spec:http'
509
+ declare 'bundle exec appraisal contrib rake spec:httprb'
510
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
511
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
512
+ declare 'bundle exec appraisal contrib rake spec:presto'
513
+ declare 'bundle exec appraisal contrib rake spec:que'
514
+ declare 'bundle exec appraisal contrib rake spec:racecar'
515
+ declare 'bundle exec appraisal contrib rake spec:rack'
516
+ declare 'bundle exec appraisal contrib rake spec:rake'
517
+ declare 'bundle exec appraisal contrib rake spec:redis'
518
+ declare 'bundle exec appraisal contrib rake spec:resque'
519
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
520
+ declare 'bundle exec appraisal contrib rake spec:sequel'
521
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
522
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
523
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
524
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
525
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
526
+ declare 'bundle exec appraisal contrib rake spec:suite'
498
527
  # Contrib specs with old gem versions
499
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
528
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
500
529
  # Rails minitests
501
530
  # We only test Rails 5+ because older versions require Bundler < 2.0
502
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
503
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
504
- sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
505
- sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
506
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
507
- sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
531
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
532
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
533
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
534
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
535
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
536
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
508
537
  # Rails specs
509
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
510
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
538
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
539
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
511
540
  end
512
541
  elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
513
542
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
514
543
  # Main library
515
- sh 'bundle exec rake test:main'
516
- sh 'bundle exec rake spec:main'
517
- sh 'bundle exec rake spec:contrib'
518
- sh 'bundle exec rake spec:opentracer'
519
- sh 'bundle exec rake spec:opentelemetry'
520
-
521
- if RUBY_PLATFORM != 'java'
522
- # Benchmarks
523
- sh 'bundle exec rake benchmark'
524
- # Contrib minitests
525
- sh 'bundle exec appraisal contrib rake test:grape'
526
- sh 'bundle exec appraisal contrib rake test:sidekiq'
527
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
528
- # Contrib specs
529
- sh 'bundle exec appraisal contrib rake spec:action_pack'
530
- sh 'bundle exec appraisal contrib rake spec:action_view'
531
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
532
- sh 'bundle exec appraisal contrib rake spec:active_record'
533
- sh 'bundle exec appraisal contrib rake spec:active_support'
534
- sh 'bundle exec appraisal contrib rake spec:aws'
535
- sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
536
- sh 'bundle exec appraisal contrib rake spec:dalli'
537
- sh 'bundle exec appraisal contrib rake spec:delayed_job'
538
- sh 'bundle exec appraisal contrib rake spec:elasticsearch'
539
- sh 'bundle exec appraisal contrib rake spec:ethon'
540
- sh 'bundle exec appraisal contrib rake spec:excon'
541
- sh 'bundle exec appraisal contrib rake spec:faraday'
542
- sh 'bundle exec appraisal contrib rake spec:grape'
543
- sh 'bundle exec appraisal contrib rake spec:graphql'
544
- sh 'bundle exec appraisal contrib rake spec:grpc'
545
- sh 'bundle exec appraisal contrib rake spec:http'
546
- sh 'bundle exec appraisal contrib rake spec:mongodb'
547
- sh 'bundle exec appraisal contrib rake spec:mysql2'
548
- sh 'bundle exec appraisal contrib rake spec:presto'
549
- sh 'bundle exec appraisal contrib rake spec:racecar'
550
- sh 'bundle exec appraisal contrib rake spec:rack'
551
- sh 'bundle exec appraisal contrib rake spec:rake'
552
- sh 'bundle exec appraisal contrib rake spec:redis'
553
- sh 'bundle exec appraisal contrib rake spec:resque'
554
- sh 'bundle exec appraisal contrib rake spec:rest_client'
555
- sh 'bundle exec appraisal contrib rake spec:sequel'
556
- sh 'bundle exec appraisal contrib rake spec:shoryuken'
557
- sh 'bundle exec appraisal contrib rake spec:sidekiq'
558
- sh 'bundle exec appraisal contrib rake spec:sinatra'
559
- sh 'bundle exec appraisal contrib rake spec:sucker_punch'
560
- sh 'bundle exec appraisal contrib rake spec:suite'
561
- # Contrib specs with old gem versions
562
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
563
- # Rails minitests
564
- # We only test Rails 5+ because older versions require Bundler < 2.0
565
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
566
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
567
- sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
568
- sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
569
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
570
- sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
571
- sh 'bundle exec appraisal rails6-mysql2 rake test:rails'
572
- sh 'bundle exec appraisal rails6-postgres rake test:rails'
573
- sh 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
574
- sh 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
575
- sh 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
576
- sh 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
577
- # Rails specs
578
- sh 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
579
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
580
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
581
- # sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
582
- sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
583
- sh 'bundle exec appraisal rails6-postgres rake spec:rails'
584
- end
544
+ declare 'bundle exec rake test:main'
545
+ declare 'bundle exec rake spec:main'
546
+ declare 'bundle exec rake spec:contrib'
547
+ declare 'bundle exec rake spec:opentracer'
548
+ declare 'bundle exec rake spec:opentelemetry'
549
+ # Benchmarks
550
+ declare 'bundle exec rake spec:benchmark' if RUBY_PLATFORM != 'java' # Too slow due to repeated JVM instantiation
551
+ declare 'bundle exec rake benchmark'
552
+ # Contrib minitests
553
+ # Contrib specs
554
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
555
+ declare 'bundle exec appraisal contrib rake spec:action_view'
556
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
557
+ declare 'bundle exec appraisal contrib rake spec:active_record'
558
+ declare 'bundle exec appraisal contrib rake spec:active_support'
559
+ declare 'bundle exec appraisal contrib rake spec:aws'
560
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
561
+ declare 'bundle exec appraisal contrib rake spec:dalli'
562
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
563
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
564
+ declare 'bundle exec appraisal contrib rake spec:ethon'
565
+ declare 'bundle exec appraisal contrib rake spec:excon'
566
+ declare 'bundle exec appraisal contrib rake spec:faraday'
567
+ declare 'bundle exec appraisal contrib rake spec:grape'
568
+ declare 'bundle exec appraisal contrib rake spec:graphql'
569
+ declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
570
+ declare 'bundle exec appraisal contrib rake spec:http'
571
+ declare 'bundle exec appraisal contrib rake spec:httprb'
572
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
573
+ declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
574
+ declare 'bundle exec appraisal contrib rake spec:presto'
575
+ declare 'bundle exec appraisal contrib rake spec:que'
576
+ declare 'bundle exec appraisal contrib rake spec:racecar'
577
+ declare 'bundle exec appraisal contrib rake spec:rack'
578
+ declare 'bundle exec appraisal contrib rake spec:rake'
579
+ declare 'bundle exec appraisal contrib rake spec:redis'
580
+ declare 'bundle exec appraisal contrib rake spec:resque'
581
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
582
+ declare 'bundle exec appraisal contrib rake spec:sequel'
583
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
584
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
585
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
586
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
587
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
588
+ declare 'bundle exec appraisal contrib rake spec:suite'
589
+ # Contrib specs with old gem versions
590
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
591
+ # Rails minitests
592
+ # We only test Rails 5+ because older versions require Bundler < 2.0
593
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
594
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
595
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
596
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
597
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
598
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
599
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
600
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
601
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
602
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
603
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
604
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
605
+ # Rails specs
606
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
607
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
608
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
609
+ # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
610
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
611
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
585
612
  elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
586
613
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
587
614
  # Main library
588
- sh 'bundle exec rake test:main'
589
- sh 'bundle exec rake spec:main'
590
- sh 'bundle exec rake spec:contrib'
591
- sh 'bundle exec rake spec:opentracer'
592
- sh 'bundle exec rake spec:opentelemetry'
615
+ declare 'bundle exec rake test:main'
616
+ declare 'bundle exec rake spec:main'
617
+ declare 'bundle exec rake spec:contrib'
618
+ declare 'bundle exec rake spec:opentracer'
619
+ declare 'bundle exec rake spec:opentelemetry'
620
+ # Benchmarks
621
+ declare 'bundle exec rake spec:benchmark'
593
622
 
594
623
  if RUBY_PLATFORM != 'java'
595
624
  # Benchmarks
596
- sh 'bundle exec rake benchmark'
625
+ declare 'bundle exec rake benchmark'
597
626
  # Contrib minitests
598
- sh 'bundle exec appraisal contrib rake test:grape'
599
- sh 'bundle exec appraisal contrib rake test:sidekiq'
600
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
601
627
  # Contrib specs
602
- sh 'bundle exec appraisal contrib rake spec:action_pack'
603
- sh 'bundle exec appraisal contrib rake spec:action_view'
604
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
605
- sh 'bundle exec appraisal contrib rake spec:active_record'
606
- sh 'bundle exec appraisal contrib rake spec:active_support'
607
- sh 'bundle exec appraisal contrib rake spec:aws'
608
- sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
609
- sh 'bundle exec appraisal contrib rake spec:dalli'
610
- sh 'bundle exec appraisal contrib rake spec:delayed_job'
611
- sh 'bundle exec appraisal contrib rake spec:elasticsearch'
612
- sh 'bundle exec appraisal contrib rake spec:ethon'
613
- sh 'bundle exec appraisal contrib rake spec:excon'
614
- sh 'bundle exec appraisal contrib rake spec:faraday'
615
- sh 'bundle exec appraisal contrib rake spec:grape'
616
- sh 'bundle exec appraisal contrib rake spec:graphql'
617
- sh 'bundle exec appraisal contrib rake spec:grpc'
618
- sh 'bundle exec appraisal contrib rake spec:http'
619
- sh 'bundle exec appraisal contrib rake spec:mongodb'
620
- sh 'bundle exec appraisal contrib rake spec:mysql2'
621
- sh 'bundle exec appraisal contrib rake spec:presto'
622
- sh 'bundle exec appraisal contrib rake spec:racecar'
623
- sh 'bundle exec appraisal contrib rake spec:rack'
624
- sh 'bundle exec appraisal contrib rake spec:rake'
625
- sh 'bundle exec appraisal contrib rake spec:redis'
626
- sh 'bundle exec appraisal contrib rake spec:resque'
627
- sh 'bundle exec appraisal contrib rake spec:rest_client'
628
- sh 'bundle exec appraisal contrib rake spec:sequel'
629
- sh 'bundle exec appraisal contrib rake spec:shoryuken'
630
- sh 'bundle exec appraisal contrib rake spec:sidekiq'
631
- sh 'bundle exec appraisal contrib rake spec:sinatra'
632
- sh 'bundle exec appraisal contrib rake spec:sucker_punch'
633
- sh 'bundle exec appraisal contrib rake spec:suite'
628
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
629
+ declare 'bundle exec appraisal contrib rake spec:action_view'
630
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
631
+ declare 'bundle exec appraisal contrib rake spec:active_record'
632
+ declare 'bundle exec appraisal contrib rake spec:active_support'
633
+ declare 'bundle exec appraisal contrib rake spec:aws'
634
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
635
+ declare 'bundle exec appraisal contrib rake spec:dalli'
636
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
637
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
638
+ declare 'bundle exec appraisal contrib rake spec:ethon'
639
+ declare 'bundle exec appraisal contrib rake spec:excon'
640
+ declare 'bundle exec appraisal contrib rake spec:faraday'
641
+ declare 'bundle exec appraisal contrib rake spec:grape'
642
+ declare 'bundle exec appraisal contrib rake spec:graphql'
643
+ declare 'bundle exec appraisal contrib rake spec:grpc'
644
+ declare 'bundle exec appraisal contrib rake spec:http'
645
+ declare 'bundle exec appraisal contrib rake spec:httprb'
646
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
647
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
648
+ declare 'bundle exec appraisal contrib rake spec:presto'
649
+ declare 'bundle exec appraisal contrib rake spec:que'
650
+ declare 'bundle exec appraisal contrib rake spec:racecar'
651
+ declare 'bundle exec appraisal contrib rake spec:rack'
652
+ declare 'bundle exec appraisal contrib rake spec:rake'
653
+ declare 'bundle exec appraisal contrib rake spec:redis'
654
+ declare 'bundle exec appraisal contrib rake spec:resque'
655
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
656
+ declare 'bundle exec appraisal contrib rake spec:sequel'
657
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
658
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
659
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
660
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
661
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
662
+ declare 'bundle exec appraisal contrib rake spec:suite'
634
663
  # Contrib specs with old gem versions
635
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
664
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
636
665
  # Rails minitests
637
666
  # We only test Rails 5+ because older versions require Bundler < 2.0
638
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
639
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
640
- sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
641
- sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
642
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
643
- sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
644
- sh 'bundle exec appraisal rails6-mysql2 rake test:rails'
645
- sh 'bundle exec appraisal rails6-postgres rake test:rails'
646
- sh 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
647
- sh 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
648
- sh 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
649
- sh 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
667
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
668
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
669
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
670
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
671
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
672
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
673
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
674
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
675
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
676
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
677
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
678
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
650
679
  # Rails specs
651
- sh 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
652
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
653
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
654
- # sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
655
- sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
656
- sh 'bundle exec appraisal rails6-postgres rake spec:rails'
680
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
681
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
682
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
683
+ # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
684
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
685
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
657
686
  end
658
687
  elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
659
688
  # Main library
660
- sh 'bundle exec rake test:main'
661
- sh 'bundle exec rake spec:main'
662
- sh 'bundle exec rake spec:contrib'
663
- sh 'bundle exec rake spec:opentracer'
664
- sh 'bundle exec rake spec:opentelemetry'
689
+ declare 'bundle exec rake test:main'
690
+ declare 'bundle exec rake spec:main'
691
+ declare 'bundle exec rake spec:contrib'
692
+ declare 'bundle exec rake spec:opentracer'
693
+ declare 'bundle exec rake spec:opentelemetry'
694
+ # Benchmarks
695
+ declare 'bundle exec rake spec:benchmark'
665
696
 
666
697
  if RUBY_PLATFORM != 'java'
667
698
  # Benchmarks
668
- sh 'bundle exec rake benchmark'
699
+ declare 'bundle exec rake benchmark'
669
700
  # Contrib minitests
670
- sh 'bundle exec appraisal contrib rake test:grape'
671
- sh 'bundle exec appraisal contrib rake test:sidekiq'
672
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
673
701
  # Contrib specs
674
- sh 'bundle exec appraisal contrib rake spec:action_pack'
675
- sh 'bundle exec appraisal contrib rake spec:action_view'
676
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
677
- sh 'bundle exec appraisal contrib rake spec:active_record'
678
- sh 'bundle exec appraisal contrib rake spec:active_support'
679
- sh 'bundle exec appraisal contrib rake spec:aws'
680
- sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
681
- sh 'bundle exec appraisal contrib rake spec:dalli'
682
- sh 'bundle exec appraisal contrib rake spec:delayed_job'
683
- sh 'bundle exec appraisal contrib rake spec:elasticsearch'
684
- sh 'bundle exec appraisal contrib rake spec:ethon'
685
- sh 'bundle exec appraisal contrib rake spec:excon'
686
- sh 'bundle exec appraisal contrib rake spec:faraday'
687
- sh 'bundle exec appraisal contrib rake spec:grape'
688
- sh 'bundle exec appraisal contrib rake spec:graphql'
689
- sh 'bundle exec appraisal contrib rake spec:grpc'
690
- sh 'bundle exec appraisal contrib rake spec:http'
691
- sh 'bundle exec appraisal contrib rake spec:mongodb'
692
- sh 'bundle exec appraisal contrib rake spec:mysql2'
693
- sh 'bundle exec appraisal contrib rake spec:presto'
694
- sh 'bundle exec appraisal contrib rake spec:racecar'
695
- sh 'bundle exec appraisal contrib rake spec:rack'
696
- sh 'bundle exec appraisal contrib rake spec:rake'
697
- sh 'bundle exec appraisal contrib rake spec:redis'
698
- sh 'bundle exec appraisal contrib rake spec:resque'
699
- sh 'bundle exec appraisal contrib rake spec:rest_client'
700
- sh 'bundle exec appraisal contrib rake spec:sequel'
701
- sh 'bundle exec appraisal contrib rake spec:shoryuken'
702
- sh 'bundle exec appraisal contrib rake spec:sidekiq'
703
- sh 'bundle exec appraisal contrib rake spec:sinatra'
704
- sh 'bundle exec appraisal contrib rake spec:sucker_punch'
705
- sh 'bundle exec appraisal contrib rake spec:suite'
702
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
703
+ declare 'bundle exec appraisal contrib rake spec:action_view'
704
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
705
+ declare 'bundle exec appraisal contrib rake spec:active_record'
706
+ declare 'bundle exec appraisal contrib rake spec:active_support'
707
+ declare 'bundle exec appraisal contrib rake spec:aws'
708
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
709
+ declare 'bundle exec appraisal contrib rake spec:dalli'
710
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
711
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
712
+ declare 'bundle exec appraisal contrib rake spec:ethon'
713
+ declare 'bundle exec appraisal contrib rake spec:excon'
714
+ declare 'bundle exec appraisal contrib rake spec:faraday'
715
+ declare 'bundle exec appraisal contrib rake spec:grape'
716
+ declare 'bundle exec appraisal contrib rake spec:graphql'
717
+ declare 'bundle exec appraisal contrib rake spec:grpc'
718
+ declare 'bundle exec appraisal contrib rake spec:http'
719
+ declare 'bundle exec appraisal contrib rake spec:httprb'
720
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
721
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
722
+ declare 'bundle exec appraisal contrib rake spec:presto'
723
+ declare 'bundle exec appraisal contrib rake spec:que'
724
+ declare 'bundle exec appraisal contrib rake spec:racecar'
725
+ declare 'bundle exec appraisal contrib rake spec:rack'
726
+ declare 'bundle exec appraisal contrib rake spec:rake'
727
+ declare 'bundle exec appraisal contrib rake spec:redis'
728
+ declare 'bundle exec appraisal contrib rake spec:resque'
729
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
730
+ declare 'bundle exec appraisal contrib rake spec:sequel'
731
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
732
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
733
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
734
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
735
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
736
+ declare 'bundle exec appraisal contrib rake spec:suite'
706
737
  # Contrib specs with old gem versions
707
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
738
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
708
739
  # Rails minitests
709
740
  # We only test Rails 5+ because older versions require Bundler < 2.0
710
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
711
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
712
- sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
713
- sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
714
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
715
- sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
716
- sh 'bundle exec appraisal rails6-mysql2 rake test:rails'
717
- sh 'bundle exec appraisal rails6-postgres rake test:rails'
718
- sh 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
719
- sh 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
720
- sh 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
721
- sh 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
741
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
742
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
743
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
744
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
745
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
746
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
747
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
748
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
749
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
750
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
751
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
752
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
722
753
  # Rails specs
723
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
724
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
725
- sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
726
- sh 'bundle exec appraisal rails6-postgres rake spec:rails'
754
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
755
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
756
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
757
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
758
+ end
759
+ end
760
+ end
761
+
762
+ namespace :coverage do
763
+ # Generates one global report for all tracer tests
764
+ task :report do
765
+ require 'simplecov'
766
+
767
+ resultset_files = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/.resultset.json"] +
768
+ Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/**/.resultset.json"]
769
+
770
+ SimpleCov.collate resultset_files do
771
+ coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
772
+ formatter SimpleCov::Formatter::HTMLFormatter
773
+ end
774
+ end
775
+
776
+ # Generates one report for each Ruby version
777
+ task :report_per_ruby_version do
778
+ require 'simplecov'
779
+
780
+ versions = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/*"].map { |f| File.basename(f) }
781
+ versions.map do |version|
782
+ puts "Generating report for: #{version}"
783
+ SimpleCov.collate Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/#{version}/**/.resultset.json"] do
784
+ coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report/versions/#{version}"
785
+ formatter SimpleCov::Formatter::HTMLFormatter
786
+ end
727
787
  end
728
788
  end
729
789
  end