Current section

Files

Jump to
reckon_gater rebar.config
Raw

rebar.config

{erl_opts, [
debug_info,
warnings_as_errors
]}.
{deps, [
{telemetry, "1.3.0"}
]}.
{shell, [
{apps, [reckon_gater]}
]}.
{profiles, [
{test, [
{deps, [
{proper, "1.4.0"},
{meck, "0.9.2"}
]},
{erl_opts, [debug_info, nowarn_export_all]},
{extra_src_dirs, ["test/unit", "test/integration"]}
]},
{prod, [
{erl_opts, [
debug_info,
deterministic
]}
]}
]}.
{project_plugins, [
rebar3_proper,
rebar3_ex_doc,
rebar3_hex,
rebar3_lint
]}.
%% Elvis style rules — shared macula_min ruleset (mirrors evoq). Targets the
%% structural smells (deep nesting, nested try/catch, if-expressions) rather
%% than the full erl_files ruleset. Run via `rebar3 lint`.
{elvis, [
{rulesets, #{
macula_min => [
{elvis_style, no_deep_nesting, #{level => 2}},
{elvis_style, no_nested_try_catch, #{}},
{elvis_style, no_if_expression, #{}}
]
}},
{config, [
#{files => ["src/**/*.erl"], ruleset => macula_min}
]}
]}.
{eunit_opts, [
verbose,
{report, {eunit_surefire, [{dir, "_build/test/reports"}]}}
]}.
{ct_opts, [
{dir, "test/integration"}
]}.
{cover_enabled, true}.
{cover_opts, [verbose]}.
{dialyzer, [
{warnings, [
unknown,
unmatched_returns,
error_handling,
underspecs
]},
{plt_apps, top_level_deps},
{plt_extra_apps, [kernel, stdlib, crypto, telemetry]}
]}.
{xref_checks, [
undefined_function_calls,
undefined_functions,
locals_not_used,
deprecated_function_calls,
deprecated_functions
]}.
%% Ex_doc configuration
{ex_doc, [
{extras, [
{"README.md", #{title => <<"Readme">>}},
{"LICENSE", #{title => <<"License">>}},
{"CHANGELOG.md", #{title => <<"Changelog">>}},
%% Getting Started
{"guides/configuration.md", #{title => <<"Configuration">>}},
{"guides/event_sourcing.md", #{title => <<"Event Sourcing">>}},
{"guides/cqrs.md", #{title => <<"CQRS">>}},
{"guides/repl.md", #{title => <<"Interactive REPL">>}},
%% Core Features
{"guides/subscriptions.md", #{title => <<"Subscriptions">>}},
{"guides/snapshots.md", #{title => <<"Snapshots">>}},
{"guides/shared_types.md", #{title => <<"Shared Types">>}},
{"guides/capability_security.md", #{title => <<"Capability Security">>}},
%% Advanced
{"guides/dcb.md", #{title => <<"Dynamic Consistency Boundary">>}},
{"guides/ccc.md", #{title => <<"Command Context Consistency">>}},
{"guides/temporal_queries.md", #{title => <<"Temporal Queries">>}},
{"guides/scavenging.md", #{title => <<"Scavenging">>}},
{"guides/causation.md", #{title => <<"Causation Tracking">>}},
{"guides/schema_evolution.md", #{title => <<"Schema Evolution">>}},
{"guides/stream_links.md", #{title => <<"Stream Links">>}},
{"guides/memory_pressure.md", #{title => <<"Memory Pressure">>}}
]},
{main, <<"README.md">>},
{source_url, <<"https://codeberg.org/reckon-db-org/reckon-gater">>},
{assets, #{<<"assets">> => <<"assets">>}}
]}.
%% Hex configuration
{hex, [
{doc, #{provider => ex_doc}}
]}.
%% Package metadata for hex.pm
{pkg, [
{name, reckon_gater},
{description, "Gateway for distributed access to reckon-db event stores. "
"Features UCAN-inspired capability tokens for decentralized "
"authorization, pg-based worker registry, load balancing with "
"exponential backoff, 10 dedicated PubSub channels, and "
"BEAM telemetry."},
{licenses, ["Apache-2.0"]},
{links, [
{"GitHub", "https://codeberg.org/reckon-db-org/reckon-gater"},
{"Docs", "https://hexdocs.pm/reckon_gater"},
{"reckon-db", "https://codeberg.org/reckon-db-org/reckon-db"}
]},
{files, [
"src",
"include",
"assets",
"rebar.config",
"rebar.lock",
"README.md",
"LICENSE",
"CHANGELOG.md",
"guides"
]},
{maintainers, ["Reckon-DB"]},
{build_tools, ["rebar3"]}
]}.