%% == Compiler and Profiles ==

{erl_opts,
 [warn_unused_import, warn_export_vars, warnings_as_errors, verbose, report, debug_info]}.

{minimum_otp_vsn, "23"}.

{profiles,
 [{test,
   [{ct_opts, [{verbose, true}]},
    {cover_enabled, true},
    {cover_opts, [verbose]},
    {deps, [{meck, "0.9.2"}]},
    {dialyzer,
     [{warnings, [no_return, underspecs, unmatched_returns, error_handling, unknown]},
      {plt_extra_apps, [meck]}]}]}]}.

{alias, [{test, [compile, format, hank, lint, xref, dialyzer, ct, cover, ex_doc]}]}.

%% == Dependencies and plugins ==

{deps, [{cowboy, "2.10.0"}, {ranch, "2.1.0"}]}.

{project_plugins,
 [{rebar3_hank, "~> 1.4.0"},
  {rebar3_hex, "~> 7.0.7"},
  {rebar3_format, "~> 1.3.0"},
  {rebar3_lint, "~> 3.0.1"},
  {rebar3_ex_doc, "0.2.18"}]}.

%% == Documentation ==

{ex_doc,
 [{source_url, <<"https://github.com/inaka/cowboy-trails">>}
  ]}.

{hex, [{doc, #{provider => ex_doc}}]}.

%% == Format ==

{format,
 [{files, ["*.config", "src/*", "test/*", "example/{rel,src,.}/*{.config,.erl,.src}"]}]}.

%% == Hank ==

{hank,
 [{ignore,
   ["example/_build/**",
    "example/_checkouts",
    {"test/trails_SUITE.erl", unnecessary_function_arguments}]}]}.

%% == Dialyzer + XRef ==

{dialyzer,
 [{warnings, [no_return, underspecs, unmatched_returns, error_handling, unknown]}]}.

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

{xref_extra_paths, ["test/**"]}.
