ddtrace 0.38.0 → 0.43.0

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