reason: 'ce' (Community Edition) is only for internal use,
when it comes to user/customer facing descriptions,
we should use Opensource edition and Enterprise edition.
Similary, for user/customer facing shell prompt,
use `v` for Opensource edition and `e` for Enterprise
Given the implicit convention that an egress bridge containing the
`local_topic` config will forward messages without the need for a rule
action, this was added to avoid needing a rule action.
When `system_monitor`'s application is loaded, it sets a default
hostname:
```erlang
1> application:get_env(system_monitor, db_hostname).
undefined
2> application:load(system_monitor).
ok
3> application:get_env(system_monitor, db_hostname).
{ok,"localhost"}
```
And that makes tests crash when somehow it gets loaded.
By having a semantic `enable` field, we could avoid starting this
application by checking if the hostname is filled or not.
```
=ERROR REPORT==== 1-Dec-2022::13:57:20.855070 ===
** Generic server <0.7646.3> terminating
** Last message in was {command,epgsql_cmd_connect,
#{codecs => [],database => "postgres",
host => [],
password =>
#Fun<epgsql_cmd_connect.0.29916615>,
port => 5432,timeout => 5000,
username => "system_monitor"}}
** When Server state == {state,undefined,undefined,<<>>,undefined,on_message,
undefined,
{[],[]},
undefined,undefined,undefined,undefined,[],
information_redacted,[],undefined,undefined,
undefined,undefined,undefined,#{}}
** Reason for termination ==
** {badarg,
[{gen_tcp,connect_0,4,[{file,"gen_tcp.erl"},{line,207}]},
{epgsql_cmd_connect,open_socket,2,
[{file,
"/emqx/_build/default/lib/epgsql/src/commands/epgsql_cmd_connect.erl"},
{line,94}]},
{epgsql_cmd_connect,execute,2,
[{file,
"/emqx/_build/default/lib/epgsql/src/commands/epgsql_cmd_connect.erl"},
{line,54}]},
{epgsql_sock,command_exec,4,
[{file,"/emqx/_build/default/lib/epgsql/src/epgsql_sock.erl"},
{line,338}]},
{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,721}]},
{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,750}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}
** Client system_monitor_pg stacktrace
** [{gen,do_call,4,[{file,"gen.erl"},{line,214}]},
{gen_server,call,3,[{file,"gen_server.erl"},{line,243}]},
{epgsql,call_connect,2,
[{file,"/emqx/_build/default/lib/epgsql/src/epgsql.erl"},
{line,203}]},
{system_monitor_pg,connect,0,
[{file,"/emqx/_build/default/lib/system_monitor/src/system_monitor_pg.erl"},
{line,151}]},
{system_monitor_pg,initialize,0,
[{file,"/emqx/_build/default/lib/system_monitor/src/system_monitor_pg.erl"},
{line,142}]},
{system_monitor_pg,handle_info,2,
[{file,"/emqx/_build/default/lib/system_monitor/src/system_monitor_pg.erl"},
{line,92}]},
{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,695}]},
{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,771}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]
=CRASH REPORT==== 1-Dec-2022::13:57:20.855697 ===
crasher:
initial call: epgsql_sock:init/1
pid: <0.7646.3>
registered_name: []
exception exit: badarg
in function gen_tcp:connect_0/4 (gen_tcp.erl, line 207)
in call from epgsql_cmd_connect:open_socket/2 (/emqx/_build/default/lib/epgsql/src/commands/epgsql_cmd_connect.erl, line 94)
in call from epgsql_cmd_connect:execute/2 (/emqx/_build/default/lib/epgsql/src/commands/epgsql_cmd_connect.erl, line 54)
in call from epgsql_sock:command_exec/4 (/emqx/_build/default/lib/epgsql/src/epgsql_sock.erl, line 338)
in call from gen_server:try_handle_call/4 (gen_server.erl, line 721)
in call from gen_server:handle_msg/6 (gen_server.erl, line 750)
ancestors: [system_monitor_pg,system_monitor2_sup,system_monitor_sup,
<0.4297.3>]
message_queue_len: 0
messages: []
links: [<0.4303.3>]
dictionary: []
trap_exit: false
status: running
heap_size: 1598
stack_size: 29
reductions: 734
neighbours:
```
```
Run make eunit
escript: exception error: no match of right hand side value {error,enoent}
in function 'merge-i18n_escript__escript__1669__814803__620426__2':main/1 (/__w/emqx/emqx/source/scripts/merge-i18n.escript, line 13)
in call from escript:run/2 (escript.erl, line 750)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_em/1
in call from init:do_boot/3
make: *** [Makefile:225: conf-segs] Error 127
```