rebar.config

% -*- erlang -*-
{cover_enabled, true}.
{erl_opts, [debug_info, warnings_as_errors, {parse_transform, lager_transform}]}.
{edoc_opts, [{dir, "doc"}]}.
{eunit_opts, [{report,{eunit_surefire,[{dir,"."}]}}]}.
{deps,
 [
  poolboy,
  lager,
  qdate,
  dproto,
  ddb_client,
  mmath,
  dflow
 ]}.

{profiles,
 [{lint,  [{plugins, [{rebar3_lint, {git, "https://github.com/project-fifo/rebar3_lint.git", {tag, "0.1.4"}}}]}]},
  {eqc, [{plugins, [rebar3_eqc]}]}]}.

{xref_checks, [undefined_function_calls,
               undefined_functions,
               locals_not_used,
               deprecated_function_calls, deprecated_functions]}.

{dialyzer, [{warnings, [unmatched_returns,underspecs]}]}.

{elvis,
 %% We can't lint right now thanks to lexer/parser modules
 [#{dirs => ["srcc"],
    filter => "*.erl",
    rules => [{elvis_style, line_length,
               #{ignore => [],
                 limit => 80,
                 skip_comments => false}},
              {elvis_style, no_tabs},
              {elvis_style, no_trailing_whitespace},
              {elvis_style, macro_names, #{ignore => []}},
              {elvis_style, macro_module_names},
              {elvis_style, operator_spaces, #{rules => [{right, ","},
                                                         {right, "++"},
                                                         {left, "++"}]}},
              {elvis_style, nesting_level, #{level => 3}},
              {elvis_style, god_modules, #{limit => 25, ignore => []}},
              {elvis_style, no_if_expression},
              {elvis_style, invalid_dynamic_call,
               #{ignore => []}},
              {elvis_style, used_ignored_variable, #{ignore => [dql_parser]}},
              {elvis_style, no_behavior_info},
              {
                elvis_style,
                module_naming_convention,
                #{regex => "^[a-z]([a-z0-9]*_?)*(_SUITE)?$",
                  ignore => [dql_parser]}
              },
              {
                elvis_style,
                function_naming_convention,
                #{regex => "^([a-z][a-z0-9]*_?)*$"}
              },
              {elvis_style, state_record_and_type},
              {elvis_style, no_spec_with_records},
              {elvis_style, dont_repeat_yourself, #{min_complexity => 11,
                ignore => [dql_parser] }},
              {elvis_style, no_debug_call,
               #{ignore => []}}
             ]
   },
  #{dirs => ["."],
    filter => "Makefile",
    rules => [{elvis_project, no_deps_master_erlang_mk, #{ignore => []}},
              {elvis_project, protocol_for_deps_erlang_mk, #{ignore => []}}]
   },
  #{dirs => ["."],
    filter => "rebar.config",
    %% on the test branch master deps are OK
    rules => [%{elvis_project, no_deps_master_rebar, #{ignore => []}},
              {elvis_project, protocol_for_deps_rebar, #{ignore => []}}]
   },
  #{dirs => ["."],
    filter => "elvis.config",
    rules => [{elvis_project, old_configuration_format}]
   }
 ]
}.