diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cdee88e..9702040 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,44 +11,44 @@ on: jobs: compile: name: Compile code - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: - otp-version: '23.3.4.18' - rebar3-version: '3.16.1' + otp-version: '25.3.2.21' + rebar3-version: '3.24.0' - run: rebar3 compile test: name: Run Common Test tests - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: version-type: 'strict' - otp-version: '23.3.4.18' - rebar3-version: '3.16.1' + otp-version: '25.3.2.21' + rebar3-version: '3.24.0' - run: rebar3 ct dialyzer: name: Run Dialyzer - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: version-type: 'strict' - otp-version: '23.3.4.18' - rebar3-version: '3.16.1' + otp-version: '25.3.2.21' + rebar3-version: '3.24.0' - run: rebar3 dialyzer lint: name: Run elvis linting - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: version-type: 'strict' - otp-version: '23.3.4.18' - rebar3-version: '3.16.1' + otp-version: '25.3.2.21' + rebar3-version: '3.24.0' - run: rebar3 lint diff --git a/.tool-versions b/.tool-versions index d3f76b6..1d134ea 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -erlang 23.2.4 -rebar 3.16.1 +erlang 25.3.2.21 +rebar 3.24.0 diff --git a/rebar.config b/rebar.config index 723a6ab..9cf4a06 100644 --- a/rebar.config +++ b/rebar.config @@ -1,6 +1,6 @@ {erl_opts, [debug_info]}. {project_plugins, [ - {rebar3_lint, "2.0.0"}, + {rebar3_lint, "3.2.6"}, {rebar3_hex, "7.0.2"} ]}. {deps, [ diff --git a/src/eflambe.erl b/src/eflambe.erl index 18ea084..288e0dd 100644 --- a/src/eflambe.erl +++ b/src/eflambe.erl @@ -22,6 +22,8 @@ -type capture_return() :: {ok, [any()]} | {error, already_mecked}. +-export_type([mfa_fun/0, options/0, capture_return/0]). + -define(DEFAULT_OPTIONS, [{output_format, brendan_gregg}]). -define(DEFAULT_APPLY_OPTIONS, [{return, value}|?DEFAULT_OPTIONS]). -define(DEFAULT_CAPTURE_OPTIONS, [{return, filename}|?DEFAULT_OPTIONS]). diff --git a/src/eflambe_server.erl b/src/eflambe_server.erl index 72d6f6f..5bd2166 100644 --- a/src/eflambe_server.erl +++ b/src/eflambe_server.erl @@ -24,7 +24,7 @@ timestamp, set_on_spawn]). -record(state, { - callback :: {pid(), reference()}, + callback :: {pid(), gen_server:reply_tag()}, module :: atom(), max_calls :: integer(), calls = 0 :: integer(), @@ -44,12 +44,13 @@ tracer_pid :: pid() }). --type state() :: #state{}. --type pid_trace() :: #pid_trace{}. +-opaque state() :: #state{}. +-opaque pid_trace() :: #pid_trace{}. -type from() :: {pid(), Tag :: term()}. - -type tracer_options() :: [eflambe:option() | {pid, pid()} | {max_calls, pos_integer()}]. +-export_type([state/0, pid_trace/0, from/0, tracer_options/0]). + %%%=================================================================== %%% API %%%=================================================================== diff --git a/src/eflambe_tracer.erl b/src/eflambe_tracer.erl index 22132ed..1fb73be 100644 --- a/src/eflambe_tracer.erl +++ b/src/eflambe_tracer.erl @@ -35,11 +35,12 @@ return :: atom() }). --type state() :: #state{}. +-opaque state() :: #state{}. -type from() :: {pid(), Tag :: term()}. - -type tracer_options() :: [eflambe:option() | {pid, pid()}]. +-export_type([state/0, from/0, tracer_options/0]). + %%%=================================================================== %%% API %%%===================================================================