%% -*- mode: erlang;erlang-indent-level: 2;indent-tabs-mode: nil -*-
%% ex: ts=4 sw=4 ft=erlang et

%% == Erlang Compiler ==

{erl_opts, [
  warn_unused_vars,
  warnings_as_errors,
  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,
  debug_info
]}.

%% == Dependencies ==

{deps, [
  {worker_pool, "3.1.0"},
  {uuid, "1.5.2-rc1", {pkg, uuid_erl}},
  {iso8601, "1.2.3"}
]}.

%% == Profiles ==

{profiles, [
  {test, [
    {deps, [
      {katana_test, {git, "https://github.com/inaka/katana-test.git", {ref, "b26165d"}}},
      {mixer, "0.1.5", {pkg, inaka_mixer}},
      {fancyflow, {git, "https://github.com/ferd/fancyflow.git", {ref, "81cf9df"}}}
    ]}
  ]},
  {shell, [
    {deps, [
      {sync, {git, "https://github.com/rustyio/sync.git", {ref, "9c78e7b"}}}
    ]}
  ]}
]}.

%% == Common Test ==

{ct_compile_opts, [
  warn_unused_vars,
  warn_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,
  debug_info
]}.

{ct_opts, [
  {sys_config, ["config/sys.config"]}
]}.

%% == Cover ==

{cover_enabled, true}.

{cover_opts, [verbose]}.

%% == EDoc ==

{edoc_opts, [
  {report_missing_types, true},
  {source_path, ["src"]},
  {report_missing_types, true},
  {todo, true},
  {packages, false},
  {subpackages, false}
]}.

%% == Dialyzer ==

{dialyzer, [
  {warnings, [
    race_conditions,
    no_return,
    unmatched_returns,
    error_handling
  ]},
  {plt_apps, top_level_deps},
  {plt_extra_apps, []},
  {plt_location, local},
  {plt_prefix, "sumo_db"},
  {base_plt_location, "."},
  {base_plt_prefix, "sumo_db"}
]}.

{plugins, [rebar3_hex]}.

%% == Shell ==

{shell, [{apps, [sumo_db]}]}.
