{minimum_otp_vsn, "28"}.

{erl_opts, [debug_info, warnings_as_errors]}.

{deps, [{telemetry, "~> 1.3"}]}.

{project_plugins, [
    erlfmt,
    rebar3_hex,
    rebar3_ex_doc,
    covertool,
    {rebar3_audit, "~> 0.2"}
]}.

{erlfmt, [write]}.

{dialyzer, [
    {warnings, [error_handling, unmatched_returns, unknown]},
    {plt_apps, all_deps}
]}.

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

{cover_enabled, true}.
{cover_export_enabled, true}.
{covertool, [{coverdata_files, ["eunit.coverdata", "ct.coverdata"]}]}.

{profiles, [
    {bench, [
        {extra_src_dirs, [{"bench", [{recursive, false}]}]},
        {erl_opts, [debug_info, nowarn_export_all]},
        {deps, [
            {pgo, "~> 0.20"},
            {epgsql, "~> 4.7"}
        ]}
    ]},
    {test, [
        {erl_opts, [debug_info, nowarn_export_all]},
        {deps, [
            {proper, "~> 1.4"},
            {pg_types, "~> 0.6.0"},
            {pgo, {git, "https://github.com/Taure/pgo.git", {tag, "v0.20.1-taure.2"}}}
        ]}
    ]}
]}.

{hex, [
    {doc, #{provider => ex_doc}},
    {include_files, [
        <<"src">>,
        <<"guides">>,
        <<"include">>,
        <<"rebar.config">>,
        <<"rebar.lock">>,
        <<"README.md">>,
        <<"CHANGELOG.md">>,
        <<"LICENSE">>
    ]}
]}.

{ex_doc, [
    {extras, [
        <<"README.md">>,
        <<"guides/getting-started.md">>,
        <<"guides/configuration.md">>,
        <<"guides/types.md">>,
        <<"guides/security.md">>,
        <<"guides/observability.md">>,
        <<"guides/design.md">>,
        <<"CHANGELOG.md">>,
        <<"LICENSE">>
    ]},
    {groups_for_extras, [
        {<<"Guides">>, [
            <<"guides/getting-started.md">>,
            <<"guides/configuration.md">>,
            <<"guides/types.md">>,
            <<"guides/security.md">>,
            <<"guides/observability.md">>,
            <<"guides/design.md">>
        ]}
    ]},
    {skip_undefined_reference_warnings_on, [<<"CHANGELOG.md">>]},
    {main, <<"readme">>},
    {proglang, erlang},
    {groups_for_modules, [
        {<<"API">>, [
            minato,
            minato_conn,
            minato_query,
            minato_codec,
            minato_oid,
            minato_protocol,
            minato_auth
        ]},
        {<<"Codecs">>, [
            minato_codec_scalar,
            minato_codec_numeric,
            minato_codec_datetime,
            minato_codec_array
        ]},
        {<<"Protocol">>, [minato_protocol_frontend, minato_protocol_backend]},
        {<<"Authentication">>, [minato_scram, minato_saslprep]}
    ]},
    {source_url, <<"https://github.com/Taure/minato">>},
    {homepage_url, <<"https://github.com/Taure/minato">>},
    {api_reference, true}
]}.
