{erl_opts, [
    debug_info,
    {i, "include"},
    warnings_as_errors,
    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,
    warn_export_vars,
    warn_exported_vars
]}.

%% Dependencies
{deps, [
    {macula_neuroevolution, "~> 0.18.2"},
    {erl_esdb_gater, "~> 0.6.4"}
]}.

%% Project plugins
{project_plugins, [
    rebar3_hex,
    rebar3_ex_doc
]}.

%% Documentation with ex_doc
{ex_doc, [
    {extras, [
        {"README.md", #{title => "Overview"}},
        {"CHANGELOG.md", #{title => "Changelog"}}
    ]},
    {main, "README"},
    {source_url, "https://github.com/macula-io/macula-neuroevolution-esdb"},
    {prefix_ref_vsn_with_v, false}
]}.

%% Hex.pm package metadata
{hex, [
    {doc, #{provider => ex_doc}},
    {files, [
        "src",
        "include",
        "rebar.config",
        "rebar.lock",
        "README.md",
        "CHANGELOG.md",
        "LICENSE"
    ]}
]}.

%% Test configuration
{eunit_opts, [
    verbose,
    {report, {eunit_surefire, [{dir, "_build/test/logs"}]}}
]}.

{cover_enabled, true}.
{cover_opts, [verbose]}.

%% Dialyzer configuration
{dialyzer, [
    {warnings, [
        unmatched_returns,
        error_handling,
        unknown
    ]},
    {plt_apps, top_level_deps},
    {plt_location, local},
    {base_plt_location, global}
]}.

%% Profiles
{profiles, [
    {test, [
        {erl_opts, [
            debug_info,
            nowarn_export_all,
            {i, "include"}
        ]},
        {extra_src_dirs, [
            "test"
        ]}
    ]}
]}.

%% Shell configuration
{shell, [
    {apps, [macula_neuroevolution_esdb]}
]}.
