ddtrace 0.41.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +223 -126
  3. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  4. data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
  5. data/.github/workflows/create-next-milestone.yml +20 -0
  6. data/.rubocop.yml +250 -7
  7. data/.rubocop_todo.yml +396 -0
  8. data/.simplecov +3 -0
  9. data/Appraisals +429 -135
  10. data/CHANGELOG.md +1158 -354
  11. data/CONTRIBUTING.md +2 -2
  12. data/Gemfile +40 -3
  13. data/README.md +1 -0
  14. data/Rakefile +236 -29
  15. data/ddtrace.gemspec +4 -35
  16. data/docker-compose.yml +30 -0
  17. data/docs/DevelopmentGuide.md +40 -2
  18. data/docs/GettingStarted.md +186 -16
  19. data/integration/README.md +68 -0
  20. data/integration/apps/rack/.dockerignore +1 -0
  21. data/integration/apps/rack/.envrc.sample +1 -0
  22. data/integration/apps/rack/.gitignore +4 -0
  23. data/integration/apps/rack/.rspec +1 -0
  24. data/integration/apps/rack/Dockerfile +25 -0
  25. data/integration/apps/rack/Dockerfile-ci +11 -0
  26. data/integration/apps/rack/Gemfile +24 -0
  27. data/integration/apps/rack/README.md +93 -0
  28. data/integration/apps/rack/app/acme.rb +80 -0
  29. data/integration/apps/rack/app/datadog.rb +17 -0
  30. data/integration/apps/rack/bin/run +22 -0
  31. data/integration/apps/rack/bin/setup +17 -0
  32. data/integration/apps/rack/bin/test +24 -0
  33. data/integration/apps/rack/config.ru +6 -0
  34. data/integration/apps/rack/config/puma.rb +14 -0
  35. data/integration/apps/rack/config/unicorn.rb +23 -0
  36. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  37. data/integration/apps/rack/docker-compose.yml +78 -0
  38. data/integration/apps/rack/script/build-images +38 -0
  39. data/integration/apps/rack/script/ci +50 -0
  40. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  41. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  42. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  43. data/integration/apps/rails-five/.dockerignore +1 -0
  44. data/integration/apps/rails-five/.env +3 -0
  45. data/integration/apps/rails-five/.envrc.sample +1 -0
  46. data/integration/apps/rails-five/.gitignore +30 -0
  47. data/integration/apps/rails-five/Dockerfile +25 -0
  48. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  49. data/integration/apps/rails-five/Gemfile +104 -0
  50. data/integration/apps/rails-five/README.md +94 -0
  51. data/integration/apps/rails-five/Rakefile +6 -0
  52. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  53. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  54. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  55. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  56. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  57. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  58. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  59. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  60. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  61. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  62. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  63. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  64. data/integration/apps/rails-five/app/models/test.rb +2 -0
  65. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  66. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  67. data/integration/apps/rails-five/bin/bundle +3 -0
  68. data/integration/apps/rails-five/bin/rails +9 -0
  69. data/integration/apps/rails-five/bin/rake +9 -0
  70. data/integration/apps/rails-five/bin/run +24 -0
  71. data/integration/apps/rails-five/bin/setup +27 -0
  72. data/integration/apps/rails-five/bin/spring +17 -0
  73. data/integration/apps/rails-five/bin/test +21 -0
  74. data/integration/apps/rails-five/bin/update +28 -0
  75. data/integration/apps/rails-five/config.ru +5 -0
  76. data/integration/apps/rails-five/config/application.rb +97 -0
  77. data/integration/apps/rails-five/config/boot.rb +4 -0
  78. data/integration/apps/rails-five/config/cable.yml +10 -0
  79. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  80. data/integration/apps/rails-five/config/database.yml +28 -0
  81. data/integration/apps/rails-five/config/environment.rb +5 -0
  82. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  83. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  84. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  85. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  86. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  87. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  88. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  89. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  90. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  91. data/integration/apps/rails-five/config/puma.rb +24 -0
  92. data/integration/apps/rails-five/config/routes.rb +11 -0
  93. data/integration/apps/rails-five/config/spring.rb +6 -0
  94. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  95. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  96. data/integration/apps/rails-five/db/schema.rb +23 -0
  97. data/integration/apps/rails-five/db/seeds.rb +7 -0
  98. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  99. data/integration/apps/rails-five/docker-compose.yml +100 -0
  100. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  101. data/integration/apps/rails-five/log/.keep +0 -0
  102. data/integration/apps/rails-five/public/robots.txt +1 -0
  103. data/integration/apps/rails-five/script/build-images +35 -0
  104. data/integration/apps/rails-five/script/ci +50 -0
  105. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  106. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  107. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  108. data/integration/apps/rails-five/storage/.keep +0 -0
  109. data/integration/apps/rails-five/tmp/.keep +0 -0
  110. data/integration/apps/rails-five/vendor/.keep +0 -0
  111. data/integration/apps/ruby/.dockerignore +1 -0
  112. data/integration/apps/ruby/.envrc.sample +1 -0
  113. data/integration/apps/ruby/.gitignore +2 -0
  114. data/integration/apps/ruby/Dockerfile +25 -0
  115. data/integration/apps/ruby/Dockerfile-ci +11 -0
  116. data/integration/apps/ruby/Gemfile +11 -0
  117. data/integration/apps/ruby/README.md +70 -0
  118. data/integration/apps/ruby/agent.yaml +3 -0
  119. data/integration/apps/ruby/app/datadog.rb +13 -0
  120. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  121. data/integration/apps/ruby/bin/run +20 -0
  122. data/integration/apps/ruby/bin/setup +17 -0
  123. data/integration/apps/ruby/bin/test +21 -0
  124. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  125. data/integration/apps/ruby/docker-compose.yml +63 -0
  126. data/integration/apps/ruby/script/build-images +38 -0
  127. data/integration/apps/ruby/script/ci +50 -0
  128. data/integration/images/agent/Dockerfile +2 -0
  129. data/integration/images/agent/agent.yaml +3 -0
  130. data/integration/images/include/datadog/analyzer.rb +71 -0
  131. data/integration/images/include/datadog/demo_env.rb +101 -0
  132. data/integration/images/include/http-health-check +33 -0
  133. data/integration/images/ruby/2.0/Dockerfile +54 -0
  134. data/integration/images/ruby/2.1/Dockerfile +54 -0
  135. data/integration/images/ruby/2.2/Dockerfile +54 -0
  136. data/integration/images/ruby/2.3/Dockerfile +70 -0
  137. data/integration/images/ruby/2.4/Dockerfile +54 -0
  138. data/integration/images/ruby/2.5/Dockerfile +54 -0
  139. data/integration/images/ruby/2.6/Dockerfile +54 -0
  140. data/integration/images/ruby/2.7/Dockerfile +54 -0
  141. data/integration/images/ruby/3.0/Dockerfile +54 -0
  142. data/integration/images/wrk/Dockerfile +33 -0
  143. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  144. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  145. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  146. data/integration/script/build-images +43 -0
  147. data/lib/ddtrace.rb +10 -5
  148. data/lib/ddtrace/analytics.rb +2 -0
  149. data/lib/ddtrace/auto_instrument.rb +3 -0
  150. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  151. data/lib/ddtrace/buffer.rb +230 -134
  152. data/lib/ddtrace/configuration.rb +21 -5
  153. data/lib/ddtrace/configuration/base.rb +1 -1
  154. data/lib/ddtrace/configuration/components.rb +2 -2
  155. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  156. data/lib/ddtrace/configuration/options.rb +2 -3
  157. data/lib/ddtrace/configuration/settings.rb +21 -5
  158. data/lib/ddtrace/context.rb +23 -6
  159. data/lib/ddtrace/context_provider.rb +18 -5
  160. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  161. data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
  162. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  163. data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
  164. data/lib/ddtrace/contrib/action_view/event.rb +1 -5
  165. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  166. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  167. data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
  168. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  169. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +17 -5
  170. data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
  171. data/lib/ddtrace/contrib/active_record/utils.rb +68 -21
  172. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +104 -3
  173. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +21 -0
  174. data/lib/ddtrace/contrib/active_support/ext.rb +3 -0
  175. data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
  176. data/lib/ddtrace/contrib/active_support/notifications/event.rb +12 -1
  177. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  178. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  179. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  180. data/lib/ddtrace/contrib/aws/instrumentation.rb +2 -1
  181. data/lib/ddtrace/contrib/aws/patcher.rb +1 -1
  182. data/lib/ddtrace/contrib/aws/services.rb +2 -0
  183. data/lib/ddtrace/contrib/configurable.rb +2 -0
  184. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +6 -8
  185. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +28 -0
  186. data/lib/ddtrace/contrib/cucumber/ext.rb +17 -0
  187. data/lib/ddtrace/contrib/cucumber/formatter.rb +98 -0
  188. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
  189. data/lib/ddtrace/contrib/cucumber/integration.rb +45 -0
  190. data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
  191. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  192. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +2 -0
  193. data/lib/ddtrace/contrib/delayed_job/ext.rb +2 -0
  194. data/lib/ddtrace/contrib/delayed_job/plugin.rb +38 -15
  195. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  196. data/lib/ddtrace/contrib/ethon/easy_patch.rb +11 -10
  197. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  198. data/lib/ddtrace/contrib/excon/middleware.rb +9 -7
  199. data/lib/ddtrace/contrib/extensions.rb +28 -1
  200. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  201. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  202. data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -0
  203. data/lib/ddtrace/contrib/grape/endpoint.rb +47 -21
  204. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  205. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  206. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  207. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -1
  208. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  209. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  210. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  211. data/lib/ddtrace/contrib/http/instrumentation.rb +7 -7
  212. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  213. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  214. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +151 -0
  215. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  216. data/lib/ddtrace/contrib/httpclient/patcher.rb +35 -0
  217. data/lib/ddtrace/contrib/httprb/instrumentation.rb +5 -6
  218. data/lib/ddtrace/contrib/kafka/event.rb +1 -1
  219. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  220. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  221. data/lib/ddtrace/contrib/patchable.rb +18 -7
  222. data/lib/ddtrace/contrib/patcher.rb +1 -1
  223. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  224. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  225. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  226. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  227. data/lib/ddtrace/contrib/qless/qless_job.rb +73 -0
  228. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +33 -0
  229. data/lib/ddtrace/contrib/que/configuration/settings.rb +1 -0
  230. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  231. data/lib/ddtrace/contrib/que/tracer.rb +3 -2
  232. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  233. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  234. data/lib/ddtrace/contrib/rack/integration.rb +7 -0
  235. data/lib/ddtrace/contrib/rack/middlewares.rb +6 -11
  236. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  237. data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
  238. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  239. data/lib/ddtrace/contrib/rails/patcher.rb +19 -5
  240. data/lib/ddtrace/contrib/rails/utils.rb +4 -0
  241. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  242. data/lib/ddtrace/contrib/rake/integration.rb +1 -1
  243. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +3 -1
  244. data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
  245. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  246. data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
  247. data/lib/ddtrace/contrib/redis/quantize.rb +28 -0
  248. data/lib/ddtrace/contrib/redis/tags.rb +5 -1
  249. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  250. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  251. data/lib/ddtrace/contrib/registry.rb +2 -2
  252. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  253. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  254. data/lib/ddtrace/contrib/resque/resque_job.rb +3 -1
  255. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  256. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +28 -0
  257. data/lib/ddtrace/contrib/rspec/example.rb +75 -0
  258. data/lib/ddtrace/contrib/rspec/ext.rb +16 -0
  259. data/lib/ddtrace/contrib/rspec/integration.rb +46 -0
  260. data/lib/ddtrace/contrib/rspec/patcher.rb +23 -0
  261. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  262. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  263. data/lib/ddtrace/contrib/shoryuken/tracer.rb +3 -1
  264. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  265. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +5 -7
  266. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  267. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  268. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  269. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  270. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +5 -5
  271. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  272. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  273. data/lib/ddtrace/contrib/sneakers/tracer.rb +16 -21
  274. data/lib/ddtrace/contrib/status_code_matcher.rb +69 -0
  275. data/lib/ddtrace/correlation.rb +1 -0
  276. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -1
  277. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  278. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  279. data/lib/ddtrace/ext/app_types.rb +1 -0
  280. data/lib/ddtrace/ext/ci.rb +297 -0
  281. data/lib/ddtrace/ext/distributed.rb +8 -2
  282. data/lib/ddtrace/ext/git.rb +11 -0
  283. data/lib/ddtrace/ext/http.rb +1 -1
  284. data/lib/ddtrace/ext/runtime.rb +2 -1
  285. data/lib/ddtrace/ext/test.rb +24 -0
  286. data/lib/ddtrace/forced_tracing.rb +2 -0
  287. data/lib/ddtrace/logger.rb +1 -1
  288. data/lib/ddtrace/metrics.rb +10 -6
  289. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  290. data/lib/ddtrace/opentracer/span.rb +2 -6
  291. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  292. data/lib/ddtrace/patcher.rb +2 -3
  293. data/lib/ddtrace/pin.rb +3 -52
  294. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  295. data/lib/ddtrace/propagation/grpc_propagator.rb +17 -4
  296. data/lib/ddtrace/propagation/http_propagator.rb +17 -2
  297. data/lib/ddtrace/quantization/http.rb +1 -0
  298. data/lib/ddtrace/runtime/cgroup.rb +1 -1
  299. data/lib/ddtrace/runtime/container.rb +2 -2
  300. data/lib/ddtrace/runtime/identity.rb +4 -5
  301. data/lib/ddtrace/sampler.rb +1 -1
  302. data/lib/ddtrace/sampling/rate_limiter.rb +65 -16
  303. data/lib/ddtrace/sampling/rule_sampler.rb +1 -0
  304. data/lib/ddtrace/span.rb +7 -7
  305. data/lib/ddtrace/sync_writer.rb +7 -10
  306. data/lib/ddtrace/tracer.rb +23 -10
  307. data/lib/ddtrace/transport/http.rb +1 -3
  308. data/lib/ddtrace/transport/http/adapters/net.rb +9 -4
  309. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  310. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  311. data/lib/ddtrace/transport/http/builder.rb +2 -0
  312. data/lib/ddtrace/transport/http/traces.rb +2 -3
  313. data/lib/ddtrace/transport/io.rb +1 -1
  314. data/lib/ddtrace/transport/traces.rb +3 -0
  315. data/lib/ddtrace/utils.rb +10 -11
  316. data/lib/ddtrace/utils/forking.rb +52 -0
  317. data/lib/ddtrace/utils/time.rb +25 -1
  318. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  319. data/lib/ddtrace/version.rb +1 -1
  320. data/lib/ddtrace/workers.rb +5 -0
  321. data/lib/ddtrace/workers/async.rb +8 -0
  322. data/lib/ddtrace/workers/loop.rb +3 -0
  323. data/lib/ddtrace/workers/polling.rb +1 -0
  324. data/lib/ddtrace/workers/runtime_metrics.rb +7 -3
  325. data/lib/ddtrace/workers/trace_writer.rb +9 -10
  326. data/lib/ddtrace/writer.rb +22 -4
  327. metadata +168 -358
  328. data/lib/ddtrace/augmentation.rb +0 -13
  329. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  330. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  331. data/lib/ddtrace/augmentation/shim.rb +0 -102
  332. data/lib/ddtrace/monkey.rb +0 -58
data/CONTRIBUTING.md CHANGED
@@ -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/Gemfile CHANGED
@@ -2,6 +2,43 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- # Add debugger for pry that's compatible with 0.10.4
6
- gem 'pry-nav', git: 'https://github.com/nixme/pry-nav.git', branch: 'master'
7
- # This file was generated by Appraisal
5
+ # Development dependencies
6
+ gem 'addressable', '~> 2.4.0' # locking transitive dependency of webmock
7
+ gem 'appraisal', '~> 2.2'
8
+ gem 'benchmark-ips', '~> 2.8'
9
+ gem 'benchmark-memory', '~> 0.1'
10
+ gem 'builder'
11
+ gem 'climate_control', '~> 0.2.0'
12
+ # Leave it open as we also have it as an integration and want Appraisal to control the version under test.
13
+ gem 'concurrent-ruby'
14
+ gem 'memory_profiler', '~> 0.9'
15
+ gem 'minitest', '= 5.10.1'
16
+ gem 'minitest-around', '0.5.0'
17
+ gem 'minitest-stub_any_instance', '1.0.2'
18
+ gem 'pimpmychangelog', '>= 0.1.2'
19
+ gem 'pry', '~> 0.12.2'
20
+ gem 'pry-nav', '~> 0.3.0'
21
+ gem 'pry-stack_explorer', '~> 0.4.9' if RUBY_PLATFORM != 'java'
22
+ gem 'rake', '>= 10.5'
23
+ gem 'redcarpet', '~> 3.4' if RUBY_PLATFORM != 'java'
24
+ gem 'rspec', '~> 3.10'
25
+ gem 'rspec-collection_matchers', '~> 1.1'
26
+ gem 'rspec_junit_formatter', '>= 0.4.1'
27
+ gem 'rspec_n', '~> 1.3' if RUBY_VERSION >= '2.3.0'
28
+ gem 'ruby-prof', '~> 1.4' if RUBY_PLATFORM != 'java' && RUBY_VERSION >= '2.4.0'
29
+ gem 'simplecov', '~> 0.17'
30
+ gem 'warning', '~> 1' if RUBY_VERSION >= '2.5.0'
31
+ gem 'webmock', '>= 3.10.0'
32
+ gem 'webrick', '>= 1.7.0' if RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0
33
+ gem 'yard', '~> 0.9'
34
+
35
+ if RUBY_VERSION >= '2.4.0'
36
+ gem 'rubocop', '~> 1.10', require: false
37
+ gem 'rubocop-performance', '~> 1.9', require: false
38
+ gem 'rubocop-rspec', '~> 2.2', require: false
39
+ end
40
+
41
+ # Optional extensions
42
+ # TODO: Move this to Appraisals?
43
+ gem 'dogstatsd-ruby', '>= 3.3.0'
44
+ gem 'opentracing', '>= 0.4.1'
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Datadog Trace Client
2
2
 
3
3
  [![CircleCI](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master.svg?style=svg&circle-token=b0bd5ef866ec7f7b018f48731bb495f2d1372cc1)](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master)
4
+ [![codecov](https://codecov.io/gh/DataDog/dd-trace-rb/branch/master/graph/badge.svg)](https://app.codecov.io/gh/DataDog/dd-trace-rb/branch/master)
4
5
 
5
6
  ``ddtrace`` is Datadog’s tracing client for Ruby. It is used to trace requests as they flow across web servers,
6
7
  databases and microservices so that developers have great visiblity into bottlenecks and troublesome requests.
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'ddtrace/version'
3
- require 'rubocop/rake_task' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
3
+ require 'rubocop/rake_task' if Gem.loaded_specs.key? 'rubocop'
4
4
  require 'rspec/core/rake_task'
5
5
  require 'rake/testtask'
6
6
  require 'appraisal'
@@ -17,7 +17,8 @@ namespace :spec do
17
17
 
18
18
  RSpec::Core::RakeTask.new(:main) do |t, args|
19
19
  t.pattern = 'spec/**/*_spec.rb'
20
- t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry}/**/*_spec.rb'
20
+ t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry,auto_instrument}/**/*_spec.rb,'\
21
+ ' spec/**/auto_instrument_spec.rb'
21
22
  t.rspec_opts = args.to_a.join(' ')
22
23
  end
23
24
 
@@ -38,7 +39,7 @@ namespace :spec do
38
39
 
39
40
  RSpec::Core::RakeTask.new(:rails) do |t, args|
40
41
  t.pattern = 'spec/ddtrace/contrib/rails/**/*_spec.rb'
41
- t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{active_job,disable_env,redis_cache}*_spec.rb'
42
+ t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{active_job,disable_env,redis_cache,auto_instrument}*_spec.rb'
42
43
  t.rspec_opts = args.to_a.join(' ')
43
44
  end
44
45
 
@@ -57,6 +58,16 @@ namespace :spec do
57
58
  t.rspec_opts = args.to_a.join(' ')
58
59
  end
59
60
 
61
+ RSpec::Core::RakeTask.new(:railsautoinstrument) do |t, args|
62
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*auto_instrument*_spec.rb'
63
+ t.rspec_opts = args.to_a.join(' ')
64
+ end
65
+
66
+ RSpec::Core::RakeTask.new(:autoinstrument) do |t, args|
67
+ t.pattern = 'spec/ddtrace/auto_instrument_spec.rb'
68
+ t.rspec_opts = args.to_a.join(' ')
69
+ end
70
+
60
71
  RSpec::Core::RakeTask.new(:contrib) do |t, args|
61
72
  contrib_paths = [
62
73
  'analytics',
@@ -85,6 +96,7 @@ namespace :spec do
85
96
  :active_support,
86
97
  :aws,
87
98
  :concurrent_ruby,
99
+ :cucumber,
88
100
  :dalli,
89
101
  :delayed_job,
90
102
  :elasticsearch,
@@ -95,11 +107,13 @@ namespace :spec do
95
107
  :graphql,
96
108
  :grpc,
97
109
  :http,
110
+ :httpclient,
98
111
  :httprb,
99
112
  :kafka,
100
113
  :mongodb,
101
114
  :mysql2,
102
115
  :presto,
116
+ :qless,
103
117
  :que,
104
118
  :racecar,
105
119
  :rack,
@@ -107,6 +121,7 @@ namespace :spec do
107
121
  :redis,
108
122
  :resque,
109
123
  :rest_client,
124
+ :rspec,
110
125
  :sequel,
111
126
  :shoryuken,
112
127
  :sidekiq,
@@ -124,16 +139,14 @@ end
124
139
 
125
140
  namespace :test do
126
141
  task all: [:main,
127
- :rails,
128
- :monkey]
142
+ :rails]
129
143
 
130
144
  Rake::TestTask.new(:main) do |t|
131
145
  t.libs << %w[test lib]
132
146
  t.test_files = FileList['test/**/*_test.rb'].reject do |path|
133
147
  path.include?('contrib') ||
134
148
  path.include?('benchmark') ||
135
- path.include?('redis') ||
136
- path.include?('monkey_test.rb')
149
+ path.include?('redis')
137
150
  end
138
151
  end
139
152
 
@@ -141,19 +154,6 @@ namespace :test do
141
154
  t.libs << %w[test lib]
142
155
  t.test_files = FileList['test/contrib/rails/**/*_test.rb']
143
156
  end
144
-
145
- [
146
- ].each do |contrib|
147
- Rake::TestTask.new(contrib) do |t|
148
- t.libs << %w[test lib]
149
- t.test_files = FileList["test/contrib/#{contrib}/*_test.rb"]
150
- end
151
- end
152
-
153
- Rake::TestTask.new(:monkey) do |t|
154
- t.libs << %w[test lib]
155
- t.test_files = FileList['test/monkey_test.rb']
156
- end
157
157
  end
158
158
 
159
159
  Rake::TestTask.new(:benchmark) do |t|
@@ -161,7 +161,7 @@ Rake::TestTask.new(:benchmark) do |t|
161
161
  t.test_files = FileList['test/benchmark_test.rb']
162
162
  end
163
163
 
164
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
164
+ if defined?(RuboCop::RakeTask)
165
165
  RuboCop::RakeTask.new(:rubocop) do |t|
166
166
  t.options << ['-D', '--force-exclusion']
167
167
  t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'spec/**/*.rb', 'Gemfile', 'Rakefile']
@@ -181,6 +181,7 @@ S3_DIR = ENV['S3_DIR']
181
181
  desc 'release the docs website'
182
182
  task :'release:docs' => :docs do
183
183
  raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
184
+
184
185
  sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
185
186
  end
186
187
 
@@ -211,12 +212,11 @@ task :ci do
211
212
  declare 'bundle exec rake spec:contrib'
212
213
 
213
214
  if RUBY_PLATFORM != 'java'
214
- # Contrib minitests
215
- declare 'bundle exec appraisal contrib-old rake test:monkey'
216
215
  # Contrib specs
217
216
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
218
217
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
219
218
  declare 'bundle exec appraisal contrib-old rake spec:active_support'
219
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
220
220
  declare 'bundle exec appraisal contrib-old rake spec:aws'
221
221
  declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
222
222
  declare 'bundle exec appraisal contrib-old rake spec:dalli'
@@ -226,6 +226,7 @@ task :ci do
226
226
  declare 'bundle exec appraisal contrib-old rake spec:excon'
227
227
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
228
228
  declare 'bundle exec appraisal contrib-old rake spec:http'
229
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
229
230
  declare 'bundle exec appraisal contrib-old rake spec:httprb'
230
231
  declare 'bundle exec appraisal contrib-old rake spec:mongodb'
231
232
  declare 'bundle exec appraisal contrib-old rake spec:mysql2'
@@ -234,6 +235,7 @@ task :ci do
234
235
  declare 'bundle exec appraisal contrib-old rake spec:redis'
235
236
  declare 'bundle exec appraisal contrib-old rake spec:resque'
236
237
  declare 'bundle exec appraisal contrib-old rake spec:rest_client'
238
+ declare 'bundle exec appraisal contrib-old rake spec:rspec'
237
239
  declare 'bundle exec appraisal contrib-old rake spec:sequel'
238
240
  declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
239
241
  declare 'bundle exec appraisal contrib-old rake spec:sinatra'
@@ -242,10 +244,12 @@ task :ci do
242
244
  # Rails minitests
243
245
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
244
246
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
247
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
245
248
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
246
249
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
247
250
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
248
251
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
252
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
249
253
  # Rails specs
250
254
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
251
255
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -265,12 +269,11 @@ task :ci do
265
269
  declare 'bundle exec rake spec:opentracer'
266
270
 
267
271
  if RUBY_PLATFORM != 'java'
268
- # Contrib minitests
269
- declare 'bundle exec appraisal contrib-old rake test:monkey'
270
272
  # Contrib specs
271
273
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
272
274
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
273
275
  declare 'bundle exec appraisal contrib-old rake spec:active_support'
276
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
274
277
  declare 'bundle exec appraisal contrib-old rake spec:aws'
275
278
  declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
276
279
  declare 'bundle exec appraisal contrib-old rake spec:dalli'
@@ -280,7 +283,9 @@ task :ci do
280
283
  declare 'bundle exec appraisal contrib-old rake spec:excon'
281
284
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
282
285
  declare 'bundle exec appraisal contrib-old rake spec:http'
286
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
283
287
  declare 'bundle exec appraisal contrib-old rake spec:httprb'
288
+ declare 'bundle exec appraisal contrib-old rake spec:kafka'
284
289
  declare 'bundle exec appraisal contrib-old rake spec:mongodb'
285
290
  declare 'bundle exec appraisal contrib-old rake spec:mysql2'
286
291
  declare 'bundle exec appraisal contrib-old rake spec:presto'
@@ -289,6 +294,7 @@ task :ci do
289
294
  declare 'bundle exec appraisal contrib-old rake spec:redis'
290
295
  declare 'bundle exec appraisal contrib-old rake spec:resque'
291
296
  declare 'bundle exec appraisal contrib-old rake spec:rest_client'
297
+ declare 'bundle exec appraisal contrib-old rake spec:rspec'
292
298
  declare 'bundle exec appraisal contrib-old rake spec:sequel'
293
299
  declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
294
300
  declare 'bundle exec appraisal contrib-old rake spec:sinatra'
@@ -297,14 +303,17 @@ task :ci do
297
303
  # Rails minitests
298
304
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
299
305
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
306
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
300
307
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
301
308
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
302
309
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
303
310
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
311
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
304
312
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
305
313
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
306
314
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
307
315
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
316
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
308
317
  # Rails specs
309
318
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
310
319
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -333,6 +342,7 @@ task :ci do
333
342
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
334
343
  declare 'bundle exec appraisal contrib rake spec:active_record'
335
344
  declare 'bundle exec appraisal contrib rake spec:active_support'
345
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
336
346
  declare 'bundle exec appraisal contrib rake spec:aws'
337
347
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
338
348
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -345,10 +355,13 @@ task :ci do
345
355
  declare 'bundle exec appraisal contrib rake spec:graphql'
346
356
  declare 'bundle exec appraisal contrib rake spec:grpc'
347
357
  declare 'bundle exec appraisal contrib rake spec:http'
358
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
348
359
  declare 'bundle exec appraisal contrib rake spec:httprb'
360
+ declare 'bundle exec appraisal contrib rake spec:kafka'
349
361
  declare 'bundle exec appraisal contrib rake spec:mongodb'
350
362
  declare 'bundle exec appraisal contrib rake spec:mysql2'
351
363
  declare 'bundle exec appraisal contrib rake spec:presto'
364
+ declare 'bundle exec appraisal contrib rake spec:qless'
352
365
  declare 'bundle exec appraisal contrib rake spec:que'
353
366
  declare 'bundle exec appraisal contrib rake spec:racecar'
354
367
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -356,6 +369,7 @@ task :ci do
356
369
  declare 'bundle exec appraisal contrib rake spec:redis'
357
370
  declare 'bundle exec appraisal contrib rake spec:resque'
358
371
  declare 'bundle exec appraisal contrib rake spec:rest_client'
372
+ declare 'bundle exec appraisal contrib rake spec:rspec'
359
373
  declare 'bundle exec appraisal contrib rake spec:sequel'
360
374
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
361
375
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -366,14 +380,17 @@ task :ci do
366
380
  # Rails minitests
367
381
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
368
382
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
383
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
369
384
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
370
385
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
371
386
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
372
387
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
388
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
373
389
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
374
390
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
375
391
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
376
392
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
393
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
377
394
  declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
378
395
  declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
379
396
  declare 'bundle exec appraisal rails5-postgres rake test:rails'
@@ -381,6 +398,7 @@ task :ci do
381
398
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
382
399
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
383
400
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
401
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
384
402
  # Rails specs
385
403
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
386
404
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -406,6 +424,7 @@ task :ci do
406
424
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
407
425
  declare 'bundle exec appraisal contrib rake spec:active_record'
408
426
  declare 'bundle exec appraisal contrib rake spec:active_support'
427
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
409
428
  declare 'bundle exec appraisal contrib rake spec:aws'
410
429
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
411
430
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -418,7 +437,9 @@ task :ci do
418
437
  declare 'bundle exec appraisal contrib rake spec:graphql'
419
438
  declare 'bundle exec appraisal contrib rake spec:grpc'
420
439
  declare 'bundle exec appraisal contrib rake spec:http'
440
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
421
441
  declare 'bundle exec appraisal contrib rake spec:httprb'
442
+ declare 'bundle exec appraisal contrib rake spec:kafka'
422
443
  declare 'bundle exec appraisal contrib rake spec:mongodb'
423
444
  declare 'bundle exec appraisal contrib rake spec:mysql2'
424
445
  declare 'bundle exec appraisal contrib rake spec:presto'
@@ -429,6 +450,7 @@ task :ci do
429
450
  declare 'bundle exec appraisal contrib rake spec:redis'
430
451
  declare 'bundle exec appraisal contrib rake spec:resque'
431
452
  declare 'bundle exec appraisal contrib rake spec:rest_client'
453
+ declare 'bundle exec appraisal contrib rake spec:rspec'
432
454
  declare 'bundle exec appraisal contrib rake spec:sequel'
433
455
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
434
456
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -441,14 +463,17 @@ task :ci do
441
463
  # Rails minitests
442
464
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
443
465
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
466
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
444
467
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
445
468
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
446
469
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
447
470
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
471
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
448
472
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
449
473
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
450
474
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
451
475
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
476
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
452
477
  declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
453
478
  declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
454
479
  declare 'bundle exec appraisal rails5-postgres rake test:rails'
@@ -456,6 +481,7 @@ task :ci do
456
481
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
457
482
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
458
483
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
484
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
459
485
  # Rails specs
460
486
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
461
487
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -464,6 +490,10 @@ task :ci do
464
490
  declare 'bundle exec appraisal rails4-postgres rake spec:rails'
465
491
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
466
492
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
493
+
494
+ # explicitly test resque-2x compatability
495
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
496
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
467
497
  end
468
498
  elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
469
499
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
@@ -482,6 +512,7 @@ task :ci do
482
512
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
483
513
  declare 'bundle exec appraisal contrib rake spec:active_record'
484
514
  declare 'bundle exec appraisal contrib rake spec:active_support'
515
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
485
516
  declare 'bundle exec appraisal contrib rake spec:aws'
486
517
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
487
518
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -494,7 +525,9 @@ task :ci do
494
525
  declare 'bundle exec appraisal contrib rake spec:graphql'
495
526
  declare 'bundle exec appraisal contrib rake spec:grpc'
496
527
  declare 'bundle exec appraisal contrib rake spec:http'
528
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
497
529
  declare 'bundle exec appraisal contrib rake spec:httprb'
530
+ declare 'bundle exec appraisal contrib rake spec:kafka'
498
531
  declare 'bundle exec appraisal contrib rake spec:mongodb'
499
532
  declare 'bundle exec appraisal contrib rake spec:mysql2'
500
533
  declare 'bundle exec appraisal contrib rake spec:presto'
@@ -505,6 +538,7 @@ task :ci do
505
538
  declare 'bundle exec appraisal contrib rake spec:redis'
506
539
  declare 'bundle exec appraisal contrib rake spec:resque'
507
540
  declare 'bundle exec appraisal contrib rake spec:rest_client'
541
+ declare 'bundle exec appraisal contrib rake spec:rspec'
508
542
  declare 'bundle exec appraisal contrib rake spec:sequel'
509
543
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
510
544
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -522,9 +556,18 @@ task :ci do
522
556
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
523
557
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
524
558
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
559
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
525
560
  # Rails specs
526
561
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
527
562
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
563
+
564
+ # explicitly test resque-2x compatability
565
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
566
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
567
+
568
+ # explicitly test cucumber compatibility
569
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
570
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
528
571
  end
529
572
  elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
530
573
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
@@ -541,8 +584,10 @@ task :ci do
541
584
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
542
585
  declare 'bundle exec appraisal contrib rake spec:active_record'
543
586
  declare 'bundle exec appraisal contrib rake spec:active_support'
587
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
544
588
  declare 'bundle exec appraisal contrib rake spec:aws'
545
589
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
590
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
546
591
  declare 'bundle exec appraisal contrib rake spec:dalli'
547
592
  declare 'bundle exec appraisal contrib rake spec:delayed_job'
548
593
  declare 'bundle exec appraisal contrib rake spec:elasticsearch'
@@ -553,10 +598,13 @@ task :ci do
553
598
  declare 'bundle exec appraisal contrib rake spec:graphql'
554
599
  declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
555
600
  declare 'bundle exec appraisal contrib rake spec:http'
601
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
556
602
  declare 'bundle exec appraisal contrib rake spec:httprb'
603
+ declare 'bundle exec appraisal contrib rake spec:kafka'
557
604
  declare 'bundle exec appraisal contrib rake spec:mongodb'
558
605
  declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
559
606
  declare 'bundle exec appraisal contrib rake spec:presto'
607
+ declare 'bundle exec appraisal contrib rake spec:qless'
560
608
  declare 'bundle exec appraisal contrib rake spec:que'
561
609
  declare 'bundle exec appraisal contrib rake spec:racecar'
562
610
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -564,6 +612,7 @@ task :ci do
564
612
  declare 'bundle exec appraisal contrib rake spec:redis'
565
613
  declare 'bundle exec appraisal contrib rake spec:resque'
566
614
  declare 'bundle exec appraisal contrib rake spec:rest_client'
615
+ declare 'bundle exec appraisal contrib rake spec:rspec'
567
616
  declare 'bundle exec appraisal contrib rake spec:sequel'
568
617
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
569
618
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -581,19 +630,38 @@ task :ci do
581
630
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
582
631
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
583
632
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
633
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
584
634
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
585
635
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
586
636
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
587
637
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
588
638
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
589
639
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
640
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
590
641
  # Rails specs
591
642
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
592
643
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
593
644
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
594
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
645
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
595
646
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
596
647
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
648
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
649
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
650
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
651
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
652
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
653
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
654
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
655
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
656
+
657
+ # explicitly test resque-2x compatability
658
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
659
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
660
+
661
+ # explicitly test cucumber compatibility
662
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
663
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
664
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
597
665
  elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
598
666
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
599
667
  # Main library
@@ -611,8 +679,10 @@ task :ci do
611
679
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
612
680
  declare 'bundle exec appraisal contrib rake spec:active_record'
613
681
  declare 'bundle exec appraisal contrib rake spec:active_support'
682
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
614
683
  declare 'bundle exec appraisal contrib rake spec:aws'
615
684
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
685
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
616
686
  declare 'bundle exec appraisal contrib rake spec:dalli'
617
687
  declare 'bundle exec appraisal contrib rake spec:delayed_job'
618
688
  declare 'bundle exec appraisal contrib rake spec:elasticsearch'
@@ -623,10 +693,13 @@ task :ci do
623
693
  declare 'bundle exec appraisal contrib rake spec:graphql'
624
694
  declare 'bundle exec appraisal contrib rake spec:grpc'
625
695
  declare 'bundle exec appraisal contrib rake spec:http'
696
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
626
697
  declare 'bundle exec appraisal contrib rake spec:httprb'
698
+ declare 'bundle exec appraisal contrib rake spec:kafka'
627
699
  declare 'bundle exec appraisal contrib rake spec:mongodb'
628
700
  declare 'bundle exec appraisal contrib rake spec:mysql2'
629
701
  declare 'bundle exec appraisal contrib rake spec:presto'
702
+ declare 'bundle exec appraisal contrib rake spec:qless'
630
703
  declare 'bundle exec appraisal contrib rake spec:que'
631
704
  declare 'bundle exec appraisal contrib rake spec:racecar'
632
705
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -634,6 +707,7 @@ task :ci do
634
707
  declare 'bundle exec appraisal contrib rake spec:redis'
635
708
  declare 'bundle exec appraisal contrib rake spec:resque'
636
709
  declare 'bundle exec appraisal contrib rake spec:rest_client'
710
+ declare 'bundle exec appraisal contrib rake spec:rspec'
637
711
  declare 'bundle exec appraisal contrib rake spec:sequel'
638
712
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
639
713
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -641,6 +715,7 @@ task :ci do
641
715
  declare 'bundle exec appraisal contrib rake spec:sneakers'
642
716
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
643
717
  declare 'bundle exec appraisal contrib rake spec:suite'
718
+
644
719
  # Contrib specs with old gem versions
645
720
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
646
721
  # Rails minitests
@@ -651,21 +726,41 @@ task :ci do
651
726
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
652
727
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
653
728
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
729
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
654
730
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
655
731
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
656
732
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
657
733
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
658
734
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
659
735
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
736
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
660
737
  # Rails specs
661
738
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
662
739
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
663
740
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
664
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
741
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
665
742
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
666
743
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
744
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
745
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
746
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
747
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
748
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
749
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
750
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
751
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
752
+
753
+ # explicitly test resque-2x compatability
754
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
755
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
756
+
757
+ # explicitly test cucumber compatibility
758
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
759
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
760
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
667
761
  end
668
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
762
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
763
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
669
764
  # Main library
670
765
  declare 'bundle exec rake test:main'
671
766
  declare 'bundle exec rake spec:main'
@@ -681,8 +776,10 @@ task :ci do
681
776
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
682
777
  declare 'bundle exec appraisal contrib rake spec:active_record'
683
778
  declare 'bundle exec appraisal contrib rake spec:active_support'
779
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
684
780
  declare 'bundle exec appraisal contrib rake spec:aws'
685
781
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
782
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
686
783
  declare 'bundle exec appraisal contrib rake spec:dalli'
687
784
  declare 'bundle exec appraisal contrib rake spec:delayed_job'
688
785
  declare 'bundle exec appraisal contrib rake spec:elasticsearch'
@@ -693,10 +790,13 @@ task :ci do
693
790
  declare 'bundle exec appraisal contrib rake spec:graphql'
694
791
  declare 'bundle exec appraisal contrib rake spec:grpc'
695
792
  declare 'bundle exec appraisal contrib rake spec:http'
793
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
696
794
  declare 'bundle exec appraisal contrib rake spec:httprb'
795
+ declare 'bundle exec appraisal contrib rake spec:kafka'
697
796
  declare 'bundle exec appraisal contrib rake spec:mongodb'
698
797
  declare 'bundle exec appraisal contrib rake spec:mysql2'
699
798
  declare 'bundle exec appraisal contrib rake spec:presto'
799
+ declare 'bundle exec appraisal contrib rake spec:qless'
700
800
  declare 'bundle exec appraisal contrib rake spec:que'
701
801
  declare 'bundle exec appraisal contrib rake spec:racecar'
702
802
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -704,6 +804,7 @@ task :ci do
704
804
  declare 'bundle exec appraisal contrib rake spec:redis'
705
805
  declare 'bundle exec appraisal contrib rake spec:resque'
706
806
  declare 'bundle exec appraisal contrib rake spec:rest_client'
807
+ declare 'bundle exec appraisal contrib rake spec:rspec'
707
808
  declare 'bundle exec appraisal contrib rake spec:sequel'
708
809
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
709
810
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -711,6 +812,7 @@ task :ci do
711
812
  declare 'bundle exec appraisal contrib rake spec:sneakers'
712
813
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
713
814
  declare 'bundle exec appraisal contrib rake spec:suite'
815
+
714
816
  # Contrib specs with old gem versions
715
817
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
716
818
  # Rails minitests
@@ -721,17 +823,108 @@ task :ci do
721
823
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
722
824
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
723
825
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
826
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
724
827
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
725
828
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
726
829
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
727
830
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
728
831
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
729
832
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
833
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
730
834
  # Rails specs
731
835
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
732
836
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
837
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
733
838
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
734
839
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
840
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
841
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
842
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
843
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
844
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
845
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
846
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
847
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
848
+
849
+ # explicitly test resque-2x compatability
850
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
851
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
852
+
853
+ # explicitly test cucumber compatibility
854
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
855
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
856
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
857
+ end
858
+ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
859
+ # Main library
860
+ declare 'bundle exec rake test:main'
861
+ declare 'bundle exec rake spec:main'
862
+ declare 'bundle exec rake spec:contrib'
863
+ declare 'bundle exec rake spec:opentracer'
864
+ declare 'bundle exec rake spec:opentelemetry'
865
+
866
+ if RUBY_PLATFORM != 'java'
867
+ # Contrib minitests
868
+ # Contrib specs
869
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
870
+ declare 'bundle exec appraisal contrib rake spec:action_view'
871
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
872
+ declare 'bundle exec appraisal contrib rake spec:active_record'
873
+ declare 'bundle exec appraisal contrib rake spec:active_support'
874
+ declare 'bundle exec appraisal contrib rake spec:aws'
875
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
876
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
877
+ declare 'bundle exec appraisal contrib rake spec:dalli'
878
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
879
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
880
+ declare 'bundle exec appraisal contrib rake spec:ethon'
881
+ declare 'bundle exec appraisal contrib rake spec:excon'
882
+ declare 'bundle exec appraisal contrib rake spec:faraday'
883
+ declare 'bundle exec appraisal contrib rake spec:grape'
884
+ declare 'bundle exec appraisal contrib rake spec:graphql'
885
+ # declare 'bundle exec appraisal contrib rake spec:grpc' # Pending https://github.com/protocolbuffers/protobuf/issues/7922
886
+ declare 'bundle exec appraisal contrib rake spec:http'
887
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
888
+ declare 'bundle exec appraisal contrib rake spec:httprb'
889
+ declare 'bundle exec appraisal contrib rake spec:kafka'
890
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
891
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
892
+ declare 'bundle exec appraisal contrib rake spec:presto'
893
+ declare 'bundle exec appraisal contrib rake spec:qless'
894
+ declare 'bundle exec appraisal contrib rake spec:que'
895
+ # declare 'bundle exec appraisal contrib rake spec:racecar' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
896
+ declare 'bundle exec appraisal contrib rake spec:rack'
897
+ declare 'bundle exec appraisal contrib rake spec:rake'
898
+ declare 'bundle exec appraisal contrib rake spec:redis'
899
+ declare 'bundle exec appraisal contrib rake spec:resque'
900
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
901
+ declare 'bundle exec appraisal contrib rake spec:rspec'
902
+ declare 'bundle exec appraisal contrib rake spec:sequel'
903
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
904
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
905
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
906
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
907
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
908
+ declare 'bundle exec appraisal contrib rake spec:suite'
909
+
910
+ # Rails
911
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
912
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
913
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
914
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
915
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
916
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
917
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
918
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
919
+
920
+ # explicitly test resque-2x compatability
921
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
922
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
923
+
924
+ # explicitly test cucumber compatibility
925
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
926
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
927
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
735
928
  end
736
929
  end
737
930
  end
@@ -746,7 +939,13 @@ namespace :coverage do
746
939
 
747
940
  SimpleCov.collate resultset_files do
748
941
  coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
749
- formatter SimpleCov::Formatter::HTMLFormatter
942
+ if ENV['CI'] == 'true'
943
+ require 'codecov'
944
+ formatter SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter,
945
+ SimpleCov::Formatter::Codecov])
946
+ else
947
+ formatter SimpleCov::Formatter::HTMLFormatter
948
+ end
750
949
  end
751
950
  end
752
951
 
@@ -765,4 +964,12 @@ namespace :coverage do
765
964
  end
766
965
  end
767
966
 
967
+ namespace :changelog do
968
+ task :format do
969
+ require 'pimpmychangelog'
970
+
971
+ PimpMyChangelog::CLI.run!
972
+ end
973
+ end
974
+
768
975
  task default: :test