Current section
Files
Jump to
Current section
Files
rebar.config
{erl_opts, [
debug_info,
warn_export_vars,
warn_unused_vars,
warn_unused_import
]}.
{deps, [
%% Telemetry for observability
{telemetry, "1.3.0"}
]}.
%% NOTE: evoq defines its own types in include/evoq_types.hrl
%% Adapters (like reckon_evoq) translate between evoq types and
%% their backend-specific types (like reckon_gater types).
%% NOTE: evoq does NOT depend on any specific adapter (like reckon-evoq).
%% Applications using evoq must add their chosen adapter as a dependency
%% and configure it via application env:
%%
%% {evoq, [
%% {event_store_adapter, evoq_esdb_gater_adapter}
%% ]}
%%
%% For local development, use _checkouts with symlinks:
%% mkdir -p _checkouts
%% ln -s /path/to/reckon-gater _checkouts/reckon_gater
{profiles, [
{test, [
{deps, [
{proper, "1.4.0"},
{meck, "0.9.2"}
]},
{erl_opts, [nowarn_export_all]},
{extra_src_dirs, ["test/unit"]}
]}
]}.
%% EUnit options - only run specific unit test modules
%% Note: Integration tests (SUITE modules) are run via CT, not eunit
{eunit_opts, [verbose]}.
{eunit_tests, [{module, evoq_aggregate_tests}, {module, evoq_dispatcher_tests}, {module, evoq_store_subscription_tests}, {module, evoq_read_model_ets_tests}]}.
%% Common Test options
{ct_opts, [
{dir, "test/integration"}
]}.
{project_plugins, [
rebar3_hex,
rebar3_ex_doc,
rebar3_proper
]}.
%% Ex_doc configuration for hex.pm documentation
{ex_doc, [
{extras, [
{"README.md", #{title => <<"Overview">>}},
{"guides/architecture.md", #{title => <<"Architecture">>}},
{"guides/aggregates.md", #{title => <<"Aggregates">>}},
{"guides/event_handlers.md", #{title => <<"Event Handlers">>}},
{"guides/process_managers.md", #{title => <<"Process Managers">>}},
{"guides/projections.md", #{title => <<"Projections">>}},
{"guides/adapters.md", #{title => <<"Adapters">>}},
{"guides/bit_flags.md", #{title => <<"Bit Flags">>}},
{"CHANGELOG.md", #{title => <<"Changelog">>}},
{"LICENSE", #{title => <<"License">>}}
]},
{main, <<"README.md">>},
{source_url, <<"https://github.com/reckon-db-org/evoq">>},
{assets, #{<<"assets">> => <<"assets">>}}
]}.
{hex, [{doc, #{provider => ex_doc}}]}.
{cover_enabled, true}.
{cover_opts, [verbose]}.
{dialyzer, [
{warnings, [
unmatched_returns,
error_handling,
underspecs
]},
{plt_apps, top_level_deps}
]}.
{shell, [
{apps, [evoq]}
]}.