%% Common project erlang options. {erl_opts, [ % mandatory debug_info, warnings_as_errors, warn_export_all, warn_missing_spec, warn_untyped_record, warn_export_vars, % by default warn_unused_record, warn_bif_clash, warn_obsolete_guard, warn_unused_vars, warn_shadow_vars, warn_unused_import, warn_unused_function, warn_deprecated_function % at will % bin_opt_info % no_auto_import % warn_missing_spec_all ]}. %% Common project dependencies. {deps, [ {prometheus, "4.8.1"}, {prometheus_cowboy, "0.1.8"}, {cowboy, "2.9.0"}, %% NOTE %% Pinning to version "1.11.2" from hex here causes constant upgrading and recompilation of the entire project {jose, {git, "https://github.com/potatosalad/erlang-jose.git", {tag, "1.11.2"}}}, {genlib, {git, "https://github.com/valitydev/genlib.git", {branch, "master"}}}, {cowboy_draining_server, {git, "https://github.com/valitydev/cowboy_draining_server.git", {branch, "master"}}}, {woody, {git, "https://github.com/valitydev/woody_erlang.git", {branch, master}}}, {woody_user_identity, {git, "https://github.com/valitydev/woody_erlang_user_identity.git", {branch, "master"}}}, {damsel, {git, "https://github.com/valitydev/damsel.git", {branch, "master"}}}, {bender_proto, {git, "https://github.com/valitydev/bender-proto.git", {branch, "master"}}}, {bender_client, {git, "https://github.com/valitydev/bender-client-erlang.git", {branch, "master"}}}, {dmt_client, {git, "https://github.com/valitydev/dmt_client.git", {branch, "master"}}}, {cowboy_cors, {git, "https://github.com/valitydev/cowboy_cors.git", {branch, "master"}}}, {cowboy_access_log, {git, "https://github.com/valitydev/cowboy_access_log.git", {branch, "master"}}}, {payproc_errors, {git, "https://github.com/valitydev/payproc-errors-erlang.git", {branch, "master"}}}, {scoper, {git, "https://github.com/valitydev/scoper.git", {branch, "master"}}}, {erl_health, {git, "https://github.com/valitydev/erlang-health.git", {branch, master}}}, {lechiffre, {git, "https://github.com/valitydev/lechiffre.git", {branch, master}}}, {bouncer_proto, {git, "https://github.com/valitydev/bouncer-proto.git", {branch, master}}}, {bouncer_client, {git, "https://github.com/valitydev/bouncer-client-erlang.git", {branch, master}}}, {token_keeper_client, {git, "https://github.com/valitydev/token-keeper-client.git", {branch, master}}}, {party_client, {git, "https://github.com/valitydev/party-client-erlang.git", {branch, master}}}, {payout_manager_proto, {git, "https://github.com/valitydev/payout-manager-proto.git", {branch, master}}}, {feat, {git, "https://github.com/valitydev/feat.git", {branch, master}}}, {magista_proto, {git, "https://github.com/valitydev/magista-proto.git", {branch, master}}}, %% Libraries generated with swagger-codegen-erlang from valitydev/swag-payments {swag_server, {git, "https://github.com/valitydev/swag-payments", {branch, "release/erlang/server/v2"}}}, {swag_client, {git, "https://github.com/valitydev/swag-payments", {branch, "release/erlang/client/v2"}}}, %% OpenTelemetry deps {opentelemetry_api, "1.2.1"}, {opentelemetry, "1.3.0"}, {opentelemetry_exporter, "1.3.0"} ]}. %% XRef checks {xref_checks, [ undefined_function_calls, undefined_functions, deprecated_functions_calls, deprecated_functions ]}. % at will % {xref_warnings, true}. %% Tests {cover_enabled, true}. %% Dialyzer static analyzing {dialyzer, [ {warnings, [ % mandatory unmatched_returns, error_handling, % race_conditions, unknown ]}, {plt_apps, all_deps} ]}. {profiles, [ {prod, [ {deps, [ %% NOTE %% Because of a dependency conflict, prometheus libs are only included in production build for now %% https://github.com/project-fifo/rebar3_lint/issues/42 %% https://github.com/valitydev/hellgate/pull/2/commits/884724c1799703cee4d1033850fe32c17f986d9e {recon, "2.3.6"}, {logger_logstash_formatter, {git, "https://github.com/valitydev/logger_logstash_formatter.git", {ref, "08a66a6"}}}, {iosetopts, {git, "https://github.com/valitydev/iosetopts.git", {ref, "edb445c"}}} ]}, {relx, [ {release, {capi, "0.1.0"}, [ iosetopts, % tools for introspection {recon, load}, % debugger {runtime_tools, load}, % profiler {tools, load}, {opentelemetry, temporary}, logger_logstash_formatter, prometheus, prometheus_cowboy, sasl, capi ]}, {mode, minimal}, {sys_config, "./config/sys.config"}, {vm_args, "./config/vm.args"}, {extended_start_script, true} ]} ]}, {test, [ {dialyzer, [{plt_extra_apps, [eunit, common_test, runtime_tools, bender_proto, payout_manager_proto]}]} ]} ]}. {plugins, [ {covertool, "2.0.4"}, {erlfmt, "1.0.0"}, {rebar3_lint, "1.0.1"} ]}. {erlfmt, [ {print_width, 120}, {files, ["apps/capi*/{src,include,test}/*.{hrl,erl}", "rebar.config", "elvis.config"]} ]}. {covertool, [ {coverdata_files, [ "eunit.coverdata", "ct.coverdata" ]} ]}. %% NOTE %% It is needed to use rebar3 lint plugin {overrides, [ {del, accept, [{plugins, [{rebar3_archive_plugin, "0.0.2"}]}]}, {del, prometheus_cowboy, [{plugins, [{rebar3_archive_plugin, "0.0.1"}]}]}, {del, prometheus_httpd, [{plugins, [{rebar3_archive_plugin, "0.0.1"}]}]} ]}.