ddtrace 0.42.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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