ddtrace 0.13.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +598 -381
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +6 -2
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +6 -2
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +6 -2
  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.3.7 → Dockerfile-2.5.6} +2 -2
  9. data/.circleci/images/primary/{Dockerfile-2.4.4 → Dockerfile-2.6.4} +2 -2
  10. data/.circleci/images/primary/Dockerfile-2.7.0 +73 -0
  11. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  12. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +78 -0
  13. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +73 -0
  14. data/.circleci/images/primary/{Dockerfile-1.9.3 → Dockerfile-truffleruby-21.0.0} +6 -2
  15. data/.env +5 -2
  16. data/.github/CODEOWNERS +1 -0
  17. data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
  18. data/.github/workflows/create-next-milestone.yml +20 -0
  19. data/.gitignore +2 -0
  20. data/.gitlab-ci.yml +27 -0
  21. data/.rubocop.yml +270 -6
  22. data/.rubocop_todo.yml +397 -0
  23. data/.simplecov +47 -0
  24. data/Appraisals +933 -127
  25. data/CHANGELOG.md +2106 -97
  26. data/CONTRIBUTING.md +85 -0
  27. data/Gemfile +55 -2
  28. data/LICENSE +4 -22
  29. data/LICENSE-3rdparty.csv +2 -0
  30. data/LICENSE.Apache +200 -0
  31. data/LICENSE.BSD3 +24 -0
  32. data/NOTICE +4 -0
  33. data/README.md +5 -34
  34. data/Rakefile +825 -351
  35. data/benchmarks/postgres_database.yml +9 -0
  36. data/benchmarks/sidekiq_test.rb +154 -0
  37. data/ddtrace.gemspec +8 -17
  38. data/docker-compose.yml +260 -47
  39. data/docs/DevelopmentGuide.md +249 -0
  40. data/docs/GettingStarted.md +1435 -290
  41. data/integration/README.md +68 -0
  42. data/integration/apps/rack/.dockerignore +1 -0
  43. data/integration/apps/rack/.envrc.sample +1 -0
  44. data/integration/apps/rack/.gitignore +4 -0
  45. data/integration/apps/rack/.rspec +1 -0
  46. data/integration/apps/rack/Dockerfile +25 -0
  47. data/integration/apps/rack/Dockerfile-ci +11 -0
  48. data/integration/apps/rack/Gemfile +24 -0
  49. data/integration/apps/rack/README.md +93 -0
  50. data/integration/apps/rack/app/acme.rb +80 -0
  51. data/integration/apps/rack/app/datadog.rb +17 -0
  52. data/integration/apps/rack/bin/run +22 -0
  53. data/integration/apps/rack/bin/setup +17 -0
  54. data/integration/apps/rack/bin/test +24 -0
  55. data/integration/apps/rack/config.ru +6 -0
  56. data/integration/apps/rack/config/puma.rb +14 -0
  57. data/integration/apps/rack/config/unicorn.rb +23 -0
  58. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  59. data/integration/apps/rack/docker-compose.yml +78 -0
  60. data/integration/apps/rack/script/build-images +38 -0
  61. data/integration/apps/rack/script/ci +50 -0
  62. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  63. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  64. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  65. data/integration/apps/rails-five/.dockerignore +1 -0
  66. data/integration/apps/rails-five/.env +3 -0
  67. data/integration/apps/rails-five/.envrc.sample +1 -0
  68. data/integration/apps/rails-five/.gitignore +30 -0
  69. data/integration/apps/rails-five/Dockerfile +25 -0
  70. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  71. data/integration/apps/rails-five/Gemfile +104 -0
  72. data/integration/apps/rails-five/README.md +94 -0
  73. data/integration/apps/rails-five/Rakefile +6 -0
  74. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  75. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  76. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  77. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  78. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  79. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  80. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  81. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  82. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  83. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  84. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  85. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  86. data/integration/apps/rails-five/app/models/test.rb +2 -0
  87. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  88. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  89. data/integration/apps/rails-five/bin/bundle +3 -0
  90. data/integration/apps/rails-five/bin/rails +9 -0
  91. data/integration/apps/rails-five/bin/rake +9 -0
  92. data/integration/apps/rails-five/bin/run +24 -0
  93. data/integration/apps/rails-five/bin/setup +27 -0
  94. data/integration/apps/rails-five/bin/spring +17 -0
  95. data/integration/apps/rails-five/bin/test +21 -0
  96. data/integration/apps/rails-five/bin/update +28 -0
  97. data/integration/apps/rails-five/config.ru +5 -0
  98. data/integration/apps/rails-five/config/application.rb +97 -0
  99. data/integration/apps/rails-five/config/boot.rb +4 -0
  100. data/integration/apps/rails-five/config/cable.yml +10 -0
  101. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  102. data/integration/apps/rails-five/config/database.yml +28 -0
  103. data/integration/apps/rails-five/config/environment.rb +5 -0
  104. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  105. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  106. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  107. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  108. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  109. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  110. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  111. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  112. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  113. data/integration/apps/rails-five/config/puma.rb +24 -0
  114. data/integration/apps/rails-five/config/routes.rb +11 -0
  115. data/integration/apps/rails-five/config/spring.rb +6 -0
  116. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  117. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  118. data/integration/apps/rails-five/db/schema.rb +23 -0
  119. data/integration/apps/rails-five/db/seeds.rb +7 -0
  120. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  121. data/integration/apps/rails-five/docker-compose.yml +100 -0
  122. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  123. data/integration/apps/rails-five/log/.keep +0 -0
  124. data/integration/apps/rails-five/public/robots.txt +1 -0
  125. data/integration/apps/rails-five/script/build-images +35 -0
  126. data/integration/apps/rails-five/script/ci +50 -0
  127. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  128. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  129. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  130. data/integration/apps/rails-five/storage/.keep +0 -0
  131. data/integration/apps/rails-five/tmp/.keep +0 -0
  132. data/integration/apps/rails-five/vendor/.keep +0 -0
  133. data/integration/apps/ruby/.dockerignore +1 -0
  134. data/integration/apps/ruby/.envrc.sample +1 -0
  135. data/integration/apps/ruby/.gitignore +2 -0
  136. data/integration/apps/ruby/Dockerfile +25 -0
  137. data/integration/apps/ruby/Dockerfile-ci +11 -0
  138. data/integration/apps/ruby/Gemfile +11 -0
  139. data/integration/apps/ruby/README.md +70 -0
  140. data/integration/apps/ruby/agent.yaml +3 -0
  141. data/integration/apps/ruby/app/datadog.rb +13 -0
  142. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  143. data/integration/apps/ruby/bin/run +20 -0
  144. data/integration/apps/ruby/bin/setup +17 -0
  145. data/integration/apps/ruby/bin/test +21 -0
  146. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  147. data/integration/apps/ruby/docker-compose.yml +63 -0
  148. data/integration/apps/ruby/script/build-images +38 -0
  149. data/integration/apps/ruby/script/ci +50 -0
  150. data/integration/images/agent/Dockerfile +2 -0
  151. data/integration/images/agent/agent.yaml +3 -0
  152. data/integration/images/include/datadog/analyzer.rb +71 -0
  153. data/integration/images/include/datadog/demo_env.rb +101 -0
  154. data/integration/images/include/http-health-check +33 -0
  155. data/integration/images/ruby/2.0/Dockerfile +54 -0
  156. data/integration/images/ruby/2.1/Dockerfile +54 -0
  157. data/integration/images/ruby/2.2/Dockerfile +54 -0
  158. data/integration/images/ruby/2.3/Dockerfile +70 -0
  159. data/integration/images/ruby/2.4/Dockerfile +54 -0
  160. data/integration/images/ruby/2.5/Dockerfile +54 -0
  161. data/integration/images/ruby/2.6/Dockerfile +54 -0
  162. data/integration/images/ruby/2.7/Dockerfile +54 -0
  163. data/integration/images/ruby/3.0/Dockerfile +54 -0
  164. data/integration/images/wrk/Dockerfile +33 -0
  165. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  166. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  167. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  168. data/integration/script/build-images +43 -0
  169. data/lib/ddtrace.rb +65 -62
  170. data/lib/ddtrace/analytics.rb +38 -0
  171. data/lib/ddtrace/auto_instrument.rb +3 -0
  172. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  173. data/lib/ddtrace/buffer.rb +298 -32
  174. data/lib/ddtrace/chunker.rb +34 -0
  175. data/lib/ddtrace/configuration.rb +151 -26
  176. data/lib/ddtrace/configuration/base.rb +84 -0
  177. data/lib/ddtrace/configuration/components.rb +151 -0
  178. data/lib/ddtrace/configuration/{resolver.rb → dependency_resolver.rb} +2 -2
  179. data/lib/ddtrace/configuration/option.rb +64 -0
  180. data/lib/ddtrace/configuration/option_definition.rb +121 -0
  181. data/lib/ddtrace/configuration/option_definition_set.rb +18 -0
  182. data/lib/ddtrace/configuration/option_set.rb +6 -0
  183. data/lib/ddtrace/configuration/options.rb +111 -0
  184. data/lib/ddtrace/configuration/pin_setup.rb +4 -3
  185. data/lib/ddtrace/configuration/settings.rb +299 -0
  186. data/lib/ddtrace/context.rb +133 -66
  187. data/lib/ddtrace/context_flush.rb +51 -114
  188. data/lib/ddtrace/context_provider.rb +61 -0
  189. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +30 -0
  190. data/lib/ddtrace/contrib/action_cable/event.rb +66 -0
  191. data/lib/ddtrace/contrib/action_cable/events.rb +33 -0
  192. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +49 -0
  193. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +55 -0
  194. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +50 -0
  195. data/lib/ddtrace/contrib/action_cable/ext.rb +26 -0
  196. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +31 -0
  197. data/lib/ddtrace/contrib/action_cable/integration.rb +45 -0
  198. data/lib/ddtrace/contrib/action_cable/patcher.rb +27 -0
  199. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +146 -0
  200. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +25 -0
  201. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +32 -0
  202. data/lib/ddtrace/contrib/action_pack/ext.rb +19 -0
  203. data/lib/ddtrace/contrib/action_pack/integration.rb +45 -0
  204. data/lib/ddtrace/contrib/action_pack/patcher.rb +23 -0
  205. data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
  206. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +31 -0
  207. data/lib/ddtrace/contrib/action_view/event.rb +35 -0
  208. data/lib/ddtrace/contrib/action_view/events.rb +30 -0
  209. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +46 -0
  210. data/lib/ddtrace/contrib/action_view/events/render_template.rb +49 -0
  211. data/lib/ddtrace/contrib/action_view/ext.rb +20 -0
  212. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +74 -0
  213. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +167 -0
  214. data/lib/ddtrace/contrib/action_view/integration.rb +52 -0
  215. data/lib/ddtrace/contrib/action_view/patcher.rb +47 -0
  216. data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
  217. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +30 -0
  218. data/lib/ddtrace/contrib/active_model_serializers/event.rb +14 -3
  219. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +2 -2
  220. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +2 -2
  221. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +20 -0
  222. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +40 -0
  223. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +12 -45
  224. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +128 -0
  225. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +35 -0
  226. data/lib/ddtrace/contrib/active_record/event.rb +1 -1
  227. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +17 -8
  228. data/lib/ddtrace/contrib/active_record/events/sql.rb +32 -12
  229. data/lib/ddtrace/contrib/active_record/ext.rb +24 -0
  230. data/lib/ddtrace/contrib/active_record/integration.rb +53 -0
  231. data/lib/ddtrace/contrib/active_record/patcher.rb +5 -35
  232. data/lib/ddtrace/contrib/active_record/utils.rb +85 -31
  233. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +258 -0
  234. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +69 -0
  235. data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
  236. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +30 -0
  237. data/lib/ddtrace/contrib/active_support/ext.rb +27 -0
  238. data/lib/ddtrace/contrib/active_support/integration.rb +46 -0
  239. data/lib/ddtrace/contrib/active_support/notifications/event.rb +15 -2
  240. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +3 -2
  241. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +20 -12
  242. data/lib/ddtrace/contrib/active_support/patcher.rb +23 -0
  243. data/lib/ddtrace/contrib/analytics.rb +24 -0
  244. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  245. data/lib/ddtrace/contrib/aws/configuration/settings.rb +30 -0
  246. data/lib/ddtrace/contrib/aws/ext.rb +23 -0
  247. data/lib/ddtrace/contrib/aws/instrumentation.rb +37 -19
  248. data/lib/ddtrace/contrib/aws/integration.rb +42 -0
  249. data/lib/ddtrace/contrib/aws/patcher.rb +30 -40
  250. data/lib/ddtrace/contrib/aws/services.rb +3 -0
  251. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +20 -0
  252. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +41 -0
  253. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +12 -0
  254. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +23 -0
  255. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +38 -0
  256. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +28 -0
  257. data/lib/ddtrace/contrib/configurable.rb +102 -0
  258. data/lib/ddtrace/contrib/configuration/resolver.rb +81 -0
  259. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +39 -0
  260. data/lib/ddtrace/contrib/configuration/settings.rb +55 -0
  261. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +28 -0
  262. data/lib/ddtrace/contrib/cucumber/ext.rb +17 -0
  263. data/lib/ddtrace/contrib/cucumber/formatter.rb +98 -0
  264. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
  265. data/lib/ddtrace/contrib/cucumber/integration.rb +45 -0
  266. data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
  267. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +30 -0
  268. data/lib/ddtrace/contrib/dalli/ext.rb +20 -0
  269. data/lib/ddtrace/contrib/dalli/instrumentation.rb +36 -17
  270. data/lib/ddtrace/contrib/dalli/integration.rb +38 -0
  271. data/lib/ddtrace/contrib/dalli/patcher.rb +13 -41
  272. data/lib/ddtrace/contrib/dalli/quantize.rb +4 -4
  273. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +32 -0
  274. data/lib/ddtrace/contrib/delayed_job/ext.rb +23 -0
  275. data/lib/ddtrace/contrib/delayed_job/integration.rb +38 -0
  276. data/lib/ddtrace/contrib/delayed_job/patcher.rb +28 -0
  277. data/lib/ddtrace/contrib/delayed_job/plugin.rb +84 -0
  278. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +31 -0
  279. data/lib/ddtrace/contrib/elasticsearch/ext.rb +22 -0
  280. data/lib/ddtrace/contrib/elasticsearch/integration.rb +39 -0
  281. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +49 -50
  282. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  283. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +32 -0
  284. data/lib/ddtrace/contrib/ethon/easy_patch.rb +151 -0
  285. data/lib/ddtrace/contrib/ethon/ext.rb +19 -0
  286. data/lib/ddtrace/contrib/ethon/integration.rb +43 -0
  287. data/lib/ddtrace/contrib/ethon/multi_patch.rb +84 -0
  288. data/lib/ddtrace/contrib/ethon/patcher.rb +25 -0
  289. data/lib/ddtrace/contrib/excon/configuration/settings.rb +33 -0
  290. data/lib/ddtrace/contrib/excon/ext.rb +17 -0
  291. data/lib/ddtrace/contrib/excon/integration.rb +43 -0
  292. data/lib/ddtrace/contrib/excon/middleware.rb +47 -23
  293. data/lib/ddtrace/contrib/excon/patcher.rb +7 -30
  294. data/lib/ddtrace/contrib/extensions.rb +143 -0
  295. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +38 -0
  296. data/lib/ddtrace/contrib/faraday/connection.rb +18 -0
  297. data/lib/ddtrace/contrib/faraday/ext.rb +17 -0
  298. data/lib/ddtrace/contrib/faraday/integration.rb +43 -0
  299. data/lib/ddtrace/contrib/faraday/middleware.rb +46 -29
  300. data/lib/ddtrace/contrib/faraday/patcher.rb +36 -56
  301. data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
  302. data/lib/ddtrace/contrib/grape/configuration/settings.rb +38 -0
  303. data/lib/ddtrace/contrib/grape/endpoint.rb +192 -120
  304. data/lib/ddtrace/contrib/grape/ext.rb +23 -0
  305. data/lib/ddtrace/contrib/grape/instrumentation.rb +33 -0
  306. data/lib/ddtrace/contrib/grape/integration.rb +39 -0
  307. data/lib/ddtrace/contrib/grape/patcher.rb +15 -59
  308. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +32 -0
  309. data/lib/ddtrace/contrib/graphql/ext.rb +16 -0
  310. data/lib/ddtrace/contrib/graphql/integration.rb +39 -0
  311. data/lib/ddtrace/contrib/graphql/patcher.rb +37 -34
  312. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +30 -0
  313. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +36 -27
  314. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +17 -8
  315. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +20 -5
  316. data/lib/ddtrace/contrib/grpc/ext.rb +18 -0
  317. data/lib/ddtrace/contrib/grpc/integration.rb +38 -0
  318. data/lib/ddtrace/contrib/grpc/patcher.rb +8 -38
  319. data/lib/ddtrace/contrib/http/circuit_breaker.rb +37 -0
  320. data/lib/ddtrace/contrib/http/configuration/settings.rb +32 -0
  321. data/lib/ddtrace/contrib/http/ext.rb +17 -0
  322. data/lib/ddtrace/contrib/http/instrumentation.rb +179 -0
  323. data/lib/ddtrace/contrib/http/integration.rb +45 -0
  324. data/lib/ddtrace/contrib/http/patcher.rb +9 -144
  325. data/lib/ddtrace/contrib/http_annotation_helper.rb +10 -0
  326. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  327. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  328. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
  329. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  330. data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
  331. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
  332. data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
  333. data/lib/ddtrace/contrib/httprb/instrumentation.rb +157 -0
  334. data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
  335. data/lib/ddtrace/contrib/httprb/patcher.rb +38 -0
  336. data/lib/ddtrace/contrib/integration.rb +16 -0
  337. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +30 -0
  338. data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
  339. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
  340. data/lib/ddtrace/contrib/kafka/event.rb +51 -0
  341. data/lib/ddtrace/contrib/kafka/events.rb +44 -0
  342. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
  343. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
  344. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
  345. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
  346. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
  347. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
  348. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
  349. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
  350. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
  351. data/lib/ddtrace/contrib/kafka/ext.rb +41 -0
  352. data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
  353. data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
  354. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +33 -0
  355. data/lib/ddtrace/contrib/mongodb/ext.rb +23 -0
  356. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +69 -0
  357. data/lib/ddtrace/contrib/mongodb/integration.rb +38 -0
  358. data/lib/ddtrace/contrib/mongodb/patcher.rb +11 -74
  359. data/lib/ddtrace/contrib/mongodb/subscribers.rb +57 -18
  360. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +30 -0
  361. data/lib/ddtrace/contrib/mysql2/ext.rb +18 -0
  362. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +64 -0
  363. data/lib/ddtrace/contrib/mysql2/integration.rb +38 -0
  364. data/lib/ddtrace/contrib/mysql2/patcher.rb +9 -25
  365. data/lib/ddtrace/contrib/patchable.rb +70 -0
  366. data/lib/ddtrace/contrib/patcher.rb +65 -0
  367. data/lib/ddtrace/contrib/presto/configuration/settings.rb +30 -0
  368. data/lib/ddtrace/contrib/presto/ext.rb +28 -0
  369. data/lib/ddtrace/contrib/presto/instrumentation.rb +110 -0
  370. data/lib/ddtrace/contrib/presto/integration.rb +38 -0
  371. data/lib/ddtrace/contrib/presto/patcher.rb +33 -0
  372. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  373. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  374. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  375. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  376. data/lib/ddtrace/contrib/qless/qless_job.rb +73 -0
  377. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +33 -0
  378. data/lib/ddtrace/contrib/que/configuration/settings.rb +43 -0
  379. data/lib/ddtrace/contrib/que/ext.rb +30 -0
  380. data/lib/ddtrace/contrib/que/integration.rb +42 -0
  381. data/lib/ddtrace/contrib/que/patcher.rb +24 -0
  382. data/lib/ddtrace/contrib/que/tracer.rb +57 -0
  383. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +30 -0
  384. data/lib/ddtrace/contrib/racecar/event.rb +22 -7
  385. data/lib/ddtrace/contrib/racecar/events.rb +2 -0
  386. data/lib/ddtrace/contrib/racecar/events/batch.rb +2 -2
  387. data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
  388. data/lib/ddtrace/contrib/racecar/events/message.rb +2 -2
  389. data/lib/ddtrace/contrib/racecar/ext.rb +25 -0
  390. data/lib/ddtrace/contrib/racecar/integration.rb +39 -0
  391. data/lib/ddtrace/contrib/racecar/patcher.rb +11 -42
  392. data/lib/ddtrace/contrib/rack/configuration/settings.rb +46 -0
  393. data/lib/ddtrace/contrib/rack/ext.rb +21 -0
  394. data/lib/ddtrace/contrib/rack/integration.rb +45 -0
  395. data/lib/ddtrace/contrib/rack/middlewares.rb +105 -54
  396. data/lib/ddtrace/contrib/rack/patcher.rb +65 -49
  397. data/lib/ddtrace/contrib/rack/request_queue.rb +17 -7
  398. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  399. data/lib/ddtrace/contrib/rails/configuration/settings.rb +93 -0
  400. data/lib/ddtrace/contrib/rails/ext.rb +17 -0
  401. data/lib/ddtrace/contrib/rails/framework.rb +82 -33
  402. data/lib/ddtrace/contrib/rails/integration.rb +44 -0
  403. data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
  404. data/lib/ddtrace/contrib/rails/middlewares.rb +8 -2
  405. data/lib/ddtrace/contrib/rails/patcher.rb +88 -34
  406. data/lib/ddtrace/contrib/rails/railtie.rb +5 -9
  407. data/lib/ddtrace/contrib/rails/utils.rb +7 -31
  408. data/lib/ddtrace/contrib/rake/configuration/settings.rb +31 -0
  409. data/lib/ddtrace/contrib/rake/ext.rb +21 -0
  410. data/lib/ddtrace/contrib/rake/instrumentation.rb +33 -13
  411. data/lib/ddtrace/contrib/rake/integration.rb +38 -0
  412. data/lib/ddtrace/contrib/rake/patcher.rb +10 -33
  413. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +45 -0
  414. data/lib/ddtrace/contrib/redis/configuration/settings.rb +35 -0
  415. data/lib/ddtrace/contrib/redis/ext.rb +22 -0
  416. data/lib/ddtrace/contrib/redis/integration.rb +42 -0
  417. data/lib/ddtrace/contrib/redis/patcher.rb +58 -53
  418. data/lib/ddtrace/contrib/redis/quantize.rb +47 -1
  419. data/lib/ddtrace/contrib/redis/tags.rb +33 -7
  420. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  421. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +158 -0
  422. data/lib/ddtrace/contrib/registerable.rb +33 -0
  423. data/lib/ddtrace/contrib/registry.rb +42 -0
  424. data/lib/ddtrace/contrib/resque/configuration/settings.rb +32 -0
  425. data/lib/ddtrace/contrib/resque/ext.rb +17 -0
  426. data/lib/ddtrace/contrib/resque/integration.rb +47 -0
  427. data/lib/ddtrace/contrib/resque/patcher.rb +16 -38
  428. data/lib/ddtrace/contrib/resque/resque_job.rb +61 -20
  429. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +31 -0
  430. data/lib/ddtrace/contrib/rest_client/ext.rb +17 -0
  431. data/lib/ddtrace/contrib/rest_client/integration.rb +38 -0
  432. data/lib/ddtrace/contrib/rest_client/patcher.rb +23 -0
  433. data/lib/ddtrace/contrib/rest_client/request_patch.rb +91 -0
  434. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +28 -0
  435. data/lib/ddtrace/contrib/rspec/example.rb +75 -0
  436. data/lib/ddtrace/contrib/rspec/ext.rb +16 -0
  437. data/lib/ddtrace/contrib/rspec/integration.rb +46 -0
  438. data/lib/ddtrace/contrib/rspec/patcher.rb +23 -0
  439. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +28 -0
  440. data/lib/ddtrace/contrib/sequel/database.rb +9 -4
  441. data/lib/ddtrace/contrib/sequel/dataset.rb +7 -3
  442. data/lib/ddtrace/contrib/sequel/ext.rb +19 -0
  443. data/lib/ddtrace/contrib/sequel/integration.rb +38 -0
  444. data/lib/ddtrace/contrib/sequel/patcher.rb +6 -29
  445. data/lib/ddtrace/contrib/sequel/utils.rb +60 -14
  446. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +30 -0
  447. data/lib/ddtrace/contrib/shoryuken/ext.rb +21 -0
  448. data/lib/ddtrace/contrib/shoryuken/integration.rb +39 -0
  449. data/lib/ddtrace/contrib/shoryuken/patcher.rb +24 -0
  450. data/lib/ddtrace/contrib/shoryuken/tracer.rb +51 -0
  451. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +43 -0
  452. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +37 -0
  453. data/lib/ddtrace/contrib/sidekiq/ext.rb +27 -0
  454. data/lib/ddtrace/contrib/sidekiq/integration.rb +38 -0
  455. data/lib/ddtrace/contrib/sidekiq/patcher.rb +22 -14
  456. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +65 -0
  457. data/lib/ddtrace/contrib/sidekiq/tracing.rb +44 -0
  458. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +39 -0
  459. data/lib/ddtrace/contrib/sinatra/env.rb +27 -9
  460. data/lib/ddtrace/contrib/sinatra/ext.rb +27 -0
  461. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  462. data/lib/ddtrace/contrib/sinatra/integration.rb +38 -0
  463. data/lib/ddtrace/contrib/sinatra/patcher.rb +28 -0
  464. data/lib/ddtrace/contrib/sinatra/tracer.rb +79 -65
  465. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +60 -16
  466. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +33 -0
  467. data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
  468. data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
  469. data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
  470. data/lib/ddtrace/contrib/sneakers/tracer.rb +53 -0
  471. data/lib/ddtrace/contrib/status_code_matcher.rb +69 -0
  472. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +30 -0
  473. data/lib/ddtrace/contrib/sucker_punch/ext.rb +21 -0
  474. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +29 -5
  475. data/lib/ddtrace/contrib/sucker_punch/integration.rb +38 -0
  476. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +21 -33
  477. data/lib/ddtrace/correlation.rb +39 -0
  478. data/lib/ddtrace/diagnostics/environment_logger.rb +279 -0
  479. data/lib/ddtrace/diagnostics/health.rb +33 -0
  480. data/lib/ddtrace/distributed_tracing/headers/b3.rb +44 -0
  481. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +56 -0
  482. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +42 -0
  483. data/lib/ddtrace/distributed_tracing/headers/headers.rb +71 -0
  484. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +43 -0
  485. data/lib/ddtrace/encoding.rb +36 -32
  486. data/lib/ddtrace/environment.rb +41 -0
  487. data/lib/ddtrace/event.rb +52 -0
  488. data/lib/ddtrace/ext/analytics.rb +12 -0
  489. data/lib/ddtrace/ext/app_types.rb +1 -0
  490. data/lib/ddtrace/ext/ci.rb +297 -0
  491. data/lib/ddtrace/ext/correlation.rb +11 -0
  492. data/lib/ddtrace/ext/diagnostics.rb +36 -0
  493. data/lib/ddtrace/ext/distributed.rb +22 -0
  494. data/lib/ddtrace/ext/environment.rb +16 -0
  495. data/lib/ddtrace/ext/forced_tracing.rb +25 -0
  496. data/lib/ddtrace/ext/git.rb +11 -0
  497. data/lib/ddtrace/ext/http.rb +4 -2
  498. data/lib/ddtrace/ext/integration.rb +8 -0
  499. data/lib/ddtrace/ext/manual_tracing.rb +9 -0
  500. data/lib/ddtrace/ext/metrics.rb +15 -0
  501. data/lib/ddtrace/ext/net.rb +2 -0
  502. data/lib/ddtrace/ext/runtime.rb +30 -0
  503. data/lib/ddtrace/ext/sampling.rb +16 -0
  504. data/lib/ddtrace/ext/test.rb +24 -0
  505. data/lib/ddtrace/ext/transport.rb +18 -0
  506. data/lib/ddtrace/forced_tracing.rb +38 -0
  507. data/lib/ddtrace/logger.rb +5 -4
  508. data/lib/ddtrace/metrics.rb +226 -0
  509. data/lib/ddtrace/opentelemetry/extensions.rb +13 -0
  510. data/lib/ddtrace/opentelemetry/span.rb +33 -0
  511. data/lib/ddtrace/opentracer.rb +40 -0
  512. data/lib/ddtrace/opentracer/binary_propagator.rb +24 -0
  513. data/lib/ddtrace/opentracer/carrier.rb +6 -0
  514. data/lib/ddtrace/opentracer/distributed_headers.rb +55 -0
  515. data/lib/ddtrace/opentracer/global_tracer.rb +15 -0
  516. data/lib/ddtrace/opentracer/propagator.rb +22 -0
  517. data/lib/ddtrace/opentracer/rack_propagator.rb +60 -0
  518. data/lib/ddtrace/opentracer/scope.rb +15 -0
  519. data/lib/ddtrace/opentracer/scope_manager.rb +6 -0
  520. data/lib/ddtrace/opentracer/span.rb +94 -0
  521. data/lib/ddtrace/opentracer/span_context.rb +14 -0
  522. data/lib/ddtrace/opentracer/span_context_factory.rb +23 -0
  523. data/lib/ddtrace/opentracer/text_map_propagator.rb +75 -0
  524. data/lib/ddtrace/opentracer/thread_local_scope.rb +31 -0
  525. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +40 -0
  526. data/lib/ddtrace/opentracer/tracer.rb +208 -0
  527. data/lib/ddtrace/patcher.rb +33 -5
  528. data/lib/ddtrace/pin.rb +35 -20
  529. data/lib/ddtrace/pipeline.rb +1 -1
  530. data/lib/ddtrace/pipeline/span_filter.rb +15 -15
  531. data/lib/ddtrace/propagation/grpc_propagator.rb +26 -6
  532. data/lib/ddtrace/propagation/http_propagator.rb +72 -10
  533. data/lib/ddtrace/quantization/http.rb +1 -0
  534. data/lib/ddtrace/runtime/cgroup.rb +44 -0
  535. data/lib/ddtrace/runtime/class_count.rb +17 -0
  536. data/lib/ddtrace/runtime/container.rb +71 -0
  537. data/lib/ddtrace/runtime/gc.rb +16 -0
  538. data/lib/ddtrace/runtime/identity.rb +48 -0
  539. data/lib/ddtrace/runtime/metrics.rb +114 -0
  540. data/lib/ddtrace/runtime/object_space.rb +19 -0
  541. data/lib/ddtrace/runtime/socket.rb +14 -0
  542. data/lib/ddtrace/runtime/thread_count.rb +16 -0
  543. data/lib/ddtrace/sampler.rb +218 -37
  544. data/lib/ddtrace/sampling.rb +2 -0
  545. data/lib/ddtrace/sampling/matcher.rb +57 -0
  546. data/lib/ddtrace/sampling/rate_limiter.rb +176 -0
  547. data/lib/ddtrace/sampling/rule.rb +61 -0
  548. data/lib/ddtrace/sampling/rule_sampler.rb +126 -0
  549. data/lib/ddtrace/span.rb +244 -34
  550. data/lib/ddtrace/sync_writer.rb +47 -16
  551. data/lib/ddtrace/tracer.rb +215 -117
  552. data/lib/ddtrace/transport/http.rb +113 -0
  553. data/lib/ddtrace/transport/http/adapters/net.rb +145 -0
  554. data/lib/ddtrace/transport/http/adapters/registry.rb +25 -0
  555. data/lib/ddtrace/transport/http/adapters/test.rb +83 -0
  556. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +66 -0
  557. data/lib/ddtrace/transport/http/api.rb +46 -0
  558. data/lib/ddtrace/transport/http/api/endpoint.rb +27 -0
  559. data/lib/ddtrace/transport/http/api/fallbacks.rb +22 -0
  560. data/lib/ddtrace/transport/http/api/instance.rb +33 -0
  561. data/lib/ddtrace/transport/http/api/map.rb +14 -0
  562. data/lib/ddtrace/transport/http/api/spec.rb +15 -0
  563. data/lib/ddtrace/transport/http/builder.rb +169 -0
  564. data/lib/ddtrace/transport/http/client.rb +50 -0
  565. data/lib/ddtrace/transport/http/env.rb +56 -0
  566. data/lib/ddtrace/transport/http/response.rb +26 -0
  567. data/lib/ddtrace/transport/http/statistics.rb +43 -0
  568. data/lib/ddtrace/transport/http/traces.rb +142 -0
  569. data/lib/ddtrace/transport/io.rb +26 -0
  570. data/lib/ddtrace/transport/io/client.rb +76 -0
  571. data/lib/ddtrace/transport/io/response.rb +23 -0
  572. data/lib/ddtrace/transport/io/traces.rb +97 -0
  573. data/lib/ddtrace/transport/parcel.rb +13 -0
  574. data/lib/ddtrace/transport/request.rb +13 -0
  575. data/lib/ddtrace/transport/response.rb +60 -0
  576. data/lib/ddtrace/transport/statistics.rb +72 -0
  577. data/lib/ddtrace/transport/traces.rb +205 -0
  578. data/lib/ddtrace/utils.rb +17 -14
  579. data/lib/ddtrace/utils/compression.rb +27 -0
  580. data/lib/ddtrace/utils/database.rb +7 -3
  581. data/lib/ddtrace/utils/forking.rb +52 -0
  582. data/lib/ddtrace/utils/object_set.rb +41 -0
  583. data/lib/ddtrace/utils/only_once.rb +40 -0
  584. data/lib/ddtrace/utils/sequence.rb +17 -0
  585. data/lib/ddtrace/utils/string_table.rb +45 -0
  586. data/lib/ddtrace/utils/time.rb +45 -0
  587. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  588. data/lib/ddtrace/vendor/active_record/connection_specification.rb +301 -0
  589. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  590. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  591. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  592. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  593. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  594. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  595. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  596. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  597. data/lib/ddtrace/version.rb +3 -1
  598. data/lib/ddtrace/worker.rb +20 -0
  599. data/lib/ddtrace/workers.rb +39 -40
  600. data/lib/ddtrace/workers/async.rb +173 -0
  601. data/lib/ddtrace/workers/loop.rb +119 -0
  602. data/lib/ddtrace/workers/polling.rb +49 -0
  603. data/lib/ddtrace/workers/queue.rb +40 -0
  604. data/lib/ddtrace/workers/runtime_metrics.rb +51 -0
  605. data/lib/ddtrace/workers/trace_writer.rb +202 -0
  606. data/lib/ddtrace/writer.rb +121 -57
  607. data/tasks/release_gem.rake +28 -0
  608. metadata +501 -211
  609. data/lib/ddtrace/configurable.rb +0 -83
  610. data/lib/ddtrace/configuration/proxy.rb +0 -25
  611. data/lib/ddtrace/contrib/base.rb +0 -15
  612. data/lib/ddtrace/contrib/mysql2/client.rb +0 -60
  613. data/lib/ddtrace/contrib/rails/action_controller.rb +0 -91
  614. data/lib/ddtrace/contrib/rails/action_controller_patch.rb +0 -77
  615. data/lib/ddtrace/contrib/rails/action_view.rb +0 -19
  616. data/lib/ddtrace/contrib/rails/active_support.rb +0 -65
  617. data/lib/ddtrace/contrib/rails/core_extensions.rb +0 -356
  618. data/lib/ddtrace/contrib/sidekiq/tracer.rb +0 -72
  619. data/lib/ddtrace/ext/cache.rb +0 -8
  620. data/lib/ddtrace/ext/grpc.rb +0 -7
  621. data/lib/ddtrace/ext/mongo.rb +0 -12
  622. data/lib/ddtrace/ext/redis.rb +0 -17
  623. data/lib/ddtrace/monkey.rb +0 -65
  624. data/lib/ddtrace/propagation/distributed_headers.rb +0 -48
  625. data/lib/ddtrace/provider.rb +0 -21
  626. data/lib/ddtrace/registry.rb +0 -42
  627. data/lib/ddtrace/registry/registerable.rb +0 -20
  628. data/lib/ddtrace/transport.rb +0 -212
data/Rakefile CHANGED
@@ -1,139 +1,158 @@
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'
7
7
  require 'yard'
8
8
 
9
+ Dir.glob('tasks/*.rake').each { |r| import r }
10
+
9
11
  desc 'Run RSpec'
10
12
  # rubocop:disable Metrics/BlockLength
11
13
  namespace :spec do
12
- task all: [:main,
13
- :rails, :railsredis, :railssidekiq, :railsactivejob,
14
+ task all: [:main, :benchmark,
15
+ :rails, :railsredis, :railsactivejob,
14
16
  :elasticsearch, :http, :redis, :sidekiq, :sinatra]
15
17
 
16
- RSpec::Core::RakeTask.new(:main) do |t|
18
+ RSpec::Core::RakeTask.new(:main) do |t, args|
17
19
  t.pattern = 'spec/**/*_spec.rb'
18
- t.exclude_pattern = 'spec/**/{contrib,benchmark,redis}/**/*_spec.rb'
20
+ t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry,auto_instrument}/**/*_spec.rb,'\
21
+ ' spec/**/auto_instrument_spec.rb'
22
+ t.rspec_opts = args.to_a.join(' ')
19
23
  end
20
24
 
21
- RSpec::Core::RakeTask.new(:rails) do |t|
22
- t.pattern = 'spec/ddtrace/contrib/rails/**/*_spec.rb'
23
- t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{sidekiq,active_job,disable_env}*_spec.rb'
25
+ RSpec::Core::RakeTask.new(:benchmark) do |t, args|
26
+ t.pattern = 'spec/ddtrace/benchmark/**/*_spec.rb'
27
+ t.rspec_opts = args.to_a.join(' ')
24
28
  end
25
29
 
26
- RSpec::Core::RakeTask.new(:railsredis) do |t|
27
- t.pattern = 'spec/ddtrace/contrib/rails/**/*redis*_spec.rb'
30
+ RSpec::Core::RakeTask.new(:opentracer) do |t, args|
31
+ t.pattern = 'spec/ddtrace/opentracer/**/*_spec.rb'
32
+ t.rspec_opts = args.to_a.join(' ')
28
33
  end
29
34
 
30
- RSpec::Core::RakeTask.new(:railssidekiq) do |t|
31
- t.pattern = 'spec/ddtrace/contrib/rails/**/*sidekiq*_spec.rb'
35
+ RSpec::Core::RakeTask.new(:opentelemetry) do |t, args|
36
+ t.pattern = 'spec/ddtrace/opentelemetry/**/*_spec.rb'
37
+ t.rspec_opts = args.to_a.join(' ')
38
+ end
39
+
40
+ RSpec::Core::RakeTask.new(:rails) do |t, args|
41
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*_spec.rb'
42
+ t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{active_job,disable_env,redis_cache,auto_instrument}*_spec.rb'
43
+ t.rspec_opts = args.to_a.join(' ')
32
44
  end
33
45
 
34
- RSpec::Core::RakeTask.new(:railsactivejob) do |t|
46
+ RSpec::Core::RakeTask.new(:railsredis) do |t, args|
47
+ t.pattern = 'spec/ddtrace/contrib/rails/**/*redis*_spec.rb'
48
+ t.rspec_opts = args.to_a.join(' ')
49
+ end
50
+
51
+ RSpec::Core::RakeTask.new(:railsactivejob) do |t, args|
35
52
  t.pattern = 'spec/ddtrace/contrib/rails/**/*active_job*_spec.rb'
53
+ t.rspec_opts = args.to_a.join(' ')
36
54
  end
37
55
 
38
- RSpec::Core::RakeTask.new(:railsdisableenv) do |t|
56
+ RSpec::Core::RakeTask.new(:railsdisableenv) do |t, args|
39
57
  t.pattern = 'spec/ddtrace/contrib/rails/**/*disable_env*_spec.rb'
58
+ t.rspec_opts = args.to_a.join(' ')
59
+ end
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
+
71
+ RSpec::Core::RakeTask.new(:contrib) do |t, args|
72
+ contrib_paths = [
73
+ 'analytics',
74
+ 'configurable',
75
+ 'configuration/*',
76
+ 'configuration/resolvers/*',
77
+ 'extensions',
78
+ 'integration',
79
+ 'patchable',
80
+ 'patcher',
81
+ 'registerable',
82
+ 'registry',
83
+ 'registry/*'
84
+ ].join(',')
85
+
86
+ t.pattern = "spec/**/contrib/{#{contrib_paths}}_spec.rb"
87
+ t.rspec_opts = args.to_a.join(' ')
40
88
  end
41
89
 
42
90
  [
91
+ :action_cable,
92
+ :action_pack,
93
+ :action_view,
43
94
  :active_model_serializers,
44
95
  :active_record,
45
96
  :active_support,
46
97
  :aws,
98
+ :concurrent_ruby,
99
+ :cucumber,
47
100
  :dalli,
101
+ :delayed_job,
48
102
  :elasticsearch,
103
+ :ethon,
49
104
  :excon,
50
105
  :faraday,
51
106
  :grape,
52
107
  :graphql,
53
108
  :grpc,
54
109
  :http,
110
+ :httpclient,
111
+ :httprb,
112
+ :kafka,
55
113
  :mongodb,
56
114
  :mysql2,
115
+ :presto,
116
+ :qless,
117
+ :que,
57
118
  :racecar,
58
119
  :rack,
59
120
  :rake,
60
121
  :redis,
61
122
  :resque,
123
+ :rest_client,
124
+ :rspec,
62
125
  :sequel,
126
+ :shoryuken,
63
127
  :sidekiq,
64
128
  :sinatra,
65
- :sucker_punch
129
+ :sneakers,
130
+ :sucker_punch,
131
+ :suite
66
132
  ].each do |contrib|
67
- RSpec::Core::RakeTask.new(contrib) do |t|
133
+ RSpec::Core::RakeTask.new(contrib) do |t, args|
68
134
  t.pattern = "spec/ddtrace/contrib/#{contrib}/**/*_spec.rb"
135
+ t.rspec_opts = args.to_a.join(' ')
69
136
  end
70
137
  end
71
138
  end
72
139
 
73
140
  namespace :test do
74
141
  task all: [:main,
75
- :rails, :railsredis, :railssidekiq, :railsactivejob,
76
- :elasticsearch, :http, :sidekiq, :sinatra, :monkey]
142
+ :rails]
77
143
 
78
144
  Rake::TestTask.new(:main) do |t|
79
145
  t.libs << %w[test lib]
80
146
  t.test_files = FileList['test/**/*_test.rb'].reject do |path|
81
147
  path.include?('contrib') ||
82
148
  path.include?('benchmark') ||
83
- path.include?('redis') ||
84
- path.include?('monkey_test.rb')
149
+ path.include?('redis')
85
150
  end
86
151
  end
87
152
 
88
153
  Rake::TestTask.new(:rails) do |t|
89
154
  t.libs << %w[test lib]
90
- t.test_files = FileList['test/contrib/rails/**/*_test.rb'].reject do |path|
91
- path.include?('redis') ||
92
- path.include?('sidekiq') ||
93
- path.include?('active_job') ||
94
- path.include?('disable_env')
95
- end
96
- end
97
-
98
- Rake::TestTask.new(:railsredis) do |t|
99
- t.libs << %w[test lib]
100
- t.test_files = FileList['test/contrib/rails/**/*redis*_test.rb']
101
- end
102
-
103
- Rake::TestTask.new(:railssidekiq) do |t|
104
- t.libs << %w[test lib]
105
- t.test_files = FileList['test/contrib/rails/**/*sidekiq*_test.rb']
106
- end
107
-
108
- Rake::TestTask.new(:railsactivejob) do |t|
109
- t.libs << %w[test lib]
110
- t.test_files = FileList['test/contrib/rails/**/*active_job*_test.rb']
111
- end
112
-
113
- Rake::TestTask.new(:railsdisableenv) do |t|
114
- t.libs << %w[test lib]
115
- t.test_files = FileList['test/contrib/rails/**/*disable_env*_test.rb']
116
- end
117
-
118
- [
119
- :aws,
120
- :elasticsearch,
121
- :grape,
122
- :http,
123
- :rack,
124
- :sidekiq,
125
- :sinatra,
126
- :sucker_punch
127
- ].each do |contrib|
128
- Rake::TestTask.new(contrib) do |t|
129
- t.libs << %w[test lib]
130
- t.test_files = FileList["test/contrib/#{contrib}/*_test.rb"]
131
- end
132
- end
133
-
134
- Rake::TestTask.new(:monkey) do |t|
135
- t.libs << %w[test lib]
136
- t.test_files = FileList['test/monkey_test.rb']
155
+ t.test_files = FileList['test/contrib/rails/**/*_test.rb']
137
156
  end
138
157
  end
139
158
 
@@ -142,9 +161,9 @@ Rake::TestTask.new(:benchmark) do |t|
142
161
  t.test_files = FileList['test/benchmark_test.rb']
143
162
  end
144
163
 
145
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
164
+ if defined?(RuboCop::RakeTask)
146
165
  RuboCop::RakeTask.new(:rubocop) do |t|
147
- t.options << ['-D']
166
+ t.options << ['-D', '--force-exclusion']
148
167
  t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'spec/**/*.rb', 'Gemfile', 'Rakefile']
149
168
  end
150
169
  end
@@ -159,342 +178,797 @@ end
159
178
  S3_BUCKET = 'gems.datadoghq.com'.freeze
160
179
  S3_DIR = ENV['S3_DIR']
161
180
 
162
- desc 'create a new indexed repository'
163
- task :'release:gem' do
164
- raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
165
- # load existing deployed gems
166
- sh "aws s3 cp --exclude 'docs/*' --recursive s3://#{S3_BUCKET}/#{S3_DIR}/ ./rubygems/"
167
-
168
- # create folders
169
- sh 'mkdir -p ./gems'
170
- sh 'mkdir -p ./rubygems/gems/'
171
- sh 'mkdir -p ./rubygems/quick/'
172
-
173
- # copy previous builds
174
- sh 'cp ./rubygems/gems/* ./gems/'
175
-
176
- # build the gem
177
- Rake::Task['build'].execute
178
-
179
- # copy the output in the indexed folder
180
- sh 'cp pkg/*.gem ./gems/'
181
-
182
- # generate the gems index
183
- sh 'gem generate_index'
184
-
185
- # namespace everything under ./rubygems/
186
- sh 'cp -r ./gems/* ./rubygems/gems/'
187
- sh 'cp -r specs.* ./rubygems/'
188
- sh 'cp -r latest_specs.* ./rubygems/'
189
- sh 'cp -r prerelease_specs.* ./rubygems/'
190
- sh 'cp -r ./quick/* ./rubygems/quick/'
191
-
192
- # deploy a static gem registry
193
- sh "aws s3 cp --recursive ./rubygems/ s3://#{S3_BUCKET}/#{S3_DIR}/"
194
- end
195
-
196
181
  desc 'release the docs website'
197
182
  task :'release:docs' => :docs do
198
183
  raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
184
+
199
185
  sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
200
186
  end
201
187
 
188
+ # Declare a command for execution.
189
+ # Jobs are parallelized if running in CI.
190
+ def declare(*args)
191
+ total_executors = ENV.key?('CIRCLE_NODE_TOTAL') ? ENV['CIRCLE_NODE_TOTAL'].to_i : nil
192
+ current_executor = ENV.key?('CIRCLE_NODE_INDEX') ? ENV['CIRCLE_NODE_INDEX'].to_i : nil
193
+
194
+ if total_executors && current_executor && total_executors > 1
195
+ @execution_count ||= 0
196
+ @execution_count += 1
197
+ sh(*args) if @execution_count % total_executors == current_executor
198
+ else
199
+ sh(*args)
200
+ end
201
+ end
202
+
202
203
  desc 'CI task; it runs all tests for current version of Ruby'
203
204
  task :ci do
204
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
205
- raise NotImplementedError, 'Ruby versions < 1.9.3 are not supported!'
206
- elsif Gem::Version.new('1.9.3') <= Gem::Version.new(RUBY_VERSION) \
207
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0.0')
205
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Datadog::VERSION::MINIMUM_RUBY_VERSION)
206
+ raise NotImplementedError, "Ruby versions < #{Datadog::VERSION::MINIMUM_RUBY_VERSION} are not supported!"
207
+ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
208
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
208
209
  # Main library
209
- sh 'bundle exec rake test:main'
210
- sh 'bundle exec rake spec:main'
210
+ declare 'bundle exec rake test:main'
211
+ declare 'bundle exec rake spec:main'
212
+ declare 'bundle exec rake spec:contrib'
211
213
 
212
214
  if RUBY_PLATFORM != 'java'
213
- # Contrib minitests
214
- sh 'bundle exec appraisal contrib-old rake test:aws'
215
- sh 'bundle exec appraisal contrib-old rake test:elasticsearch'
216
- sh 'bundle exec appraisal contrib-old rake test:http'
217
- sh 'bundle exec appraisal contrib-old rake test:monkey'
218
- sh 'bundle exec appraisal contrib-old rake test:rack'
219
- sh 'bundle exec appraisal contrib-old rake test:sinatra'
220
- sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
221
215
  # Contrib specs
222
- sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
223
- sh 'bundle exec appraisal contrib-old rake spec:active_record'
224
- sh 'bundle exec appraisal contrib-old rake spec:active_support'
225
- sh 'bundle exec appraisal contrib-old rake spec:dalli'
226
- sh 'bundle exec appraisal contrib-old rake spec:excon'
227
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
228
- sh 'bundle exec appraisal contrib-old rake spec:http'
229
- sh 'bundle exec appraisal contrib-old rake spec:mongodb'
230
- sh 'bundle exec appraisal contrib-old rake spec:mysql2'
231
- sh 'bundle exec appraisal contrib-old rake spec:rake'
232
- sh 'bundle exec appraisal contrib-old rake spec:redis'
233
- sh 'bundle exec appraisal contrib-old rake spec:resque'
234
- sh 'bundle exec appraisal contrib-old rake spec:sequel'
216
+ declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
217
+ declare 'bundle exec appraisal contrib-old rake spec:active_record'
218
+ declare 'bundle exec appraisal contrib-old rake spec:active_support'
219
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
220
+ declare 'bundle exec appraisal contrib-old rake spec:aws'
221
+ declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
222
+ declare 'bundle exec appraisal contrib-old rake spec:dalli'
223
+ declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
224
+ declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
225
+ declare 'bundle exec appraisal contrib-old rake spec:ethon'
226
+ declare 'bundle exec appraisal contrib-old rake spec:excon'
227
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
228
+ declare 'bundle exec appraisal contrib-old rake spec:http'
229
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
230
+ declare 'bundle exec appraisal contrib-old rake spec:httprb'
231
+ declare 'bundle exec appraisal contrib-old rake spec:mongodb'
232
+ declare 'bundle exec appraisal contrib-old rake spec:mysql2'
233
+ declare 'bundle exec appraisal contrib-old rake spec:rack'
234
+ declare 'bundle exec appraisal contrib-old rake spec:rake'
235
+ declare 'bundle exec appraisal contrib-old rake spec:redis'
236
+ declare 'bundle exec appraisal contrib-old rake spec:resque'
237
+ declare 'bundle exec appraisal contrib-old rake spec:rest_client'
238
+ declare 'bundle exec appraisal contrib-old rake spec:rspec'
239
+ declare 'bundle exec appraisal contrib-old rake spec:sequel'
240
+ declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
241
+ declare 'bundle exec appraisal contrib-old rake spec:sinatra'
242
+ declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
243
+ declare 'bundle exec appraisal contrib-old rake spec:suite'
235
244
  # Rails minitests
236
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
237
- sh 'bundle exec appraisal rails30-postgres rake test:railsdisableenv'
238
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
239
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
240
- sh 'bundle exec appraisal rails32-postgres-redis rake test:railsredis'
241
- sh 'bundle exec appraisal rails32-postgres rake test:railsdisableenv'
245
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
246
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
247
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
248
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
249
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
250
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
251
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
252
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
242
253
  # Rails specs
243
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
244
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
245
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
254
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
255
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
256
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
257
+ # Rails suite specs
258
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
259
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
260
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
261
+ declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
246
262
  end
247
- elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
248
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
263
+ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
264
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
249
265
  # Main library
250
- sh 'bundle exec rake test:main'
251
- sh 'bundle exec rake spec:main'
266
+ declare 'bundle exec rake test:main'
267
+ declare 'bundle exec rake spec:main'
268
+ declare 'bundle exec rake spec:contrib'
269
+ declare 'bundle exec rake spec:opentracer'
270
+
271
+ if RUBY_PLATFORM != 'java'
272
+ # Contrib specs
273
+ declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
274
+ declare 'bundle exec appraisal contrib-old rake spec:active_record'
275
+ declare 'bundle exec appraisal contrib-old rake spec:active_support'
276
+ declare 'bundle exec appraisal contrib-old rake spec:autoinstrument'
277
+ declare 'bundle exec appraisal contrib-old rake spec:aws'
278
+ declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
279
+ declare 'bundle exec appraisal contrib-old rake spec:dalli'
280
+ declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
281
+ declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
282
+ declare 'bundle exec appraisal contrib-old rake spec:ethon'
283
+ declare 'bundle exec appraisal contrib-old rake spec:excon'
284
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
285
+ declare 'bundle exec appraisal contrib-old rake spec:http'
286
+ declare 'bundle exec appraisal contrib-old rake spec:httpclient'
287
+ declare 'bundle exec appraisal contrib-old rake spec:httprb'
288
+ declare 'bundle exec appraisal contrib-old rake spec:kafka'
289
+ declare 'bundle exec appraisal contrib-old rake spec:mongodb'
290
+ declare 'bundle exec appraisal contrib-old rake spec:mysql2'
291
+ declare 'bundle exec appraisal contrib-old rake spec:presto'
292
+ declare 'bundle exec appraisal contrib-old rake spec:rack'
293
+ declare 'bundle exec appraisal contrib-old rake spec:rake'
294
+ declare 'bundle exec appraisal contrib-old rake spec:redis'
295
+ declare 'bundle exec appraisal contrib-old rake spec:resque'
296
+ declare 'bundle exec appraisal contrib-old rake spec:rest_client'
297
+ declare 'bundle exec appraisal contrib-old rake spec:rspec'
298
+ declare 'bundle exec appraisal contrib-old rake spec:sequel'
299
+ declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
300
+ declare 'bundle exec appraisal contrib-old rake spec:sinatra'
301
+ declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
302
+ declare 'bundle exec appraisal contrib-old rake spec:suite'
303
+ # Rails minitests
304
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
305
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
306
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
307
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
308
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
309
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
310
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
311
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
312
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
313
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
314
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
315
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
316
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
317
+ # Rails specs
318
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
319
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
320
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
321
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
322
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
323
+ # Rails suite specs
324
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
325
+ declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
326
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
327
+ declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
328
+ end
329
+ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
330
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
331
+ # Main library
332
+ declare 'bundle exec rake test:main'
333
+ declare 'bundle exec rake spec:main'
334
+ declare 'bundle exec rake spec:contrib'
335
+ declare 'bundle exec rake spec:opentracer'
252
336
 
253
337
  if RUBY_PLATFORM != 'java'
254
338
  # Contrib minitests
255
- sh 'bundle exec appraisal contrib-old rake test:aws'
256
- sh 'bundle exec appraisal contrib-old rake test:elasticsearch'
257
- sh 'bundle exec appraisal contrib-old rake test:http'
258
- sh 'bundle exec appraisal contrib-old rake test:monkey'
259
- sh 'bundle exec appraisal contrib-old rake test:rack'
260
- sh 'bundle exec appraisal contrib-old rake test:sinatra'
261
- sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
262
339
  # Contrib specs
263
- sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
264
- sh 'bundle exec appraisal contrib-old rake spec:active_record'
265
- sh 'bundle exec appraisal contrib-old rake spec:active_support'
266
- sh 'bundle exec appraisal contrib-old rake spec:dalli'
267
- sh 'bundle exec appraisal contrib-old rake spec:excon'
268
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
269
- sh 'bundle exec appraisal contrib-old rake spec:http'
270
- sh 'bundle exec appraisal contrib-old rake spec:mongodb'
271
- sh 'bundle exec appraisal contrib-old rake spec:mysql2'
272
- sh 'bundle exec appraisal contrib-old rake spec:rake'
273
- sh 'bundle exec appraisal contrib-old rake spec:redis'
274
- sh 'bundle exec appraisal contrib-old rake spec:resque'
275
- sh 'bundle exec appraisal contrib-old rake spec:sequel'
340
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
341
+ declare 'bundle exec appraisal contrib rake spec:action_view'
342
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
343
+ declare 'bundle exec appraisal contrib rake spec:active_record'
344
+ declare 'bundle exec appraisal contrib rake spec:active_support'
345
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
346
+ declare 'bundle exec appraisal contrib rake spec:aws'
347
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
348
+ declare 'bundle exec appraisal contrib rake spec:dalli'
349
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
350
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
351
+ declare 'bundle exec appraisal contrib rake spec:ethon'
352
+ declare 'bundle exec appraisal contrib rake spec:excon'
353
+ declare 'bundle exec appraisal contrib rake spec:faraday'
354
+ declare 'bundle exec appraisal contrib rake spec:grape'
355
+ declare 'bundle exec appraisal contrib rake spec:graphql'
356
+ declare 'bundle exec appraisal contrib rake spec:grpc'
357
+ declare 'bundle exec appraisal contrib rake spec:http'
358
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
359
+ declare 'bundle exec appraisal contrib rake spec:httprb'
360
+ declare 'bundle exec appraisal contrib rake spec:kafka'
361
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
362
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
363
+ declare 'bundle exec appraisal contrib rake spec:presto'
364
+ declare 'bundle exec appraisal contrib rake spec:qless'
365
+ declare 'bundle exec appraisal contrib rake spec:que'
366
+ declare 'bundle exec appraisal contrib rake spec:racecar'
367
+ declare 'bundle exec appraisal contrib rake spec:rack'
368
+ declare 'bundle exec appraisal contrib rake spec:rake'
369
+ declare 'bundle exec appraisal contrib rake spec:redis'
370
+ declare 'bundle exec appraisal contrib rake spec:resque'
371
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
372
+ declare 'bundle exec appraisal contrib rake spec:rspec'
373
+ declare 'bundle exec appraisal contrib rake spec:sequel'
374
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
375
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
376
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
377
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
378
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
379
+ declare 'bundle exec appraisal contrib rake spec:suite'
276
380
  # Rails minitests
277
- sh 'bundle exec appraisal contrib-old rake test:sidekiq'
278
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
279
- sh 'bundle exec appraisal rails30-postgres rake test:railsdisableenv'
280
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
281
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
282
- sh 'bundle exec appraisal rails32-postgres-redis rake test:railsredis'
283
- sh 'bundle exec appraisal rails32-postgres rake test:railsdisableenv'
284
- sh 'bundle exec appraisal rails30-postgres-sidekiq rake test:railssidekiq'
285
- sh 'bundle exec appraisal rails32-postgres-sidekiq rake test:railssidekiq'
381
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
382
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
383
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
384
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
385
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
386
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
387
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
388
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
389
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
390
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
391
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
392
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
393
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
394
+ declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
395
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
396
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
397
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
398
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
399
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
400
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
401
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
286
402
  # Rails specs
287
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
288
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
289
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
403
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
404
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
405
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
406
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
407
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
408
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
409
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
290
410
  end
291
- elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
292
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
411
+ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
412
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
293
413
  # Main library
294
- sh 'bundle exec rake test:main'
295
- sh 'bundle exec rake spec:main'
414
+ declare 'bundle exec rake test:main'
415
+ declare 'bundle exec rake spec:main'
416
+ declare 'bundle exec rake spec:contrib'
417
+ declare 'bundle exec rake spec:opentracer'
296
418
 
297
419
  if RUBY_PLATFORM != 'java'
298
420
  # Contrib minitests
299
- sh 'bundle exec appraisal contrib-old rake test:aws'
300
- sh 'bundle exec appraisal contrib-old rake test:elasticsearch'
301
- sh 'bundle exec appraisal contrib-old rake test:http'
302
- sh 'bundle exec appraisal contrib-old rake test:monkey'
303
- sh 'bundle exec appraisal contrib-old rake test:rack'
304
- sh 'bundle exec appraisal contrib-old rake test:sinatra'
305
- sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
306
421
  # Contrib specs
307
- sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
308
- sh 'bundle exec appraisal contrib-old rake spec:active_record'
309
- sh 'bundle exec appraisal contrib-old rake spec:active_support'
310
- sh 'bundle exec appraisal contrib-old rake spec:dalli'
311
- sh 'bundle exec appraisal contrib-old rake spec:excon'
312
- sh 'bundle exec appraisal contrib-old rake spec:faraday'
313
- sh 'bundle exec appraisal contrib-old rake spec:http'
314
- sh 'bundle exec appraisal contrib-old rake spec:mongodb'
315
- sh 'bundle exec appraisal contrib-old rake spec:mysql2'
316
- sh 'bundle exec appraisal contrib-old rake spec:rake'
317
- sh 'bundle exec appraisal contrib-old rake spec:redis'
318
- sh 'bundle exec appraisal contrib-old rake spec:resque'
319
- sh 'bundle exec appraisal contrib-old rake spec:sequel'
422
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
423
+ declare 'bundle exec appraisal contrib rake spec:action_view'
424
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
425
+ declare 'bundle exec appraisal contrib rake spec:active_record'
426
+ declare 'bundle exec appraisal contrib rake spec:active_support'
427
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
428
+ declare 'bundle exec appraisal contrib rake spec:aws'
429
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
430
+ declare 'bundle exec appraisal contrib rake spec:dalli'
431
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
432
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
433
+ declare 'bundle exec appraisal contrib rake spec:ethon'
434
+ declare 'bundle exec appraisal contrib rake spec:excon'
435
+ declare 'bundle exec appraisal contrib rake spec:faraday'
436
+ declare 'bundle exec appraisal contrib rake spec:grape'
437
+ declare 'bundle exec appraisal contrib rake spec:graphql'
438
+ declare 'bundle exec appraisal contrib rake spec:grpc'
439
+ declare 'bundle exec appraisal contrib rake spec:http'
440
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
441
+ declare 'bundle exec appraisal contrib rake spec:httprb'
442
+ declare 'bundle exec appraisal contrib rake spec:kafka'
443
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
444
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
445
+ declare 'bundle exec appraisal contrib rake spec:presto'
446
+ declare 'bundle exec appraisal contrib rake spec:que'
447
+ declare 'bundle exec appraisal contrib rake spec:racecar'
448
+ declare 'bundle exec appraisal contrib rake spec:rack'
449
+ declare 'bundle exec appraisal contrib rake spec:rake'
450
+ declare 'bundle exec appraisal contrib rake spec:redis'
451
+ declare 'bundle exec appraisal contrib rake spec:resque'
452
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
453
+ declare 'bundle exec appraisal contrib rake spec:rspec'
454
+ declare 'bundle exec appraisal contrib rake spec:sequel'
455
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
456
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
457
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
458
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
459
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
460
+ declare 'bundle exec appraisal contrib rake spec:suite'
461
+ # Contrib specs with old gem versions
462
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
320
463
  # Rails minitests
321
- sh 'bundle exec appraisal contrib-old rake test:sidekiq'
322
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
323
- sh 'bundle exec appraisal rails30-postgres rake test:railsdisableenv'
324
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
325
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
326
- sh 'bundle exec appraisal rails32-postgres-redis rake test:railsredis'
327
- sh 'bundle exec appraisal rails32-postgres rake test:railsdisableenv'
328
- sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
329
- sh 'bundle exec appraisal rails4-postgres rake test:rails'
330
- sh 'bundle exec appraisal rails4-postgres-redis rake test:railsredis'
331
- sh 'bundle exec appraisal rails4-postgres rake test:railsdisableenv'
332
- sh 'bundle exec appraisal rails30-postgres-sidekiq rake test:railssidekiq'
333
- sh 'bundle exec appraisal rails32-postgres-sidekiq rake test:railssidekiq'
464
+ declare 'bundle exec appraisal rails30-postgres rake test:rails'
465
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
466
+ declare 'bundle exec appraisal rails30-postgres rake spec:railsautoinstrument'
467
+ declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
468
+ declare 'bundle exec appraisal rails32-postgres rake test:rails'
469
+ declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
470
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
471
+ declare 'bundle exec appraisal rails32-postgres rake spec:railsautoinstrument'
472
+ declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
473
+ declare 'bundle exec appraisal rails4-postgres rake test:rails'
474
+ declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
475
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
476
+ declare 'bundle exec appraisal rails4-postgres rake spec:railsautoinstrument'
477
+ declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
478
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
479
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
480
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
481
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
482
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
483
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
484
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
334
485
  # Rails specs
335
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
336
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
337
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
338
- sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
339
- sh 'bundle exec appraisal rails4-postgres rake spec:rails'
486
+ declare 'bundle exec appraisal rails30-postgres rake spec:rails'
487
+ declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
488
+ declare 'bundle exec appraisal rails32-postgres rake spec:rails'
489
+ declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
490
+ declare 'bundle exec appraisal rails4-postgres rake spec:rails'
491
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
492
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
493
+
494
+ # explicitly test resque-2x compatability
495
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
496
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
340
497
  end
341
- elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
342
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
498
+ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
499
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
343
500
  # Main library
344
- sh 'bundle exec rake test:main'
345
- sh 'bundle exec rake spec:main'
501
+ declare 'bundle exec rake test:main'
502
+ declare 'bundle exec rake spec:main'
503
+ declare 'bundle exec rake spec:contrib'
504
+ declare 'bundle exec rake spec:opentracer'
505
+ declare 'bundle exec rake spec:opentelemetry'
346
506
 
347
507
  if RUBY_PLATFORM != 'java'
348
508
  # Contrib minitests
349
- sh 'bundle exec appraisal contrib rake test:aws'
350
- sh 'bundle exec appraisal contrib rake test:elasticsearch'
351
- sh 'bundle exec appraisal contrib rake test:grape'
352
- sh 'bundle exec appraisal contrib rake test:http'
353
- sh 'bundle exec appraisal contrib rake test:rack'
354
- sh 'bundle exec appraisal contrib rake test:sinatra'
355
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
356
509
  # Contrib specs
357
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
358
- sh 'bundle exec appraisal contrib rake spec:active_record'
359
- sh 'bundle exec appraisal contrib rake spec:active_support'
360
- sh 'bundle exec appraisal contrib rake spec:dalli'
361
- sh 'bundle exec appraisal contrib rake spec:excon'
362
- sh 'bundle exec appraisal contrib rake spec:faraday'
363
- sh 'bundle exec appraisal contrib rake spec:graphql'
364
- sh 'bundle exec appraisal contrib rake spec:grpc'
365
- sh 'bundle exec appraisal contrib rake spec:http'
366
- sh 'bundle exec appraisal contrib rake spec:mongodb'
367
- sh 'bundle exec appraisal contrib rake spec:mysql2'
368
- sh 'bundle exec appraisal contrib rake spec:racecar'
369
- sh 'bundle exec appraisal contrib rake spec:rake'
370
- sh 'bundle exec appraisal contrib rake spec:redis'
371
- sh 'bundle exec appraisal contrib rake spec:resque'
372
- sh 'bundle exec appraisal contrib rake spec:sequel'
510
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
511
+ declare 'bundle exec appraisal contrib rake spec:action_view'
512
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
513
+ declare 'bundle exec appraisal contrib rake spec:active_record'
514
+ declare 'bundle exec appraisal contrib rake spec:active_support'
515
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
516
+ declare 'bundle exec appraisal contrib rake spec:aws'
517
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
518
+ declare 'bundle exec appraisal contrib rake spec:dalli'
519
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
520
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
521
+ declare 'bundle exec appraisal contrib rake spec:ethon'
522
+ declare 'bundle exec appraisal contrib rake spec:excon'
523
+ declare 'bundle exec appraisal contrib rake spec:faraday'
524
+ declare 'bundle exec appraisal contrib rake spec:grape'
525
+ declare 'bundle exec appraisal contrib rake spec:graphql'
526
+ declare 'bundle exec appraisal contrib rake spec:grpc'
527
+ declare 'bundle exec appraisal contrib rake spec:http'
528
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
529
+ declare 'bundle exec appraisal contrib rake spec:httprb'
530
+ declare 'bundle exec appraisal contrib rake spec:kafka'
531
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
532
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
533
+ declare 'bundle exec appraisal contrib rake spec:presto'
534
+ declare 'bundle exec appraisal contrib rake spec:que'
535
+ declare 'bundle exec appraisal contrib rake spec:racecar'
536
+ declare 'bundle exec appraisal contrib rake spec:rack'
537
+ declare 'bundle exec appraisal contrib rake spec:rake'
538
+ declare 'bundle exec appraisal contrib rake spec:redis'
539
+ declare 'bundle exec appraisal contrib rake spec:resque'
540
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
541
+ declare 'bundle exec appraisal contrib rake spec:rspec'
542
+ declare 'bundle exec appraisal contrib rake spec:sequel'
543
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
544
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
545
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
546
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
547
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
548
+ declare 'bundle exec appraisal contrib rake spec:suite'
549
+ # Contrib specs with old gem versions
550
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
373
551
  # Rails minitests
374
- sh 'bundle exec appraisal contrib rake test:sidekiq'
375
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
376
- sh 'bundle exec appraisal rails30-postgres rake test:railsdisableenv'
377
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
378
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
379
- sh 'bundle exec appraisal rails32-postgres-redis rake test:railsredis'
380
- sh 'bundle exec appraisal rails32-postgres rake test:railsdisableenv'
381
- sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
382
- sh 'bundle exec appraisal rails4-postgres rake test:rails'
383
- sh 'bundle exec appraisal rails4-postgres-redis rake test:railsredis'
384
- sh 'bundle exec appraisal rails4-postgres rake test:railsdisableenv'
385
- sh 'bundle exec appraisal rails4-postgres-sidekiq rake test:railssidekiq'
386
- sh 'bundle exec appraisal rails4-postgres-sidekiq rake test:railsactivejob'
387
- sh 'bundle exec appraisal rails5-mysql2 rake test:rails'
388
- sh 'bundle exec appraisal rails5-postgres rake test:rails'
389
- sh 'bundle exec appraisal rails5-postgres-redis rake test:railsredis'
390
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake test:railssidekiq'
391
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake test:railsactivejob'
392
- sh 'bundle exec appraisal rails5-postgres rake test:railsdisableenv'
552
+ # We only test Rails 5+ because older versions require Bundler < 2.0
553
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
554
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
555
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
556
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
557
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
558
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
559
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
393
560
  # Rails specs
394
- sh 'bundle exec appraisal rails30-postgres rake spec:rails'
395
- sh 'bundle exec appraisal rails32-mysql2 rake spec:rails'
396
- sh 'bundle exec appraisal rails32-postgres rake spec:rails'
397
- sh 'bundle exec appraisal rails4-mysql2 rake spec:rails'
398
- sh 'bundle exec appraisal rails4-postgres rake spec:rails'
399
- sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
400
- sh 'bundle exec appraisal rails5-postgres rake spec:rails'
561
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
562
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
563
+
564
+ # explicitly test resque-2x compatability
565
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
566
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
567
+
568
+ # explicitly test cucumber compatibility
569
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
570
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
401
571
  end
402
- elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
403
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
572
+ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
573
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
574
+ # Main library
575
+ declare 'bundle exec rake test:main'
576
+ declare 'bundle exec rake spec:main'
577
+ declare 'bundle exec rake spec:contrib'
578
+ declare 'bundle exec rake spec:opentracer'
579
+ declare 'bundle exec rake spec:opentelemetry'
580
+ # Contrib minitests
581
+ # Contrib specs
582
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
583
+ declare 'bundle exec appraisal contrib rake spec:action_view'
584
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
585
+ declare 'bundle exec appraisal contrib rake spec:active_record'
586
+ declare 'bundle exec appraisal contrib rake spec:active_support'
587
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
588
+ declare 'bundle exec appraisal contrib rake spec:aws'
589
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
590
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
591
+ declare 'bundle exec appraisal contrib rake spec:dalli'
592
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
593
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
594
+ declare 'bundle exec appraisal contrib rake spec:ethon'
595
+ declare 'bundle exec appraisal contrib rake spec:excon'
596
+ declare 'bundle exec appraisal contrib rake spec:faraday'
597
+ declare 'bundle exec appraisal contrib rake spec:grape'
598
+ declare 'bundle exec appraisal contrib rake spec:graphql'
599
+ declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
600
+ declare 'bundle exec appraisal contrib rake spec:http'
601
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
602
+ declare 'bundle exec appraisal contrib rake spec:httprb'
603
+ declare 'bundle exec appraisal contrib rake spec:kafka'
604
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
605
+ declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
606
+ declare 'bundle exec appraisal contrib rake spec:presto'
607
+ declare 'bundle exec appraisal contrib rake spec:qless'
608
+ declare 'bundle exec appraisal contrib rake spec:que'
609
+ declare 'bundle exec appraisal contrib rake spec:racecar'
610
+ declare 'bundle exec appraisal contrib rake spec:rack'
611
+ declare 'bundle exec appraisal contrib rake spec:rake'
612
+ declare 'bundle exec appraisal contrib rake spec:redis'
613
+ declare 'bundle exec appraisal contrib rake spec:resque'
614
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
615
+ declare 'bundle exec appraisal contrib rake spec:rspec'
616
+ declare 'bundle exec appraisal contrib rake spec:sequel'
617
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
618
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
619
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
620
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
621
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
622
+ declare 'bundle exec appraisal contrib rake spec:suite'
623
+ # Contrib specs with old gem versions
624
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
625
+ # Rails minitests
626
+ # We only test Rails 5+ because older versions require Bundler < 2.0
627
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
628
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
629
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
630
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
631
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
632
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
633
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
634
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
635
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
636
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
637
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
638
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
639
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
640
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
641
+ # Rails specs
642
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
643
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
644
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
645
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
646
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
647
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
648
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
649
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
650
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
651
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
652
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
653
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
654
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
655
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
656
+
657
+ # explicitly test resque-2x compatability
658
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
659
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
660
+
661
+ # explicitly test cucumber compatibility
662
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
663
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
664
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
665
+ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
666
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
404
667
  # Main library
405
- sh 'bundle exec rake test:main'
406
- sh 'bundle exec rake spec:main'
668
+ declare 'bundle exec rake test:main'
669
+ declare 'bundle exec rake spec:main'
670
+ declare 'bundle exec rake spec:contrib'
671
+ declare 'bundle exec rake spec:opentracer'
672
+ declare 'bundle exec rake spec:opentelemetry'
407
673
 
408
674
  if RUBY_PLATFORM != 'java'
409
675
  # Contrib minitests
410
- sh 'bundle exec appraisal contrib rake test:aws'
411
- sh 'bundle exec appraisal contrib rake test:elasticsearch'
412
- sh 'bundle exec appraisal contrib rake test:grape'
413
- sh 'bundle exec appraisal contrib rake test:http'
414
- sh 'bundle exec appraisal contrib rake test:rack'
415
- sh 'bundle exec appraisal contrib rake test:sinatra'
416
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
417
676
  # Contrib specs
418
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
419
- sh 'bundle exec appraisal contrib rake spec:active_record'
420
- sh 'bundle exec appraisal contrib rake spec:active_support'
421
- sh 'bundle exec appraisal contrib rake spec:dalli'
422
- sh 'bundle exec appraisal contrib rake spec:excon'
423
- sh 'bundle exec appraisal contrib rake spec:faraday'
424
- sh 'bundle exec appraisal contrib rake spec:graphql'
425
- sh 'bundle exec appraisal contrib rake spec:grpc'
426
- sh 'bundle exec appraisal contrib rake spec:http'
427
- sh 'bundle exec appraisal contrib rake spec:mongodb'
428
- sh 'bundle exec appraisal contrib rake spec:mysql2'
429
- sh 'bundle exec appraisal contrib rake spec:racecar'
430
- sh 'bundle exec appraisal contrib rake spec:rake'
431
- sh 'bundle exec appraisal contrib rake spec:redis'
432
- sh 'bundle exec appraisal contrib rake spec:resque'
433
- sh 'bundle exec appraisal contrib rake spec:sequel'
677
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
678
+ declare 'bundle exec appraisal contrib rake spec:action_view'
679
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
680
+ declare 'bundle exec appraisal contrib rake spec:active_record'
681
+ declare 'bundle exec appraisal contrib rake spec:active_support'
682
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
683
+ declare 'bundle exec appraisal contrib rake spec:aws'
684
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
685
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
686
+ declare 'bundle exec appraisal contrib rake spec:dalli'
687
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
688
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
689
+ declare 'bundle exec appraisal contrib rake spec:ethon'
690
+ declare 'bundle exec appraisal contrib rake spec:excon'
691
+ declare 'bundle exec appraisal contrib rake spec:faraday'
692
+ declare 'bundle exec appraisal contrib rake spec:grape'
693
+ declare 'bundle exec appraisal contrib rake spec:graphql'
694
+ declare 'bundle exec appraisal contrib rake spec:grpc'
695
+ declare 'bundle exec appraisal contrib rake spec:http'
696
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
697
+ declare 'bundle exec appraisal contrib rake spec:httprb'
698
+ declare 'bundle exec appraisal contrib rake spec:kafka'
699
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
700
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
701
+ declare 'bundle exec appraisal contrib rake spec:presto'
702
+ declare 'bundle exec appraisal contrib rake spec:qless'
703
+ declare 'bundle exec appraisal contrib rake spec:que'
704
+ declare 'bundle exec appraisal contrib rake spec:racecar'
705
+ declare 'bundle exec appraisal contrib rake spec:rack'
706
+ declare 'bundle exec appraisal contrib rake spec:rake'
707
+ declare 'bundle exec appraisal contrib rake spec:redis'
708
+ declare 'bundle exec appraisal contrib rake spec:resque'
709
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
710
+ declare 'bundle exec appraisal contrib rake spec:rspec'
711
+ declare 'bundle exec appraisal contrib rake spec:sequel'
712
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
713
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
714
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
715
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
716
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
717
+ declare 'bundle exec appraisal contrib rake spec:suite'
718
+
719
+ # Contrib specs with old gem versions
720
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
434
721
  # Rails minitests
435
- sh 'bundle exec appraisal contrib rake test:sidekiq'
436
- sh 'bundle exec appraisal rails30-postgres rake test:rails'
437
- sh 'bundle exec appraisal rails30-postgres rake test:railsdisableenv'
438
- sh 'bundle exec appraisal rails32-mysql2 rake test:rails'
439
- sh 'bundle exec appraisal rails32-postgres rake test:rails'
440
- sh 'bundle exec appraisal rails32-postgres-redis rake test:railsredis'
441
- sh 'bundle exec appraisal rails32-postgres rake test:railsdisableenv'
442
- sh 'bundle exec appraisal rails4-mysql2 rake test:rails'
443
- sh 'bundle exec appraisal rails4-postgres rake test:rails'
444
- sh 'bundle exec appraisal rails4-postgres-redis rake test:railsredis'
445
- sh 'bundle exec appraisal rails4-postgres rake test:railsdisableenv'
446
- sh 'bundle exec appraisal rails4-postgres-sidekiq rake test:railssidekiq'
447
- sh 'bundle exec appraisal rails4-postgres-sidekiq rake test: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 test:railsredis'
451
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake test:railssidekiq'
452
- sh 'bundle exec appraisal rails5-postgres-sidekiq rake test:railsactivejob'
453
- sh 'bundle exec appraisal rails5-postgres rake test:railsdisableenv'
722
+ # We only test Rails 5+ because older versions require Bundler < 2.0
723
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
724
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
725
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
726
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
727
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
728
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
729
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
730
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
731
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
732
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
733
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
734
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
735
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
736
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
454
737
  # 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'
738
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
739
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
740
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
741
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
742
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
743
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
744
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
745
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
746
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
747
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
748
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
749
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
750
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
751
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
752
+
753
+ # explicitly test resque-2x compatability
754
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
755
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
756
+
757
+ # explicitly test cucumber compatibility
758
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
759
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
760
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
462
761
  end
463
- elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION)
762
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
763
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
464
764
  # Main library
465
- sh 'bundle exec rake test:main'
466
- sh 'bundle exec rake spec:main'
765
+ declare 'bundle exec rake test:main'
766
+ declare 'bundle exec rake spec:main'
767
+ declare 'bundle exec rake spec:contrib'
768
+ declare 'bundle exec rake spec:opentracer'
769
+ declare 'bundle exec rake spec:opentelemetry'
467
770
 
468
771
  if RUBY_PLATFORM != 'java'
469
772
  # Contrib minitests
470
- sh 'bundle exec appraisal contrib rake test:aws'
471
- sh 'bundle exec appraisal contrib rake test:elasticsearch'
472
- sh 'bundle exec appraisal contrib rake test:grape'
473
- sh 'bundle exec appraisal contrib rake test:http'
474
- sh 'bundle exec appraisal contrib rake test:rack'
475
- sh 'bundle exec appraisal contrib rake test:sinatra'
476
- sh 'bundle exec appraisal contrib rake test:sucker_punch'
477
773
  # Contrib specs
478
- sh 'bundle exec appraisal contrib rake spec:active_model_serializers'
479
- sh 'bundle exec appraisal contrib rake spec:active_record'
480
- sh 'bundle exec appraisal contrib rake spec:active_support'
481
- sh 'bundle exec appraisal contrib rake spec:dalli'
482
- sh 'bundle exec appraisal contrib rake spec:excon'
483
- sh 'bundle exec appraisal contrib rake spec:faraday'
484
- sh 'bundle exec appraisal contrib rake spec:graphql'
485
- sh 'bundle exec appraisal contrib rake spec:grpc'
486
- sh 'bundle exec appraisal contrib rake spec:http'
487
- sh 'bundle exec appraisal contrib rake spec:mongodb'
488
- sh 'bundle exec appraisal contrib rake spec:mysql2'
489
- sh 'bundle exec appraisal contrib rake spec:racecar'
490
- sh 'bundle exec appraisal contrib rake spec:rake'
491
- sh 'bundle exec appraisal contrib rake spec:redis'
492
- sh 'bundle exec appraisal contrib rake spec:resque'
493
- sh 'bundle exec appraisal contrib rake spec:sequel'
774
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
775
+ declare 'bundle exec appraisal contrib rake spec:action_view'
776
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
777
+ declare 'bundle exec appraisal contrib rake spec:active_record'
778
+ declare 'bundle exec appraisal contrib rake spec:active_support'
779
+ declare 'bundle exec appraisal contrib rake spec:autoinstrument'
780
+ declare 'bundle exec appraisal contrib rake spec:aws'
781
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
782
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
783
+ declare 'bundle exec appraisal contrib rake spec:dalli'
784
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
785
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
786
+ declare 'bundle exec appraisal contrib rake spec:ethon'
787
+ declare 'bundle exec appraisal contrib rake spec:excon'
788
+ declare 'bundle exec appraisal contrib rake spec:faraday'
789
+ declare 'bundle exec appraisal contrib rake spec:grape'
790
+ declare 'bundle exec appraisal contrib rake spec:graphql'
791
+ declare 'bundle exec appraisal contrib rake spec:grpc'
792
+ declare 'bundle exec appraisal contrib rake spec:http'
793
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
794
+ declare 'bundle exec appraisal contrib rake spec:httprb'
795
+ declare 'bundle exec appraisal contrib rake spec:kafka'
796
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
797
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
798
+ declare 'bundle exec appraisal contrib rake spec:presto'
799
+ declare 'bundle exec appraisal contrib rake spec:qless'
800
+ declare 'bundle exec appraisal contrib rake spec:que'
801
+ declare 'bundle exec appraisal contrib rake spec:racecar'
802
+ declare 'bundle exec appraisal contrib rake spec:rack'
803
+ declare 'bundle exec appraisal contrib rake spec:rake'
804
+ declare 'bundle exec appraisal contrib rake spec:redis'
805
+ declare 'bundle exec appraisal contrib rake spec:resque'
806
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
807
+ declare 'bundle exec appraisal contrib rake spec:rspec'
808
+ declare 'bundle exec appraisal contrib rake spec:sequel'
809
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
810
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
811
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
812
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
813
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
814
+ declare 'bundle exec appraisal contrib rake spec:suite'
815
+
816
+ # Contrib specs with old gem versions
817
+ declare 'bundle exec appraisal contrib-old rake spec:faraday'
494
818
  # Rails minitests
495
- sh 'bundle exec appraisal contrib rake test:sidekiq'
496
- sh 'bundle exec rake benchmark'
819
+ # We only test Rails 5+ because older versions require Bundler < 2.0
820
+ declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
821
+ declare 'bundle exec appraisal rails5-postgres rake test:rails'
822
+ declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
823
+ declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
824
+ declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
825
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
826
+ declare 'bundle exec appraisal rails5-postgres rake spec:railsautoinstrument'
827
+ declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
828
+ declare 'bundle exec appraisal rails6-postgres rake test:rails'
829
+ declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
830
+ declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
831
+ declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
832
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
833
+ declare 'bundle exec appraisal rails6-postgres rake spec:railsautoinstrument'
834
+ # Rails specs
835
+ declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
836
+ declare 'bundle exec appraisal rails5-postgres rake spec:rails'
837
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
838
+ declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
839
+ declare 'bundle exec appraisal rails6-postgres rake spec:rails'
840
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
841
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
842
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
843
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
844
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
845
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
846
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
847
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
848
+
849
+ # explicitly test resque-2x compatability
850
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
851
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
852
+
853
+ # explicitly test cucumber compatibility
854
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
855
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
856
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
497
857
  end
858
+ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
859
+ # Main library
860
+ declare 'bundle exec rake test:main'
861
+ declare 'bundle exec rake spec:main'
862
+ declare 'bundle exec rake spec:contrib'
863
+ declare 'bundle exec rake spec:opentracer'
864
+ declare 'bundle exec rake spec:opentelemetry'
865
+
866
+ if RUBY_PLATFORM != 'java'
867
+ # Contrib minitests
868
+ # Contrib specs
869
+ declare 'bundle exec appraisal contrib rake spec:action_pack'
870
+ declare 'bundle exec appraisal contrib rake spec:action_view'
871
+ declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
872
+ declare 'bundle exec appraisal contrib rake spec:active_record'
873
+ declare 'bundle exec appraisal contrib rake spec:active_support'
874
+ declare 'bundle exec appraisal contrib rake spec:aws'
875
+ declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
876
+ declare 'bundle exec appraisal contrib rake spec:cucumber'
877
+ declare 'bundle exec appraisal contrib rake spec:dalli'
878
+ declare 'bundle exec appraisal contrib rake spec:delayed_job'
879
+ declare 'bundle exec appraisal contrib rake spec:elasticsearch'
880
+ declare 'bundle exec appraisal contrib rake spec:ethon'
881
+ declare 'bundle exec appraisal contrib rake spec:excon'
882
+ declare 'bundle exec appraisal contrib rake spec:faraday'
883
+ declare 'bundle exec appraisal contrib rake spec:grape'
884
+ declare 'bundle exec appraisal contrib rake spec:graphql'
885
+ # declare 'bundle exec appraisal contrib rake spec:grpc' # Pending https://github.com/protocolbuffers/protobuf/issues/7922
886
+ declare 'bundle exec appraisal contrib rake spec:http'
887
+ declare 'bundle exec appraisal contrib rake spec:httpclient'
888
+ declare 'bundle exec appraisal contrib rake spec:httprb'
889
+ declare 'bundle exec appraisal contrib rake spec:kafka'
890
+ declare 'bundle exec appraisal contrib rake spec:mongodb'
891
+ declare 'bundle exec appraisal contrib rake spec:mysql2'
892
+ declare 'bundle exec appraisal contrib rake spec:presto'
893
+ declare 'bundle exec appraisal contrib rake spec:qless'
894
+ declare 'bundle exec appraisal contrib rake spec:que'
895
+ # declare 'bundle exec appraisal contrib rake spec:racecar' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
896
+ declare 'bundle exec appraisal contrib rake spec:rack'
897
+ declare 'bundle exec appraisal contrib rake spec:rake'
898
+ declare 'bundle exec appraisal contrib rake spec:redis'
899
+ declare 'bundle exec appraisal contrib rake spec:resque'
900
+ declare 'bundle exec appraisal contrib rake spec:rest_client'
901
+ declare 'bundle exec appraisal contrib rake spec:rspec'
902
+ declare 'bundle exec appraisal contrib rake spec:sequel'
903
+ declare 'bundle exec appraisal contrib rake spec:shoryuken'
904
+ declare 'bundle exec appraisal contrib rake spec:sidekiq'
905
+ declare 'bundle exec appraisal contrib rake spec:sinatra'
906
+ declare 'bundle exec appraisal contrib rake spec:sneakers'
907
+ declare 'bundle exec appraisal contrib rake spec:sucker_punch'
908
+ declare 'bundle exec appraisal contrib rake spec:suite'
909
+
910
+ # Rails
911
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:action_cable'
912
+ declare 'bundle exec appraisal rails61-mysql2 rake spec:rails'
913
+ declare 'bundle exec appraisal rails61-mysql2 rake test:rails'
914
+ declare 'bundle exec appraisal rails61-postgres rake spec:rails'
915
+ declare 'bundle exec appraisal rails61-postgres rake spec:railsdisableenv'
916
+ declare 'bundle exec appraisal rails61-postgres rake test:rails'
917
+ declare 'bundle exec appraisal rails61-postgres-redis rake spec:railsredis'
918
+ declare 'bundle exec appraisal rails61-postgres-sidekiq rake spec:railsactivejob'
919
+
920
+ # explicitly test resque-2x compatability
921
+ declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
922
+ declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
923
+
924
+ # explicitly test cucumber compatibility
925
+ declare 'bundle exec appraisal cucumber3 rake spec:cucumber'
926
+ declare 'bundle exec appraisal cucumber4 rake spec:cucumber'
927
+ declare 'bundle exec appraisal cucumber5 rake spec:cucumber'
928
+ end
929
+ end
930
+ end
931
+
932
+ namespace :coverage do
933
+ # Generates one global report for all tracer tests
934
+ task :report do
935
+ require 'simplecov'
936
+
937
+ resultset_files = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/.resultset.json"] +
938
+ Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/**/.resultset.json"]
939
+
940
+ SimpleCov.collate resultset_files do
941
+ coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
942
+ if ENV['CI'] == 'true'
943
+ require 'codecov'
944
+ formatter SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter,
945
+ SimpleCov::Formatter::Codecov])
946
+ else
947
+ formatter SimpleCov::Formatter::HTMLFormatter
948
+ end
949
+ end
950
+ end
951
+
952
+ # Generates one report for each Ruby version
953
+ task :report_per_ruby_version do
954
+ require 'simplecov'
955
+
956
+ versions = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/*"].map { |f| File.basename(f) }
957
+ versions.map do |version|
958
+ puts "Generating report for: #{version}"
959
+ SimpleCov.collate Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/#{version}/**/.resultset.json"] do
960
+ coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report/versions/#{version}"
961
+ formatter SimpleCov::Formatter::HTMLFormatter
962
+ end
963
+ end
964
+ end
965
+ end
966
+
967
+ namespace :changelog do
968
+ task :format do
969
+ require 'pimpmychangelog'
970
+
971
+ PimpMyChangelog::CLI.run!
498
972
  end
499
973
  end
500
974