ddtrace 0.41.0 → 0.46.0

Sign up to get free protection for your applications and to get access to all the features.
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