ddtrace 0.42.0 → 0.47.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (356) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +274 -137
  3. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  4. data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2-latest} +2 -1
  5. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +73 -0
  6. data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +73 -0
  7. data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
  8. data/.github/workflows/create-next-milestone.yml +20 -0
  9. data/.rubocop.yml +250 -7
  10. data/.rubocop_todo.yml +397 -0
  11. data/.simplecov +9 -0
  12. data/Appraisals +386 -142
  13. data/CHANGELOG.md +1218 -362
  14. data/CONTRIBUTING.md +1 -1
  15. data/Gemfile +55 -3
  16. data/LICENSE-3rdparty.csv +2 -0
  17. data/README.md +1 -0
  18. data/Rakefile +216 -29
  19. data/ddtrace.gemspec +4 -36
  20. data/docker-compose.yml +105 -7
  21. data/docs/DevelopmentGuide.md +30 -2
  22. data/docs/GettingStarted.md +242 -22
  23. data/integration/README.md +68 -0
  24. data/integration/apps/rack/.dockerignore +1 -0
  25. data/integration/apps/rack/.envrc.sample +1 -0
  26. data/integration/apps/rack/.gitignore +4 -0
  27. data/integration/apps/rack/.rspec +1 -0
  28. data/integration/apps/rack/Dockerfile +25 -0
  29. data/integration/apps/rack/Dockerfile-ci +11 -0
  30. data/integration/apps/rack/Gemfile +24 -0
  31. data/integration/apps/rack/README.md +93 -0
  32. data/integration/apps/rack/app/acme.rb +80 -0
  33. data/integration/apps/rack/app/datadog.rb +17 -0
  34. data/integration/apps/rack/bin/run +22 -0
  35. data/integration/apps/rack/bin/setup +17 -0
  36. data/integration/apps/rack/bin/test +24 -0
  37. data/integration/apps/rack/config.ru +6 -0
  38. data/integration/apps/rack/config/puma.rb +14 -0
  39. data/integration/apps/rack/config/unicorn.rb +23 -0
  40. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  41. data/integration/apps/rack/docker-compose.yml +78 -0
  42. data/integration/apps/rack/script/build-images +38 -0
  43. data/integration/apps/rack/script/ci +50 -0
  44. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  45. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  46. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  47. data/integration/apps/rails-five/.dockerignore +1 -0
  48. data/integration/apps/rails-five/.env +3 -0
  49. data/integration/apps/rails-five/.envrc.sample +1 -0
  50. data/integration/apps/rails-five/.gitignore +30 -0
  51. data/integration/apps/rails-five/Dockerfile +25 -0
  52. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  53. data/integration/apps/rails-five/Gemfile +104 -0
  54. data/integration/apps/rails-five/README.md +94 -0
  55. data/integration/apps/rails-five/Rakefile +6 -0
  56. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  57. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  58. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  59. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  60. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  61. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  62. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  63. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  64. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  65. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  66. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  67. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  68. data/integration/apps/rails-five/app/models/test.rb +2 -0
  69. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  70. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  71. data/integration/apps/rails-five/bin/bundle +3 -0
  72. data/integration/apps/rails-five/bin/rails +9 -0
  73. data/integration/apps/rails-five/bin/rake +9 -0
  74. data/integration/apps/rails-five/bin/run +24 -0
  75. data/integration/apps/rails-five/bin/setup +27 -0
  76. data/integration/apps/rails-five/bin/spring +17 -0
  77. data/integration/apps/rails-five/bin/test +21 -0
  78. data/integration/apps/rails-five/bin/update +28 -0
  79. data/integration/apps/rails-five/config.ru +5 -0
  80. data/integration/apps/rails-five/config/application.rb +97 -0
  81. data/integration/apps/rails-five/config/boot.rb +4 -0
  82. data/integration/apps/rails-five/config/cable.yml +10 -0
  83. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  84. data/integration/apps/rails-five/config/database.yml +28 -0
  85. data/integration/apps/rails-five/config/environment.rb +5 -0
  86. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  87. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  88. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  89. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  90. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  91. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  92. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  93. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  94. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  95. data/integration/apps/rails-five/config/puma.rb +24 -0
  96. data/integration/apps/rails-five/config/routes.rb +11 -0
  97. data/integration/apps/rails-five/config/spring.rb +6 -0
  98. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  99. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  100. data/integration/apps/rails-five/db/schema.rb +23 -0
  101. data/integration/apps/rails-five/db/seeds.rb +7 -0
  102. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  103. data/integration/apps/rails-five/docker-compose.yml +100 -0
  104. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  105. data/integration/apps/rails-five/log/.keep +0 -0
  106. data/integration/apps/rails-five/public/robots.txt +1 -0
  107. data/integration/apps/rails-five/script/build-images +35 -0
  108. data/integration/apps/rails-five/script/ci +50 -0
  109. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  110. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  111. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  112. data/integration/apps/rails-five/storage/.keep +0 -0
  113. data/integration/apps/rails-five/tmp/.keep +0 -0
  114. data/integration/apps/rails-five/vendor/.keep +0 -0
  115. data/integration/apps/ruby/.dockerignore +1 -0
  116. data/integration/apps/ruby/.envrc.sample +1 -0
  117. data/integration/apps/ruby/.gitignore +2 -0
  118. data/integration/apps/ruby/Dockerfile +25 -0
  119. data/integration/apps/ruby/Dockerfile-ci +11 -0
  120. data/integration/apps/ruby/Gemfile +11 -0
  121. data/integration/apps/ruby/README.md +70 -0
  122. data/integration/apps/ruby/agent.yaml +3 -0
  123. data/integration/apps/ruby/app/datadog.rb +13 -0
  124. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  125. data/integration/apps/ruby/bin/run +20 -0
  126. data/integration/apps/ruby/bin/setup +17 -0
  127. data/integration/apps/ruby/bin/test +21 -0
  128. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  129. data/integration/apps/ruby/docker-compose.yml +63 -0
  130. data/integration/apps/ruby/script/build-images +38 -0
  131. data/integration/apps/ruby/script/ci +50 -0
  132. data/integration/images/agent/Dockerfile +2 -0
  133. data/integration/images/agent/agent.yaml +3 -0
  134. data/integration/images/include/datadog/analyzer.rb +71 -0
  135. data/integration/images/include/datadog/demo_env.rb +101 -0
  136. data/integration/images/include/http-health-check +33 -0
  137. data/integration/images/ruby/2.0/Dockerfile +54 -0
  138. data/integration/images/ruby/2.1/Dockerfile +54 -0
  139. data/integration/images/ruby/2.2/Dockerfile +54 -0
  140. data/integration/images/ruby/2.3/Dockerfile +70 -0
  141. data/integration/images/ruby/2.4/Dockerfile +54 -0
  142. data/integration/images/ruby/2.5/Dockerfile +54 -0
  143. data/integration/images/ruby/2.6/Dockerfile +54 -0
  144. data/integration/images/ruby/2.7/Dockerfile +54 -0
  145. data/integration/images/ruby/3.0/Dockerfile +54 -0
  146. data/integration/images/wrk/Dockerfile +33 -0
  147. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  148. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  149. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  150. data/integration/script/build-images +43 -0
  151. data/lib/ddtrace.rb +10 -5
  152. data/lib/ddtrace/analytics.rb +2 -0
  153. data/lib/ddtrace/auto_instrument.rb +3 -0
  154. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  155. data/lib/ddtrace/buffer.rb +4 -4
  156. data/lib/ddtrace/configuration.rb +108 -23
  157. data/lib/ddtrace/configuration/base.rb +1 -1
  158. data/lib/ddtrace/configuration/components.rb +2 -2
  159. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  160. data/lib/ddtrace/configuration/options.rb +4 -7
  161. data/lib/ddtrace/configuration/settings.rb +21 -5
  162. data/lib/ddtrace/context.rb +23 -6
  163. data/lib/ddtrace/context_provider.rb +12 -2
  164. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  165. data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
  166. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  167. data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
  168. data/lib/ddtrace/contrib/action_view/event.rb +1 -5
  169. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  170. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  171. data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
  172. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  173. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +101 -18
  174. data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
  175. data/lib/ddtrace/contrib/active_record/utils.rb +68 -21
  176. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +104 -3
  177. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +21 -0
  178. data/lib/ddtrace/contrib/active_support/ext.rb +3 -0
  179. data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
  180. data/lib/ddtrace/contrib/active_support/notifications/event.rb +12 -1
  181. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  182. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  183. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  184. data/lib/ddtrace/contrib/aws/instrumentation.rb +2 -1
  185. data/lib/ddtrace/contrib/aws/patcher.rb +1 -1
  186. data/lib/ddtrace/contrib/aws/services.rb +3 -0
  187. data/lib/ddtrace/contrib/configurable.rb +63 -37
  188. data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
  189. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +20 -20
  190. data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
  191. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +28 -0
  192. data/lib/ddtrace/contrib/cucumber/ext.rb +17 -0
  193. data/lib/ddtrace/contrib/cucumber/formatter.rb +98 -0
  194. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
  195. data/lib/ddtrace/contrib/cucumber/integration.rb +45 -0
  196. data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
  197. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  198. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +1 -0
  199. data/lib/ddtrace/contrib/delayed_job/plugin.rb +2 -1
  200. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  201. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  202. data/lib/ddtrace/contrib/ethon/easy_patch.rb +11 -10
  203. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  204. data/lib/ddtrace/contrib/excon/middleware.rb +9 -7
  205. data/lib/ddtrace/contrib/extensions.rb +53 -3
  206. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  207. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  208. data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -0
  209. data/lib/ddtrace/contrib/grape/endpoint.rb +47 -21
  210. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  211. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  212. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  213. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  214. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  215. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  216. data/lib/ddtrace/contrib/http/instrumentation.rb +7 -7
  217. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  218. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  219. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
  220. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  221. data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
  222. data/lib/ddtrace/contrib/httprb/instrumentation.rb +15 -21
  223. data/lib/ddtrace/contrib/httprb/patcher.rb +5 -2
  224. data/lib/ddtrace/contrib/kafka/event.rb +1 -1
  225. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  226. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  227. data/lib/ddtrace/contrib/patchable.rb +18 -7
  228. data/lib/ddtrace/contrib/patcher.rb +9 -6
  229. data/lib/ddtrace/contrib/presto/patcher.rb +5 -2
  230. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  231. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  232. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  233. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  234. data/lib/ddtrace/contrib/qless/qless_job.rb +73 -0
  235. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +33 -0
  236. data/lib/ddtrace/contrib/que/configuration/settings.rb +1 -0
  237. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  238. data/lib/ddtrace/contrib/que/tracer.rb +3 -2
  239. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  240. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  241. data/lib/ddtrace/contrib/rack/integration.rb +7 -0
  242. data/lib/ddtrace/contrib/rack/middlewares.rb +6 -11
  243. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  244. data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
  245. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  246. data/lib/ddtrace/contrib/rails/patcher.rb +11 -4
  247. data/lib/ddtrace/contrib/rails/utils.rb +4 -0
  248. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  249. data/lib/ddtrace/contrib/rake/integration.rb +1 -1
  250. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +14 -5
  251. data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
  252. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  253. data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
  254. data/lib/ddtrace/contrib/redis/quantize.rb +28 -0
  255. data/lib/ddtrace/contrib/redis/tags.rb +5 -1
  256. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  257. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  258. data/lib/ddtrace/contrib/registry.rb +2 -2
  259. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  260. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  261. data/lib/ddtrace/contrib/resque/resque_job.rb +3 -1
  262. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  263. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +28 -0
  264. data/lib/ddtrace/contrib/rspec/example.rb +75 -0
  265. data/lib/ddtrace/contrib/rspec/ext.rb +16 -0
  266. data/lib/ddtrace/contrib/rspec/integration.rb +46 -0
  267. data/lib/ddtrace/contrib/rspec/patcher.rb +23 -0
  268. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  269. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  270. data/lib/ddtrace/contrib/shoryuken/tracer.rb +3 -1
  271. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  272. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +5 -7
  273. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  274. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  275. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  276. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  277. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +5 -5
  278. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  279. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  280. data/lib/ddtrace/contrib/sneakers/tracer.rb +16 -21
  281. data/lib/ddtrace/contrib/status_code_matcher.rb +69 -0
  282. data/lib/ddtrace/correlation.rb +1 -0
  283. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -1
  284. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  285. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  286. data/lib/ddtrace/ext/app_types.rb +1 -0
  287. data/lib/ddtrace/ext/ci.rb +297 -0
  288. data/lib/ddtrace/ext/distributed.rb +8 -2
  289. data/lib/ddtrace/ext/git.rb +11 -0
  290. data/lib/ddtrace/ext/http.rb +1 -1
  291. data/lib/ddtrace/ext/runtime.rb +4 -1
  292. data/lib/ddtrace/ext/test.rb +24 -0
  293. data/lib/ddtrace/forced_tracing.rb +2 -0
  294. data/lib/ddtrace/logger.rb +1 -1
  295. data/lib/ddtrace/metrics.rb +10 -6
  296. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  297. data/lib/ddtrace/opentracer/span.rb +2 -6
  298. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  299. data/lib/ddtrace/patcher.rb +25 -4
  300. data/lib/ddtrace/pin.rb +8 -61
  301. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  302. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  303. data/lib/ddtrace/propagation/http_propagator.rb +17 -2
  304. data/lib/ddtrace/quantization/http.rb +1 -0
  305. data/lib/ddtrace/runtime/cgroup.rb +2 -2
  306. data/lib/ddtrace/runtime/container.rb +27 -29
  307. data/lib/ddtrace/runtime/identity.rb +12 -5
  308. data/lib/ddtrace/sampler.rb +1 -1
  309. data/lib/ddtrace/sampling/rate_limiter.rb +65 -16
  310. data/lib/ddtrace/sampling/rule_sampler.rb +1 -0
  311. data/lib/ddtrace/span.rb +7 -7
  312. data/lib/ddtrace/sync_writer.rb +12 -12
  313. data/lib/ddtrace/tracer.rb +21 -6
  314. data/lib/ddtrace/transport/http.rb +15 -8
  315. data/lib/ddtrace/transport/http/adapters/net.rb +27 -8
  316. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  317. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  318. data/lib/ddtrace/transport/http/builder.rb +7 -1
  319. data/lib/ddtrace/transport/http/env.rb +8 -0
  320. data/lib/ddtrace/transport/http/traces.rb +2 -3
  321. data/lib/ddtrace/transport/io.rb +1 -1
  322. data/lib/ddtrace/transport/io/response.rb +1 -3
  323. data/lib/ddtrace/transport/io/traces.rb +6 -0
  324. data/lib/ddtrace/transport/traces.rb +18 -1
  325. data/lib/ddtrace/utils.rb +10 -11
  326. data/lib/ddtrace/utils/compression.rb +27 -0
  327. data/lib/ddtrace/utils/forking.rb +52 -0
  328. data/lib/ddtrace/utils/object_set.rb +41 -0
  329. data/lib/ddtrace/utils/only_once.rb +40 -0
  330. data/lib/ddtrace/utils/sequence.rb +17 -0
  331. data/lib/ddtrace/utils/string_table.rb +45 -0
  332. data/lib/ddtrace/utils/time.rb +32 -1
  333. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  334. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  335. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  336. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  337. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  338. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  339. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  340. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  341. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  342. data/lib/ddtrace/version.rb +1 -1
  343. data/lib/ddtrace/workers.rb +5 -0
  344. data/lib/ddtrace/workers/async.rb +11 -3
  345. data/lib/ddtrace/workers/loop.rb +17 -3
  346. data/lib/ddtrace/workers/polling.rb +1 -0
  347. data/lib/ddtrace/workers/queue.rb +1 -0
  348. data/lib/ddtrace/workers/runtime_metrics.rb +7 -3
  349. data/lib/ddtrace/workers/trace_writer.rb +10 -10
  350. data/lib/ddtrace/writer.rb +26 -5
  351. metadata +186 -373
  352. data/lib/ddtrace/augmentation.rb +0 -13
  353. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  354. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  355. data/lib/ddtrace/augmentation/shim.rb +0 -102
  356. data/lib/ddtrace/monkey.rb +0 -58
data/CONTRIBUTING.md CHANGED
@@ -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,58 @@ 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'
20
+ if RUBY_PLATFORM != 'java'
21
+ # There's a few incompatibilities between pry/pry-byebug on older Rubies
22
+ gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby'
23
+ gem 'pry-nav' if RUBY_VERSION < '2.6.0'
24
+ gem 'pry-stack_explorer'
25
+ else
26
+ gem 'pry-debugger-jruby'
27
+ end
28
+ gem 'rake', '>= 10.5'
29
+ gem 'redcarpet', '~> 3.4' if RUBY_PLATFORM != 'java'
30
+ gem 'rspec', '~> 3.10'
31
+ gem 'rspec-collection_matchers', '~> 1.1'
32
+ gem 'rspec_junit_formatter', '>= 0.4.1'
33
+ gem 'rspec_n', '~> 1.3' if RUBY_VERSION >= '2.3.0'
34
+ gem 'ruby-prof', '~> 1.4' if RUBY_PLATFORM != 'java' && RUBY_VERSION >= '2.4.0'
35
+ if RUBY_VERSION >= '2.5.0'
36
+ # Merging branch coverage results does not work for old, unsupported rubies.
37
+ # We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972,
38
+ # but given it only affects unsupported version of Ruby, it might not get merged.
39
+ gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db'
40
+ else
41
+ # Compatible with older rubies. This version still produces compatible output
42
+ # with a newer version when the reports are merged.
43
+ gem 'simplecov', '~> 0.17'
44
+ end
45
+ gem 'warning', '~> 1' if RUBY_VERSION >= '2.5.0'
46
+ gem 'webmock', '>= 3.10.0'
47
+ gem 'webrick', '>= 1.7.0' if RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0
48
+ gem 'yard', '~> 0.9'
49
+
50
+ if RUBY_VERSION >= '2.4.0'
51
+ gem 'rubocop', '~> 1.10', require: false
52
+ gem 'rubocop-performance', '~> 1.9', require: false
53
+ gem 'rubocop-rspec', '~> 2.2', require: false
54
+ end
55
+
56
+ # Optional extensions
57
+ # TODO: Move this to Appraisals?
58
+ gem 'dogstatsd-ruby', '>= 3.3.0'
59
+ gem 'opentracing', '>= 0.4.1'
@@ -0,0 +1,2 @@
1
+ Component,Origin,License,Copyright
2
+ ddtrace/vendor/multipart-post,https://github.com/socketry/multipart-post,MIT,"Copyright (c) 2007-2013 Nick Sieger."
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'
@@ -486,6 +512,7 @@ task :ci do
486
512
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
487
513
  declare 'bundle exec appraisal contrib rake spec:active_record'
488
514
  declare 'bundle exec appraisal contrib rake spec:active_support'
515
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
489
516
  declare 'bundle exec appraisal contrib rake spec:aws'
490
517
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
491
518
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -498,7 +525,9 @@ task :ci do
498
525
  declare 'bundle exec appraisal contrib rake spec:graphql'
499
526
  declare 'bundle exec appraisal contrib rake spec:grpc'
500
527
  declare 'bundle exec appraisal contrib rake spec:http'
528
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
501
529
  declare 'bundle exec appraisal contrib rake spec:httprb'
530
+ declare 'bundle exec appraisal contrib rake spec:kafka'
502
531
  declare 'bundle exec appraisal contrib rake spec:mongodb'
503
532
  declare 'bundle exec appraisal contrib rake spec:mysql2'
504
533
  declare 'bundle exec appraisal contrib rake spec:presto'
@@ -509,6 +538,7 @@ task :ci do
509
538
  declare 'bundle exec appraisal contrib rake spec:redis'
510
539
  declare 'bundle exec appraisal contrib rake spec:resque'
511
540
  declare 'bundle exec appraisal contrib rake spec:rest_client'
541
+ declare 'bundle exec appraisal contrib rake spec:rspec'
512
542
  declare 'bundle exec appraisal contrib rake spec:sequel'
513
543
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
514
544
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -526,6 +556,7 @@ task :ci do
526
556
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
527
557
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
528
558
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
559
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
529
560
  # Rails specs
530
561
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
531
562
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
@@ -533,6 +564,10 @@ task :ci do
533
564
  # explicitly test resque-2x compatability
534
565
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
535
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'
536
571
  end
537
572
  elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
538
573
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
@@ -549,8 +584,10 @@ task :ci do
549
584
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
550
585
  declare 'bundle exec appraisal contrib rake spec:active_record'
551
586
  declare 'bundle exec appraisal contrib rake spec:active_support'
587
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
552
588
  declare 'bundle exec appraisal contrib rake spec:aws'
553
589
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
590
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
554
591
  declare 'bundle exec appraisal contrib rake spec:dalli'
555
592
  declare 'bundle exec appraisal contrib rake spec:delayed_job'
556
593
  declare 'bundle exec appraisal contrib rake spec:elasticsearch'
@@ -561,10 +598,13 @@ task :ci do
561
598
  declare 'bundle exec appraisal contrib rake spec:graphql'
562
599
  declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
563
600
  declare 'bundle exec appraisal contrib rake spec:http'
601
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
564
602
  declare 'bundle exec appraisal contrib rake spec:httprb'
603
+ declare 'bundle exec appraisal contrib rake spec:kafka'
565
604
  declare 'bundle exec appraisal contrib rake spec:mongodb'
566
605
  declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
567
606
  declare 'bundle exec appraisal contrib rake spec:presto'
607
+ declare 'bundle exec appraisal contrib rake spec:qless'
568
608
  declare 'bundle exec appraisal contrib rake spec:que'
569
609
  declare 'bundle exec appraisal contrib rake spec:racecar'
570
610
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -572,6 +612,7 @@ task :ci do
572
612
  declare 'bundle exec appraisal contrib rake spec:redis'
573
613
  declare 'bundle exec appraisal contrib rake spec:resque'
574
614
  declare 'bundle exec appraisal contrib rake spec:rest_client'
615
+ declare 'bundle exec appraisal contrib rake spec:rspec'
575
616
  declare 'bundle exec appraisal contrib rake spec:sequel'
576
617
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
577
618
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -589,23 +630,38 @@ task :ci do
589
630
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
590
631
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
591
632
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
633
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
592
634
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
593
635
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
594
636
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
595
637
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
596
638
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
597
639
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
640
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
598
641
  # Rails specs
599
642
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
600
643
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
601
644
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
602
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
645
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
603
646
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
604
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'
605
656
 
606
657
  # explicitly test resque-2x compatability
607
658
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
608
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'
609
665
  elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
610
666
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
611
667
  # Main library
@@ -623,8 +679,10 @@ task :ci do
623
679
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
624
680
  declare 'bundle exec appraisal contrib rake spec:active_record'
625
681
  declare 'bundle exec appraisal contrib rake spec:active_support'
682
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
626
683
  declare 'bundle exec appraisal contrib rake spec:aws'
627
684
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
685
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
628
686
  declare 'bundle exec appraisal contrib rake spec:dalli'
629
687
  declare 'bundle exec appraisal contrib rake spec:delayed_job'
630
688
  declare 'bundle exec appraisal contrib rake spec:elasticsearch'
@@ -635,10 +693,13 @@ task :ci do
635
693
  declare 'bundle exec appraisal contrib rake spec:graphql'
636
694
  declare 'bundle exec appraisal contrib rake spec:grpc'
637
695
  declare 'bundle exec appraisal contrib rake spec:http'
696
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
638
697
  declare 'bundle exec appraisal contrib rake spec:httprb'
698
+ declare 'bundle exec appraisal contrib rake spec:kafka'
639
699
  declare 'bundle exec appraisal contrib rake spec:mongodb'
640
700
  declare 'bundle exec appraisal contrib rake spec:mysql2'
641
701
  declare 'bundle exec appraisal contrib rake spec:presto'
702
+ declare 'bundle exec appraisal contrib rake spec:qless'
642
703
  declare 'bundle exec appraisal contrib rake spec:que'
643
704
  declare 'bundle exec appraisal contrib rake spec:racecar'
644
705
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -646,6 +707,7 @@ task :ci do
646
707
  declare 'bundle exec appraisal contrib rake spec:redis'
647
708
  declare 'bundle exec appraisal contrib rake spec:resque'
648
709
  declare 'bundle exec appraisal contrib rake spec:rest_client'
710
+ declare 'bundle exec appraisal contrib rake spec:rspec'
649
711
  declare 'bundle exec appraisal contrib rake spec:sequel'
650
712
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
651
713
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -653,6 +715,7 @@ task :ci do
653
715
  declare 'bundle exec appraisal contrib rake spec:sneakers'
654
716
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
655
717
  declare 'bundle exec appraisal contrib rake spec:suite'
718
+
656
719
  # Contrib specs with old gem versions
657
720
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
658
721
  # Rails minitests
@@ -663,25 +726,41 @@ task :ci do
663
726
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
664
727
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
665
728
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
729
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
666
730
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
667
731
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
668
732
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
669
733
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
670
734
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
671
735
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
736
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
672
737
  # Rails specs
673
738
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
674
739
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
675
740
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
676
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
741
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
677
742
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
678
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'
679
752
 
680
753
  # explicitly test resque-2x compatability
681
754
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
682
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'
683
761
  end
684
- 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')
685
764
  # Main library
686
765
  declare 'bundle exec rake test:main'
687
766
  declare 'bundle exec rake spec:main'
@@ -697,8 +776,10 @@ task :ci do
697
776
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
698
777
  declare 'bundle exec appraisal contrib rake spec:active_record'
699
778
  declare 'bundle exec appraisal contrib rake spec:active_support'
779
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
700
780
  declare 'bundle exec appraisal contrib rake spec:aws'
701
781
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
782
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
702
783
  declare 'bundle exec appraisal contrib rake spec:dalli'
703
784
  declare 'bundle exec appraisal contrib rake spec:delayed_job'
704
785
  declare 'bundle exec appraisal contrib rake spec:elasticsearch'
@@ -709,10 +790,13 @@ task :ci do
709
790
  declare 'bundle exec appraisal contrib rake spec:graphql'
710
791
  declare 'bundle exec appraisal contrib rake spec:grpc'
711
792
  declare 'bundle exec appraisal contrib rake spec:http'
793
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
712
794
  declare 'bundle exec appraisal contrib rake spec:httprb'
795
+ declare 'bundle exec appraisal contrib rake spec:kafka'
713
796
  declare 'bundle exec appraisal contrib rake spec:mongodb'
714
797
  declare 'bundle exec appraisal contrib rake spec:mysql2'
715
798
  declare 'bundle exec appraisal contrib rake spec:presto'
799
+ declare 'bundle exec appraisal contrib rake spec:qless'
716
800
  declare 'bundle exec appraisal contrib rake spec:que'
717
801
  declare 'bundle exec appraisal contrib rake spec:racecar'
718
802
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -720,6 +804,7 @@ task :ci do
720
804
  declare 'bundle exec appraisal contrib rake spec:redis'
721
805
  declare 'bundle exec appraisal contrib rake spec:resque'
722
806
  declare 'bundle exec appraisal contrib rake spec:rest_client'
807
+ declare 'bundle exec appraisal contrib rake spec:rspec'
723
808
  declare 'bundle exec appraisal contrib rake spec:sequel'
724
809
  declare 'bundle exec appraisal contrib rake spec:shoryuken'
725
810
  declare 'bundle exec appraisal contrib rake spec:sidekiq'
@@ -727,6 +812,7 @@ task :ci do
727
812
  declare 'bundle exec appraisal contrib rake spec:sneakers'
728
813
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
729
814
  declare 'bundle exec appraisal contrib rake spec:suite'
815
+
730
816
  # Contrib specs with old gem versions
731
817
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
732
818
  # Rails minitests
@@ -737,21 +823,108 @@ task :ci do
737
823
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
738
824
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
739
825
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
826
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
740
827
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
741
828
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
742
829
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
743
830
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
744
831
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
745
832
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
833
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
746
834
  # Rails specs
747
835
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
748
836
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
837
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
749
838
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
750
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'
751
848
 
752
849
  # explicitly test resque-2x compatability
753
850
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
754
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'
755
928
  end
756
929
  end
757
930
  end
@@ -766,7 +939,13 @@ namespace :coverage do
766
939
 
767
940
  SimpleCov.collate resultset_files do
768
941
  coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
769
- 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
770
949
  end
771
950
  end
772
951
 
@@ -785,4 +964,12 @@ namespace :coverage do
785
964
  end
786
965
  end
787
966
 
967
+ namespace :changelog do
968
+ task :format do
969
+ require 'pimpmychangelog'
970
+
971
+ PimpMyChangelog::CLI.run!
972
+ end
973
+ end
974
+
788
975
  task default: :test