ddtrace 0.36.0 → 0.41.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) 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/.simplecov +38 -0
  6. data/Appraisals +131 -6
  7. data/CHANGELOG.md +198 -1
  8. data/Rakefile +504 -467
  9. data/ddtrace.gemspec +7 -0
  10. data/docker-compose.yml +2 -2
  11. data/docs/DevelopmentGuide.md +16 -0
  12. data/docs/GettingStarted.md +192 -111
  13. data/lib/ddtrace.rb +4 -0
  14. data/lib/ddtrace/buffer.rb +154 -43
  15. data/lib/ddtrace/configuration.rb +39 -5
  16. data/lib/ddtrace/configuration/components.rb +4 -7
  17. data/lib/ddtrace/configuration/options.rb +3 -1
  18. data/lib/ddtrace/configuration/pin_setup.rb +3 -2
  19. data/lib/ddtrace/configuration/settings.rb +32 -4
  20. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +7 -2
  21. data/lib/ddtrace/contrib/action_cable/ext.rb +5 -2
  22. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +7 -2
  23. data/lib/ddtrace/contrib/action_pack/ext.rb +5 -2
  24. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +7 -2
  25. data/lib/ddtrace/contrib/action_view/ext.rb +5 -2
  26. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +7 -2
  27. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +5 -2
  28. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +7 -2
  29. data/lib/ddtrace/contrib/active_record/events/sql.rb +4 -0
  30. data/lib/ddtrace/contrib/active_record/ext.rb +5 -2
  31. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -1
  32. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +7 -2
  33. data/lib/ddtrace/contrib/active_support/ext.rb +5 -2
  34. data/lib/ddtrace/contrib/active_support/notifications/event.rb +3 -1
  35. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +3 -3
  36. data/lib/ddtrace/contrib/aws/configuration/settings.rb +7 -2
  37. data/lib/ddtrace/contrib/aws/ext.rb +5 -2
  38. data/lib/ddtrace/contrib/aws/instrumentation.rb +4 -0
  39. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +5 -0
  40. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +9 -3
  41. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  42. data/lib/ddtrace/contrib/configuration/settings.rb +19 -0
  43. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +7 -2
  44. data/lib/ddtrace/contrib/dalli/ext.rb +5 -2
  45. data/lib/ddtrace/contrib/dalli/instrumentation.rb +4 -0
  46. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -5
  47. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +7 -2
  48. data/lib/ddtrace/contrib/delayed_job/ext.rb +5 -2
  49. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +7 -2
  50. data/lib/ddtrace/contrib/elasticsearch/ext.rb +5 -2
  51. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +5 -2
  52. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +7 -2
  53. data/lib/ddtrace/contrib/ethon/easy_patch.rb +4 -2
  54. data/lib/ddtrace/contrib/ethon/ext.rb +5 -2
  55. data/lib/ddtrace/contrib/ethon/multi_patch.rb +4 -0
  56. data/lib/ddtrace/contrib/excon/configuration/settings.rb +7 -2
  57. data/lib/ddtrace/contrib/excon/ext.rb +5 -2
  58. data/lib/ddtrace/contrib/excon/middleware.rb +4 -0
  59. data/lib/ddtrace/contrib/extensions.rb +11 -1
  60. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +7 -2
  61. data/lib/ddtrace/contrib/faraday/ext.rb +5 -2
  62. data/lib/ddtrace/contrib/faraday/middleware.rb +9 -3
  63. data/lib/ddtrace/contrib/faraday/patcher.rb +13 -5
  64. data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -3
  65. data/lib/ddtrace/contrib/grape/endpoint.rb +6 -4
  66. data/lib/ddtrace/contrib/grape/ext.rb +5 -2
  67. data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
  68. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +7 -2
  69. data/lib/ddtrace/contrib/graphql/ext.rb +5 -2
  70. data/lib/ddtrace/contrib/graphql/patcher.rb +6 -3
  71. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +7 -2
  72. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +1 -1
  73. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +5 -3
  74. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +4 -0
  75. data/lib/ddtrace/contrib/grpc/ext.rb +5 -2
  76. data/lib/ddtrace/contrib/grpc/patcher.rb +1 -5
  77. data/lib/ddtrace/contrib/http/configuration/settings.rb +7 -2
  78. data/lib/ddtrace/contrib/http/ext.rb +5 -2
  79. data/lib/ddtrace/contrib/http/instrumentation.rb +16 -7
  80. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
  81. data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
  82. data/lib/ddtrace/contrib/httprb/instrumentation.rb +163 -0
  83. data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
  84. data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
  85. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +30 -0
  86. data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
  87. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
  88. data/lib/ddtrace/contrib/kafka/event.rb +51 -0
  89. data/lib/ddtrace/contrib/kafka/events.rb +44 -0
  90. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
  91. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
  92. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
  93. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
  94. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
  95. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
  96. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
  97. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
  98. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
  99. data/lib/ddtrace/contrib/kafka/ext.rb +41 -0
  100. data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
  101. data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
  102. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +7 -2
  103. data/lib/ddtrace/contrib/mongodb/ext.rb +5 -2
  104. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -2
  105. data/lib/ddtrace/contrib/mongodb/subscribers.rb +4 -0
  106. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +7 -2
  107. data/lib/ddtrace/contrib/mysql2/ext.rb +5 -2
  108. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +5 -1
  109. data/lib/ddtrace/contrib/patcher.rb +14 -8
  110. data/lib/ddtrace/contrib/presto/configuration/settings.rb +7 -2
  111. data/lib/ddtrace/contrib/presto/ext.rb +5 -2
  112. data/lib/ddtrace/contrib/presto/instrumentation.rb +3 -0
  113. data/lib/ddtrace/contrib/que/configuration/settings.rb +42 -0
  114. data/lib/ddtrace/contrib/que/ext.rb +30 -0
  115. data/lib/ddtrace/contrib/que/integration.rb +42 -0
  116. data/lib/ddtrace/contrib/que/patcher.rb +24 -0
  117. data/lib/ddtrace/contrib/que/tracer.rb +56 -0
  118. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +7 -2
  119. data/lib/ddtrace/contrib/racecar/event.rb +4 -0
  120. data/lib/ddtrace/contrib/racecar/events.rb +2 -0
  121. data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
  122. data/lib/ddtrace/contrib/racecar/ext.rb +6 -2
  123. data/lib/ddtrace/contrib/rack/configuration/settings.rb +7 -2
  124. data/lib/ddtrace/contrib/rack/ext.rb +5 -2
  125. data/lib/ddtrace/contrib/rack/middlewares.rb +17 -12
  126. data/lib/ddtrace/contrib/rails/configuration/settings.rb +10 -12
  127. data/lib/ddtrace/contrib/rails/ext.rb +6 -2
  128. data/lib/ddtrace/contrib/rails/framework.rb +14 -21
  129. data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
  130. data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
  131. data/lib/ddtrace/contrib/rails/patcher.rb +15 -0
  132. data/lib/ddtrace/contrib/rake/configuration/settings.rb +7 -3
  133. data/lib/ddtrace/contrib/rake/ext.rb +5 -2
  134. data/lib/ddtrace/contrib/redis/configuration/settings.rb +7 -2
  135. data/lib/ddtrace/contrib/redis/ext.rb +5 -2
  136. data/lib/ddtrace/contrib/redis/patcher.rb +1 -1
  137. data/lib/ddtrace/contrib/redis/tags.rb +4 -0
  138. data/lib/ddtrace/contrib/resque/configuration/settings.rb +7 -2
  139. data/lib/ddtrace/contrib/resque/ext.rb +5 -2
  140. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +7 -2
  141. data/lib/ddtrace/contrib/rest_client/ext.rb +5 -2
  142. data/lib/ddtrace/contrib/rest_client/request_patch.rb +6 -2
  143. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +7 -2
  144. data/lib/ddtrace/contrib/sequel/database.rb +4 -2
  145. data/lib/ddtrace/contrib/sequel/dataset.rb +3 -2
  146. data/lib/ddtrace/contrib/sequel/ext.rb +6 -2
  147. data/lib/ddtrace/contrib/sequel/utils.rb +35 -6
  148. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +7 -2
  149. data/lib/ddtrace/contrib/shoryuken/ext.rb +5 -2
  150. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +7 -2
  151. data/lib/ddtrace/contrib/sidekiq/ext.rb +6 -2
  152. data/lib/ddtrace/contrib/sidekiq/patcher.rb +8 -1
  153. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
  154. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +7 -2
  155. data/lib/ddtrace/contrib/sinatra/env.rb +5 -4
  156. data/lib/ddtrace/contrib/sinatra/ext.rb +5 -2
  157. data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -42
  158. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +50 -23
  159. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +32 -0
  160. data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
  161. data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
  162. data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
  163. data/lib/ddtrace/contrib/sneakers/tracer.rb +58 -0
  164. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +7 -2
  165. data/lib/ddtrace/contrib/sucker_punch/ext.rb +5 -2
  166. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +1 -1
  167. data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
  168. data/lib/ddtrace/environment.rb +17 -3
  169. data/lib/ddtrace/ext/diagnostics.rb +3 -0
  170. data/lib/ddtrace/ext/environment.rb +2 -0
  171. data/lib/ddtrace/ext/integration.rb +8 -0
  172. data/lib/ddtrace/ext/runtime.rb +1 -0
  173. data/lib/ddtrace/ext/transport.rb +1 -0
  174. data/lib/ddtrace/logger.rb +1 -1
  175. data/lib/ddtrace/opentracer/distributed_headers.rb +1 -1
  176. data/lib/ddtrace/pin.rb +25 -2
  177. data/lib/ddtrace/pipeline/span_filter.rb +15 -15
  178. data/lib/ddtrace/propagation/grpc_propagator.rb +2 -2
  179. data/lib/ddtrace/runtime/metrics.rb +24 -6
  180. data/lib/ddtrace/sampler.rb +4 -2
  181. data/lib/ddtrace/span.rb +162 -27
  182. data/lib/ddtrace/tracer.rb +18 -12
  183. data/lib/ddtrace/transport/http.rb +15 -0
  184. data/lib/ddtrace/transport/http/adapters/net.rb +16 -2
  185. data/lib/ddtrace/transport/http/adapters/test.rb +6 -0
  186. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -0
  187. data/lib/ddtrace/transport/http/statistics.rb +14 -1
  188. data/lib/ddtrace/transport/response.rb +11 -0
  189. data/lib/ddtrace/transport/traces.rb +7 -2
  190. data/lib/ddtrace/utils.rb +7 -3
  191. data/lib/ddtrace/version.rb +1 -1
  192. data/lib/ddtrace/workers/async.rb +2 -2
  193. data/lib/ddtrace/workers/loop.rb +1 -1
  194. data/lib/ddtrace/workers/polling.rb +1 -1
  195. data/lib/ddtrace/workers/trace_writer.rb +3 -0
  196. data/lib/ddtrace/writer.rb +33 -12
  197. metadata +138 -2
@@ -2,6 +2,198 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.41.0] - 2020-09-30
6
+
7
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.41.0
8
+
9
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.40.0...v0.41.0
10
+
11
+ ### Added
12
+
13
+ - Improve duration counting using monotonic clock (#424, #1173) (@soulcutter)
14
+
15
+ ### Changed
16
+
17
+ - Add peer.service tag to external services and skip tagging external services with language tag for runtime metrics (#934, #935, #1180)
18
+ - This helps support the way runtime metrics are associated with spans in the UI.
19
+ - Faster TraceBuffer for CRuby (#1172)
20
+ - Reduce memory usage during gem statup (#1090)
21
+ - Reduce memory usage of the HTTP transport (#1165)
22
+
23
+ ### Fixed
24
+
25
+ - Improved prepared statement support for Sequel integrations (#1186)
26
+ - Fix Sequel instrumentation when executing literal strings (#1185) (@matchbookmac)
27
+ - Remove explicit `Logger` class verification (#1181) (@bartekbsh)
28
+ - This allows users to pass in a custom logger that does not inherit from `Logger` class.
29
+ - Correct tracer buffer metric counting (#1182)
30
+ - Fix Span#pretty_print for empty duration (#1183)
31
+
32
+ ### Refactored
33
+
34
+ - Improvements to test suite & CI (#1179, #1184, #1177, #1178, #1176)
35
+ - Reduce generated Span ID range to fit in Fixnum (#1189)
36
+
37
+ ## [0.40.0] - 2020-09-08
38
+
39
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.40.0
40
+
41
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.39.0...v0.40.0
42
+
43
+ ### Added
44
+
45
+ - Rails `log_injection` option to auto enable log correlation (#1157)
46
+ - Que integration (#1141, #1146) (@hs-bguven)
47
+ - `Components#startup!` hook (#1151)
48
+ - Code coverage report (#1159)
49
+ - 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`.
50
+
51
+ ### Changed
52
+
53
+ - Use a single top level span for Racecar consumers (#1150) (@dasch)
54
+
55
+ ### Fixed
56
+
57
+ - Sinatra nested modular applications possibly leaking spans (#1035, #1145)
58
+
59
+ * **BREAKING** for nested modular Sinatra applications only:
60
+ ```ruby
61
+ class Nested < Sinatra::Base
62
+ end
63
+
64
+ class TopLevel < Sinatra::Base
65
+ use Nested # Nesting happens here
66
+ end
67
+ ```
68
+ * Non-breaking for classic applications nor modular non-nested applications.
69
+
70
+ Fixes issues introduced by #1015 (in 0.35.0), when we first introduced Sinatra support for modular applications.
71
+
72
+ 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.
73
+
74
+ 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.
75
+
76
+ 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.
77
+
78
+ Please see #1145 for more information, and example screenshots on how traces for affected applications will look like.
79
+
80
+ - Rack/Rails span error propagation with `rescue_from` (#1155, #1162)
81
+ - Prevent logger recursion during startup (#1158)
82
+ - Race condition on new worker classes (#1154)
83
+ - These classes represent future work, and not being used at the moment.
84
+
85
+ ### Refactored
86
+
87
+ - Run CI tests in parallel (#1156)
88
+ - Migrate minitest tests to RSpec (#1127, #1128, #1133, #1149, #1152, #1153)
89
+ - Improvements to test suite (#1134, #1148, #1163)
90
+ - Improvements to documentation (#1138)
91
+
92
+ ### Removed
93
+
94
+ - **Ruby 1.9 support ended, as it transitions from Maintenance to End-Of-Life (#1137)**
95
+ - GitLab status check when not applicable (#1160)
96
+ - 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.
97
+
98
+ ## [0.39.0] - 2020-08-05
99
+
100
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.39.0
101
+
102
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...v0.39.0
103
+
104
+ ### Added
105
+
106
+ - JRuby 9.2 support (#1126)
107
+ - Sneakers integration (#1121) (@janz93)
108
+
109
+ ### Changed
110
+
111
+ - Consistent environment variables across languages (#1115)
112
+ - Default logger level from WARN to INFO (#1120) (@gingerlime)
113
+ - This change also reduces the startup environment log message to INFO level (#1104)
114
+
115
+ ### Fixed
116
+
117
+ - HTTP::StateError on error responses for http.rb (#1116, #1122) (@evan-waters)
118
+ - Startup log error when using the test adapter (#1125, #1131) (@benhutton)
119
+ - Warning message for Faraday < 1.0 (#1129) (@fledman, @tjwp)
120
+ - Propagate Rails error message to Rack span (#1124)
121
+
122
+ ### Refactored
123
+
124
+ - Improved ActiveRecord documentation (#1119)
125
+ - Improvements to test suite (#1105, #1118)
126
+
127
+ ## [0.38.0] - 2020-07-13
128
+
129
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.38.0
130
+
131
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0
132
+
133
+ ### Added
134
+
135
+ - http.rb integration (#529, #853)
136
+ - Kafka integration (#1070) (@tjwp)
137
+ - Span#set_tags (#1081) (@DocX)
138
+ - retry_count tag for Sidekiq jobs (#1089) (@elyalvarado)
139
+ - Startup environment log (#1104, #1109)
140
+ - DD_SITE and DD_API_KEY configuration (#1107)
141
+
142
+ ### Changed
143
+
144
+ - Auto instrument Faraday default connection (#1057)
145
+ - Sidekiq client middleware is now the same for client and server (#1099) (@drcapulet)
146
+ - Single pass SpanFilter (#1071) (@tjwp)
147
+
148
+ ### Fixed
149
+
150
+ - Ensure fatal exceptions are propagated (#1100)
151
+ - Respect child_of: option in Tracer#trace (#1082) (@DocX)
152
+ - Improve Writer thread safety (#1091) (@fledman)
153
+
154
+ ### Refactored
155
+
156
+ - Improvements to test suite (#1092, #1103)
157
+
158
+ ## [0.37.0] - 2020-06-24
159
+
160
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.37.0
161
+
162
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0
163
+
164
+ ### Refactored
165
+
166
+ - Documentation improvements regarding Datadog Agent defaults (#1074) (@cswatt)
167
+ - Improvements to test suite (#1043, #1051, #1062, #1075, #1076, #1086)
168
+
169
+ ### Removed
170
+
171
+ - **DEPRECATION**: Deprecate Contrib::Configuration::Settings#tracer= (#1072, #1079)
172
+ - The `tracer:` option is no longer supported for integration configuration. A deprecation warning will be issued when this option is used.
173
+ - Tracer instances are dynamically created when `ddtrace` is reconfigured (through `Datadog.configure{}` calls).
174
+
175
+ A reference to a tracer instance cannot be stored as it will be replaced by a new instance during reconfiguration.
176
+
177
+ Retrieving the global tracer instance, by invoking `Datadog.tracer`, is the only safe mechanism to acquire the active tracer instance.
178
+
179
+ 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.
180
+
181
+ - **BREAKING**: Remove Pin#tracer= and DeprecatedPin#tracer= (#1073)
182
+ - The `Pin` and `DeprecatedPin` are internal tools used to provide more granular configuration for integrations.
183
+ - The APIs being removed are not public nor have been externally documented. The `DeprecatedPin` specifically has been considered deprecated since 0.20.0.
184
+ - This removal is a continuation of #1079 above, thus carrying the same rationale.
185
+
186
+ ### Migration
187
+
188
+ - Remove `tracer` argument provided to integrations (e.g. `c.use :rails, tracer: ...`).
189
+ - Remove `tracer` argument provided to `Pin` or `DeprecatedPin` initializers (e.g. `Pin.new(service, tracer: ...)`).
190
+ - If you require a custom tracer instance, use a global instance configuration:
191
+ ```ruby
192
+ Datadog.configure do |c|
193
+ c.tracer.instance = custom_tracer
194
+ end
195
+ ```
196
+
5
197
  ## [0.36.0] - 2020-05-27
6
198
 
7
199
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.36.0
@@ -1235,7 +1427,12 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
1235
1427
 
1236
1428
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
1237
1429
 
1238
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...master
1430
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.41.0...master
1431
+ [0.41.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.40.0...v0.41.0
1432
+ [0.40.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.39.0...v0.40.0
1433
+ [0.39.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...v0.39.0
1434
+ [0.38.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0
1435
+ [0.37.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0
1239
1436
  [0.36.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0
1240
1437
  [0.35.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2
1241
1438
  [0.35.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.0...v0.35.1
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,561 @@ 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'
191
212
 
192
213
  if RUBY_PLATFORM != 'java'
193
214
  # 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'
215
+ declare 'bundle exec appraisal contrib-old rake test:monkey'
197
216
  # 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'
217
+ declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
218
+ declare 'bundle exec appraisal contrib-old rake spec:active_record'
219
+ declare 'bundle exec appraisal contrib-old rake spec:active_support'
220
+ declare 'bundle exec appraisal contrib-old rake spec:aws'
221
+ declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
222
+ declare 'bundle exec appraisal contrib-old rake spec:dalli'
223
+ declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
224
+ declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
225
+ declare 'bundle exec appraisal contrib-old rake spec:ethon'
226
+ declare 'bundle exec appraisal contrib-old rake spec:excon'
227
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
228
+ declare 'bundle exec appraisal contrib-old rake spec:http'
229
+ declare 'bundle exec appraisal contrib-old rake spec:httprb'
230
+ declare 'bundle exec appraisal contrib-old rake spec:mongodb'
231
+ declare 'bundle exec appraisal contrib-old rake spec:mysql2'
232
+ declare 'bundle exec appraisal contrib-old rake spec:rack'
233
+ declare 'bundle exec appraisal contrib-old rake spec:rake'
234
+ declare 'bundle exec appraisal contrib-old rake spec:redis'
235
+ declare 'bundle exec appraisal contrib-old rake spec:resque'
236
+ declare 'bundle exec appraisal contrib-old rake spec:rest_client'
237
+ declare 'bundle exec appraisal contrib-old rake spec:sequel'
238
+ declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
239
+ declare 'bundle exec appraisal contrib-old rake spec:sinatra'
240
+ declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
241
+ declare 'bundle exec appraisal contrib-old rake spec:suite'
222
242
  # 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'
243
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
244
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
245
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
246
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
247
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
248
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
229
249
  # 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'
250
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
251
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
252
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
233
253
  # 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'
254
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
255
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
256
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
257
+ declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
238
258
  end
239
259
  elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
240
260
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
241
261
  # 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'
262
+ declare 'bundle exec rake test:main'
263
+ declare 'bundle exec rake spec:main'
264
+ declare 'bundle exec rake spec:contrib'
265
+ declare 'bundle exec rake spec:opentracer'
246
266
 
247
267
  if RUBY_PLATFORM != 'java'
248
268
  # 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'
269
+ declare 'bundle exec appraisal contrib-old rake test:monkey'
252
270
  # 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'
271
+ declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
272
+ declare 'bundle exec appraisal contrib-old rake spec:active_record'
273
+ declare 'bundle exec appraisal contrib-old rake spec:active_support'
274
+ declare 'bundle exec appraisal contrib-old rake spec:aws'
275
+ declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
276
+ declare 'bundle exec appraisal contrib-old rake spec:dalli'
277
+ declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
278
+ declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
279
+ declare 'bundle exec appraisal contrib-old rake spec:ethon'
280
+ declare 'bundle exec appraisal contrib-old rake spec:excon'
281
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
282
+ declare 'bundle exec appraisal contrib-old rake spec:http'
283
+ declare 'bundle exec appraisal contrib-old rake spec:httprb'
284
+ declare 'bundle exec appraisal contrib-old rake spec:mongodb'
285
+ declare 'bundle exec appraisal contrib-old rake spec:mysql2'
286
+ declare 'bundle exec appraisal contrib-old rake spec:presto'
287
+ declare 'bundle exec appraisal contrib-old rake spec:rack'
288
+ declare 'bundle exec appraisal contrib-old rake spec:rake'
289
+ declare 'bundle exec appraisal contrib-old rake spec:redis'
290
+ declare 'bundle exec appraisal contrib-old rake spec:resque'
291
+ declare 'bundle exec appraisal contrib-old rake spec:rest_client'
292
+ declare 'bundle exec appraisal contrib-old rake spec:sequel'
293
+ declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
294
+ declare 'bundle exec appraisal contrib-old rake spec:sinatra'
295
+ declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
296
+ declare 'bundle exec appraisal contrib-old rake spec:suite'
278
297
  # 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'
298
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
299
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
300
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
301
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
302
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
303
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
304
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
305
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
306
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
307
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
289
308
  # 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'
309
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
310
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
311
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
312
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
313
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
295
314
  # 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'
315
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
316
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
317
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
318
+ declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
300
319
  end
301
320
  elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
302
321
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
303
322
  # 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'
323
+ declare 'bundle exec rake test:main'
324
+ declare 'bundle exec rake spec:main'
325
+ declare 'bundle exec rake spec:contrib'
326
+ declare 'bundle exec rake spec:opentracer'
308
327
 
309
328
  if RUBY_PLATFORM != 'java'
310
329
  # 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
330
  # 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'
331
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
332
+ declare 'bundle exec appraisal contrib rake spec:action_view'
333
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
334
+ declare 'bundle exec appraisal contrib rake spec:active_record'
335
+ declare 'bundle exec appraisal contrib rake spec:active_support'
336
+ declare 'bundle exec appraisal contrib rake spec:aws'
337
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
338
+ declare 'bundle exec appraisal contrib rake spec:dalli'
339
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
340
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
341
+ declare 'bundle exec appraisal contrib rake spec:ethon'
342
+ declare 'bundle exec appraisal contrib rake spec:excon'
343
+ declare 'bundle exec appraisal contrib rake spec:faraday'
344
+ declare 'bundle exec appraisal contrib rake spec:grape'
345
+ declare 'bundle exec appraisal contrib rake spec:graphql'
346
+ declare 'bundle exec appraisal contrib rake spec:grpc'
347
+ declare 'bundle exec appraisal contrib rake spec:http'
348
+ declare 'bundle exec appraisal contrib rake spec:httprb'
349
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
350
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
351
+ declare 'bundle exec appraisal contrib rake spec:presto'
352
+ declare 'bundle exec appraisal contrib rake spec:que'
353
+ declare 'bundle exec appraisal contrib rake spec:racecar'
354
+ declare 'bundle exec appraisal contrib rake spec:rack'
355
+ declare 'bundle exec appraisal contrib rake spec:rake'
356
+ declare 'bundle exec appraisal contrib rake spec:redis'
357
+ declare 'bundle exec appraisal contrib rake spec:resque'
358
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
359
+ declare 'bundle exec appraisal contrib rake spec:sequel'
360
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
361
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
362
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
363
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
364
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
365
+ declare 'bundle exec appraisal contrib rake spec:suite'
347
366
  # 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'
367
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
368
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
369
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
370
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
371
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
372
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
373
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
374
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
375
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
376
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
377
+ declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
378
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
379
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
380
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
381
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
382
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
383
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
365
384
  # 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'
385
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
386
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
387
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
388
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
389
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
390
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
391
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
373
392
  end
374
393
  elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
375
394
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
376
395
  # 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'
396
+ declare 'bundle exec rake test:main'
397
+ declare 'bundle exec rake spec:main'
398
+ declare 'bundle exec rake spec:contrib'
399
+ declare 'bundle exec rake spec:opentracer'
381
400
 
382
401
  if RUBY_PLATFORM != 'java'
383
402
  # 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
403
  # 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'
404
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
405
+ declare 'bundle exec appraisal contrib rake spec:action_view'
406
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
407
+ declare 'bundle exec appraisal contrib rake spec:active_record'
408
+ declare 'bundle exec appraisal contrib rake spec:active_support'
409
+ declare 'bundle exec appraisal contrib rake spec:aws'
410
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
411
+ declare 'bundle exec appraisal contrib rake spec:dalli'
412
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
413
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
414
+ declare 'bundle exec appraisal contrib rake spec:ethon'
415
+ declare 'bundle exec appraisal contrib rake spec:excon'
416
+ declare 'bundle exec appraisal contrib rake spec:faraday'
417
+ declare 'bundle exec appraisal contrib rake spec:grape'
418
+ declare 'bundle exec appraisal contrib rake spec:graphql'
419
+ declare 'bundle exec appraisal contrib rake spec:grpc'
420
+ declare 'bundle exec appraisal contrib rake spec:http'
421
+ declare 'bundle exec appraisal contrib rake spec:httprb'
422
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
423
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
424
+ declare 'bundle exec appraisal contrib rake spec:presto'
425
+ declare 'bundle exec appraisal contrib rake spec:que'
426
+ declare 'bundle exec appraisal contrib rake spec:racecar'
427
+ declare 'bundle exec appraisal contrib rake spec:rack'
428
+ declare 'bundle exec appraisal contrib rake spec:rake'
429
+ declare 'bundle exec appraisal contrib rake spec:redis'
430
+ declare 'bundle exec appraisal contrib rake spec:resque'
431
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
432
+ declare 'bundle exec appraisal contrib rake spec:sequel'
433
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
434
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
435
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
436
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
437
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
438
+ declare 'bundle exec appraisal contrib rake spec:suite'
420
439
  # Contrib specs with old gem versions
421
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
440
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
422
441
  # 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'
442
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
443
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
444
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
445
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
446
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
447
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
448
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
449
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
450
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
451
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
452
+ declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
453
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
454
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
455
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
456
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
457
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
458
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
440
459
  # 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'
460
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
461
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
462
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
463
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
464
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
465
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
466
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
448
467
  end
449
468
  elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
450
469
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
451
470
  # 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'
471
+ declare 'bundle exec rake test:main'
472
+ declare 'bundle exec rake spec:main'
473
+ declare 'bundle exec rake spec:contrib'
474
+ declare 'bundle exec rake spec:opentracer'
475
+ declare 'bundle exec rake spec:opentelemetry'
457
476
 
458
477
  if RUBY_PLATFORM != 'java'
459
- # Benchmarks
460
- sh 'bundle exec rake benchmark'
461
478
  # 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
479
  # 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'
480
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
481
+ declare 'bundle exec appraisal contrib rake spec:action_view'
482
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
483
+ declare 'bundle exec appraisal contrib rake spec:active_record'
484
+ declare 'bundle exec appraisal contrib rake spec:active_support'
485
+ declare 'bundle exec appraisal contrib rake spec:aws'
486
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
487
+ declare 'bundle exec appraisal contrib rake spec:dalli'
488
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
489
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
490
+ declare 'bundle exec appraisal contrib rake spec:ethon'
491
+ declare 'bundle exec appraisal contrib rake spec:excon'
492
+ declare 'bundle exec appraisal contrib rake spec:faraday'
493
+ declare 'bundle exec appraisal contrib rake spec:grape'
494
+ declare 'bundle exec appraisal contrib rake spec:graphql'
495
+ declare 'bundle exec appraisal contrib rake spec:grpc'
496
+ declare 'bundle exec appraisal contrib rake spec:http'
497
+ declare 'bundle exec appraisal contrib rake spec:httprb'
498
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
499
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
500
+ declare 'bundle exec appraisal contrib rake spec:presto'
501
+ declare 'bundle exec appraisal contrib rake spec:que'
502
+ declare 'bundle exec appraisal contrib rake spec:racecar'
503
+ declare 'bundle exec appraisal contrib rake spec:rack'
504
+ declare 'bundle exec appraisal contrib rake spec:rake'
505
+ declare 'bundle exec appraisal contrib rake spec:redis'
506
+ declare 'bundle exec appraisal contrib rake spec:resque'
507
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
508
+ declare 'bundle exec appraisal contrib rake spec:sequel'
509
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
510
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
511
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
512
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
513
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
514
+ declare 'bundle exec appraisal contrib rake spec:suite'
498
515
  # Contrib specs with old gem versions
499
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
516
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
500
517
  # Rails minitests
501
518
  # 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'
519
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
520
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
521
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
522
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
523
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
524
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
508
525
  # Rails specs
509
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
510
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
526
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
527
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
511
528
  end
512
529
  elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
513
530
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
514
531
  # 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
532
+ declare 'bundle exec rake test:main'
533
+ declare 'bundle exec rake spec:main'
534
+ declare 'bundle exec rake spec:contrib'
535
+ declare 'bundle exec rake spec:opentracer'
536
+ declare 'bundle exec rake spec:opentelemetry'
537
+ # Contrib minitests
538
+ # Contrib specs
539
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
540
+ declare 'bundle exec appraisal contrib rake spec:action_view'
541
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
542
+ declare 'bundle exec appraisal contrib rake spec:active_record'
543
+ declare 'bundle exec appraisal contrib rake spec:active_support'
544
+ declare 'bundle exec appraisal contrib rake spec:aws'
545
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
546
+ declare 'bundle exec appraisal contrib rake spec:dalli'
547
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
548
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
549
+ declare 'bundle exec appraisal contrib rake spec:ethon'
550
+ declare 'bundle exec appraisal contrib rake spec:excon'
551
+ declare 'bundle exec appraisal contrib rake spec:faraday'
552
+ declare 'bundle exec appraisal contrib rake spec:grape'
553
+ declare 'bundle exec appraisal contrib rake spec:graphql'
554
+ declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
555
+ declare 'bundle exec appraisal contrib rake spec:http'
556
+ declare 'bundle exec appraisal contrib rake spec:httprb'
557
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
558
+ declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
559
+ declare 'bundle exec appraisal contrib rake spec:presto'
560
+ declare 'bundle exec appraisal contrib rake spec:que'
561
+ declare 'bundle exec appraisal contrib rake spec:racecar'
562
+ declare 'bundle exec appraisal contrib rake spec:rack'
563
+ declare 'bundle exec appraisal contrib rake spec:rake'
564
+ declare 'bundle exec appraisal contrib rake spec:redis'
565
+ declare 'bundle exec appraisal contrib rake spec:resque'
566
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
567
+ declare 'bundle exec appraisal contrib rake spec:sequel'
568
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
569
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
570
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
571
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
572
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
573
+ declare 'bundle exec appraisal contrib rake spec:suite'
574
+ # Contrib specs with old gem versions
575
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
576
+ # Rails minitests
577
+ # We only test Rails 5+ because older versions require Bundler < 2.0
578
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
579
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
580
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
581
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
582
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
583
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
584
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
585
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
586
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
587
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
588
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
589
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
590
+ # Rails specs
591
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
592
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
593
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
594
+ # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
595
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
596
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
585
597
  elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
586
598
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
587
599
  # 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'
600
+ declare 'bundle exec rake test:main'
601
+ declare 'bundle exec rake spec:main'
602
+ declare 'bundle exec rake spec:contrib'
603
+ declare 'bundle exec rake spec:opentracer'
604
+ declare 'bundle exec rake spec:opentelemetry'
593
605
 
594
606
  if RUBY_PLATFORM != 'java'
595
- # Benchmarks
596
- sh 'bundle exec rake benchmark'
597
607
  # 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
608
  # 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'
609
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
610
+ declare 'bundle exec appraisal contrib rake spec:action_view'
611
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
612
+ declare 'bundle exec appraisal contrib rake spec:active_record'
613
+ declare 'bundle exec appraisal contrib rake spec:active_support'
614
+ declare 'bundle exec appraisal contrib rake spec:aws'
615
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
616
+ declare 'bundle exec appraisal contrib rake spec:dalli'
617
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
618
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
619
+ declare 'bundle exec appraisal contrib rake spec:ethon'
620
+ declare 'bundle exec appraisal contrib rake spec:excon'
621
+ declare 'bundle exec appraisal contrib rake spec:faraday'
622
+ declare 'bundle exec appraisal contrib rake spec:grape'
623
+ declare 'bundle exec appraisal contrib rake spec:graphql'
624
+ declare 'bundle exec appraisal contrib rake spec:grpc'
625
+ declare 'bundle exec appraisal contrib rake spec:http'
626
+ declare 'bundle exec appraisal contrib rake spec:httprb'
627
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
628
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
629
+ declare 'bundle exec appraisal contrib rake spec:presto'
630
+ declare 'bundle exec appraisal contrib rake spec:que'
631
+ declare 'bundle exec appraisal contrib rake spec:racecar'
632
+ declare 'bundle exec appraisal contrib rake spec:rack'
633
+ declare 'bundle exec appraisal contrib rake spec:rake'
634
+ declare 'bundle exec appraisal contrib rake spec:redis'
635
+ declare 'bundle exec appraisal contrib rake spec:resque'
636
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
637
+ declare 'bundle exec appraisal contrib rake spec:sequel'
638
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
639
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
640
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
641
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
642
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
643
+ declare 'bundle exec appraisal contrib rake spec:suite'
634
644
  # Contrib specs with old gem versions
635
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
645
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
636
646
  # Rails minitests
637
647
  # 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'
648
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
649
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
650
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
651
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
652
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
653
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
654
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
655
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
656
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
657
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
658
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
659
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
650
660
  # 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'
661
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
662
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
663
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
664
+ # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
665
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
666
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
657
667
  end
658
668
  elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
659
669
  # 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'
670
+ declare 'bundle exec rake test:main'
671
+ declare 'bundle exec rake spec:main'
672
+ declare 'bundle exec rake spec:contrib'
673
+ declare 'bundle exec rake spec:opentracer'
674
+ declare 'bundle exec rake spec:opentelemetry'
665
675
 
666
676
  if RUBY_PLATFORM != 'java'
667
- # Benchmarks
668
- sh 'bundle exec rake benchmark'
669
677
  # 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
678
  # 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'
679
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
680
+ declare 'bundle exec appraisal contrib rake spec:action_view'
681
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
682
+ declare 'bundle exec appraisal contrib rake spec:active_record'
683
+ declare 'bundle exec appraisal contrib rake spec:active_support'
684
+ declare 'bundle exec appraisal contrib rake spec:aws'
685
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
686
+ declare 'bundle exec appraisal contrib rake spec:dalli'
687
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
688
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
689
+ declare 'bundle exec appraisal contrib rake spec:ethon'
690
+ declare 'bundle exec appraisal contrib rake spec:excon'
691
+ declare 'bundle exec appraisal contrib rake spec:faraday'
692
+ declare 'bundle exec appraisal contrib rake spec:grape'
693
+ declare 'bundle exec appraisal contrib rake spec:graphql'
694
+ declare 'bundle exec appraisal contrib rake spec:grpc'
695
+ declare 'bundle exec appraisal contrib rake spec:http'
696
+ declare 'bundle exec appraisal contrib rake spec:httprb'
697
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
698
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
699
+ declare 'bundle exec appraisal contrib rake spec:presto'
700
+ declare 'bundle exec appraisal contrib rake spec:que'
701
+ declare 'bundle exec appraisal contrib rake spec:racecar'
702
+ declare 'bundle exec appraisal contrib rake spec:rack'
703
+ declare 'bundle exec appraisal contrib rake spec:rake'
704
+ declare 'bundle exec appraisal contrib rake spec:redis'
705
+ declare 'bundle exec appraisal contrib rake spec:resque'
706
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
707
+ declare 'bundle exec appraisal contrib rake spec:sequel'
708
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
709
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
710
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
711
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
712
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
713
+ declare 'bundle exec appraisal contrib rake spec:suite'
706
714
  # Contrib specs with old gem versions
707
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
715
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
708
716
  # Rails minitests
709
717
  # 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'
718
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
719
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
720
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
721
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
722
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
723
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
724
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
725
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
726
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
727
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
728
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
729
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
722
730
  # 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'
731
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
732
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
733
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
734
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
735
+ end
736
+ end
737
+ end
738
+
739
+ namespace :coverage do
740
+ # Generates one global report for all tracer tests
741
+ task :report do
742
+ require 'simplecov'
743
+
744
+ resultset_files = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/.resultset.json"] +
745
+ Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/**/.resultset.json"]
746
+
747
+ SimpleCov.collate resultset_files do
748
+ coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
749
+ formatter SimpleCov::Formatter::HTMLFormatter
750
+ end
751
+ end
752
+
753
+ # Generates one report for each Ruby version
754
+ task :report_per_ruby_version do
755
+ require 'simplecov'
756
+
757
+ versions = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/*"].map { |f| File.basename(f) }
758
+ versions.map do |version|
759
+ puts "Generating report for: #{version}"
760
+ SimpleCov.collate Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/#{version}/**/.resultset.json"] do
761
+ coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report/versions/#{version}"
762
+ formatter SimpleCov::Formatter::HTMLFormatter
763
+ end
727
764
  end
728
765
  end
729
766
  end