From c39665edbd3da94c9522359778925ec6375ecb93 Mon Sep 17 00:00:00 2001 From: ieQu1 <99872536+ieQu1@users.noreply.github.com> Date: Thu, 12 May 2022 10:41:31 +0200 Subject: [PATCH 1/3] refactor(bpapi): Un-chew formatting --- apps/emqx/test/emqx_bpapi_static_checks.erl | 31 ++++++--------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/apps/emqx/test/emqx_bpapi_static_checks.erl b/apps/emqx/test/emqx_bpapi_static_checks.erl index c889ba772..d906ea29a 100644 --- a/apps/emqx/test/emqx_bpapi_static_checks.erl +++ b/apps/emqx/test/emqx_bpapi_static_checks.erl @@ -61,15 +61,13 @@ % TODO: handle pmap -define(IGNORED_RPC_CALLS, "gen_rpc:nodes/0, emqx_rpc:unwrap_erpc/1"). %% List of business-layer functions that are exempt from the checks: +%% erlfmt-ignore -define(EXEMPTIONS, - % Reason: legacy code. A fun and a QC query are - "emqx_mgmt_api:do_query/6," - % passed in the args, it's futile to try to statically - % check it - - % Reason: some sort of external plugin API that we - "emqx_plugin_libs_rule:cluster_call/3" - % don't want to break? + "emqx_mgmt_api:do_query/6," % Reason: legacy code. A fun and a QC query are + % passed in the args, it's futile to try to statically + % check it + "emqx_plugin_libs_rule:cluster_call/3" % Reason: some sort of external plugin API that we + % don't want to break? ). -define(XREF, myxref). @@ -260,22 +258,11 @@ prepare(#{reldir := RelDir, plt := PLT}) -> logger:info("Loading PLT...", []), dialyzer_plt:from_file(PLT). +%% erlfmt-ignore find_remote_calls(_Opts) -> Query = - "XC | (A - [" - ?IGNORED_APPS - "]:App - [" - ?IGNORED_MODULES - "]:Mod - [" - ?EXEMPTIONS - "])\n" - " || (([" - ?RPC_MODULES - "] : Mod + [" - ?RPC_FUNCTIONS - "]) - [" - ?IGNORED_RPC_CALLS - "])", + "XC | (A - ["?IGNORED_APPS"]:App - ["?IGNORED_MODULES"]:Mod - ["?EXEMPTIONS"]) + || ((["?RPC_MODULES"] : Mod + ["?RPC_FUNCTIONS"]) - ["?IGNORED_RPC_CALLS"])", {ok, Calls} = xref:q(?XREF, Query), logger:info("Calls to RPC modules ~p", [Calls]), {Callers, _Callees} = lists:unzip(Calls), From ace6ad25e91e8da0181b6b53efb30dcaec1b71bd Mon Sep 17 00:00:00 2001 From: ieQu1 <99872536+ieQu1@users.noreply.github.com> Date: Thu, 12 May 2022 11:06:06 +0200 Subject: [PATCH 2/3] fix(bpapi): Compile the code in check profile before running xref --- Makefile | 2 +- apps/emqx/test/emqx_bpapi_static_checks.erl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9bcae907d..686aaa099 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ ct: $(REBAR) conf-segs .PHONY: static_checks static_checks: - @$(REBAR) as check do xref, dialyzer, ct --suite apps/emqx/test/emqx_static_checks --readable $(CT_READABLE) + @$(REBAR) as check do dialyzer, xref, ct --suite apps/emqx/test/emqx_static_checks --readable $(CT_READABLE) APPS=$(shell $(CURDIR)/scripts/find-apps.sh) diff --git a/apps/emqx/test/emqx_bpapi_static_checks.erl b/apps/emqx/test/emqx_bpapi_static_checks.erl index d906ea29a..08ecf4632 100644 --- a/apps/emqx/test/emqx_bpapi_static_checks.erl +++ b/apps/emqx/test/emqx_bpapi_static_checks.erl @@ -218,7 +218,7 @@ dump() -> case { filelib:wildcard(project_root_dir() ++ "/*_plt"), - filelib:wildcard(project_root_dir() ++ "/_build/emqx*/lib") + filelib:wildcard(project_root_dir() ++ "/_build/check/lib") } of {[PLT | _], [RelDir | _]} -> From e71cac50318205e10eaa705a72c2918829e32643 Mon Sep 17 00:00:00 2001 From: ieQu1 <99872536+ieQu1@users.noreply.github.com> Date: Thu, 12 May 2022 11:49:01 +0200 Subject: [PATCH 3/3] chore(bpapi): Ensure versions are sorted alphabetically --- apps/emqx/priv/bpapi.versions | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/apps/emqx/priv/bpapi.versions b/apps/emqx/priv/bpapi.versions index 1c401deb6..80782beca 100644 --- a/apps/emqx/priv/bpapi.versions +++ b/apps/emqx/priv/bpapi.versions @@ -1,29 +1,28 @@ {emqx,1}. -{emqx_rule_engine,1}. -{emqx_bridge,1}. {emqx_authn,1}. {emqx_authz,1}. +{emqx_bridge,1}. {emqx_broker,1}. {emqx_cm,1}. {emqx_conf,1}. {emqx_dashboard,1}. +{emqx_delayed,1}. {emqx_exhook,1}. +{emqx_gateway_api_listeners,1}. {emqx_gateway_cm,1}. +{emqx_gateway_http,1}. +{emqx_license,1}. {emqx_management,1}. {emqx_mgmt_api_plugins,1}. -{emqx_license,1}. +{emqx_mgmt_cluster,1}. {emqx_mgmt_trace,1}. {emqx_persistent_session,1}. {emqx_plugin_libs,1}. {emqx_prometheus,1}. {emqx_resource,1}. +{emqx_retainer,1}. +{emqx_rule_engine,1}. {emqx_slow_subs,1}. {emqx_statsd,1}. {emqx_telemetry,1}. {emqx_topic_metrics,1}. -{emqx_delayed,1}. -{emqx_mgmt_cluster,1}. -{emqx_retainer,1}. -{emqx_gateway_http,1}. -{emqx_gateway_api_listeners,1}. -