rebar.config 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. %% -*- mode: erlang -*-
  2. %% This config file is the very basic config to compile emqx
  3. %% This allows emqx to be used as a dependency for other applications
  4. %% such as emqx module/plugin developments and tests.
  5. %% With the help of EMQX's rebar3 fork, the config is extended
  6. %% with rebar.config.erl module. Final result is written to
  7. %% rebar.config.rendered if environment DEBUG is set.
  8. {edoc_opts, [{preprocess, true}]}.
  9. {erl_opts, [
  10. warn_unused_vars,
  11. warn_shadow_vars,
  12. warn_unused_import,
  13. warn_obsolete_guard,
  14. compressed,
  15. nowarn_unused_import,
  16. {d, snk_kind, msg}
  17. ]}.
  18. {xref_checks, [
  19. undefined_function_calls,
  20. undefined_functions,
  21. locals_not_used,
  22. deprecated_function_calls,
  23. warnings_as_errors,
  24. deprecated_functions
  25. ]}.
  26. %% Check the forbidden mnesia calls:
  27. {xref_queries, [
  28. {"E || \"mnesia\":\"dirty_delete.*\"/\".*\" : Fun", []},
  29. {"E || \"mnesia\":\"transaction\"/\".*\" : Fun", []},
  30. {"E || \"mnesia\":\"async_dirty\"/\".*\" : Fun", []},
  31. {"E || \"mnesia\":\"clear_table\"/\".*\" : Fun", []},
  32. {"E || \"mnesia\":\"create_table\"/\".*\" : Fun", []},
  33. {"E || \"mnesia\":\"delete_table\"/\".*\" : Fun", []}
  34. ]}.
  35. {dialyzer, [
  36. {warnings, [unmatched_returns, error_handling]},
  37. {exclude_mods, [
  38. emqx_exproto_v_1_connection_unary_handler_bhvr,
  39. emqx_exproto_v_1_connection_handler_client,
  40. emqx_exproto_v_1_connection_handler_bhvr,
  41. emqx_exproto_v_1_connection_adapter_client,
  42. emqx_exproto_v_1_connection_adapter_bhvr,
  43. emqx_exproto_v_1_connection_unary_handler_client,
  44. emqx_exhook_v_2_hook_provider_client,
  45. emqx_exhook_v_2_hook_provider_bhvr
  46. ]},
  47. {plt_location, "."},
  48. {plt_prefix, "emqx_dialyzer"},
  49. {plt_apps, all_apps},
  50. {statistics, true}
  51. ]}.
  52. {cover_opts, [verbose]}.
  53. {cover_export_enabled, true}.
  54. {cover_excl_mods,
  55. %% generated protobuf modules
  56. [
  57. emqx_exproto_pb,
  58. emqx_exhook_pb,
  59. %% taken almost as-is from OTP
  60. emqx_ssl_crl_cache
  61. ]}.
  62. %{provider_hooks, [{pre, [{release, {relup_helper, gen_appups}}]}]}.
  63. {post_hooks, []}.
  64. {deps, [
  65. {lc, {git, "https://github.com/emqx/lc.git", {tag, "0.3.2"}}},
  66. {redbug, {git, "https://github.com/emqx/redbug", {tag, "2.0.10"}}},
  67. {covertool, {git, "https://github.com/zmstone/covertool", {tag, "2.0.4.1"}}},
  68. {gpb, "4.19.9"},
  69. {typerefl, {git, "https://github.com/ieQu1/typerefl", {tag, "0.9.1"}}},
  70. {gun, {git, "https://github.com/emqx/gun", {tag, "1.3.11"}}},
  71. {ehttpc, {git, "https://github.com/emqx/ehttpc", {tag, "0.4.13"}}},
  72. {gproc, {git, "https://github.com/emqx/gproc", {tag, "0.9.0.1"}}},
  73. {jiffy, {git, "https://github.com/emqx/jiffy", {tag, "1.0.6"}}},
  74. {cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}},
  75. {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.11.2"}}},
  76. {rocksdb, {git, "https://github.com/emqx/erlang-rocksdb", {tag, "1.8.0-emqx-2"}}},
  77. {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.19.3"}}},
  78. {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.3.1"}}},
  79. {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.12"}}},
  80. {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.4.0"}}},
  81. {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.7"}}},
  82. {replayq, {git, "https://github.com/emqx/replayq.git", {tag, "0.3.8"}}},
  83. {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}},
  84. {emqtt, {git, "https://github.com/emqx/emqtt", {tag, "1.10.1"}}},
  85. {rulesql, {git, "https://github.com/emqx/rulesql", {tag, "0.2.1"}}},
  86. % NOTE: depends on recon 2.5.x
  87. {observer_cli, "1.7.1"},
  88. {system_monitor, {git, "https://github.com/ieQu1/system_monitor", {tag, "3.0.3"}}},
  89. {getopt, "1.0.2"},
  90. {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "1.0.8"}}},
  91. {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.42.2"}}},
  92. {emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.3"}}},
  93. {esasl, {git, "https://github.com/emqx/esasl", {tag, "0.2.1"}}},
  94. {jose, {git, "https://github.com/potatosalad/erlang-jose", {tag, "1.11.2"}}},
  95. {telemetry, "1.1.0"},
  96. {hackney, {git, "https://github.com/emqx/hackney.git", {tag, "1.18.1-1"}}},
  97. %% to keep in sync with mix.exs
  98. {ssl_verify_fun, "1.1.7"},
  99. %% in conflict by erlavro and rocketmq
  100. {jsone, {git, "https://github.com/emqx/jsone.git", {tag, "1.7.1"}}},
  101. {uuid, {git, "https://github.com/okeuday/uuid.git", {tag, "v2.0.6"}}},
  102. {ssl_verify_fun, "1.1.7"},
  103. {rfc3339, {git, "https://github.com/emqx/rfc3339.git", {tag, "0.2.3"}}},
  104. {bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {tag, "0.6.2"}}},
  105. {ra, "2.7.3"},
  106. {mimerl, "1.2.0"}
  107. ]}.
  108. {xref_ignores,
  109. %% schema registry is for enterprise
  110. [
  111. {emqx_schema_registry, get_all_schemas, 0},
  112. {emqx_schema_api, format_schema, 1},
  113. {emqx_schema_api, make_schema_params, 1},
  114. {emqx_schema_parser, decode, 3},
  115. {emqx_schema_parser, encode, 3},
  116. {emqx_schema_registry, add_schema, 1},
  117. {emqx_audit, log, 2},
  118. % generated code for protobuf
  119. emqx_exhook_pb,
  120. % generated code for protobuf
  121. emqx_exproto_pb
  122. ]}.
  123. {eunit_opts, [verbose, {print_depth, 100}]}.
  124. {project_plugins, [
  125. {erlfmt, "1.3.0"},
  126. {rebar3_hex, "7.0.2"},
  127. {rebar3_sbom, {git, "https://github.com/emqx/rebar3_sbom.git", {tag, "v0.6.1-1"}}}
  128. ]}.