%% == Compiler and Profiles ==

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

{minimum_otp_vsn, "23"}.

{profiles,
 [{test,
   [{deps, [{mixer, "1.2.0", {pkg, inaka_mixer}}, {shotgun, "1.0.1"}]},
    {ct_opts, [{sys_config, ["./test/test.config"]}, {verbose, true}]},
    {cover_enabled, true},
    {cover_opts, [verbose]},
    {dialyzer,
     [{warnings, [no_return, unmatched_returns, error_handling, underspecs, unknown]},
      {plt_extra_apps, [cowboy, trails, ranch, jsx, common_test, shotgun]}]}]}]}.

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

%% == Dependencies and plugins ==

{deps, [{jsx, "3.1.0"}, {cowboy, "2.10.0"}, {ranch, "2.1.0"}, {trails, "2.3.1"}]}.

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

%% == Documentation ==

{ex_doc,
 [{source_url, <<"https://github.com/inaka/cowboy_swagger">>},
  {extras, [<<"README.md">>, <<"LICENSE">>]},
  {main, <<"README.md">>},
  {prefix_ref_vsn_with_v, false}]}.

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

%% == Format ==

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

%% == Dialyzer + XRef ==

{dialyzer,
 [{warnings, [no_return, unmatched_returns, error_handling, underspecs, unknown]},
  {plt_extra_apps, [cowboy, trails, ranch, jsx]}]}.

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

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