ddtrace 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (433) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +492 -0
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +73 -0
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +73 -0
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +73 -0
  6. data/.circleci/images/primary/Dockerfile-2.3.8 +75 -0
  7. data/.circleci/images/primary/Dockerfile-2.4.6 +73 -0
  8. data/.circleci/images/primary/Dockerfile-2.5.6 +73 -0
  9. data/.circleci/images/primary/Dockerfile-2.6.4 +73 -0
  10. data/.circleci/images/primary/Dockerfile-2.7.0 +73 -0
  11. data/.circleci/images/primary/Dockerfile-jruby-9.2 +77 -0
  12. data/.dockerignore +1 -0
  13. data/.env +26 -0
  14. data/.github/CODEOWNERS +1 -0
  15. data/.gitignore +61 -0
  16. data/.gitlab-ci.yml +26 -0
  17. data/.rspec +1 -0
  18. data/.rubocop.yml +85 -0
  19. data/.yardopts +5 -0
  20. data/Appraisals +961 -0
  21. data/CHANGELOG.md +1402 -0
  22. data/CONTRIBUTING.md +85 -0
  23. data/Gemfile +7 -0
  24. data/LICENSE +6 -0
  25. data/LICENSE.Apache +200 -0
  26. data/LICENSE.BSD3 +24 -0
  27. data/NOTICE +4 -0
  28. data/README.md +23 -0
  29. data/Rakefile +753 -0
  30. data/benchmarks/postgres_database.yml +9 -0
  31. data/benchmarks/sidekiq_test.rb +154 -0
  32. data/ddtrace.gemspec +71 -0
  33. data/docker-compose.yml +370 -0
  34. data/docs/DevelopmentGuide.md +195 -0
  35. data/docs/GettingStarted.md +2224 -0
  36. data/lib/ddtrace.rb +76 -0
  37. data/lib/ddtrace/analytics.rb +36 -0
  38. data/lib/ddtrace/augmentation.rb +13 -0
  39. data/lib/ddtrace/augmentation/method_wrapper.rb +20 -0
  40. data/lib/ddtrace/augmentation/method_wrapping.rb +38 -0
  41. data/lib/ddtrace/augmentation/shim.rb +102 -0
  42. data/lib/ddtrace/buffer.rb +119 -0
  43. data/lib/ddtrace/chunker.rb +34 -0
  44. data/lib/ddtrace/configuration.rb +53 -0
  45. data/lib/ddtrace/configuration/base.rb +84 -0
  46. data/lib/ddtrace/configuration/components.rb +154 -0
  47. data/lib/ddtrace/configuration/dependency_resolver.rb +24 -0
  48. data/lib/ddtrace/configuration/option.rb +64 -0
  49. data/lib/ddtrace/configuration/option_definition.rb +123 -0
  50. data/lib/ddtrace/configuration/option_definition_set.rb +18 -0
  51. data/lib/ddtrace/configuration/option_set.rb +6 -0
  52. data/lib/ddtrace/configuration/options.rb +112 -0
  53. data/lib/ddtrace/configuration/pin_setup.rb +31 -0
  54. data/lib/ddtrace/configuration/settings.rb +273 -0
  55. data/lib/ddtrace/context.rb +305 -0
  56. data/lib/ddtrace/context_flush.rb +69 -0
  57. data/lib/ddtrace/context_provider.rb +50 -0
  58. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +25 -0
  59. data/lib/ddtrace/contrib/action_cable/event.rb +65 -0
  60. data/lib/ddtrace/contrib/action_cable/events.rb +33 -0
  61. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +49 -0
  62. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +55 -0
  63. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +50 -0
  64. data/lib/ddtrace/contrib/action_cable/ext.rb +23 -0
  65. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +31 -0
  66. data/lib/ddtrace/contrib/action_cable/integration.rb +38 -0
  67. data/lib/ddtrace/contrib/action_cable/patcher.rb +27 -0
  68. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +148 -0
  69. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +25 -0
  70. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +27 -0
  71. data/lib/ddtrace/contrib/action_pack/ext.rb +16 -0
  72. data/lib/ddtrace/contrib/action_pack/integration.rb +38 -0
  73. data/lib/ddtrace/contrib/action_pack/patcher.rb +23 -0
  74. data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
  75. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +26 -0
  76. data/lib/ddtrace/contrib/action_view/event.rb +39 -0
  77. data/lib/ddtrace/contrib/action_view/events.rb +30 -0
  78. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +45 -0
  79. data/lib/ddtrace/contrib/action_view/events/render_template.rb +48 -0
  80. data/lib/ddtrace/contrib/action_view/ext.rb +17 -0
  81. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +74 -0
  82. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +167 -0
  83. data/lib/ddtrace/contrib/action_view/integration.rb +45 -0
  84. data/lib/ddtrace/contrib/action_view/patcher.rb +47 -0
  85. data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
  86. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +25 -0
  87. data/lib/ddtrace/contrib/active_model_serializers/event.rb +68 -0
  88. data/lib/ddtrace/contrib/active_model_serializers/events.rb +30 -0
  89. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +32 -0
  90. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +35 -0
  91. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +17 -0
  92. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +40 -0
  93. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +29 -0
  94. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +45 -0
  95. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +30 -0
  96. data/lib/ddtrace/contrib/active_record/event.rb +30 -0
  97. data/lib/ddtrace/contrib/active_record/events.rb +30 -0
  98. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +60 -0
  99. data/lib/ddtrace/contrib/active_record/events/sql.rb +64 -0
  100. data/lib/ddtrace/contrib/active_record/ext.rb +21 -0
  101. data/lib/ddtrace/contrib/active_record/integration.rb +46 -0
  102. data/lib/ddtrace/contrib/active_record/patcher.rb +23 -0
  103. data/lib/ddtrace/contrib/active_record/utils.rb +76 -0
  104. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +157 -0
  105. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +48 -0
  106. data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
  107. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +25 -0
  108. data/lib/ddtrace/contrib/active_support/ext.rb +21 -0
  109. data/lib/ddtrace/contrib/active_support/integration.rb +40 -0
  110. data/lib/ddtrace/contrib/active_support/notifications/event.rb +64 -0
  111. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +66 -0
  112. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +159 -0
  113. data/lib/ddtrace/contrib/active_support/patcher.rb +23 -0
  114. data/lib/ddtrace/contrib/analytics.rb +24 -0
  115. data/lib/ddtrace/contrib/aws/configuration/settings.rb +25 -0
  116. data/lib/ddtrace/contrib/aws/ext.rb +20 -0
  117. data/lib/ddtrace/contrib/aws/instrumentation.rb +56 -0
  118. data/lib/ddtrace/contrib/aws/integration.rb +42 -0
  119. data/lib/ddtrace/contrib/aws/parsed_context.rb +56 -0
  120. data/lib/ddtrace/contrib/aws/patcher.rb +49 -0
  121. data/lib/ddtrace/contrib/aws/services.rb +115 -0
  122. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +15 -0
  123. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +41 -0
  124. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +11 -0
  125. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +23 -0
  126. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +38 -0
  127. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +28 -0
  128. data/lib/ddtrace/contrib/configurable.rb +76 -0
  129. data/lib/ddtrace/contrib/configuration/resolver.rb +16 -0
  130. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +39 -0
  131. data/lib/ddtrace/contrib/configuration/settings.rb +53 -0
  132. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +25 -0
  133. data/lib/ddtrace/contrib/dalli/ext.rb +17 -0
  134. data/lib/ddtrace/contrib/dalli/instrumentation.rb +50 -0
  135. data/lib/ddtrace/contrib/dalli/integration.rb +38 -0
  136. data/lib/ddtrace/contrib/dalli/patcher.rb +63 -0
  137. data/lib/ddtrace/contrib/dalli/quantize.rb +22 -0
  138. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +25 -0
  139. data/lib/ddtrace/contrib/delayed_job/ext.rb +18 -0
  140. data/lib/ddtrace/contrib/delayed_job/integration.rb +38 -0
  141. data/lib/ddtrace/contrib/delayed_job/patcher.rb +28 -0
  142. data/lib/ddtrace/contrib/delayed_job/plugin.rb +61 -0
  143. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +26 -0
  144. data/lib/ddtrace/contrib/elasticsearch/ext.rb +19 -0
  145. data/lib/ddtrace/contrib/elasticsearch/integration.rb +39 -0
  146. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +117 -0
  147. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +80 -0
  148. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +27 -0
  149. data/lib/ddtrace/contrib/ethon/easy_patch.rb +148 -0
  150. data/lib/ddtrace/contrib/ethon/ext.rb +15 -0
  151. data/lib/ddtrace/contrib/ethon/integration.rb +43 -0
  152. data/lib/ddtrace/contrib/ethon/multi_patch.rb +80 -0
  153. data/lib/ddtrace/contrib/ethon/patcher.rb +25 -0
  154. data/lib/ddtrace/contrib/excon/configuration/settings.rb +28 -0
  155. data/lib/ddtrace/contrib/excon/ext.rb +14 -0
  156. data/lib/ddtrace/contrib/excon/integration.rb +43 -0
  157. data/lib/ddtrace/contrib/excon/middleware.rb +157 -0
  158. data/lib/ddtrace/contrib/excon/patcher.rb +27 -0
  159. data/lib/ddtrace/contrib/extensions.rb +93 -0
  160. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +33 -0
  161. data/lib/ddtrace/contrib/faraday/connection.rb +18 -0
  162. data/lib/ddtrace/contrib/faraday/ext.rb +14 -0
  163. data/lib/ddtrace/contrib/faraday/integration.rb +43 -0
  164. data/lib/ddtrace/contrib/faraday/middleware.rb +83 -0
  165. data/lib/ddtrace/contrib/faraday/patcher.rb +80 -0
  166. data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
  167. data/lib/ddtrace/contrib/grape/configuration/settings.rb +27 -0
  168. data/lib/ddtrace/contrib/grape/endpoint.rb +208 -0
  169. data/lib/ddtrace/contrib/grape/ext.rb +19 -0
  170. data/lib/ddtrace/contrib/grape/instrumentation.rb +33 -0
  171. data/lib/ddtrace/contrib/grape/integration.rb +39 -0
  172. data/lib/ddtrace/contrib/grape/patcher.rb +73 -0
  173. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +27 -0
  174. data/lib/ddtrace/contrib/graphql/ext.rb +13 -0
  175. data/lib/ddtrace/contrib/graphql/integration.rb +39 -0
  176. data/lib/ddtrace/contrib/graphql/patcher.rb +60 -0
  177. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +25 -0
  178. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +74 -0
  179. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +54 -0
  180. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +76 -0
  181. data/lib/ddtrace/contrib/grpc/ext.rb +15 -0
  182. data/lib/ddtrace/contrib/grpc/integration.rb +38 -0
  183. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +49 -0
  184. data/lib/ddtrace/contrib/grpc/patcher.rb +68 -0
  185. data/lib/ddtrace/contrib/http/circuit_breaker.rb +39 -0
  186. data/lib/ddtrace/contrib/http/configuration/settings.rb +27 -0
  187. data/lib/ddtrace/contrib/http/ext.rb +14 -0
  188. data/lib/ddtrace/contrib/http/instrumentation.rb +175 -0
  189. data/lib/ddtrace/contrib/http/integration.rb +45 -0
  190. data/lib/ddtrace/contrib/http/patcher.rb +26 -0
  191. data/lib/ddtrace/contrib/http_annotation_helper.rb +10 -0
  192. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +27 -0
  193. data/lib/ddtrace/contrib/httprb/ext.rb +14 -0
  194. data/lib/ddtrace/contrib/httprb/instrumentation.rb +163 -0
  195. data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
  196. data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
  197. data/lib/ddtrace/contrib/integration.rb +16 -0
  198. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +25 -0
  199. data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
  200. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
  201. data/lib/ddtrace/contrib/kafka/event.rb +51 -0
  202. data/lib/ddtrace/contrib/kafka/events.rb +44 -0
  203. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
  204. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
  205. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
  206. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
  207. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
  208. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
  209. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
  210. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
  211. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
  212. data/lib/ddtrace/contrib/kafka/ext.rb +38 -0
  213. data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
  214. data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
  215. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +28 -0
  216. data/lib/ddtrace/contrib/mongodb/ext.rb +20 -0
  217. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +67 -0
  218. data/lib/ddtrace/contrib/mongodb/integration.rb +38 -0
  219. data/lib/ddtrace/contrib/mongodb/parsers.rb +68 -0
  220. data/lib/ddtrace/contrib/mongodb/patcher.rb +31 -0
  221. data/lib/ddtrace/contrib/mongodb/subscribers.rb +108 -0
  222. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +25 -0
  223. data/lib/ddtrace/contrib/mysql2/ext.rb +15 -0
  224. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +60 -0
  225. data/lib/ddtrace/contrib/mysql2/integration.rb +38 -0
  226. data/lib/ddtrace/contrib/mysql2/patcher.rb +27 -0
  227. data/lib/ddtrace/contrib/patchable.rb +59 -0
  228. data/lib/ddtrace/contrib/patcher.rb +62 -0
  229. data/lib/ddtrace/contrib/presto/configuration/settings.rb +25 -0
  230. data/lib/ddtrace/contrib/presto/ext.rb +25 -0
  231. data/lib/ddtrace/contrib/presto/instrumentation.rb +107 -0
  232. data/lib/ddtrace/contrib/presto/integration.rb +38 -0
  233. data/lib/ddtrace/contrib/presto/patcher.rb +30 -0
  234. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +25 -0
  235. data/lib/ddtrace/contrib/racecar/event.rb +71 -0
  236. data/lib/ddtrace/contrib/racecar/events.rb +30 -0
  237. data/lib/ddtrace/contrib/racecar/events/batch.rb +27 -0
  238. data/lib/ddtrace/contrib/racecar/events/message.rb +27 -0
  239. data/lib/ddtrace/contrib/racecar/ext.rb +21 -0
  240. data/lib/ddtrace/contrib/racecar/integration.rb +39 -0
  241. data/lib/ddtrace/contrib/racecar/patcher.rb +26 -0
  242. data/lib/ddtrace/contrib/rack/configuration/settings.rb +41 -0
  243. data/lib/ddtrace/contrib/rack/ext.rb +18 -0
  244. data/lib/ddtrace/contrib/rack/integration.rb +38 -0
  245. data/lib/ddtrace/contrib/rack/middlewares.rb +290 -0
  246. data/lib/ddtrace/contrib/rack/patcher.rb +107 -0
  247. data/lib/ddtrace/contrib/rack/request_queue.rb +39 -0
  248. data/lib/ddtrace/contrib/rails/configuration/settings.rb +83 -0
  249. data/lib/ddtrace/contrib/rails/ext.rb +13 -0
  250. data/lib/ddtrace/contrib/rails/framework.rb +124 -0
  251. data/lib/ddtrace/contrib/rails/integration.rb +44 -0
  252. data/lib/ddtrace/contrib/rails/middlewares.rb +38 -0
  253. data/lib/ddtrace/contrib/rails/patcher.rb +74 -0
  254. data/lib/ddtrace/contrib/rails/railtie.rb +17 -0
  255. data/lib/ddtrace/contrib/rails/utils.rb +20 -0
  256. data/lib/ddtrace/contrib/rake/configuration/settings.rb +27 -0
  257. data/lib/ddtrace/contrib/rake/ext.rb +18 -0
  258. data/lib/ddtrace/contrib/rake/instrumentation.rb +88 -0
  259. data/lib/ddtrace/contrib/rake/integration.rb +38 -0
  260. data/lib/ddtrace/contrib/rake/patcher.rb +30 -0
  261. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +36 -0
  262. data/lib/ddtrace/contrib/redis/configuration/settings.rb +25 -0
  263. data/lib/ddtrace/contrib/redis/ext.rb +18 -0
  264. data/lib/ddtrace/contrib/redis/integration.rb +42 -0
  265. data/lib/ddtrace/contrib/redis/patcher.rb +97 -0
  266. data/lib/ddtrace/contrib/redis/quantize.rb +47 -0
  267. data/lib/ddtrace/contrib/redis/tags.rb +38 -0
  268. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +159 -0
  269. data/lib/ddtrace/contrib/registerable.rb +33 -0
  270. data/lib/ddtrace/contrib/registry.rb +42 -0
  271. data/lib/ddtrace/contrib/resque/configuration/settings.rb +26 -0
  272. data/lib/ddtrace/contrib/resque/ext.rb +14 -0
  273. data/lib/ddtrace/contrib/resque/integration.rb +47 -0
  274. data/lib/ddtrace/contrib/resque/patcher.rb +29 -0
  275. data/lib/ddtrace/contrib/resque/resque_job.rb +80 -0
  276. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +26 -0
  277. data/lib/ddtrace/contrib/rest_client/ext.rb +14 -0
  278. data/lib/ddtrace/contrib/rest_client/integration.rb +38 -0
  279. data/lib/ddtrace/contrib/rest_client/patcher.rb +23 -0
  280. data/lib/ddtrace/contrib/rest_client/request_patch.rb +89 -0
  281. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +23 -0
  282. data/lib/ddtrace/contrib/sequel/database.rb +61 -0
  283. data/lib/ddtrace/contrib/sequel/dataset.rb +62 -0
  284. data/lib/ddtrace/contrib/sequel/ext.rb +15 -0
  285. data/lib/ddtrace/contrib/sequel/integration.rb +38 -0
  286. data/lib/ddtrace/contrib/sequel/patcher.rb +33 -0
  287. data/lib/ddtrace/contrib/sequel/utils.rb +46 -0
  288. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +24 -0
  289. data/lib/ddtrace/contrib/shoryuken/ext.rb +18 -0
  290. data/lib/ddtrace/contrib/shoryuken/integration.rb +39 -0
  291. data/lib/ddtrace/contrib/shoryuken/patcher.rb +24 -0
  292. data/lib/ddtrace/contrib/shoryuken/tracer.rb +49 -0
  293. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +43 -0
  294. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +31 -0
  295. data/lib/ddtrace/contrib/sidekiq/ext.rb +24 -0
  296. data/lib/ddtrace/contrib/sidekiq/integration.rb +38 -0
  297. data/lib/ddtrace/contrib/sidekiq/patcher.rb +41 -0
  298. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +67 -0
  299. data/lib/ddtrace/contrib/sidekiq/tracing.rb +45 -0
  300. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +34 -0
  301. data/lib/ddtrace/contrib/sinatra/env.rb +58 -0
  302. data/lib/ddtrace/contrib/sinatra/ext.rb +24 -0
  303. data/lib/ddtrace/contrib/sinatra/headers.rb +31 -0
  304. data/lib/ddtrace/contrib/sinatra/integration.rb +38 -0
  305. data/lib/ddtrace/contrib/sinatra/patcher.rb +28 -0
  306. data/lib/ddtrace/contrib/sinatra/tracer.rb +150 -0
  307. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +78 -0
  308. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +25 -0
  309. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +26 -0
  310. data/lib/ddtrace/contrib/sucker_punch/ext.rb +18 -0
  311. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +84 -0
  312. data/lib/ddtrace/contrib/sucker_punch/integration.rb +38 -0
  313. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +42 -0
  314. data/lib/ddtrace/correlation.rb +38 -0
  315. data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
  316. data/lib/ddtrace/diagnostics/health.rb +33 -0
  317. data/lib/ddtrace/distributed_tracing/headers/b3.rb +44 -0
  318. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +56 -0
  319. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +42 -0
  320. data/lib/ddtrace/distributed_tracing/headers/headers.rb +70 -0
  321. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +45 -0
  322. data/lib/ddtrace/encoding.rb +69 -0
  323. data/lib/ddtrace/environment.rb +31 -0
  324. data/lib/ddtrace/error.rb +27 -0
  325. data/lib/ddtrace/event.rb +52 -0
  326. data/lib/ddtrace/ext/analytics.rb +12 -0
  327. data/lib/ddtrace/ext/app_types.rb +11 -0
  328. data/lib/ddtrace/ext/correlation.rb +11 -0
  329. data/lib/ddtrace/ext/diagnostics.rb +35 -0
  330. data/lib/ddtrace/ext/distributed.rb +33 -0
  331. data/lib/ddtrace/ext/environment.rb +16 -0
  332. data/lib/ddtrace/ext/errors.rb +10 -0
  333. data/lib/ddtrace/ext/forced_tracing.rb +25 -0
  334. data/lib/ddtrace/ext/http.rb +46 -0
  335. data/lib/ddtrace/ext/manual_tracing.rb +9 -0
  336. data/lib/ddtrace/ext/metrics.rb +15 -0
  337. data/lib/ddtrace/ext/net.rb +10 -0
  338. data/lib/ddtrace/ext/priority.rb +16 -0
  339. data/lib/ddtrace/ext/runtime.rb +26 -0
  340. data/lib/ddtrace/ext/sampling.rb +16 -0
  341. data/lib/ddtrace/ext/sql.rb +8 -0
  342. data/lib/ddtrace/ext/transport.rb +17 -0
  343. data/lib/ddtrace/forced_tracing.rb +36 -0
  344. data/lib/ddtrace/logger.rb +40 -0
  345. data/lib/ddtrace/metrics.rb +222 -0
  346. data/lib/ddtrace/monkey.rb +58 -0
  347. data/lib/ddtrace/opentelemetry/extensions.rb +13 -0
  348. data/lib/ddtrace/opentelemetry/span.rb +33 -0
  349. data/lib/ddtrace/opentracer.rb +40 -0
  350. data/lib/ddtrace/opentracer/binary_propagator.rb +24 -0
  351. data/lib/ddtrace/opentracer/carrier.rb +6 -0
  352. data/lib/ddtrace/opentracer/distributed_headers.rb +52 -0
  353. data/lib/ddtrace/opentracer/global_tracer.rb +15 -0
  354. data/lib/ddtrace/opentracer/propagator.rb +22 -0
  355. data/lib/ddtrace/opentracer/rack_propagator.rb +60 -0
  356. data/lib/ddtrace/opentracer/scope.rb +15 -0
  357. data/lib/ddtrace/opentracer/scope_manager.rb +6 -0
  358. data/lib/ddtrace/opentracer/span.rb +98 -0
  359. data/lib/ddtrace/opentracer/span_context.rb +14 -0
  360. data/lib/ddtrace/opentracer/span_context_factory.rb +23 -0
  361. data/lib/ddtrace/opentracer/text_map_propagator.rb +75 -0
  362. data/lib/ddtrace/opentracer/thread_local_scope.rb +30 -0
  363. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +40 -0
  364. data/lib/ddtrace/opentracer/tracer.rb +208 -0
  365. data/lib/ddtrace/patcher.rb +47 -0
  366. data/lib/ddtrace/pin.rb +138 -0
  367. data/lib/ddtrace/pipeline.rb +46 -0
  368. data/lib/ddtrace/pipeline/span_filter.rb +38 -0
  369. data/lib/ddtrace/pipeline/span_processor.rb +20 -0
  370. data/lib/ddtrace/propagation/grpc_propagator.rb +61 -0
  371. data/lib/ddtrace/propagation/http_propagator.rb +75 -0
  372. data/lib/ddtrace/quantization/hash.rb +103 -0
  373. data/lib/ddtrace/quantization/http.rb +86 -0
  374. data/lib/ddtrace/runtime/cgroup.rb +44 -0
  375. data/lib/ddtrace/runtime/class_count.rb +17 -0
  376. data/lib/ddtrace/runtime/container.rb +73 -0
  377. data/lib/ddtrace/runtime/gc.rb +16 -0
  378. data/lib/ddtrace/runtime/identity.rb +41 -0
  379. data/lib/ddtrace/runtime/metrics.rb +96 -0
  380. data/lib/ddtrace/runtime/object_space.rb +19 -0
  381. data/lib/ddtrace/runtime/socket.rb +14 -0
  382. data/lib/ddtrace/runtime/thread_count.rb +16 -0
  383. data/lib/ddtrace/sampler.rb +292 -0
  384. data/lib/ddtrace/sampling.rb +2 -0
  385. data/lib/ddtrace/sampling/matcher.rb +57 -0
  386. data/lib/ddtrace/sampling/rate_limiter.rb +127 -0
  387. data/lib/ddtrace/sampling/rule.rb +61 -0
  388. data/lib/ddtrace/sampling/rule_sampler.rb +125 -0
  389. data/lib/ddtrace/span.rb +307 -0
  390. data/lib/ddtrace/sync_writer.rb +67 -0
  391. data/lib/ddtrace/tracer.rb +439 -0
  392. data/lib/ddtrace/transport/http.rb +91 -0
  393. data/lib/ddtrace/transport/http/adapters/net.rb +120 -0
  394. data/lib/ddtrace/transport/http/adapters/registry.rb +24 -0
  395. data/lib/ddtrace/transport/http/adapters/test.rb +81 -0
  396. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +68 -0
  397. data/lib/ddtrace/transport/http/api.rb +46 -0
  398. data/lib/ddtrace/transport/http/api/endpoint.rb +27 -0
  399. data/lib/ddtrace/transport/http/api/fallbacks.rb +22 -0
  400. data/lib/ddtrace/transport/http/api/instance.rb +33 -0
  401. data/lib/ddtrace/transport/http/api/map.rb +14 -0
  402. data/lib/ddtrace/transport/http/api/spec.rb +15 -0
  403. data/lib/ddtrace/transport/http/builder.rb +163 -0
  404. data/lib/ddtrace/transport/http/client.rb +50 -0
  405. data/lib/ddtrace/transport/http/env.rb +48 -0
  406. data/lib/ddtrace/transport/http/response.rb +26 -0
  407. data/lib/ddtrace/transport/http/statistics.rb +30 -0
  408. data/lib/ddtrace/transport/http/traces.rb +143 -0
  409. data/lib/ddtrace/transport/io.rb +26 -0
  410. data/lib/ddtrace/transport/io/client.rb +76 -0
  411. data/lib/ddtrace/transport/io/response.rb +25 -0
  412. data/lib/ddtrace/transport/io/traces.rb +91 -0
  413. data/lib/ddtrace/transport/parcel.rb +13 -0
  414. data/lib/ddtrace/transport/request.rb +13 -0
  415. data/lib/ddtrace/transport/response.rb +60 -0
  416. data/lib/ddtrace/transport/statistics.rb +72 -0
  417. data/lib/ddtrace/transport/traces.rb +183 -0
  418. data/lib/ddtrace/utils.rb +65 -0
  419. data/lib/ddtrace/utils/database.rb +25 -0
  420. data/lib/ddtrace/utils/time.rb +14 -0
  421. data/lib/ddtrace/vendor/active_record/connection_specification.rb +301 -0
  422. data/lib/ddtrace/version.rb +12 -0
  423. data/lib/ddtrace/worker.rb +20 -0
  424. data/lib/ddtrace/workers.rb +117 -0
  425. data/lib/ddtrace/workers/async.rb +165 -0
  426. data/lib/ddtrace/workers/loop.rb +105 -0
  427. data/lib/ddtrace/workers/polling.rb +48 -0
  428. data/lib/ddtrace/workers/queue.rb +39 -0
  429. data/lib/ddtrace/workers/runtime_metrics.rb +47 -0
  430. data/lib/ddtrace/workers/trace_writer.rb +202 -0
  431. data/lib/ddtrace/writer.rb +175 -0
  432. data/tasks/release_gem.rake +28 -0
  433. metadata +815 -0
@@ -0,0 +1,85 @@
1
+ # Contributing
2
+
3
+ Community contributions to the Datadog tracing library for Ruby are welcome! See below for some basic guidelines.
4
+
5
+ ## Want to request a new feature?
6
+
7
+ Many great ideas for new features come from the community, and we'd be happy to consider yours!
8
+
9
+ To share your request, you can [open a Github issue](https://github.com/DataDog/dd-trace-rb/issues/new) with the details about what you'd like to see. At a minimum, please provide:
10
+
11
+ - The goal of the new feature
12
+ - A description of how it might be used or behave
13
+ - Links to any important resources (e.g. Github repos, websites, screenshots, specifications, diagrams)
14
+
15
+ Additionally, if you can, include:
16
+
17
+ - A description of how it could be accomplished
18
+ - Code snippets that might demonstrate its use or implementation
19
+ - Screenshots or mockups that visually demonstrate the feature
20
+ - Links to similar features that would serve as a good comparison
21
+ - (Any other details that would be useful for implementing this feature!)
22
+
23
+ Feature requests will be reviewed, discussed, and then added to [our Community project](https://github.com/DataDog/dd-trace-rb/projects/2).
24
+
25
+ ## Found a bug?
26
+
27
+ For any urgent matters (such as outages) or issues concerning the Datadog service or UI, contact our support team via https://docs.datadoghq.com/help/ for direct, faster assistance.
28
+
29
+ You may submit bug reports concerning the Datadog tracing library for Ruby by [opening a Github issue](https://github.com/DataDog/dd-trace-rb/issues/new). At a minimum, please provide:
30
+
31
+ - A description of the problem
32
+ - Steps to reproduce
33
+ - Expected behavior
34
+ - Actual behavior
35
+ - Errors (with stack traces) or warnings received
36
+ - Any details you can share about your configuration including:
37
+ - Ruby version & platform
38
+ - `ddtrace` version
39
+ - Versions of any other relevant gems (or a `Gemfile.lock` if available)
40
+ - Any configuration settings for the trace library (e.g. `initializers/datadog.rb`)
41
+
42
+ If at all possible, also provide:
43
+
44
+ - Logs (from the tracer/application/agent) or other diagnostics
45
+ - Screenshots, links, or other visual aids that are publicly accessible
46
+ - Code sample or test that reproduces the problem
47
+ - An explanation of what causes the bug and/or how it can be fixed
48
+
49
+ Reports that include rich detail are better, and ones with code that reproduce the bug are best. Bug requests are triaged, reviewed, and added to [our Community project](https://github.com/DataDog/dd-trace-rb/projects/2).
50
+
51
+ ## Have a patch?
52
+
53
+ We welcome code contributions to the library, which you can [submit as a pull request](https://github.com/DataDog/dd-trace-rb/pull/new/master). To create a pull request:
54
+
55
+ 1. **Fork the repository** from https://github.com/DataDog/dd-trace-rb
56
+ 2. **Make any changes** for your patch.
57
+ 3. **Write tests** that demonstrate how the feature works or how the bug is fixed.
58
+ 4. **Update any documentation** such as `docs/GettingStarted.md`, especially for new features.
59
+ 5. **Submit the pull request** from your fork back to https://github.com/DataDog/dd-trace-rb. Bugs should merge back to `master`, and new features should merge back to the latest `dev` branch (e.g. `0.24-dev`).
60
+
61
+ The pull request will be run through our CI pipeline, and a project member will review the changes with you. At a minimum, to be accepted and merged, pull requests must:
62
+
63
+ - Have a stated goal and detailed description of the changes made
64
+ - Include thorough test coverage and documentation, where applicable
65
+ - Pass all tests and code quality checks (linting/coverage/benchmarks) on CI
66
+ - Receive at least one approval from a project member with push permissions
67
+
68
+ We also recommend that you share in your description:
69
+
70
+ - Any motivations or intent for the contribution
71
+ - Links to any issues/pull requests it might be related to
72
+ - Links to any webpages or other external resources that might be related to the change
73
+ - Screenshots, code samples, or other visual aids that demonstrate the changes or how they are implemented
74
+ - Benchmarks if the feature is anticipated to have performance implications
75
+ - Any limitations, constraints or risks that are important to consider
76
+
77
+ Pull requests will be reviewed and added to [our Community project](https://github.com/DataDog/dd-trace-rb/projects/2).
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.
80
+
81
+ ## Final word
82
+
83
+ Many thanks to all of our contributors, and looking forward to seeing you on Github! :tada:
84
+
85
+ - Datadog Ruby APM Team
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
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
data/LICENSE ADDED
@@ -0,0 +1,6 @@
1
+ ## License
2
+
3
+ This work is dual-licensed under Apache 2.0 or BSD3.
4
+ You may select, at your option, one of the above-listed licenses.
5
+
6
+ `SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause`
@@ -0,0 +1,200 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "{}"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2016 Datadog, Inc.
190
+ Licensed under the Apache License, Version 2.0 (the "License");
191
+ you may not use this file except in compliance with the License.
192
+ You may obtain a copy of the License at
193
+
194
+ http://www.apache.org/licenses/LICENSE-2.0
195
+
196
+ Unless required by applicable law or agreed to in writing, software
197
+ distributed under the License is distributed on an "AS IS" BASIS,
198
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
199
+ See the License for the specific language governing permissions and
200
+ limitations under the License.
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2016, Datadog <info@datadoghq.com>
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+ * Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+ * Neither the name of Datadog nor the
12
+ names of its contributors may be used to endorse or promote products
13
+ derived from this software without specific prior written permission.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
19
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/NOTICE ADDED
@@ -0,0 +1,4 @@
1
+ Datadog dd-trace-rb
2
+ Copyright 2016-Present Datadog, Inc.
3
+
4
+ This product includes software developed at Datadog, Inc. (https://www.datadoghq.com/).
@@ -0,0 +1,23 @@
1
+ # Datadog Trace Client
2
+
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
+
5
+ ``ddtrace`` is Datadog’s tracing client for Ruby. It is used to trace requests as they flow across web servers,
6
+ databases and microservices so that developers have great visiblity into bottlenecks and troublesome requests.
7
+
8
+ ## Getting started
9
+
10
+ For a basic product overview, check out our [setup documentation][setup docs].
11
+
12
+ For installation, configuration, and details about using the API, check out our [API documentation][api docs] and [gem documentation][gem docs].
13
+
14
+ For descriptions of terminology used in APM, take a look at the [official documentation][visualization docs].
15
+
16
+ For contributing, checkout the [contribution guidelines][contribution docs] and [development guide][development docs].
17
+
18
+ [setup docs]: https://docs.datadoghq.com/tracing/setup/ruby/
19
+ [api docs]: https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md
20
+ [gem docs]: http://gems.datadoghq.com/trace/docs/
21
+ [visualization docs]: https://docs.datadoghq.com/tracing/visualization/
22
+ [contribution docs]: https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md
23
+ [development docs]: https://github.com/DataDog/dd-trace-rb/blob/master/docs/DevelopmentGuide.md
@@ -0,0 +1,753 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'ddtrace/version'
3
+ require 'rubocop/rake_task' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
4
+ require 'rspec/core/rake_task'
5
+ require 'rake/testtask'
6
+ require 'appraisal'
7
+ require 'yard'
8
+
9
+ Dir.glob('tasks/*.rake').each { |r| import r }
10
+
11
+ desc 'Run RSpec'
12
+ # rubocop:disable Metrics/BlockLength
13
+ namespace :spec do
14
+ task all: [:main, :benchmark,
15
+ :rails, :railsredis, :railsactivejob,
16
+ :elasticsearch, :http, :redis, :sidekiq, :sinatra]
17
+
18
+ RSpec::Core::RakeTask.new(:main) do |t, args|
19
+ t.pattern = 'spec/**/*_spec.rb'
20
+ t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry}/**/*_spec.rb'
21
+ t.rspec_opts = args.to_a.join(' ')
22
+ end
23
+
24
+ RSpec::Core::RakeTask.new(:benchmark) do |t, args|
25
+ t.pattern = 'spec/ddtrace/benchmark/**/*_spec.rb'
26
+ t.rspec_opts = args.to_a.join(' ')
27
+ end
28
+
29
+ RSpec::Core::RakeTask.new(:opentracer) do |t, args|
30
+ t.pattern = 'spec/ddtrace/opentracer/**/*_spec.rb'
31
+ t.rspec_opts = args.to_a.join(' ')
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:opentelemetry) do |t, args|
35
+ t.pattern = 'spec/ddtrace/opentelemetry/**/*_spec.rb'
36
+ t.rspec_opts = args.to_a.join(' ')
37
+ end
38
+
39
+ RSpec::Core::RakeTask.new(:rails) do |t, args|
40
+ 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.rspec_opts = args.to_a.join(' ')
43
+ end
44
+
45
+ RSpec::Core::RakeTask.new(:railsredis) do |t, args|
46
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*redis*_spec.rb'
47
+ t.rspec_opts = args.to_a.join(' ')
48
+ end
49
+
50
+ RSpec::Core::RakeTask.new(:railsactivejob) do |t, args|
51
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*active_job*_spec.rb'
52
+ t.rspec_opts = args.to_a.join(' ')
53
+ end
54
+
55
+ RSpec::Core::RakeTask.new(:railsdisableenv) do |t, args|
56
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*disable_env*_spec.rb'
57
+ t.rspec_opts = args.to_a.join(' ')
58
+ end
59
+
60
+ RSpec::Core::RakeTask.new(:contrib) do |t, args|
61
+ contrib_paths = [
62
+ 'analytics',
63
+ 'configurable',
64
+ 'configuration/*',
65
+ 'configuration/resolvers/*',
66
+ 'extensions',
67
+ 'integration',
68
+ 'patchable',
69
+ 'patcher',
70
+ 'registerable',
71
+ 'registry',
72
+ 'registry/*'
73
+ ].join(',')
74
+
75
+ t.pattern = "spec/**/contrib/{#{contrib_paths}}_spec.rb"
76
+ t.rspec_opts = args.to_a.join(' ')
77
+ end
78
+
79
+ [
80
+ :action_cable,
81
+ :action_pack,
82
+ :action_view,
83
+ :active_model_serializers,
84
+ :active_record,
85
+ :active_support,
86
+ :aws,
87
+ :concurrent_ruby,
88
+ :dalli,
89
+ :delayed_job,
90
+ :elasticsearch,
91
+ :ethon,
92
+ :excon,
93
+ :faraday,
94
+ :grape,
95
+ :graphql,
96
+ :grpc,
97
+ :http,
98
+ :httprb,
99
+ :kafka,
100
+ :mongodb,
101
+ :mysql2,
102
+ :presto,
103
+ :racecar,
104
+ :rack,
105
+ :rake,
106
+ :redis,
107
+ :resque,
108
+ :rest_client,
109
+ :sequel,
110
+ :shoryuken,
111
+ :sidekiq,
112
+ :sinatra,
113
+ :sucker_punch,
114
+ :suite
115
+ ].each do |contrib|
116
+ RSpec::Core::RakeTask.new(contrib) do |t, args|
117
+ t.pattern = "spec/ddtrace/contrib/#{contrib}/**/*_spec.rb"
118
+ t.rspec_opts = args.to_a.join(' ')
119
+ end
120
+ end
121
+ end
122
+
123
+ namespace :test do
124
+ task all: [:main,
125
+ :rails,
126
+ :monkey]
127
+
128
+ Rake::TestTask.new(:main) do |t|
129
+ t.libs << %w[test lib]
130
+ t.test_files = FileList['test/**/*_test.rb'].reject do |path|
131
+ path.include?('contrib') ||
132
+ path.include?('benchmark') ||
133
+ path.include?('redis') ||
134
+ path.include?('monkey_test.rb')
135
+ end
136
+ end
137
+
138
+ Rake::TestTask.new(:rails) do |t|
139
+ t.libs << %w[test lib]
140
+ t.test_files = FileList['test/contrib/rails/**/*_test.rb']
141
+ end
142
+
143
+ [
144
+ :grape,
145
+ :sucker_punch
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
+ end
158
+
159
+ Rake::TestTask.new(:benchmark) do |t|
160
+ t.libs << %w[test lib]
161
+ t.test_files = FileList['test/benchmark_test.rb']
162
+ end
163
+
164
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
165
+ RuboCop::RakeTask.new(:rubocop) do |t|
166
+ t.options << ['-D', '--force-exclusion']
167
+ t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'spec/**/*.rb', 'Gemfile', 'Rakefile']
168
+ end
169
+ end
170
+
171
+ YARD::Rake::YardocTask.new(:docs) do |t|
172
+ t.options += ['--title', "ddtrace #{Datadog::VERSION::STRING} documentation"]
173
+ t.options += ['--markup', 'markdown']
174
+ t.options += ['--markup-provider', 'redcarpet']
175
+ end
176
+
177
+ # Deploy tasks
178
+ S3_BUCKET = 'gems.datadoghq.com'.freeze
179
+ S3_DIR = ENV['S3_DIR']
180
+
181
+ desc 'release the docs website'
182
+ task :'release:docs' => :docs do
183
+ raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
184
+ sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
185
+ end
186
+
187
+ desc 'CI task; it runs all tests for current version of Ruby'
188
+ task :ci do
189
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Datadog::VERSION::MINIMUM_RUBY_VERSION)
190
+ raise NotImplementedError, "Ruby versions < #{Datadog::VERSION::MINIMUM_RUBY_VERSION} are not supported!"
191
+ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
192
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
193
+ # Main library
194
+ sh 'bundle exec rake test:main'
195
+ sh 'bundle exec rake spec:main'
196
+ sh 'bundle exec rake spec:contrib'
197
+ # Benchmarks
198
+ sh 'bundle exec rake spec:benchmark'
199
+
200
+ if RUBY_PLATFORM != 'java'
201
+ # Contrib minitests
202
+ sh 'bundle exec appraisal contrib-old rake test:monkey'
203
+ sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
204
+ # Contrib specs
205
+ sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
206
+ sh 'bundle exec appraisal contrib-old rake spec:active_record'
207
+ sh 'bundle exec appraisal contrib-old rake spec:active_support'
208
+ sh 'bundle exec appraisal contrib-old rake spec:aws'
209
+ sh 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
210
+ sh 'bundle exec appraisal contrib-old rake spec:dalli'
211
+ sh 'bundle exec appraisal contrib-old rake spec:delayed_job'
212
+ sh 'bundle exec appraisal contrib-old rake spec:elasticsearch'
213
+ sh 'bundle exec appraisal contrib-old rake spec:ethon'
214
+ sh 'bundle exec appraisal contrib-old rake spec:excon'
215
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
216
+ sh 'bundle exec appraisal contrib-old rake spec:http'
217
+ sh 'bundle exec appraisal contrib-old rake spec:httprb'
218
+ sh 'bundle exec appraisal contrib-old rake spec:mongodb'
219
+ sh 'bundle exec appraisal contrib-old rake spec:mysql2'
220
+ sh 'bundle exec appraisal contrib-old rake spec:rack'
221
+ sh 'bundle exec appraisal contrib-old rake spec:rake'
222
+ sh 'bundle exec appraisal contrib-old rake spec:redis'
223
+ sh 'bundle exec appraisal contrib-old rake spec:resque'
224
+ sh 'bundle exec appraisal contrib-old rake spec:rest_client'
225
+ sh 'bundle exec appraisal contrib-old rake spec:sequel'
226
+ sh 'bundle exec appraisal contrib-old rake spec:sidekiq'
227
+ sh 'bundle exec appraisal contrib-old rake spec:sinatra'
228
+ sh 'bundle exec appraisal contrib-old rake spec:sucker_punch'
229
+ sh 'bundle exec appraisal contrib-old rake spec:suite'
230
+ # Rails minitests
231
+ sh 'bundle exec appraisal rails30-postgres rake test:rails'
232
+ sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
233
+ sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
234
+ sh 'bundle exec appraisal rails32-postgres rake test:rails'
235
+ sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
236
+ sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
237
+ # Rails specs
238
+ sh 'bundle exec appraisal rails30-postgres rake spec:rails'
239
+ sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
240
+ sh 'bundle exec appraisal rails32-postgres rake spec:rails'
241
+ # Rails suite specs
242
+ sh 'bundle exec appraisal rails32-postgres rake spec:action_pack'
243
+ sh 'bundle exec appraisal rails32-postgres rake spec:action_view'
244
+ sh 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
245
+ sh 'bundle exec appraisal rails32-postgres rake spec:active_support'
246
+ end
247
+ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
248
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
249
+ # Main library
250
+ sh 'bundle exec rake test:main'
251
+ sh 'bundle exec rake spec:main'
252
+ sh 'bundle exec rake spec:contrib'
253
+ sh 'bundle exec rake spec:opentracer'
254
+ # Benchmarks
255
+ sh 'bundle exec rake spec:benchmark'
256
+
257
+ if RUBY_PLATFORM != 'java'
258
+ # Contrib minitests
259
+ sh 'bundle exec appraisal contrib-old rake test:monkey'
260
+ sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
261
+ # Contrib specs
262
+ sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
263
+ sh 'bundle exec appraisal contrib-old rake spec:active_record'
264
+ sh 'bundle exec appraisal contrib-old rake spec:active_support'
265
+ sh 'bundle exec appraisal contrib-old rake spec:aws'
266
+ sh 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
267
+ sh 'bundle exec appraisal contrib-old rake spec:dalli'
268
+ sh 'bundle exec appraisal contrib-old rake spec:delayed_job'
269
+ sh 'bundle exec appraisal contrib-old rake spec:elasticsearch'
270
+ sh 'bundle exec appraisal contrib-old rake spec:ethon'
271
+ sh 'bundle exec appraisal contrib-old rake spec:excon'
272
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
273
+ sh 'bundle exec appraisal contrib-old rake spec:http'
274
+ sh 'bundle exec appraisal contrib-old rake spec:httprb'
275
+ sh 'bundle exec appraisal contrib-old rake spec:mongodb'
276
+ sh 'bundle exec appraisal contrib-old rake spec:mysql2'
277
+ sh 'bundle exec appraisal contrib-old rake spec:presto'
278
+ sh 'bundle exec appraisal contrib-old rake spec:rack'
279
+ sh 'bundle exec appraisal contrib-old rake spec:rake'
280
+ sh 'bundle exec appraisal contrib-old rake spec:redis'
281
+ sh 'bundle exec appraisal contrib-old rake spec:resque'
282
+ sh 'bundle exec appraisal contrib-old rake spec:rest_client'
283
+ sh 'bundle exec appraisal contrib-old rake spec:sequel'
284
+ sh 'bundle exec appraisal contrib-old rake spec:sidekiq'
285
+ sh 'bundle exec appraisal contrib-old rake spec:sinatra'
286
+ sh 'bundle exec appraisal contrib-old rake spec:sucker_punch'
287
+ sh 'bundle exec appraisal contrib-old rake spec:suite'
288
+ # Rails minitests
289
+ sh 'bundle exec appraisal rails30-postgres rake test:rails'
290
+ sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
291
+ sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
292
+ sh 'bundle exec appraisal rails32-postgres rake test:rails'
293
+ sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
294
+ sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
295
+ sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
296
+ sh 'bundle exec appraisal rails4-postgres rake test:rails'
297
+ sh 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
298
+ sh 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
299
+ # Rails specs
300
+ sh 'bundle exec appraisal rails30-postgres rake spec:rails'
301
+ sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
302
+ sh 'bundle exec appraisal rails32-postgres rake spec:rails'
303
+ sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
304
+ sh 'bundle exec appraisal rails4-postgres rake spec:rails'
305
+ # Rails suite specs
306
+ sh 'bundle exec appraisal rails32-postgres rake spec:action_pack'
307
+ sh 'bundle exec appraisal rails32-postgres rake spec:action_view'
308
+ sh 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
309
+ sh 'bundle exec appraisal rails32-postgres rake spec:active_support'
310
+ end
311
+ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
312
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
313
+ # Main library
314
+ sh 'bundle exec rake test:main'
315
+ sh 'bundle exec rake spec:main'
316
+ sh 'bundle exec rake spec:contrib'
317
+ sh 'bundle exec rake spec:opentracer'
318
+ # Benchmarks
319
+ sh 'bundle exec rake spec:benchmark'
320
+
321
+ if RUBY_PLATFORM != 'java'
322
+ # Contrib minitests
323
+ sh 'bundle exec appraisal contrib rake test:grape'
324
+ sh 'bundle exec appraisal contrib rake test:sucker_punch'
325
+ # Contrib specs
326
+ sh 'bundle exec appraisal contrib rake spec:action_pack'
327
+ sh 'bundle exec appraisal contrib rake spec:action_view'
328
+ sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
329
+ sh 'bundle exec appraisal contrib rake spec:active_record'
330
+ sh 'bundle exec appraisal contrib rake spec:active_support'
331
+ sh 'bundle exec appraisal contrib rake spec:aws'
332
+ sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
333
+ sh 'bundle exec appraisal contrib rake spec:dalli'
334
+ sh 'bundle exec appraisal contrib rake spec:delayed_job'
335
+ sh 'bundle exec appraisal contrib rake spec:elasticsearch'
336
+ sh 'bundle exec appraisal contrib rake spec:ethon'
337
+ sh 'bundle exec appraisal contrib rake spec:excon'
338
+ sh 'bundle exec appraisal contrib rake spec:faraday'
339
+ sh 'bundle exec appraisal contrib rake spec:grape'
340
+ sh 'bundle exec appraisal contrib rake spec:graphql'
341
+ sh 'bundle exec appraisal contrib rake spec:grpc'
342
+ sh 'bundle exec appraisal contrib rake spec:http'
343
+ sh 'bundle exec appraisal contrib rake spec:httprb'
344
+ sh 'bundle exec appraisal contrib rake spec:mongodb'
345
+ sh 'bundle exec appraisal contrib rake spec:mysql2'
346
+ sh 'bundle exec appraisal contrib rake spec:presto'
347
+ sh 'bundle exec appraisal contrib rake spec:racecar'
348
+ sh 'bundle exec appraisal contrib rake spec:rack'
349
+ sh 'bundle exec appraisal contrib rake spec:rake'
350
+ sh 'bundle exec appraisal contrib rake spec:redis'
351
+ sh 'bundle exec appraisal contrib rake spec:resque'
352
+ sh 'bundle exec appraisal contrib rake spec:rest_client'
353
+ sh 'bundle exec appraisal contrib rake spec:sequel'
354
+ sh 'bundle exec appraisal contrib rake spec:shoryuken'
355
+ sh 'bundle exec appraisal contrib rake spec:sidekiq'
356
+ sh 'bundle exec appraisal contrib rake spec:sinatra'
357
+ sh 'bundle exec appraisal contrib rake spec:sucker_punch'
358
+ sh 'bundle exec appraisal contrib rake spec:suite'
359
+ # Rails minitests
360
+ sh 'bundle exec appraisal rails30-postgres rake test:rails'
361
+ sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
362
+ sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
363
+ sh 'bundle exec appraisal rails32-postgres rake test:rails'
364
+ sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
365
+ sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
366
+ sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
367
+ sh 'bundle exec appraisal rails4-postgres rake test:rails'
368
+ sh 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
369
+ sh 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
370
+ sh 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
371
+ sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
372
+ sh 'bundle exec appraisal rails5-postgres rake test:rails'
373
+ sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
374
+ sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
375
+ sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
376
+ sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
377
+ # Rails specs
378
+ sh 'bundle exec appraisal rails30-postgres rake spec:rails'
379
+ sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
380
+ sh 'bundle exec appraisal rails32-postgres rake spec:rails'
381
+ sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
382
+ sh 'bundle exec appraisal rails4-postgres rake spec:rails'
383
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
384
+ sh 'bundle exec appraisal rails5-postgres rake spec:rails'
385
+ end
386
+ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
387
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
388
+ # Main library
389
+ sh 'bundle exec rake test:main'
390
+ sh 'bundle exec rake spec:main'
391
+ sh 'bundle exec rake spec:contrib'
392
+ sh 'bundle exec rake spec:opentracer'
393
+ # Benchmarks
394
+ sh 'bundle exec rake spec:benchmark'
395
+
396
+ if RUBY_PLATFORM != 'java'
397
+ # Contrib minitests
398
+ sh 'bundle exec appraisal contrib rake test:grape'
399
+ sh 'bundle exec appraisal contrib rake test:sucker_punch'
400
+ # Contrib specs
401
+ sh 'bundle exec appraisal contrib rake spec:action_pack'
402
+ sh 'bundle exec appraisal contrib rake spec:action_view'
403
+ sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
404
+ sh 'bundle exec appraisal contrib rake spec:active_record'
405
+ sh 'bundle exec appraisal contrib rake spec:active_support'
406
+ sh 'bundle exec appraisal contrib rake spec:aws'
407
+ sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
408
+ sh 'bundle exec appraisal contrib rake spec:dalli'
409
+ sh 'bundle exec appraisal contrib rake spec:delayed_job'
410
+ sh 'bundle exec appraisal contrib rake spec:elasticsearch'
411
+ sh 'bundle exec appraisal contrib rake spec:ethon'
412
+ sh 'bundle exec appraisal contrib rake spec:excon'
413
+ sh 'bundle exec appraisal contrib rake spec:faraday'
414
+ sh 'bundle exec appraisal contrib rake spec:grape'
415
+ sh 'bundle exec appraisal contrib rake spec:graphql'
416
+ sh 'bundle exec appraisal contrib rake spec:grpc'
417
+ sh 'bundle exec appraisal contrib rake spec:http'
418
+ sh 'bundle exec appraisal contrib rake spec:httprb'
419
+ sh 'bundle exec appraisal contrib rake spec:mongodb'
420
+ sh 'bundle exec appraisal contrib rake spec:mysql2'
421
+ sh 'bundle exec appraisal contrib rake spec:presto'
422
+ sh 'bundle exec appraisal contrib rake spec:racecar'
423
+ sh 'bundle exec appraisal contrib rake spec:rack'
424
+ sh 'bundle exec appraisal contrib rake spec:rake'
425
+ sh 'bundle exec appraisal contrib rake spec:redis'
426
+ sh 'bundle exec appraisal contrib rake spec:resque'
427
+ sh 'bundle exec appraisal contrib rake spec:rest_client'
428
+ sh 'bundle exec appraisal contrib rake spec:sequel'
429
+ sh 'bundle exec appraisal contrib rake spec:shoryuken'
430
+ sh 'bundle exec appraisal contrib rake spec:sidekiq'
431
+ sh 'bundle exec appraisal contrib rake spec:sinatra'
432
+ sh 'bundle exec appraisal contrib rake spec:sucker_punch'
433
+ sh 'bundle exec appraisal contrib rake spec:suite'
434
+ # Contrib specs with old gem versions
435
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
436
+ # Rails minitests
437
+ sh 'bundle exec appraisal rails30-postgres rake test:rails'
438
+ sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
439
+ sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
440
+ sh 'bundle exec appraisal rails32-postgres rake test:rails'
441
+ sh 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
442
+ sh 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
443
+ sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
444
+ sh 'bundle exec appraisal rails4-postgres rake test:rails'
445
+ sh 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
446
+ sh 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
447
+ sh 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
448
+ sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
449
+ sh 'bundle exec appraisal rails5-postgres rake test:rails'
450
+ sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
451
+ sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
452
+ sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
453
+ sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
454
+ # Rails specs
455
+ sh 'bundle exec appraisal rails30-postgres rake spec:rails'
456
+ sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
457
+ sh 'bundle exec appraisal rails32-postgres rake spec:rails'
458
+ sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
459
+ sh 'bundle exec appraisal rails4-postgres rake spec:rails'
460
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
461
+ sh 'bundle exec appraisal rails5-postgres rake spec:rails'
462
+ end
463
+ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
464
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
465
+ # Main library
466
+ sh 'bundle exec rake test:main'
467
+ sh 'bundle exec rake spec:main'
468
+ sh 'bundle exec rake spec:contrib'
469
+ sh 'bundle exec rake spec:opentracer'
470
+ sh 'bundle exec rake spec:opentelemetry'
471
+ # Benchmarks
472
+ sh 'bundle exec rake spec:benchmark'
473
+
474
+ if RUBY_PLATFORM != 'java'
475
+ # Benchmarks
476
+ sh 'bundle exec rake benchmark'
477
+ # Contrib minitests
478
+ sh 'bundle exec appraisal contrib rake test:grape'
479
+ sh 'bundle exec appraisal contrib rake test:sucker_punch'
480
+ # Contrib specs
481
+ sh 'bundle exec appraisal contrib rake spec:action_pack'
482
+ sh 'bundle exec appraisal contrib rake spec:action_view'
483
+ sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
484
+ sh 'bundle exec appraisal contrib rake spec:active_record'
485
+ sh 'bundle exec appraisal contrib rake spec:active_support'
486
+ sh 'bundle exec appraisal contrib rake spec:aws'
487
+ sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
488
+ sh 'bundle exec appraisal contrib rake spec:dalli'
489
+ sh 'bundle exec appraisal contrib rake spec:delayed_job'
490
+ sh 'bundle exec appraisal contrib rake spec:elasticsearch'
491
+ sh 'bundle exec appraisal contrib rake spec:ethon'
492
+ sh 'bundle exec appraisal contrib rake spec:excon'
493
+ sh 'bundle exec appraisal contrib rake spec:faraday'
494
+ sh 'bundle exec appraisal contrib rake spec:grape'
495
+ sh 'bundle exec appraisal contrib rake spec:graphql'
496
+ sh 'bundle exec appraisal contrib rake spec:grpc'
497
+ sh 'bundle exec appraisal contrib rake spec:http'
498
+ sh 'bundle exec appraisal contrib rake spec:httprb'
499
+ sh 'bundle exec appraisal contrib rake spec:mongodb'
500
+ sh 'bundle exec appraisal contrib rake spec:mysql2'
501
+ sh 'bundle exec appraisal contrib rake spec:presto'
502
+ sh 'bundle exec appraisal contrib rake spec:racecar'
503
+ sh 'bundle exec appraisal contrib rake spec:rack'
504
+ sh 'bundle exec appraisal contrib rake spec:rake'
505
+ sh 'bundle exec appraisal contrib rake spec:redis'
506
+ sh 'bundle exec appraisal contrib rake spec:resque'
507
+ sh 'bundle exec appraisal contrib rake spec:rest_client'
508
+ sh 'bundle exec appraisal contrib rake spec:sequel'
509
+ sh 'bundle exec appraisal contrib rake spec:shoryuken'
510
+ sh 'bundle exec appraisal contrib rake spec:sidekiq'
511
+ sh 'bundle exec appraisal contrib rake spec:sinatra'
512
+ sh 'bundle exec appraisal contrib rake spec:sucker_punch'
513
+ sh 'bundle exec appraisal contrib rake spec:suite'
514
+ # Contrib specs with old gem versions
515
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
516
+ # Rails minitests
517
+ # We only test Rails 5+ because older versions require Bundler < 2.0
518
+ sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
519
+ sh 'bundle exec appraisal rails5-postgres rake test:rails'
520
+ sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
521
+ sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
522
+ sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
523
+ sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
524
+ # Rails specs
525
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
526
+ sh 'bundle exec appraisal rails5-postgres rake spec:rails'
527
+ end
528
+ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
529
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
530
+ # Main library
531
+ sh 'bundle exec rake test:main'
532
+ sh 'bundle exec rake spec:main'
533
+ sh 'bundle exec rake spec:contrib'
534
+ sh 'bundle exec rake spec:opentracer'
535
+ sh 'bundle exec rake spec:opentelemetry'
536
+ # Benchmarks
537
+ sh 'bundle exec rake spec:benchmark'
538
+
539
+ if RUBY_PLATFORM != 'java'
540
+ # Benchmarks
541
+ sh 'bundle exec rake benchmark'
542
+ # Contrib minitests
543
+ sh 'bundle exec appraisal contrib rake test:grape'
544
+ sh 'bundle exec appraisal contrib rake test:sucker_punch'
545
+ # Contrib specs
546
+ sh 'bundle exec appraisal contrib rake spec:action_pack'
547
+ sh 'bundle exec appraisal contrib rake spec:action_view'
548
+ sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
549
+ sh 'bundle exec appraisal contrib rake spec:active_record'
550
+ sh 'bundle exec appraisal contrib rake spec:active_support'
551
+ sh 'bundle exec appraisal contrib rake spec:aws'
552
+ sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
553
+ sh 'bundle exec appraisal contrib rake spec:dalli'
554
+ sh 'bundle exec appraisal contrib rake spec:delayed_job'
555
+ sh 'bundle exec appraisal contrib rake spec:elasticsearch'
556
+ sh 'bundle exec appraisal contrib rake spec:ethon'
557
+ sh 'bundle exec appraisal contrib rake spec:excon'
558
+ sh 'bundle exec appraisal contrib rake spec:faraday'
559
+ sh 'bundle exec appraisal contrib rake spec:grape'
560
+ sh 'bundle exec appraisal contrib rake spec:graphql'
561
+ sh 'bundle exec appraisal contrib rake spec:grpc'
562
+ sh 'bundle exec appraisal contrib rake spec:http'
563
+ sh 'bundle exec appraisal contrib rake spec:httprb'
564
+ sh 'bundle exec appraisal contrib rake spec:mongodb'
565
+ sh 'bundle exec appraisal contrib rake spec:mysql2'
566
+ sh 'bundle exec appraisal contrib rake spec:presto'
567
+ sh 'bundle exec appraisal contrib rake spec:racecar'
568
+ sh 'bundle exec appraisal contrib rake spec:rack'
569
+ sh 'bundle exec appraisal contrib rake spec:rake'
570
+ sh 'bundle exec appraisal contrib rake spec:redis'
571
+ sh 'bundle exec appraisal contrib rake spec:resque'
572
+ sh 'bundle exec appraisal contrib rake spec:rest_client'
573
+ sh 'bundle exec appraisal contrib rake spec:sequel'
574
+ sh 'bundle exec appraisal contrib rake spec:shoryuken'
575
+ sh 'bundle exec appraisal contrib rake spec:sidekiq'
576
+ sh 'bundle exec appraisal contrib rake spec:sinatra'
577
+ sh 'bundle exec appraisal contrib rake spec:sucker_punch'
578
+ sh 'bundle exec appraisal contrib rake spec:suite'
579
+ # Contrib specs with old gem versions
580
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
581
+ # Rails minitests
582
+ # We only test Rails 5+ because older versions require Bundler < 2.0
583
+ sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
584
+ sh 'bundle exec appraisal rails5-postgres rake test:rails'
585
+ sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
586
+ sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
587
+ sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
588
+ sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
589
+ sh 'bundle exec appraisal rails6-mysql2 rake test:rails'
590
+ sh 'bundle exec appraisal rails6-postgres rake test:rails'
591
+ sh 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
592
+ sh 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
593
+ sh 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
594
+ sh 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
595
+ # Rails specs
596
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
597
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
598
+ sh 'bundle exec appraisal rails5-postgres rake spec:rails'
599
+ # sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
600
+ sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
601
+ sh 'bundle exec appraisal rails6-postgres rake spec:rails'
602
+ end
603
+ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
604
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
605
+ # Main library
606
+ sh 'bundle exec rake test:main'
607
+ sh 'bundle exec rake spec:main'
608
+ sh 'bundle exec rake spec:contrib'
609
+ sh 'bundle exec rake spec:opentracer'
610
+ sh 'bundle exec rake spec:opentelemetry'
611
+ # Benchmarks
612
+ sh 'bundle exec rake spec:benchmark'
613
+
614
+ if RUBY_PLATFORM != 'java'
615
+ # Benchmarks
616
+ sh 'bundle exec rake benchmark'
617
+ # Contrib minitests
618
+ sh 'bundle exec appraisal contrib rake test:grape'
619
+ sh 'bundle exec appraisal contrib rake test:sucker_punch'
620
+ # Contrib specs
621
+ sh 'bundle exec appraisal contrib rake spec:action_pack'
622
+ sh 'bundle exec appraisal contrib rake spec:action_view'
623
+ sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
624
+ sh 'bundle exec appraisal contrib rake spec:active_record'
625
+ sh 'bundle exec appraisal contrib rake spec:active_support'
626
+ sh 'bundle exec appraisal contrib rake spec:aws'
627
+ sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
628
+ sh 'bundle exec appraisal contrib rake spec:dalli'
629
+ sh 'bundle exec appraisal contrib rake spec:delayed_job'
630
+ sh 'bundle exec appraisal contrib rake spec:elasticsearch'
631
+ sh 'bundle exec appraisal contrib rake spec:ethon'
632
+ sh 'bundle exec appraisal contrib rake spec:excon'
633
+ sh 'bundle exec appraisal contrib rake spec:faraday'
634
+ sh 'bundle exec appraisal contrib rake spec:grape'
635
+ sh 'bundle exec appraisal contrib rake spec:graphql'
636
+ sh 'bundle exec appraisal contrib rake spec:grpc'
637
+ sh 'bundle exec appraisal contrib rake spec:http'
638
+ sh 'bundle exec appraisal contrib rake spec:httprb'
639
+ sh 'bundle exec appraisal contrib rake spec:mongodb'
640
+ sh 'bundle exec appraisal contrib rake spec:mysql2'
641
+ sh 'bundle exec appraisal contrib rake spec:presto'
642
+ sh 'bundle exec appraisal contrib rake spec:racecar'
643
+ sh 'bundle exec appraisal contrib rake spec:rack'
644
+ sh 'bundle exec appraisal contrib rake spec:rake'
645
+ sh 'bundle exec appraisal contrib rake spec:redis'
646
+ sh 'bundle exec appraisal contrib rake spec:resque'
647
+ sh 'bundle exec appraisal contrib rake spec:rest_client'
648
+ sh 'bundle exec appraisal contrib rake spec:sequel'
649
+ sh 'bundle exec appraisal contrib rake spec:shoryuken'
650
+ sh 'bundle exec appraisal contrib rake spec:sidekiq'
651
+ sh 'bundle exec appraisal contrib rake spec:sinatra'
652
+ sh 'bundle exec appraisal contrib rake spec:sucker_punch'
653
+ sh 'bundle exec appraisal contrib rake spec:suite'
654
+ # Contrib specs with old gem versions
655
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
656
+ # Rails minitests
657
+ # We only test Rails 5+ because older versions require Bundler < 2.0
658
+ sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
659
+ sh 'bundle exec appraisal rails5-postgres rake test:rails'
660
+ sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
661
+ sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
662
+ sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
663
+ sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
664
+ sh 'bundle exec appraisal rails6-mysql2 rake test:rails'
665
+ sh 'bundle exec appraisal rails6-postgres rake test:rails'
666
+ sh 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
667
+ sh 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
668
+ sh 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
669
+ sh 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
670
+ # Rails specs
671
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
672
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
673
+ sh 'bundle exec appraisal rails5-postgres rake spec:rails'
674
+ # sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
675
+ sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
676
+ sh 'bundle exec appraisal rails6-postgres rake spec:rails'
677
+ end
678
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
679
+ # Main library
680
+ sh 'bundle exec rake test:main'
681
+ sh 'bundle exec rake spec:main'
682
+ sh 'bundle exec rake spec:contrib'
683
+ sh 'bundle exec rake spec:opentracer'
684
+ sh 'bundle exec rake spec:opentelemetry'
685
+ # Benchmarks
686
+ sh 'bundle exec rake spec:benchmark'
687
+
688
+ if RUBY_PLATFORM != 'java'
689
+ # Benchmarks
690
+ sh 'bundle exec rake benchmark'
691
+ # Contrib minitests
692
+ sh 'bundle exec appraisal contrib rake test:grape'
693
+ sh 'bundle exec appraisal contrib rake test:sucker_punch'
694
+ # Contrib specs
695
+ sh 'bundle exec appraisal contrib rake spec:action_pack'
696
+ sh 'bundle exec appraisal contrib rake spec:action_view'
697
+ sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
698
+ sh 'bundle exec appraisal contrib rake spec:active_record'
699
+ sh 'bundle exec appraisal contrib rake spec:active_support'
700
+ sh 'bundle exec appraisal contrib rake spec:aws'
701
+ sh 'bundle exec appraisal contrib rake spec:concurrent_ruby'
702
+ sh 'bundle exec appraisal contrib rake spec:dalli'
703
+ sh 'bundle exec appraisal contrib rake spec:delayed_job'
704
+ sh 'bundle exec appraisal contrib rake spec:elasticsearch'
705
+ sh 'bundle exec appraisal contrib rake spec:ethon'
706
+ sh 'bundle exec appraisal contrib rake spec:excon'
707
+ sh 'bundle exec appraisal contrib rake spec:faraday'
708
+ sh 'bundle exec appraisal contrib rake spec:grape'
709
+ sh 'bundle exec appraisal contrib rake spec:graphql'
710
+ sh 'bundle exec appraisal contrib rake spec:grpc'
711
+ sh 'bundle exec appraisal contrib rake spec:http'
712
+ sh 'bundle exec appraisal contrib rake spec:httprb'
713
+ sh 'bundle exec appraisal contrib rake spec:mongodb'
714
+ sh 'bundle exec appraisal contrib rake spec:mysql2'
715
+ sh 'bundle exec appraisal contrib rake spec:presto'
716
+ sh 'bundle exec appraisal contrib rake spec:racecar'
717
+ sh 'bundle exec appraisal contrib rake spec:rack'
718
+ sh 'bundle exec appraisal contrib rake spec:rake'
719
+ sh 'bundle exec appraisal contrib rake spec:redis'
720
+ sh 'bundle exec appraisal contrib rake spec:resque'
721
+ sh 'bundle exec appraisal contrib rake spec:rest_client'
722
+ sh 'bundle exec appraisal contrib rake spec:sequel'
723
+ sh 'bundle exec appraisal contrib rake spec:shoryuken'
724
+ sh 'bundle exec appraisal contrib rake spec:sidekiq'
725
+ sh 'bundle exec appraisal contrib rake spec:sinatra'
726
+ sh 'bundle exec appraisal contrib rake spec:sucker_punch'
727
+ sh 'bundle exec appraisal contrib rake spec:suite'
728
+ # Contrib specs with old gem versions
729
+ sh 'bundle exec appraisal contrib-old rake spec:faraday'
730
+ # Rails minitests
731
+ # We only test Rails 5+ because older versions require Bundler < 2.0
732
+ sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
733
+ sh 'bundle exec appraisal rails5-postgres rake test:rails'
734
+ sh 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
735
+ sh 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
736
+ sh 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
737
+ sh 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
738
+ sh 'bundle exec appraisal rails6-mysql2 rake test:rails'
739
+ sh 'bundle exec appraisal rails6-postgres rake test:rails'
740
+ sh 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
741
+ sh 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
742
+ sh 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
743
+ sh 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
744
+ # Rails specs
745
+ sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
746
+ sh 'bundle exec appraisal rails5-postgres rake spec:rails'
747
+ sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
748
+ sh 'bundle exec appraisal rails6-postgres rake spec:rails'
749
+ end
750
+ end
751
+ end
752
+
753
+ task default: :test