Current section

Files

Jump to
dns_erlang rebar.config
Raw

rebar.config

{erl_opts, [
debug_info,
inline,
inline_list_funcs,
warnings_as_errors,
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,
% warn_unused_vars, warn_untyped_record, warn_missing_spec, warn_missing_doc,
% %% Disabled because of ASN1 generated code
{feature, maybe_expr, enable}
]}.
{project_plugins, [
{rebar3_depup, "~> 0.4"},
{rebar3_hex, "~> 7.0"},
{rebar3_ex_doc, "~> 0.2"},
{rebar3_lint, "~> 4.1"},
{erlfmt, "~> 1.7"},
{covertool, "~> 2.0"}
]}.
{deps, [{base32, "~> 1.0"}]}.
{plugins, [{provider_asn1, "~> 0.4"}]}.
{profiles, [
{test, [
{erl_opts, [nowarn_export_all, nowarn_missing_spec, nowarn_missing_doc]},
{eunit_opts, [verbose]},
{covertool, [{coverdata_files, ["eunit.coverdata", "ct.coverdata"]}]},
{cover_excl_mods, [dns_zone_lexer, dns_zone_parser]},
{cover_opts, [verbose, {min_coverage, 75}]},
{cover_export_enabled, true},
{cover_enabled, true}
]}
]}.
{provider_hooks, [
{pre, [{compile, {asn, compile}}]},
{post, [{clean, {asn, clean}}]}
]}.
{dialyzer, [
{warnings, [
no_return,
unmatched_returns,
error_handling,
unknown
]},
{plt_extra_apps, [asn1]}
]}.
{xref_ignores, [dns_zone_lexer, dns_zone_parser]}.
{xref_checks, [
locals_not_used,
undefined_functions,
undefined_function_calls,
{deprecated_function_calls, next_major_release},
{deprecated_functions, next_major_release}
]}.
{hex, [{doc, #{provider => ex_doc}}]}.
{ex_doc, [
{source_url, <<"https://github.com/dnsimple/dns_erlang">>},
{main, <<"readme">>},
{extras, [
<<"README.md">>,
<<"SUPPORTED_RFCS.md">>,
<<"CHANGELOG.md">>,
<<"LICENSE">>
]},
%% Exclude generated modules: DNS-ASN1, dns_zone_lexer, dns_zone_parser
{filter_modules, <<"^(?!DNS-ASN1$|dns_zone_lexer$|dns_zone_parser$)">>}
]}.
{erlfmt, [
write,
{files, ["{src,include,test,scripts}/*.{hrl,erl,escript}", "rebar.config"]},
{exclude_files, [
"include/DNS-ASN1.hrl",
"src/DNS-ASN1.erl",
"src/dns_zone_lexer.erl",
"src/dns_zone_parser.erl"
]}
]}.
{elvis, [
#{
dirs => ["src"],
filter => "*.erl",
rules => [
%% TODO: fix
{elvis_style, dont_repeat_yourself, #{min_complexity => 12}},
%% NOTE: keep
{elvis_style, private_data_types, #{ignore => [dns]}},
{elvis_style, no_throw, disable}
],
ruleset => erl_files,
ignore => ['DNS-ASN1', dns_zone_lexer, dns_zone_parser]
},
#{
dirs => ["include"],
filter => "*.hrl",
ruleset => hrl_files,
ignore => ["DNS-ASN1.hrl"],
rules => [
{elvis_style, no_nested_hrls, disable}
]
},
#{
dirs => ["."],
filter => "rebar.config",
ruleset => rebar_config
}
]}.