ddtrace 0.37.0 → 0.42.0

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