ddtrace 0.43.0 → 0.48.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 (400) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +278 -139
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +11 -1
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +11 -1
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +11 -1
  6. data/.circleci/images/primary/Dockerfile-2.3.8 +10 -0
  7. data/.circleci/images/primary/Dockerfile-2.4.6 +10 -0
  8. data/.circleci/images/primary/Dockerfile-2.5.6 +10 -0
  9. data/.circleci/images/primary/Dockerfile-2.6.4 +10 -0
  10. data/.circleci/images/primary/Dockerfile-2.7.0 +10 -0
  11. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  12. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +88 -0
  13. data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2.0.0} +1 -5
  14. data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +73 -0
  15. data/.github/workflows/add-milestone-to-pull-requests.yml +1 -1
  16. data/.github/workflows/create-next-milestone.yml +2 -2
  17. data/.gitlab-ci.yml +18 -18
  18. data/.rubocop.yml +269 -7
  19. data/.rubocop_todo.yml +438 -0
  20. data/.simplecov +10 -1
  21. data/Appraisals +285 -15
  22. data/CHANGELOG.md +1243 -377
  23. data/Gemfile +65 -3
  24. data/LICENSE-3rdparty.csv +2 -0
  25. data/README.md +1 -0
  26. data/Rakefile +186 -29
  27. data/bin/ddtracerb +15 -0
  28. data/ddtrace.gemspec +7 -37
  29. data/docker-compose.yml +105 -7
  30. data/docs/DevelopmentGuide.md +28 -0
  31. data/docs/GettingStarted.md +208 -75
  32. data/docs/ProfilingDevelopment.md +88 -0
  33. data/integration/README.md +67 -0
  34. data/integration/apps/rack/.dockerignore +1 -0
  35. data/integration/apps/rack/.envrc.sample +1 -0
  36. data/integration/apps/rack/.gitignore +4 -0
  37. data/integration/apps/rack/.rspec +1 -0
  38. data/integration/apps/rack/Dockerfile +28 -0
  39. data/integration/apps/rack/Dockerfile-ci +11 -0
  40. data/integration/apps/rack/Gemfile +24 -0
  41. data/integration/apps/rack/README.md +93 -0
  42. data/integration/apps/rack/app/acme.rb +80 -0
  43. data/integration/apps/rack/app/datadog.rb +17 -0
  44. data/integration/apps/rack/bin/run +22 -0
  45. data/integration/apps/rack/bin/setup +17 -0
  46. data/integration/apps/rack/bin/test +24 -0
  47. data/integration/apps/rack/config.ru +6 -0
  48. data/integration/apps/rack/config/puma.rb +14 -0
  49. data/integration/apps/rack/config/unicorn.rb +23 -0
  50. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  51. data/integration/apps/rack/docker-compose.yml +78 -0
  52. data/integration/apps/rack/script/build-images +38 -0
  53. data/integration/apps/rack/script/ci +50 -0
  54. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  55. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  56. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  57. data/integration/apps/rails-five/.dockerignore +1 -0
  58. data/integration/apps/rails-five/.env +3 -0
  59. data/integration/apps/rails-five/.envrc.sample +1 -0
  60. data/integration/apps/rails-five/.gitignore +30 -0
  61. data/integration/apps/rails-five/Dockerfile +25 -0
  62. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  63. data/integration/apps/rails-five/Gemfile +104 -0
  64. data/integration/apps/rails-five/README.md +94 -0
  65. data/integration/apps/rails-five/Rakefile +6 -0
  66. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  67. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  68. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  69. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  70. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  71. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  72. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  73. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  74. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  75. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  76. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  77. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  78. data/integration/apps/rails-five/app/models/test.rb +2 -0
  79. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  80. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  81. data/integration/apps/rails-five/bin/bundle +3 -0
  82. data/integration/apps/rails-five/bin/rails +9 -0
  83. data/integration/apps/rails-five/bin/rake +9 -0
  84. data/integration/apps/rails-five/bin/run +24 -0
  85. data/integration/apps/rails-five/bin/setup +27 -0
  86. data/integration/apps/rails-five/bin/spring +17 -0
  87. data/integration/apps/rails-five/bin/test +21 -0
  88. data/integration/apps/rails-five/bin/update +28 -0
  89. data/integration/apps/rails-five/config.ru +5 -0
  90. data/integration/apps/rails-five/config/application.rb +97 -0
  91. data/integration/apps/rails-five/config/boot.rb +4 -0
  92. data/integration/apps/rails-five/config/cable.yml +10 -0
  93. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  94. data/integration/apps/rails-five/config/database.yml +28 -0
  95. data/integration/apps/rails-five/config/environment.rb +5 -0
  96. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  97. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  98. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  99. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  100. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  101. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  102. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  103. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  104. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  105. data/integration/apps/rails-five/config/puma.rb +24 -0
  106. data/integration/apps/rails-five/config/routes.rb +11 -0
  107. data/integration/apps/rails-five/config/spring.rb +6 -0
  108. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  109. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  110. data/integration/apps/rails-five/db/schema.rb +23 -0
  111. data/integration/apps/rails-five/db/seeds.rb +7 -0
  112. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  113. data/integration/apps/rails-five/docker-compose.yml +100 -0
  114. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  115. data/integration/apps/rails-five/log/.keep +0 -0
  116. data/integration/apps/rails-five/public/robots.txt +1 -0
  117. data/integration/apps/rails-five/script/build-images +35 -0
  118. data/integration/apps/rails-five/script/ci +50 -0
  119. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  120. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  121. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  122. data/integration/apps/rails-five/storage/.keep +0 -0
  123. data/integration/apps/rails-five/tmp/.keep +0 -0
  124. data/integration/apps/rails-five/vendor/.keep +0 -0
  125. data/integration/apps/ruby/.dockerignore +1 -0
  126. data/integration/apps/ruby/.envrc.sample +1 -0
  127. data/integration/apps/ruby/.gitignore +2 -0
  128. data/integration/apps/ruby/Dockerfile +25 -0
  129. data/integration/apps/ruby/Dockerfile-ci +11 -0
  130. data/integration/apps/ruby/Gemfile +11 -0
  131. data/integration/apps/ruby/README.md +70 -0
  132. data/integration/apps/ruby/agent.yaml +3 -0
  133. data/integration/apps/ruby/app/datadog.rb +13 -0
  134. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  135. data/integration/apps/ruby/bin/run +20 -0
  136. data/integration/apps/ruby/bin/setup +17 -0
  137. data/integration/apps/ruby/bin/test +21 -0
  138. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  139. data/integration/apps/ruby/docker-compose.yml +63 -0
  140. data/integration/apps/ruby/script/build-images +38 -0
  141. data/integration/apps/ruby/script/ci +50 -0
  142. data/integration/images/agent/Dockerfile +2 -0
  143. data/integration/images/agent/agent.yaml +3 -0
  144. data/integration/images/include/datadog/analyzer.rb +71 -0
  145. data/integration/images/include/datadog/demo_env.rb +101 -0
  146. data/integration/images/include/http-health-check +33 -0
  147. data/integration/images/ruby/2.0/Dockerfile +54 -0
  148. data/integration/images/ruby/2.1/Dockerfile +54 -0
  149. data/integration/images/ruby/2.2/Dockerfile +54 -0
  150. data/integration/images/ruby/2.3/Dockerfile +70 -0
  151. data/integration/images/ruby/2.4/Dockerfile +54 -0
  152. data/integration/images/ruby/2.5/Dockerfile +54 -0
  153. data/integration/images/ruby/2.6/Dockerfile +54 -0
  154. data/integration/images/ruby/2.7/Dockerfile +54 -0
  155. data/integration/images/ruby/3.0/Dockerfile +54 -0
  156. data/integration/images/wrk/Dockerfile +33 -0
  157. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  158. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  159. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  160. data/integration/script/build-images +43 -0
  161. data/lib/ddtrace.rb +9 -5
  162. data/lib/ddtrace/analytics.rb +2 -0
  163. data/lib/ddtrace/auto_instrument.rb +3 -0
  164. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  165. data/lib/ddtrace/buffer.rb +4 -4
  166. data/lib/ddtrace/configuration.rb +121 -26
  167. data/lib/ddtrace/configuration/base.rb +1 -1
  168. data/lib/ddtrace/configuration/components.rb +87 -5
  169. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  170. data/lib/ddtrace/configuration/options.rb +4 -7
  171. data/lib/ddtrace/configuration/settings.rb +48 -3
  172. data/lib/ddtrace/context.rb +5 -6
  173. data/lib/ddtrace/context_provider.rb +0 -1
  174. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  175. data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
  176. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  177. data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
  178. data/lib/ddtrace/contrib/action_view/event.rb +1 -5
  179. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  180. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  181. data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
  182. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  183. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +30 -0
  184. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +107 -18
  185. data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
  186. data/lib/ddtrace/contrib/active_record/utils.rb +68 -21
  187. data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
  188. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -1
  189. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  190. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  191. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  192. data/lib/ddtrace/contrib/aws/patcher.rb +1 -0
  193. data/lib/ddtrace/contrib/aws/services.rb +3 -0
  194. data/lib/ddtrace/contrib/configurable.rb +63 -39
  195. data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
  196. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +20 -19
  197. data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
  198. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -10
  199. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -2
  200. data/lib/ddtrace/contrib/cucumber/formatter.rb +5 -11
  201. data/lib/ddtrace/contrib/cucumber/integration.rb +5 -0
  202. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  203. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -1
  204. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  205. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  206. data/lib/ddtrace/contrib/ethon/easy_patch.rb +11 -10
  207. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  208. data/lib/ddtrace/contrib/excon/middleware.rb +2 -6
  209. data/lib/ddtrace/contrib/extensions.rb +53 -3
  210. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  211. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  212. data/lib/ddtrace/contrib/grape/endpoint.rb +37 -26
  213. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  214. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  215. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  216. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  217. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  218. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  219. data/lib/ddtrace/contrib/http/instrumentation.rb +5 -5
  220. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  221. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  222. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
  223. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  224. data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
  225. data/lib/ddtrace/contrib/httprb/instrumentation.rb +15 -21
  226. data/lib/ddtrace/contrib/httprb/patcher.rb +5 -2
  227. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  228. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  229. data/lib/ddtrace/contrib/patchable.rb +18 -7
  230. data/lib/ddtrace/contrib/patcher.rb +9 -6
  231. data/lib/ddtrace/contrib/presto/patcher.rb +5 -2
  232. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  233. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  234. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  235. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  236. data/lib/ddtrace/contrib/qless/qless_job.rb +73 -0
  237. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +33 -0
  238. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  239. data/lib/ddtrace/contrib/que/tracer.rb +1 -1
  240. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  241. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  242. data/lib/ddtrace/contrib/rack/integration.rb +7 -0
  243. data/lib/ddtrace/contrib/rack/middlewares.rb +6 -11
  244. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  245. data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
  246. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  247. data/lib/ddtrace/contrib/rails/patcher.rb +6 -2
  248. data/lib/ddtrace/contrib/rails/utils.rb +4 -0
  249. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  250. data/lib/ddtrace/contrib/rake/integration.rb +1 -1
  251. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +14 -5
  252. data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
  253. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  254. data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
  255. data/lib/ddtrace/contrib/redis/quantize.rb +28 -0
  256. data/lib/ddtrace/contrib/redis/tags.rb +5 -1
  257. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  258. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  259. data/lib/ddtrace/contrib/registry.rb +2 -2
  260. data/lib/ddtrace/contrib/resque/configuration/settings.rb +17 -1
  261. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  262. data/lib/ddtrace/contrib/resque/patcher.rb +4 -4
  263. data/lib/ddtrace/contrib/resque/resque_job.rb +24 -1
  264. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  265. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -10
  266. data/lib/ddtrace/contrib/rspec/example.rb +24 -10
  267. data/lib/ddtrace/contrib/rspec/ext.rb +0 -3
  268. data/lib/ddtrace/contrib/rspec/integration.rb +6 -1
  269. data/lib/ddtrace/contrib/rspec/patcher.rb +0 -2
  270. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  271. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  272. data/lib/ddtrace/contrib/shoryuken/tracer.rb +7 -4
  273. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +2 -7
  274. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  275. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  276. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  277. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  278. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +5 -5
  279. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  280. data/lib/ddtrace/contrib/sneakers/tracer.rb +2 -4
  281. data/lib/ddtrace/contrib/status_code_matcher.rb +5 -3
  282. data/lib/ddtrace/correlation.rb +1 -0
  283. data/lib/ddtrace/diagnostics/environment_logger.rb +3 -2
  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/error.rb +2 -0
  287. data/lib/ddtrace/ext/ci.rb +43 -11
  288. data/lib/ddtrace/ext/distributed.rb +1 -1
  289. data/lib/ddtrace/ext/git.rb +0 -1
  290. data/lib/ddtrace/ext/http.rb +1 -1
  291. data/lib/ddtrace/ext/profiling.rb +52 -0
  292. data/lib/ddtrace/ext/runtime.rb +3 -1
  293. data/lib/ddtrace/ext/transport.rb +1 -0
  294. data/lib/ddtrace/forced_tracing.rb +2 -0
  295. data/lib/ddtrace/logger.rb +1 -1
  296. data/lib/ddtrace/metrics.rb +14 -6
  297. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  298. data/lib/ddtrace/opentracer/span.rb +2 -6
  299. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  300. data/lib/ddtrace/patcher.rb +25 -4
  301. data/lib/ddtrace/pin.rb +8 -61
  302. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  303. data/lib/ddtrace/profiling.rb +54 -0
  304. data/lib/ddtrace/profiling/backtrace_location.rb +32 -0
  305. data/lib/ddtrace/profiling/buffer.rb +41 -0
  306. data/lib/ddtrace/profiling/collectors/stack.rb +253 -0
  307. data/lib/ddtrace/profiling/encoding/profile.rb +31 -0
  308. data/lib/ddtrace/profiling/event.rb +13 -0
  309. data/lib/ddtrace/profiling/events/stack.rb +102 -0
  310. data/lib/ddtrace/profiling/exporter.rb +23 -0
  311. data/lib/ddtrace/profiling/ext/cpu.rb +54 -0
  312. data/lib/ddtrace/profiling/ext/cthread.rb +134 -0
  313. data/lib/ddtrace/profiling/ext/forking.rb +97 -0
  314. data/lib/ddtrace/profiling/flush.rb +41 -0
  315. data/lib/ddtrace/profiling/pprof/builder.rb +121 -0
  316. data/lib/ddtrace/profiling/pprof/converter.rb +85 -0
  317. data/lib/ddtrace/profiling/pprof/message_set.rb +12 -0
  318. data/lib/ddtrace/profiling/pprof/payload.rb +18 -0
  319. data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
  320. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +81 -0
  321. data/lib/ddtrace/profiling/pprof/stack_sample.rb +90 -0
  322. data/lib/ddtrace/profiling/pprof/string_table.rb +10 -0
  323. data/lib/ddtrace/profiling/pprof/template.rb +114 -0
  324. data/lib/ddtrace/profiling/preload.rb +3 -0
  325. data/lib/ddtrace/profiling/profiler.rb +28 -0
  326. data/lib/ddtrace/profiling/recorder.rb +87 -0
  327. data/lib/ddtrace/profiling/scheduler.rb +84 -0
  328. data/lib/ddtrace/profiling/tasks/setup.rb +77 -0
  329. data/lib/ddtrace/profiling/transport/client.rb +12 -0
  330. data/lib/ddtrace/profiling/transport/http.rb +122 -0
  331. data/lib/ddtrace/profiling/transport/http/api.rb +43 -0
  332. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +90 -0
  333. data/lib/ddtrace/profiling/transport/http/api/instance.rb +36 -0
  334. data/lib/ddtrace/profiling/transport/http/api/spec.rb +40 -0
  335. data/lib/ddtrace/profiling/transport/http/builder.rb +28 -0
  336. data/lib/ddtrace/profiling/transport/http/client.rb +33 -0
  337. data/lib/ddtrace/profiling/transport/http/response.rb +21 -0
  338. data/lib/ddtrace/profiling/transport/io.rb +30 -0
  339. data/lib/ddtrace/profiling/transport/io/client.rb +27 -0
  340. data/lib/ddtrace/profiling/transport/io/response.rb +16 -0
  341. data/lib/ddtrace/profiling/transport/parcel.rb +17 -0
  342. data/lib/ddtrace/profiling/transport/request.rb +15 -0
  343. data/lib/ddtrace/profiling/transport/response.rb +8 -0
  344. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  345. data/lib/ddtrace/propagation/http_propagator.rb +17 -2
  346. data/lib/ddtrace/quantization/http.rb +1 -0
  347. data/lib/ddtrace/runtime/cgroup.rb +2 -2
  348. data/lib/ddtrace/runtime/container.rb +32 -26
  349. data/lib/ddtrace/runtime/identity.rb +8 -0
  350. data/lib/ddtrace/sampler.rb +1 -1
  351. data/lib/ddtrace/sampling/rule_sampler.rb +4 -9
  352. data/lib/ddtrace/span.rb +7 -7
  353. data/lib/ddtrace/sync_writer.rb +12 -12
  354. data/lib/ddtrace/tasks/exec.rb +48 -0
  355. data/lib/ddtrace/tasks/help.rb +14 -0
  356. data/lib/ddtrace/tracer.rb +28 -5
  357. data/lib/ddtrace/transport/http.rb +15 -8
  358. data/lib/ddtrace/transport/http/adapters/net.rb +27 -8
  359. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  360. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  361. data/lib/ddtrace/transport/http/builder.rb +7 -1
  362. data/lib/ddtrace/transport/http/env.rb +8 -0
  363. data/lib/ddtrace/transport/http/traces.rb +2 -3
  364. data/lib/ddtrace/transport/io.rb +1 -1
  365. data/lib/ddtrace/transport/io/client.rb +15 -8
  366. data/lib/ddtrace/transport/io/response.rb +1 -3
  367. data/lib/ddtrace/transport/io/traces.rb +6 -0
  368. data/lib/ddtrace/transport/parcel.rb +4 -0
  369. data/lib/ddtrace/transport/traces.rb +18 -1
  370. data/lib/ddtrace/utils/compression.rb +27 -0
  371. data/lib/ddtrace/utils/object_set.rb +41 -0
  372. data/lib/ddtrace/utils/only_once.rb +40 -0
  373. data/lib/ddtrace/utils/sequence.rb +17 -0
  374. data/lib/ddtrace/utils/string_table.rb +45 -0
  375. data/lib/ddtrace/utils/time.rb +32 -1
  376. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  377. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  378. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  379. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  380. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  381. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  382. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  383. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  384. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  385. data/lib/ddtrace/version.rb +3 -1
  386. data/lib/ddtrace/workers.rb +5 -0
  387. data/lib/ddtrace/workers/async.rb +11 -3
  388. data/lib/ddtrace/workers/loop.rb +17 -3
  389. data/lib/ddtrace/workers/polling.rb +1 -0
  390. data/lib/ddtrace/workers/queue.rb +1 -0
  391. data/lib/ddtrace/workers/runtime_metrics.rb +21 -4
  392. data/lib/ddtrace/workers/trace_writer.rb +10 -10
  393. data/lib/ddtrace/writer.rb +7 -4
  394. metadata +224 -342
  395. data/lib/ddtrace/augmentation.rb +0 -13
  396. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  397. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  398. data/lib/ddtrace/augmentation/shim.rb +0 -102
  399. data/lib/ddtrace/contrib/rspec/example_group.rb +0 -61
  400. data/lib/ddtrace/monkey.rb +0 -58
data/Gemfile CHANGED
@@ -2,6 +2,68 @@ 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
+ if RUBY_VERSION < '2.3.0'
48
+ gem 'rexml', '< 3.2.5' # Pinned due to https://github.com/ruby/rexml/issues/69
49
+ end
50
+ gem 'webrick', '>= 1.7.0' if RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0
51
+ gem 'yard', '~> 0.9'
52
+
53
+ if RUBY_VERSION >= '2.4.0'
54
+ gem 'rubocop', '~> 1.10', require: false
55
+ gem 'rubocop-performance', '~> 1.9', require: false
56
+ gem 'rubocop-rspec', '~> 2.2', require: false
57
+ end
58
+
59
+ # Optional extensions
60
+ # TODO: Move this to Appraisals?
61
+ gem 'dogstatsd-ruby', '>= 3.3.0'
62
+ gem 'opentracing', '>= 0.4.1'
63
+
64
+ # Profiler optional dependencies
65
+ # NOTE: We're excluding versions 3.7.0 and 3.7.1 for the reasons documented in #1424 and the big comment in
66
+ # lib/ddtrace/profiling.rb: it breaks for some older rubies in CI without BUNDLE_FORCE_RUBY_PLATFORM=true.
67
+ # Since most of our customers won't have BUNDLE_FORCE_RUBY_PLATFORM=true, it's not something we want to add
68
+ # to our CI, so we just shortcut and exclude specific versions that were affecting our CI.
69
+ gem 'google-protobuf', ['~> 3.0', '!= 3.7.0', '!= 3.7.1'] if RUBY_PLATFORM != 'java'
@@ -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',
@@ -96,11 +107,13 @@ namespace :spec do
96
107
  :graphql,
97
108
  :grpc,
98
109
  :http,
110
+ :httpclient,
99
111
  :httprb,
100
112
  :kafka,
101
113
  :mongodb,
102
114
  :mysql2,
103
115
  :presto,
116
+ :qless,
104
117
  :que,
105
118
  :racecar,
106
119
  :rack,
@@ -126,16 +139,14 @@ end
126
139
 
127
140
  namespace :test do
128
141
  task all: [:main,
129
- :rails,
130
- :monkey]
142
+ :rails]
131
143
 
132
144
  Rake::TestTask.new(:main) do |t|
133
145
  t.libs << %w[test lib]
134
146
  t.test_files = FileList['test/**/*_test.rb'].reject do |path|
135
147
  path.include?('contrib') ||
136
148
  path.include?('benchmark') ||
137
- path.include?('redis') ||
138
- path.include?('monkey_test.rb')
149
+ path.include?('redis')
139
150
  end
140
151
  end
141
152
 
@@ -143,19 +154,6 @@ namespace :test do
143
154
  t.libs << %w[test lib]
144
155
  t.test_files = FileList['test/contrib/rails/**/*_test.rb']
145
156
  end
146
-
147
- [
148
- ].each do |contrib|
149
- Rake::TestTask.new(contrib) do |t|
150
- t.libs << %w[test lib]
151
- t.test_files = FileList["test/contrib/#{contrib}/*_test.rb"]
152
- end
153
- end
154
-
155
- Rake::TestTask.new(:monkey) do |t|
156
- t.libs << %w[test lib]
157
- t.test_files = FileList['test/monkey_test.rb']
158
- end
159
157
  end
160
158
 
161
159
  Rake::TestTask.new(:benchmark) do |t|
@@ -163,7 +161,7 @@ Rake::TestTask.new(:benchmark) do |t|
163
161
  t.test_files = FileList['test/benchmark_test.rb']
164
162
  end
165
163
 
166
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
164
+ if defined?(RuboCop::RakeTask)
167
165
  RuboCop::RakeTask.new(:rubocop) do |t|
168
166
  t.options << ['-D', '--force-exclusion']
169
167
  t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'spec/**/*.rb', 'Gemfile', 'Rakefile']
@@ -183,6 +181,7 @@ S3_DIR = ENV['S3_DIR']
183
181
  desc 'release the docs website'
184
182
  task :'release:docs' => :docs do
185
183
  raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
184
+
186
185
  sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
187
186
  end
188
187
 
@@ -210,15 +209,15 @@ task :ci do
210
209
  # Main library
211
210
  declare 'bundle exec rake test:main'
212
211
  declare 'bundle exec rake spec:main'
212
+ declare 'bundle exec appraisal core-old rake spec:main'
213
213
  declare 'bundle exec rake spec:contrib'
214
214
 
215
215
  if RUBY_PLATFORM != 'java'
216
- # Contrib minitests
217
- declare 'bundle exec appraisal contrib-old rake test:monkey'
218
216
  # Contrib specs
219
217
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
220
218
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
221
219
  declare 'bundle exec appraisal contrib-old rake spec:active_support'
220
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
222
221
  declare 'bundle exec appraisal contrib-old rake spec:aws'
223
222
  declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
224
223
  declare 'bundle exec appraisal contrib-old rake spec:dalli'
@@ -228,6 +227,7 @@ task :ci do
228
227
  declare 'bundle exec appraisal contrib-old rake spec:excon'
229
228
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
230
229
  declare 'bundle exec appraisal contrib-old rake spec:http'
230
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
231
231
  declare 'bundle exec appraisal contrib-old rake spec:httprb'
232
232
  declare 'bundle exec appraisal contrib-old rake spec:mongodb'
233
233
  declare 'bundle exec appraisal contrib-old rake spec:mysql2'
@@ -245,10 +245,12 @@ task :ci do
245
245
  # Rails minitests
246
246
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
247
247
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
248
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
248
249
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
249
250
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
250
251
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
251
252
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
253
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
252
254
  # Rails specs
253
255
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
254
256
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -264,16 +266,16 @@ task :ci do
264
266
  # Main library
265
267
  declare 'bundle exec rake test:main'
266
268
  declare 'bundle exec rake spec:main'
269
+ declare 'bundle exec appraisal core-old rake spec:main'
267
270
  declare 'bundle exec rake spec:contrib'
268
271
  declare 'bundle exec rake spec:opentracer'
269
272
 
270
273
  if RUBY_PLATFORM != 'java'
271
- # Contrib minitests
272
- declare 'bundle exec appraisal contrib-old rake test:monkey'
273
274
  # Contrib specs
274
275
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
275
276
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
276
277
  declare 'bundle exec appraisal contrib-old rake spec:active_support'
278
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
277
279
  declare 'bundle exec appraisal contrib-old rake spec:aws'
278
280
  declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
279
281
  declare 'bundle exec appraisal contrib-old rake spec:dalli'
@@ -283,6 +285,7 @@ task :ci do
283
285
  declare 'bundle exec appraisal contrib-old rake spec:excon'
284
286
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
285
287
  declare 'bundle exec appraisal contrib-old rake spec:http'
288
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
286
289
  declare 'bundle exec appraisal contrib-old rake spec:httprb'
287
290
  declare 'bundle exec appraisal contrib-old rake spec:kafka'
288
291
  declare 'bundle exec appraisal contrib-old rake spec:mongodb'
@@ -302,14 +305,17 @@ task :ci do
302
305
  # Rails minitests
303
306
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
304
307
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
308
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
305
309
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
306
310
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
307
311
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
308
312
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
313
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
309
314
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
310
315
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
311
316
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
312
317
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
318
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
313
319
  # Rails specs
314
320
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
315
321
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -327,6 +333,7 @@ task :ci do
327
333
  # Main library
328
334
  declare 'bundle exec rake test:main'
329
335
  declare 'bundle exec rake spec:main'
336
+ declare 'bundle exec appraisal core-old rake spec:main'
330
337
  declare 'bundle exec rake spec:contrib'
331
338
  declare 'bundle exec rake spec:opentracer'
332
339
 
@@ -338,6 +345,7 @@ task :ci do
338
345
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
339
346
  declare 'bundle exec appraisal contrib rake spec:active_record'
340
347
  declare 'bundle exec appraisal contrib rake spec:active_support'
348
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
341
349
  declare 'bundle exec appraisal contrib rake spec:aws'
342
350
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
343
351
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -350,11 +358,13 @@ task :ci do
350
358
  declare 'bundle exec appraisal contrib rake spec:graphql'
351
359
  declare 'bundle exec appraisal contrib rake spec:grpc'
352
360
  declare 'bundle exec appraisal contrib rake spec:http'
361
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
353
362
  declare 'bundle exec appraisal contrib rake spec:httprb'
354
363
  declare 'bundle exec appraisal contrib rake spec:kafka'
355
364
  declare 'bundle exec appraisal contrib rake spec:mongodb'
356
365
  declare 'bundle exec appraisal contrib rake spec:mysql2'
357
366
  declare 'bundle exec appraisal contrib rake spec:presto'
367
+ declare 'bundle exec appraisal contrib rake spec:qless'
358
368
  declare 'bundle exec appraisal contrib rake spec:que'
359
369
  declare 'bundle exec appraisal contrib rake spec:racecar'
360
370
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -373,14 +383,17 @@ task :ci do
373
383
  # Rails minitests
374
384
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
375
385
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
386
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
376
387
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
377
388
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
378
389
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
379
390
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
391
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
380
392
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
381
393
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
382
394
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
383
395
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
396
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
384
397
  declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
385
398
  declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
386
399
  declare 'bundle exec appraisal rails5-postgres rake test:rails'
@@ -388,6 +401,7 @@ task :ci do
388
401
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
389
402
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
390
403
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
404
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
391
405
  # Rails specs
392
406
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
393
407
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -402,6 +416,7 @@ task :ci do
402
416
  # Main library
403
417
  declare 'bundle exec rake test:main'
404
418
  declare 'bundle exec rake spec:main'
419
+ declare 'bundle exec appraisal core-old rake spec:main'
405
420
  declare 'bundle exec rake spec:contrib'
406
421
  declare 'bundle exec rake spec:opentracer'
407
422
 
@@ -413,6 +428,7 @@ task :ci do
413
428
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
414
429
  declare 'bundle exec appraisal contrib rake spec:active_record'
415
430
  declare 'bundle exec appraisal contrib rake spec:active_support'
431
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
416
432
  declare 'bundle exec appraisal contrib rake spec:aws'
417
433
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
418
434
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -425,6 +441,7 @@ task :ci do
425
441
  declare 'bundle exec appraisal contrib rake spec:graphql'
426
442
  declare 'bundle exec appraisal contrib rake spec:grpc'
427
443
  declare 'bundle exec appraisal contrib rake spec:http'
444
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
428
445
  declare 'bundle exec appraisal contrib rake spec:httprb'
429
446
  declare 'bundle exec appraisal contrib rake spec:kafka'
430
447
  declare 'bundle exec appraisal contrib rake spec:mongodb'
@@ -450,14 +467,17 @@ task :ci do
450
467
  # Rails minitests
451
468
  declare 'bundle exec appraisal rails30-postgres rake test:rails'
452
469
  declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
470
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
453
471
  declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
454
472
  declare 'bundle exec appraisal rails32-postgres rake test:rails'
455
473
  declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
456
474
  declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
475
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
457
476
  declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
458
477
  declare 'bundle exec appraisal rails4-postgres rake test:rails'
459
478
  declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
460
479
  declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
480
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
461
481
  declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
462
482
  declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
463
483
  declare 'bundle exec appraisal rails5-postgres rake test:rails'
@@ -465,6 +485,7 @@ task :ci do
465
485
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
466
486
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
467
487
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
488
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
468
489
  # Rails specs
469
490
  declare 'bundle exec appraisal rails30-postgres rake spec:rails'
470
491
  declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
@@ -483,6 +504,7 @@ task :ci do
483
504
  # Main library
484
505
  declare 'bundle exec rake test:main'
485
506
  declare 'bundle exec rake spec:main'
507
+ declare 'bundle exec appraisal core-old rake spec:main'
486
508
  declare 'bundle exec rake spec:contrib'
487
509
  declare 'bundle exec rake spec:opentracer'
488
510
  declare 'bundle exec rake spec:opentelemetry'
@@ -495,6 +517,7 @@ task :ci do
495
517
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
496
518
  declare 'bundle exec appraisal contrib rake spec:active_record'
497
519
  declare 'bundle exec appraisal contrib rake spec:active_support'
520
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
498
521
  declare 'bundle exec appraisal contrib rake spec:aws'
499
522
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
500
523
  declare 'bundle exec appraisal contrib rake spec:dalli'
@@ -507,6 +530,7 @@ task :ci do
507
530
  declare 'bundle exec appraisal contrib rake spec:graphql'
508
531
  declare 'bundle exec appraisal contrib rake spec:grpc'
509
532
  declare 'bundle exec appraisal contrib rake spec:http'
533
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
510
534
  declare 'bundle exec appraisal contrib rake spec:httprb'
511
535
  declare 'bundle exec appraisal contrib rake spec:kafka'
512
536
  declare 'bundle exec appraisal contrib rake spec:mongodb'
@@ -537,6 +561,7 @@ task :ci do
537
561
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
538
562
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
539
563
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
564
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
540
565
  # Rails specs
541
566
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
542
567
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
@@ -554,6 +579,7 @@ task :ci do
554
579
  # Main library
555
580
  declare 'bundle exec rake test:main'
556
581
  declare 'bundle exec rake spec:main'
582
+ declare 'bundle exec appraisal core-old rake spec:main'
557
583
  declare 'bundle exec rake spec:contrib'
558
584
  declare 'bundle exec rake spec:opentracer'
559
585
  declare 'bundle exec rake spec:opentelemetry'
@@ -564,6 +590,7 @@ task :ci do
564
590
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
565
591
  declare 'bundle exec appraisal contrib rake spec:active_record'
566
592
  declare 'bundle exec appraisal contrib rake spec:active_support'
593
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
567
594
  declare 'bundle exec appraisal contrib rake spec:aws'
568
595
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
569
596
  declare 'bundle exec appraisal contrib rake spec:cucumber'
@@ -577,11 +604,13 @@ task :ci do
577
604
  declare 'bundle exec appraisal contrib rake spec:graphql'
578
605
  declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
579
606
  declare 'bundle exec appraisal contrib rake spec:http'
607
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
580
608
  declare 'bundle exec appraisal contrib rake spec:httprb'
581
609
  declare 'bundle exec appraisal contrib rake spec:kafka'
582
610
  declare 'bundle exec appraisal contrib rake spec:mongodb'
583
611
  declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
584
612
  declare 'bundle exec appraisal contrib rake spec:presto'
613
+ declare 'bundle exec appraisal contrib rake spec:qless'
585
614
  declare 'bundle exec appraisal contrib rake spec:que'
586
615
  declare 'bundle exec appraisal contrib rake spec:racecar'
587
616
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -607,19 +636,29 @@ task :ci do
607
636
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
608
637
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
609
638
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
639
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
610
640
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
611
641
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
612
642
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
613
643
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
614
644
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
615
645
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
646
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
616
647
  # Rails specs
617
648
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
618
649
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
619
650
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
620
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
651
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
621
652
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
622
653
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
654
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
655
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
656
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
657
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
658
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
659
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
660
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
661
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
623
662
 
624
663
  # explicitly test resque-2x compatability
625
664
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
@@ -634,6 +673,7 @@ task :ci do
634
673
  # Main library
635
674
  declare 'bundle exec rake test:main'
636
675
  declare 'bundle exec rake spec:main'
676
+ declare 'bundle exec appraisal core-old rake spec:main'
637
677
  declare 'bundle exec rake spec:contrib'
638
678
  declare 'bundle exec rake spec:opentracer'
639
679
  declare 'bundle exec rake spec:opentelemetry'
@@ -646,6 +686,7 @@ task :ci do
646
686
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
647
687
  declare 'bundle exec appraisal contrib rake spec:active_record'
648
688
  declare 'bundle exec appraisal contrib rake spec:active_support'
689
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
649
690
  declare 'bundle exec appraisal contrib rake spec:aws'
650
691
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
651
692
  declare 'bundle exec appraisal contrib rake spec:cucumber'
@@ -659,11 +700,13 @@ task :ci do
659
700
  declare 'bundle exec appraisal contrib rake spec:graphql'
660
701
  declare 'bundle exec appraisal contrib rake spec:grpc'
661
702
  declare 'bundle exec appraisal contrib rake spec:http'
703
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
662
704
  declare 'bundle exec appraisal contrib rake spec:httprb'
663
705
  declare 'bundle exec appraisal contrib rake spec:kafka'
664
706
  declare 'bundle exec appraisal contrib rake spec:mongodb'
665
707
  declare 'bundle exec appraisal contrib rake spec:mysql2'
666
708
  declare 'bundle exec appraisal contrib rake spec:presto'
709
+ declare 'bundle exec appraisal contrib rake spec:qless'
667
710
  declare 'bundle exec appraisal contrib rake spec:que'
668
711
  declare 'bundle exec appraisal contrib rake spec:racecar'
669
712
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -679,6 +722,7 @@ task :ci do
679
722
  declare 'bundle exec appraisal contrib rake spec:sneakers'
680
723
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
681
724
  declare 'bundle exec appraisal contrib rake spec:suite'
725
+
682
726
  # Contrib specs with old gem versions
683
727
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
684
728
  # Rails minitests
@@ -689,19 +733,29 @@ task :ci do
689
733
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
690
734
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
691
735
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
736
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
692
737
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
693
738
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
694
739
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
695
740
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
696
741
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
697
742
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
743
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
698
744
  # Rails specs
699
745
  declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
700
746
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
701
747
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
702
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
748
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
703
749
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
704
750
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
751
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
752
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
753
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
754
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
755
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
756
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
757
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
758
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
705
759
 
706
760
  # explicitly test resque-2x compatability
707
761
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
@@ -712,10 +766,12 @@ task :ci do
712
766
  declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
713
767
  declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
714
768
  end
715
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
769
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
770
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
716
771
  # Main library
717
772
  declare 'bundle exec rake test:main'
718
773
  declare 'bundle exec rake spec:main'
774
+ declare 'bundle exec appraisal core-old rake spec:main'
719
775
  declare 'bundle exec rake spec:contrib'
720
776
  declare 'bundle exec rake spec:opentracer'
721
777
  declare 'bundle exec rake spec:opentelemetry'
@@ -728,6 +784,7 @@ task :ci do
728
784
  declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
729
785
  declare 'bundle exec appraisal contrib rake spec:active_record'
730
786
  declare 'bundle exec appraisal contrib rake spec:active_support'
787
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
731
788
  declare 'bundle exec appraisal contrib rake spec:aws'
732
789
  declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
733
790
  declare 'bundle exec appraisal contrib rake spec:cucumber'
@@ -741,11 +798,13 @@ task :ci do
741
798
  declare 'bundle exec appraisal contrib rake spec:graphql'
742
799
  declare 'bundle exec appraisal contrib rake spec:grpc'
743
800
  declare 'bundle exec appraisal contrib rake spec:http'
801
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
744
802
  declare 'bundle exec appraisal contrib rake spec:httprb'
745
803
  declare 'bundle exec appraisal contrib rake spec:kafka'
746
804
  declare 'bundle exec appraisal contrib rake spec:mongodb'
747
805
  declare 'bundle exec appraisal contrib rake spec:mysql2'
748
806
  declare 'bundle exec appraisal contrib rake spec:presto'
807
+ declare 'bundle exec appraisal contrib rake spec:qless'
749
808
  declare 'bundle exec appraisal contrib rake spec:que'
750
809
  declare 'bundle exec appraisal contrib rake spec:racecar'
751
810
  declare 'bundle exec appraisal contrib rake spec:rack'
@@ -761,6 +820,7 @@ task :ci do
761
820
  declare 'bundle exec appraisal contrib rake spec:sneakers'
762
821
  declare 'bundle exec appraisal contrib rake spec:sucker_punch'
763
822
  declare 'bundle exec appraisal contrib rake spec:suite'
823
+
764
824
  # Contrib specs with old gem versions
765
825
  declare 'bundle exec appraisal contrib-old rake spec:faraday'
766
826
  # Rails minitests
@@ -771,17 +831,100 @@ task :ci do
771
831
  declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
772
832
  declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
773
833
  declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
834
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
774
835
  declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
775
836
  declare 'bundle exec appraisal rails6-postgres rake test:rails'
776
837
  declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
777
838
  declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
778
839
  declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
779
840
  declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
841
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
780
842
  # Rails specs
781
843
  declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
782
844
  declare 'bundle exec appraisal rails5-postgres rake spec:rails'
845
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
783
846
  declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
784
847
  declare 'bundle exec appraisal rails6-postgres rake spec:rails'
848
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
849
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
850
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
851
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
852
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
853
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
854
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
855
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
856
+
857
+ # explicitly test resque-2x compatability
858
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
859
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
860
+
861
+ # explicitly test cucumber compatibility
862
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
863
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
864
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
865
+ end
866
+ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
867
+ # Main library
868
+ declare 'bundle exec rake test:main'
869
+ declare 'bundle exec rake spec:main'
870
+ declare 'bundle exec appraisal core-old rake spec:main'
871
+ declare 'bundle exec rake spec:contrib'
872
+ declare 'bundle exec rake spec:opentracer'
873
+ declare 'bundle exec rake spec:opentelemetry'
874
+
875
+ if RUBY_PLATFORM != 'java'
876
+ # Contrib minitests
877
+ # Contrib specs
878
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
879
+ declare 'bundle exec appraisal contrib rake spec:action_view'
880
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
881
+ declare 'bundle exec appraisal contrib rake spec:active_record'
882
+ declare 'bundle exec appraisal contrib rake spec:active_support'
883
+ declare 'bundle exec appraisal contrib rake spec:aws'
884
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
885
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
886
+ declare 'bundle exec appraisal contrib rake spec:dalli'
887
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
888
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
889
+ declare 'bundle exec appraisal contrib rake spec:ethon'
890
+ declare 'bundle exec appraisal contrib rake spec:excon'
891
+ declare 'bundle exec appraisal contrib rake spec:faraday'
892
+ declare 'bundle exec appraisal contrib rake spec:grape'
893
+ declare 'bundle exec appraisal contrib rake spec:graphql'
894
+ # declare 'bundle exec appraisal contrib rake spec:grpc' # Pending https://github.com/protocolbuffers/protobuf/issues/7922
895
+ declare 'bundle exec appraisal contrib rake spec:http'
896
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
897
+ declare 'bundle exec appraisal contrib rake spec:httprb'
898
+ declare 'bundle exec appraisal contrib rake spec:kafka'
899
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
900
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
901
+ declare 'bundle exec appraisal contrib rake spec:presto'
902
+ declare 'bundle exec appraisal contrib rake spec:qless'
903
+ declare 'bundle exec appraisal contrib rake spec:que'
904
+ # declare 'bundle exec appraisal contrib rake spec:racecar' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
905
+ declare 'bundle exec appraisal contrib rake spec:rack'
906
+ declare 'bundle exec appraisal contrib rake spec:rake'
907
+ declare 'bundle exec appraisal contrib rake spec:redis'
908
+ declare 'bundle exec appraisal contrib rake spec:resque'
909
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
910
+ declare 'bundle exec appraisal contrib rake spec:rspec'
911
+ declare 'bundle exec appraisal contrib rake spec:sequel'
912
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
913
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
914
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
915
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
916
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
917
+ declare 'bundle exec appraisal contrib rake spec:suite'
918
+
919
+ # Rails
920
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
921
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
922
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
923
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
924
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
925
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
926
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
927
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
785
928
 
786
929
  # explicitly test resque-2x compatability
787
930
  declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
@@ -805,7 +948,13 @@ namespace :coverage do
805
948
 
806
949
  SimpleCov.collate resultset_files do
807
950
  coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
808
- formatter SimpleCov::Formatter::HTMLFormatter
951
+ if ENV['CI'] == 'true'
952
+ require 'codecov'
953
+ formatter SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter,
954
+ SimpleCov::Formatter::Codecov])
955
+ else
956
+ formatter SimpleCov::Formatter::HTMLFormatter
957
+ end
809
958
  end
810
959
  end
811
960
 
@@ -824,4 +973,12 @@ namespace :coverage do
824
973
  end
825
974
  end
826
975
 
976
+ namespace :changelog do
977
+ task :format do
978
+ require 'pimpmychangelog'
979
+
980
+ PimpMyChangelog::CLI.run!
981
+ end
982
+ end
983
+
827
984
  task default: :test