%% == Erlang Compiler ==

{erl_opts, [
  debug_info,
  warnings_as_errors,
  warn_unused_vars,
  ewarn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_untyped_record
]}.

%% == Common Test ==

{ct_compile_opts, [
  debug_info,
  warnings_as_errors,
  warn_unused_vars,
  ewarn_export_all,
  warn_shadow_vars,
  warn_unused_import,
  warn_unused_function,
  warn_bif_clash,
  warn_unused_record,
  warn_deprecated_function,
  warn_obsolete_guard,
  strict_validation,
  warn_export_vars,
  warn_exported_vars,
  warn_untyped_record
]}.

%% == EDoc ==

{edoc_opts, []}.

%% == Plugins ==

{project_plugins, [rebar3_proper, rebar3_ex_doc]}.

%% == Profiles ==

{profiles, [
  {test, [
    {cover_enabled, true},
    {cover_export_enabled, true},
    {cover_opts, [verbose]},
    %% convert to data codecov understands
    {plugins, [covertool]},
    {covertool, [{coverdata_files, ["ct.coverdata", "proper.coverdata"]}]},

    {deps, [
      {proper, "1.4.0"}
    ]}
  ]}
]}.

%% == Dialyzer ==

{dialyzer, [
  {warnings, [
    no_return,
    unmatched_returns,
    error_handling,
    unknown
  ]},
  {plt_apps, top_level_deps},
  {plt_extra_apps, []},
  {plt_location, "priv/plts/local"},
  {plt_prefix, "shards"},
  {base_plt_location, "priv/plts"},
  {base_plt_prefix, "shards"}
]}.

%% == Xref ==

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

%% == Docs ==

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

{ex_doc, [
  {source_url, <<"https://github.com/cabol/shards">>},
  {extras, [
    <<"guides/getting-started.md">>,
    <<"README.md">>,
    <<"CHANGELOG.md">>,
    <<"LICENSE">>
  ]},
  {main, <<"readme">>}
]}.
