Closed Tonyhaenn closed 1 month ago
Here's the full console output
mix deps.compile
===> Analyzing applications...
===> Compiling p1_utils
==> elixir_uuid
warning: use Bitwise is deprecated. import Bitwise instead
│
2 │ use Bitwise, only_operators: true
│ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│
└─ lib/uuid.ex:2: UUID (module)
===> Analyzing applications...
===> Compiling telemetry
==> jason
warning: Decimal.new/1 is undefined (module Decimal is not available or is yet to be defined)
│
94 │ decimal.new(string)
│ ~
│
└─ (jason 1.4.3) lib/decoder.ex:94:17: Jason.Decoder.float_decode_function/1
warning: struct Decimal.Error is undefined (module Decimal.Error is not available or is yet to be defined)
└─ (jason 1.4.3) lib/decoder.ex: Jason.Decoder.float_decode_function/1
warning: Decimal.to_string/2 is undefined (module Decimal is not available or is yet to be defined)
│
242 │ [?", decimal.to_string(value, :normal), ?"]
│ ~
│
└─ (jason 1.4.3) lib/encode.ex:242:18: Jason.Encode.struct/4
warning: Decimal.to_string/1 is undefined (module Decimal is not available or is yet to be defined)
│
231 │ [?", decimal.to_string(value), ?"]
│ ~
│
└─ (jason 1.4.3) lib/encoder.ex:231:18: Jason.Encoder.Decimal.encode/2
==> bunch_native
Bundlex: Building natives: lib, bunch
==> shmex
Bundlex: Building natives: lib, shmex
==> unifex
Bundlex: Building natives: unifex
==> ex_dtls
Bundlex: Building natives: native
warning: Bundlex: `pkg_configs` option has been deprecated. Please use `os_deps` option.
warning: Bundlex: Native :native uses deprecated syntax for `os_deps`. See `Bundlex.Project.os_dep` for the new syntax.
warning: Bundlex: `pkg_configs` option has been deprecated. Please use `os_deps` option.
warning: Bundlex: Native :native uses deprecated syntax for `os_deps`. See `Bundlex.Project.os_dep` for the new syntax.
ld: warning: ignoring duplicate libraries: '-lpthread'
===> Uncaught error in rebar_core. Run with DIAGNOSTIC=1 to see stacktrace or consult rebar3.crashdump
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
==> fake_turn_elixir_117
** (Mix) Could not compile dependency :fast_tls, "/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3 bare compile --paths /Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/*/ebin" command failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile fast_tls --force", update it with "mix deps.update fast_tls" or clean it with "mix deps.clean fast_tls"
Trying with the DIAGNOSTIC=1 suggestion from the error, gives me this:
> DIAGNOSTIC=1 mix deps.compile fast_tls --force
===> Setting paths to [deps]
===> Compile (apps)
===> Setting paths to [plugins]
===> Setting paths to [deps]
===> Setting paths to [plugins]
===> Setting paths to [plugins]
===> Expanded command sequence to be run: []
===> Running provider: do
===> Expanded command sequence to be run: [app_discovery,{bare,compile}]
===> Running provider: app_discovery
===> Found top-level apps: [fast_tls]
using config: [{src_dirs,["src"]},{lib_dirs,["apps/*","lib/*","."]}]
===> Setting paths to [deps]
===> Compile (apps)
===> Setting paths to [plugins]
===> Setting paths to [deps]
===> Setting paths to [plugins]
===> Setting paths to [plugins]
===> Not adding provider pc compile from module pc_prv_compile because it already exists from module pc_prv_compile
===> Not adding provider pc clean from module pc_prv_clean because it already exists from module pc_prv_clean
===> Running provider: {bare,compile}
===> Compile (untagged)
===> Running hooks for compile in app fast_tls (/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls) with configuration:
===> Setting paths to [plugins]
===> {provider_hooks, [{pre, [{pc,compile}]}]}.
===> Running provider: {pc,compile}
===> Running hooks for {pc,compile} with configuration:
===> {provider_hooks, []}.
===> {pre_hooks, []}.
===> run_hooks("/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls", pre_hooks, {pc,
compile}) -> no hooks defined
===> Uncaught error in rebar_core. Run with DIAGNOSTIC=1 to see stacktrace or consult rebar3.crashdump
===> Uncaught error: undef
===> Stack trace to the error location:
[{pc_port_env,construct,
[{state_t,"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls",
{dict,21,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default},{p1_utils,"1.0.23"}],
[{plugins,default},pc],
[{project_plugins,default}],
[coveralls_coverdata,95,98,117,105,108,100,47,116,101,115,
116,47,99,111,118,101,114,47,101,117,110,105,116,46,99,111,
118,101,114,100,97,116,97]],
[[base_dir,47,85,115,101,114,115,47,116,111,110,121,47,114,
101,112,111,115,47,102,97,107,101,95,116,117,114,110,95,101,
108,105,120,105,114,95,49,49,55,47,100,101,112,115,47,102,
97,115,116,95,116,108,115,47,95,98,117,105,108,100],
[deps_dir,108,105,98]],
[[erl_opts,debug_info,{src_dirs,["src"]},{d,'REBAR3'}],
[provider_hooks,
{pre,[{compile,{pc,compile}},{clean,{pc,clean}}]}],
[plugins,pc],
[deps,{p1_utils,"1.0.23"}],
[port_specs,
{"priv/lib/fast_tls.so",
["c_src/fast_tls.c","c_src/ioqueue.c"]},
{"priv/lib/p1_sha.so",["c_src/p1_sha.c"]}],
[clean_files,"c_src/fast_tls.gcda","c_src/fast_tls.gcno",
"c_src/fast_sha.gcda","c_src/fast_sha.gcno",
"c_src/ioqueue.gcda","c_src/ioqueue.gcno"],
[xref_checks,undefined_function_calls,undefined_functions,
deprecated_function_calls,deprecated_functions],
[profiles,
{test,
[{erl_opts,[{d,'TEST'},{src_dirs,["src","test"]}]},
{extra_src_dirs,[{"test",[{recursive,false}]}]}]}],
[overrides]],
[[cover_enabled|true],[cover_export_enabled|true]],
[[coveralls_service_name,103,105,116,104,117,98],
[offline|false]],
[[port_env,
{"LDFLAGS","$LDFLAGS -lssl -lcrypto -lssl -lcrypto"},
{"CFLAGS","$CFLAGS -DHAS_ERTS_EXIT -g -O2 -Wall"},
{"ERL_LDFLAGS"," -L$ERL_EI_LIBDIR -lei"},
{"darwin","DRV_LDFLAGS",
"-bundle -bundle_loader \"${BINDIR}/beam.smp\" $ERL_LDFLAGS"}]],
[],[],[],[],
[[task|compile]],
[],[],[],[]}}},
{dict,2,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],[],[],
[[all_plugin_deps,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/ebin",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/ebin"]],
[[default,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/ssl_verify_fun/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/relx/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/rebar/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/providers/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/getopt/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/eunit_formatters/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/erlware_commons/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/cth_readable/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/cf/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/certifi/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3/bbmustache/ebin",
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3",
".",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/kernel-10.0.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/stdlib-6.0.1/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/zarex/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/unifex/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/telemetry_metrics/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/telemetry/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/shmex/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/req/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/qex/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/p1_utils/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/numbers/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/nimble_pool/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/nimble_options/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/mint/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/mime/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/membrane_telemetry_metrics/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/jason/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/hpax/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/finch/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/ex_dtls/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/elixir_uuid/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/coerce/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/castore/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/bundlex/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/bunch_native/ebin",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/bunch/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/xmerl-2.0/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/wx-2.4.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/tools-4.0/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/tftp-1.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/syntax_tools-3.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/ssl-11.2.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/ssh-5.2.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/snmp-5.16/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/sasl-4.2.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/runtime_tools-2.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/reltool-1.0.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/public_key-1.16.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/parsetools-2.6/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/os_mon-2.10/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/observer-2.16/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/mnesia-4.23.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/megaco-4.6/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/inets-9.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/ftp-1.2.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/eunit-2.9.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/et-1.7.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/erts-15.0.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/erl_interface-5.5.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/eldap-1.2.13/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/edoc-1.3.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/diameter-2.4/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/dialyzer-5.2/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/debugger-5.4/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/crypto-5.5/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/compiler-8.5.1/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/common_test-1.27/ebin",
"/Users/tony/.asdf/installs/erlang/27.0.1/lib/asn1-5.3/ebin"]],
[],[],[],[],[],[],[],[],[],[],[]}}},
{dict,19,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default},{p1_utils,"1.0.23"}],
[{plugins,default},pc],
[{project_plugins,default}],
[coveralls_coverdata,95,98,117,105,108,100,47,116,101,115,
116,47,99,111,118,101,114,47,101,117,110,105,116,46,99,111,
118,101,114,100,97,116,97]],
[[base_dir,47,85,115,101,114,115,47,116,111,110,121,47,114,
101,112,111,115,47,102,97,107,101,95,116,117,114,110,95,101,
108,105,120,105,114,95,49,49,55,47,100,101,112,115,47,102,
97,115,116,95,116,108,115,47,95,98,117,105,108,100],
[deps_dir,108,105,98]],
[[erl_opts,debug_info,{src_dirs,["src"]},{d,'REBAR3'}],
[provider_hooks,
{pre,[{compile,{pc,compile}},{clean,{pc,clean}}]}],
[plugins,pc],
[deps,{p1_utils,"1.0.23"}],
[port_specs,
{"priv/lib/fast_tls.so",
["c_src/fast_tls.c","c_src/ioqueue.c"]},
{"priv/lib/p1_sha.so",["c_src/p1_sha.c"]}],
[clean_files,"c_src/fast_tls.gcda","c_src/fast_tls.gcno",
"c_src/fast_sha.gcda","c_src/fast_sha.gcno",
"c_src/ioqueue.gcda","c_src/ioqueue.gcno"],
[xref_checks,undefined_function_calls,undefined_functions,
deprecated_function_calls,deprecated_functions],
[profiles,
{test,
[{erl_opts,[{d,'TEST'},{src_dirs,["src","test"]}]},
{extra_src_dirs,[{"test",[{recursive,false}]}]}]}],
[overrides]],
[[cover_enabled|true],[cover_export_enabled|true]],
[[coveralls_service_name,103,105,116,104,117,98]],
[[port_env,
{"LDFLAGS","$LDFLAGS -lssl -lcrypto -lssl -lcrypto"},
{"CFLAGS","$CFLAGS -DHAS_ERTS_EXIT -g -O2 -Wall"},
{"ERL_LDFLAGS"," -L$ERL_EI_LIBDIR -lei"},
{"darwin","DRV_LDFLAGS",
"-bundle -bundle_loader \"${BINDIR}/beam.smp\" $ERL_LDFLAGS"}]],
[],[],[],[],[],[],[],[],[]}}},
"/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3",
[],
[default,prod],
default,[],
{[],[]},
{app_info_t,<<"fast_tls">>,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/src/fast_tls.app.src",
undefined,undefined,"1.1.13","1.1.13",root,
[{description,
"TLS / SSL OpenSSL-based native driver for Erlang / Elixir"},
{vsn,"1.1.13"},
{modules,[]},
{registered,[]},
{applications,[kernel,stdlib,crypto,p1_utils]},
{files,
["src/","c_src/fast_tls.c","c_src/uthash.h",
"c_src/options.h","c_src/p1_sha.c","c_src/stdint.h",
"c_src/ioqueue.h","c_src/ioqueue.c","configure",
"vars.config.in","rebar.config","rebar.config.script",
"README.md","LICENSE.txt"]},
{licenses,["Apache 2.0"]},
{links,[{"Github","https://github.com/processone/fast_tls"}]}],
[kernel,stdlib,crypto,p1_utils],
[],[],
[<<"p1_utils">>],
[default,prod],
{dict,21,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default},{p1_utils,"1.0.23"}],
[{plugins,default},pc],
[{project_plugins,default}],
[coveralls_coverdata,95,98,117,105,108,100,47,116,101,
115,116,47,99,111,118,101,114,47,101,117,110,105,116,46,
99,111,118,101,114,100,97,116,97]],
[[base_dir,47,85,115,101,114,115,47,116,111,110,121,47,
114,101,112,111,115,47,102,97,107,101,95,116,117,114,
110,95,101,108,105,120,105,114,95,49,49,55,47,100,101,
112,115,47,102,97,115,116,95,116,108,115,47,95,98,117,
105,108,100],
[deps_dir,108,105,98]],
[[erl_opts,debug_info,{src_dirs,["src"]},{d,'REBAR3'}],
[provider_hooks,
{pre,[{compile,{pc,compile}},{clean,{pc,clean}}]}],
[plugins,pc],
[deps,{p1_utils,"1.0.23"}],
[port_specs,
{"priv/lib/fast_tls.so",
["c_src/fast_tls.c","c_src/ioqueue.c"]},
{"priv/lib/p1_sha.so",["c_src/p1_sha.c"]}],
[clean_files,"c_src/fast_tls.gcda","c_src/fast_tls.gcno",
"c_src/fast_sha.gcda","c_src/fast_sha.gcno",
"c_src/ioqueue.gcda","c_src/ioqueue.gcno"],
[xref_checks,undefined_function_calls,
undefined_functions,deprecated_function_calls,
deprecated_functions],
[profiles,
{test,
[{erl_opts,[{d,'TEST'},{src_dirs,["src","test"]}]},
{extra_src_dirs,[{"test",[{recursive,false}]}]}]}],
[overrides]],
[[cover_enabled|true],[cover_export_enabled|true]],
[[coveralls_service_name,103,105,116,104,117,98],
[offline|false]],
[[port_env,
{"LDFLAGS","$LDFLAGS -lssl -lcrypto -lssl -lcrypto"},
{"CFLAGS","$CFLAGS -DHAS_ERTS_EXIT -g -O2 -Wall"},
{"ERL_LDFLAGS"," -L$ERL_EI_LIBDIR -lei"},
{"darwin","DRV_LDFLAGS",
"-bundle -bundle_loader \"${BINDIR}/beam.smp\" $ERL_LDFLAGS"}]],
[],[],[],[],
[[task|compile]],
[],[],[],[]}}},
{dict,21,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default},{p1_utils,"1.0.23"}],
[{plugins,default},pc],
[{project_plugins,default}],
[coveralls_coverdata,95,98,117,105,108,100,47,116,101,
115,116,47,99,111,118,101,114,47,101,117,110,105,116,46,
99,111,118,101,114,100,97,116,97]],
[[base_dir,47,85,115,101,114,115,47,116,111,110,121,47,
114,101,112,111,115,47,102,97,107,101,95,116,117,114,
110,95,101,108,105,120,105,114,95,49,49,55,47,100,101,
112,115,47,102,97,115,116,95,116,108,115,47,95,98,117,
105,108,100],
[deps_dir,108,105,98]],
[[erl_opts,debug_info,{src_dirs,["src"]},{d,'REBAR3'}],
[provider_hooks,
{pre,[{compile,{pc,compile}},{clean,{pc,clean}}]}],
[plugins,pc],
[deps,{p1_utils,"1.0.23"}],
[port_specs,
{"priv/lib/fast_tls.so",
["c_src/fast_tls.c","c_src/ioqueue.c"]},
{"priv/lib/p1_sha.so",["c_src/p1_sha.c"]}],
[clean_files,"c_src/fast_tls.gcda","c_src/fast_tls.gcno",
"c_src/fast_sha.gcda","c_src/fast_sha.gcno",
"c_src/ioqueue.gcda","c_src/ioqueue.gcno"],
[xref_checks,undefined_function_calls,
undefined_functions,deprecated_function_calls,
deprecated_functions],
[profiles,
{test,
[{erl_opts,[{d,'TEST'},{src_dirs,["src","test"]}]},
{extra_src_dirs,[{"test",[{recursive,false}]}]}]}],
[overrides]],
[[cover_enabled|true],[cover_export_enabled|true]],
[[coveralls_service_name,103,105,116,104,117,98],
[offline|false]],
[[port_env,
{"LDFLAGS","$LDFLAGS -lssl -lcrypto -lssl -lcrypto"},
{"CFLAGS","$CFLAGS -DHAS_ERTS_EXIT -g -O2 -Wall"},
{"ERL_LDFLAGS"," -L$ERL_EI_LIBDIR -lei"},
{"darwin","DRV_LDFLAGS",
"-bundle -bundle_loader \"${BINDIR}/beam.smp\" $ERL_LDFLAGS"}]],
[],[],[],[],
[[task|compile]],
[],[],[],[]}}},
0,undefined,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/fast_tls",
"/Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/fast_tls/ebin",
undefined,false,false,false,undefined,false},
[{app_info_t,<<"fast_tls">>,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/src/fast_tls.app.src",
undefined,undefined,"1.1.13","1.1.13",root,
[{description,
"TLS / SSL OpenSSL-based native driver for Erlang / Elixir"},
{vsn,"1.1.13"},
{modules,[]},
{registered,[]},
{applications,[kernel,stdlib,crypto,p1_utils]},
{files,
["src/","c_src/fast_tls.c","c_src/uthash.h",
"c_src/options.h","c_src/p1_sha.c","c_src/stdint.h",
"c_src/ioqueue.h","c_src/ioqueue.c","configure",
"vars.config.in","rebar.config","rebar.config.script",
"README.md","LICENSE.txt"]},
{licenses,["Apache 2.0"]},
{links,[{"Github","https://github.com/processone/fast_tls"}]}],
[kernel,stdlib,crypto,p1_utils],
[],[],
[<<"p1_utils">>],
[default,prod],
{dict,21,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default},{p1_utils,"1.0.23"}],
[{plugins,default},pc],
[{project_plugins,default}],
[coveralls_coverdata,95,98,117,105,108,100,47,116,101,
115,116,47,99,111,118,101,114,47,101,117,110,105,116,
46,99,111,118,101,114,100,97,116,97]],
[[base_dir,47,85,115,101,114,115,47,116,111,110,121,47,
114,101,112,111,115,47,102,97,107,101,95,116,117,114,
110,95,101,108,105,120,105,114,95,49,49,55,47,100,101,
112,115,47,102,97,115,116,95,116,108,115,47,95,98,117,
105,108,100],
[deps_dir,108,105,98]],
[[erl_opts,debug_info,{src_dirs,["src"]},{d,'REBAR3'}],
[provider_hooks,
{pre,[{compile,{pc,compile}},{clean,{pc,clean}}]}],
[plugins,pc],
[deps,{p1_utils,"1.0.23"}],
[port_specs,
{"priv/lib/fast_tls.so",
["c_src/fast_tls.c","c_src/ioqueue.c"]},
{"priv/lib/p1_sha.so",["c_src/p1_sha.c"]}],
[clean_files,"c_src/fast_tls.gcda",
"c_src/fast_tls.gcno","c_src/fast_sha.gcda",
"c_src/fast_sha.gcno","c_src/ioqueue.gcda",
"c_src/ioqueue.gcno"],
[xref_checks,undefined_function_calls,
undefined_functions,deprecated_function_calls,
deprecated_functions],
[profiles,
{test,
[{erl_opts,[{d,'TEST'},{src_dirs,["src","test"]}]},
{extra_src_dirs,[{"test",[{recursive,false}]}]}]}],
[overrides]],
[[cover_enabled|true],[cover_export_enabled|true]],
[[coveralls_service_name,103,105,116,104,117,98],
[offline|false]],
[[port_env,
{"LDFLAGS","$LDFLAGS -lssl -lcrypto -lssl -lcrypto"},
{"CFLAGS","$CFLAGS -DHAS_ERTS_EXIT -g -O2 -Wall"},
{"ERL_LDFLAGS"," -L$ERL_EI_LIBDIR -lei"},
{"darwin","DRV_LDFLAGS",
"-bundle -bundle_loader \"${BINDIR}/beam.smp\" $ERL_LDFLAGS"}]],
[],[],[],[],
[[task|compile]],
[],[],[],[]}}},
{dict,21,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default},{p1_utils,"1.0.23"}],
[{plugins,default},pc],
[{project_plugins,default}],
[coveralls_coverdata,95,98,117,105,108,100,47,116,101,
115,116,47,99,111,118,101,114,47,101,117,110,105,116,
46,99,111,118,101,114,100,97,116,97]],
[[base_dir,47,85,115,101,114,115,47,116,111,110,121,47,
114,101,112,111,115,47,102,97,107,101,95,116,117,114,
110,95,101,108,105,120,105,114,95,49,49,55,47,100,101,
112,115,47,102,97,115,116,95,116,108,115,47,95,98,117,
105,108,100],
[deps_dir,108,105,98]],
[[erl_opts,debug_info,{src_dirs,["src"]},{d,'REBAR3'}],
[provider_hooks,
{pre,[{compile,{pc,compile}},{clean,{pc,clean}}]}],
[plugins,pc],
[deps,{p1_utils,"1.0.23"}],
[port_specs,
{"priv/lib/fast_tls.so",
["c_src/fast_tls.c","c_src/ioqueue.c"]},
{"priv/lib/p1_sha.so",["c_src/p1_sha.c"]}],
[clean_files,"c_src/fast_tls.gcda",
"c_src/fast_tls.gcno","c_src/fast_sha.gcda",
"c_src/fast_sha.gcno","c_src/ioqueue.gcda",
"c_src/ioqueue.gcno"],
[xref_checks,undefined_function_calls,
undefined_functions,deprecated_function_calls,
deprecated_functions],
[profiles,
{test,
[{erl_opts,[{d,'TEST'},{src_dirs,["src","test"]}]},
{extra_src_dirs,[{"test",[{recursive,false}]}]}]}],
[overrides]],
[[cover_enabled|true],[cover_export_enabled|true]],
[[coveralls_service_name,103,105,116,104,117,98],
[offline|false]],
[[port_env,
{"LDFLAGS","$LDFLAGS -lssl -lcrypto -lssl -lcrypto"},
{"CFLAGS","$CFLAGS -DHAS_ERTS_EXIT -g -O2 -Wall"},
{"ERL_LDFLAGS"," -L$ERL_EI_LIBDIR -lei"},
{"darwin","DRV_LDFLAGS",
"-bundle -bundle_loader \"${BINDIR}/beam.smp\" $ERL_LDFLAGS"}]],
[],[],[],[],
[[task|compile]],
[],[],[],[]}}},
0,undefined,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/prod/lib/fast_tls",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/prod/lib/fast_tls/ebin",
undefined,false,false,false,undefined,false}],
[],
[{app_info_t,<<"pc">>,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc.app.src",
undefined,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/ebin/pc.app",
"1.14.0","1.14.0",root,
[{description,"a rebar3 port compiler for native code"},
{vsn,"1.14.0"},
{registered,[]},
{applications,[kernel,stdlib]},
{env,[]},
{modules,
[pc,pc_compilation,pc_port_specs,pc_prv_clean,
pc_prv_compile,pc_util]},
{licenses,["MIT"]},
{links,[{"Github","https://github.com/blt/port_compiler"}]}],
[kernel,stdlib],
[],[],[],
[default,prod],
{dict,6,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default}],[{plugins,default}],[{locks,default}]],
[],
[[erl_opts,debug_info,inline_list_funcs,
warn_deprecated_function,warn_export_all,
warn_export_vars,warn_obsolete_guard,warn_shadow_vars,
warn_untyped_record,warn_unused_function,
warn_unused_import,warnings_as_errors],
[xref_checks,undefined_function_calls,
undefined_functions,locals_not_used,
deprecated_function_calls,deprecated_functions],
[overrides]],
[],[],[],[],[],[],[],[],[],[],[],[]}}},
{dict,6,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default}],[{plugins,default}],[{locks,default}]],
[],
[[erl_opts,debug_info,inline_list_funcs,
warn_deprecated_function,warn_export_all,
warn_export_vars,warn_obsolete_guard,warn_shadow_vars,
warn_untyped_record,warn_unused_function,
warn_unused_import,warnings_as_errors],
[xref_checks,undefined_function_calls,
undefined_functions,locals_not_used,
deprecated_function_calls,deprecated_functions],
[overrides]],
[],[],[],[],[],[],[],[],[],[],[],[]}}},
0,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc",
undefined,
{pkg,<<"pc">>,<<"1.14.0">>,
<<"9893B4D99922ADCB7553A4D603988F672693688ECC1C934230309D5A37DBDD3E">>,
<<"FC597E5356AF714615E6BAEEFAA8262BE09DE7849BF92AA57672DB5E409A3553">>,
#{name => <<"hexpm">>,
http_user_agent_fragment => <<"(rebar3/3.22.0) (httpc)">>,
http_etag => undefined,
http_adapter => {rebar_httpc_adapter,#{profile => rebar}},
repo_verify_origin => true,repo_name => <<"hexpm">>,
repo_url => <<"https://repo.hex.pm">>,
api_organization => undefined,
api_repository => undefined,
repo_organization => undefined,
api_url => <<"https://hex.pm/api">>,repo_verify => true,
api_key => undefined,http_headers => #{},
repo_key => undefined,
repo_public_key =>
<<"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApqREcFDt5vV21JVe2QNB\nEdvzk6w36aNFhVGWN5toNJRjRJ6m4hIuG4KaXtDWVLjnvct6MYMfqhC79HAGwyF+\nIqR6Q6a5bbFSsImgBJwz1oadoVKD6ZNetAuCIK84cjMrEFRkELtEIPNHblCzUkkM\n3rS9+DPlnfG8hBvGi6tvQIuZmXGCxF/73hU0/MyGhbmEjIKRtG6b0sJYKelRLTPW\nXgK7s5pESgiwf2YC/2MGDXjAJfpfCd0RpLdvd4eRiXtVlE9qO9bND94E7PgQ/xqZ\nJ1i2xWFndWa6nfFnRxZmCStCOZWYYPlaxr+FZceFbpMwzTNs4g3d4tLNUcbKAIH4\n0wIDAQAB\n-----END PUBLIC KEY-----">>,
tarball_max_size => 8388608,
tarball_max_uncompressed_size => 67108864}},
false,false,true,undefined,true},
{app_info_t,<<"pc">>,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc.app.src",
undefined,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/ebin/pc.app",
"1.14.0","1.14.0",root,
[{description,"a rebar3 port compiler for native code"},
{vsn,"1.14.0"},
{registered,[]},
{applications,[kernel,stdlib]},
{env,[]},
{modules,
[pc,pc_compilation,pc_port_specs,pc_prv_clean,
pc_prv_compile,pc_util]},
{licenses,["MIT"]},
{links,[{"Github","https://github.com/blt/port_compiler"}]}],
[kernel,stdlib],
[],[],[],
[default,prod],
{dict,6,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default}],[{plugins,default}],[{locks,default}]],
[],
[[erl_opts,debug_info,inline_list_funcs,
warn_deprecated_function,warn_export_all,
warn_export_vars,warn_obsolete_guard,warn_shadow_vars,
warn_untyped_record,warn_unused_function,
warn_unused_import,warnings_as_errors],
[xref_checks,undefined_function_calls,
undefined_functions,locals_not_used,
deprecated_function_calls,deprecated_functions],
[overrides]],
[],[],[],[],[],[],[],[],[],[],[],[]}}},
{dict,6,16,16,8,80,48,
{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
{{[],
[[{deps,default}],[{plugins,default}],[{locks,default}]],
[],
[[erl_opts,debug_info,inline_list_funcs,
warn_deprecated_function,warn_export_all,
warn_export_vars,warn_obsolete_guard,warn_shadow_vars,
warn_untyped_record,warn_unused_function,
warn_unused_import,warnings_as_errors],
[xref_checks,undefined_function_calls,
undefined_functions,locals_not_used,
deprecated_function_calls,deprecated_functions],
[overrides]],
[],[],[],[],[],[],[],[],[],[],[],[]}}},
0,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc",
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc",
undefined,
{pkg,<<"pc">>,<<"1.14.0">>,
<<"9893B4D99922ADCB7553A4D603988F672693688ECC1C934230309D5A37DBDD3E">>,
<<"FC597E5356AF714615E6BAEEFAA8262BE09DE7849BF92AA57672DB5E409A3553">>,
#{name => <<"hexpm">>,
http_user_agent_fragment => <<"(rebar3/3.22.0) (httpc)">>,
http_etag => undefined,
http_adapter => {rebar_httpc_adapter,#{profile => rebar}},
repo_verify_origin => true,repo_name => <<"hexpm">>,
repo_url => <<"https://repo.hex.pm">>,
api_organization => undefined,
api_repository => undefined,
repo_organization => undefined,
api_url => <<"https://hex.pm/api">>,repo_verify => true,
api_key => undefined,http_headers => #{},
repo_key => undefined,
repo_public_key =>
<<"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApqREcFDt5vV21JVe2QNB\nEdvzk6w36aNFhVGWN5toNJRjRJ6m4hIuG4KaXtDWVLjnvct6MYMfqhC79HAGwyF+\nIqR6Q6a5bbFSsImgBJwz1oadoVKD6ZNetAuCIK84cjMrEFRkELtEIPNHblCzUkkM\n3rS9+DPlnfG8hBvGi6tvQIuZmXGCxF/73hU0/MyGhbmEjIKRtG6b0sJYKelRLTPW\nXgK7s5pESgiwf2YC/2MGDXjAJfpfCd0RpLdvd4eRiXtVlE9qO9bND94E7PgQ/xqZ\nJ1i2xWFndWa6nfFnRxZmCStCOZWYYPlaxr+FZceFbpMwzTNs4g3d4tLNUcbKAIH4\n0wIDAQAB\n-----END PUBLIC KEY-----">>,
tarball_max_size => 8388608,
tarball_max_uncompressed_size => 67108864}},
false,false,true,undefined,true}],
[],
[rebar_compiler_xrl,rebar_compiler_yrl,rebar_compiler_mib,
rebar_compiler_erl],
[],
[{resource,hg,rebar_hg_resource,#{},rebar_resource_v2},
{resource,pkg,rebar_pkg_resource,
#{base_config =>
#{http_user_agent_fragment =>
<<"(rebar3/3.22.0) (httpc)">>,
http_adapter =>
{rebar_httpc_adapter,#{profile => rebar}}},
repos =>
[#{name => <<"hexpm">>,
http_user_agent_fragment =>
<<"(rebar3/3.22.0) (httpc)">>,
http_etag => undefined,
http_adapter =>
{rebar_httpc_adapter,#{profile => rebar}},
repo_verify_origin => true,repo_name => <<"hexpm">>,
repo_url => <<"https://repo.hex.pm">>,
api_organization => undefined,
api_repository => undefined,
repo_organization => undefined,
api_url => <<"https://hex.pm/api">>,
repo_verify => true,api_key => undefined,
http_headers => #{},repo_key => undefined,
repo_public_key =>
<<"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApqREcFDt5vV21JVe2QNB\nEdvzk6w36aNFhVGWN5toNJRjRJ6m4hIuG4KaXtDWVLjnvct6MYMfqhC79HAGwyF+\nIqR6Q6a5bbFSsImgBJwz1oadoVKD6ZNetAuCIK84cjMrEFRkELtEIPNHblCzUkkM\n3rS9+DPlnfG8hBvGi6tvQIuZmXGCxF/73hU0/MyGhbmEjIKRtG6b0sJYKelRLTPW\nXgK7s5pESgiwf2YC/2MGDXjAJfpfCd0RpLdvd4eRiXtVlE9qO9bND94E7PgQ/xqZ\nJ1i2xWFndWa6nfFnRxZmCStCOZWYYPlaxr+FZceFbpMwzTNs4g3d4tLNUcbKAIH4\n0wIDAQAB\n-----END PUBLIC KEY-----">>,
tarball_max_size => 8388608,
tarball_max_uncompressed_size => 67108864}]},
rebar_resource_v2},
{resource,git_subdir,rebar_git_subdir_resource,#{},
rebar_resource_v2},
{resource,git,rebar_git_resource,#{},rebar_resource_v2}],
[{provider,clean,pc_prv_clean,
{[],[]},
true,
[{default,app_discovery}],
[],"clean the results of port compilation","rebar pc clean",[],
[default],
pc},
{provider,compile,pc_prv_compile,
{[],[]},
true,
[{default,compile}],
[],"perform port compilation","rebar pc compile",[],
[default],
pc},
{provider,xref,rebar_prv_xref,
{[],[]},
true,
[compile],
["Run cross reference analysis.",10,10,86,97,108,105,100,32,
114,101,98,97,114,46,99,111,110,102,105,103,32,111,112,116,
105,111,110,115,58,10,32,32,
[123,["xref_warnings",44,"false"],125],
10,32,32,
[123,["xref_extra_paths",44,"[]"],125],
10,32,32,
[123,
["xref_checks",44,
[91,
["undefined_function_calls",44,"undefined_functions",44,
"locals_not_used",44,10,
[32,[32,[" ",32,32,32]," ",32,32,32],32,32],
"exports_not_used",44,"deprecated_function_calls",44,10,
[32,[32,[" ",32,32,32]," ",32,32,32],32,32],
"deprecated_functions"],
93]],
125],
10,32,32,
[123,
["xref_queries",44,
[91,
[[123,
["\"(xc - uc) || (xu - x - b - (\\\"mod\\\":\\\".*foo\\\"/\\\"4\\\"))\"",
44,10,
[32,32,[[32," ",32,32,32],32," ",32,32,32],32,32],
"[]"],
125]],
93]],
125],
10],
"Run cross reference analysis.","rebar3 xref",[],
[default],
default},
{provider,version,rebar_prv_version,
{[],[]},
true,[],"Print version for rebar and current Erlang.",
"Print version for rebar and current Erlang.","rebar3 version",
[],
[default],
default},
{provider,vendor,rebar_prv_vendor,
{[],[]},
true,[],"Turns dependencies into top-level applications",
"Turns dependencies into top-level apps",[],[],
[default],
experimental},
{provider,upgrade,rebar_prv_upgrade,
{[],[]},
true,
[lock],
"Upgrade project dependencies. Use the -a/--all option to upgrade all dependencies. To upgrade specific dependencies, their names can be listed in the command.",
"Upgrade dependencies.","rebar3 upgrade [cowboy[,ranch]]",
[{all,97,"all",undefined,"Upgrade all dependencies."},
{package,undefined,undefined,string,
"List of packages to upgrade."}],
[default],
default},
{provider,update,rebar_prv_update,
{[],[]},
true,[],"Update package index.","Update package index.",
"rebar3 update",[],
[default],
default},
{provider,unlock,rebar_prv_unlock,
{[],[]},
true,[],
"Unlock project dependencies. Use the --all option to unlock all dependencies. To unlock specific dependencies, their name can be listed in the command.",
"Unlock dependencies.",[],
[{all,97,"all",undefined,
"Unlock all dependencies and remove the lock file."},
{package,undefined,undefined,string,
"List of packages to unlock."}],
[default],
default},
{provider,tar,rebar_prv_tar,
{[],[]},
true,
[compile],
"Tar archive of release built of project.",
"Tar archive of release built of project.","rebar3 tar",
[{all,undefined,"all",boolean,
"If true runs the command against all configured releases"},
{relname,110,"relname",string,
"Specify the name for the release that will be generated"},
{relvsn,118,"relvsn",string,
"Specify the version for the release"},
{upfrom,117,"upfrom",string,
"Only valid with relup target, specify the release to upgrade from"},
{output_dir,111,"output-dir",string,
"The output directory for the release. This is `./` by default."},
{help,104,"help",undefined,"Print usage"},
{lib_dir,108,"lib-dir",string,
"Additional dir that should be searched for OTP Apps"},
{dev_mode,100,"dev-mode",boolean,
"Symlink the applications and configuration into the release instead of copying"},
{include_erts,105,"include-erts",string,
"If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts"},
{override,97,"override",string,
"Provide an app name and a directory to override in the form <appname>:<app directory>"},
{config,99,"config",{string,[]},"The path to a config file"},
{overlay_vars,undefined,"overlay_vars",string,
"Path to a file of overlay variables"},
{vm_args,undefined,"vm_args",string,
"Path to a file to use for vm.args"},
{sys_config,undefined,"sys_config",string,
"Path to a file to use for sys.config"},
{system_libs,undefined,"system_libs",string,
"Boolean or path to dir of Erlang system libs"},
{version,undefined,"version",undefined,"Print relx version"},
{root_dir,114,"root",string,"The project root directory"},
{relnames,109,"relnames",string,
"Like --all, but only build the releases in the list, e.g. --relnames rel1,rel2"}],
[default],
default},
{provider,state,rebar_prv_state,
{[],[]},
false,[],"Display rebar configuration for debugging purpose",
"Print current configuration state","rebar3 state",[],
[default],
default},
{provider,shell,rebar_prv_shell,
{[],[]},
true,
[compile],
"Start a shell with project and deps preloaded similar to~n'erl -pa ebin -pa deps/*/ebin'.~n",
"Run shell with project apps and deps in path.","rebar3 shell",
[{config,undefined,"config",string,
"Path to the config file to use. Defaults to {shell, [{config, File}]} and then the relx sys.config file if not specified."},
{name,undefined,"name",atom,"Gives a long name to the node."},
{sname,undefined,"sname",atom,
"Gives a short name to the node."},
{setcookie,undefined,"setcookie",atom,
"Sets the cookie if the node is distributed."},
{script_file,undefined,"script",string,
"Path to an escript file to run before starting the project apps. Defaults to rebar.config {shell, [{script_file, File}]} if not specified."},
{apps,undefined,"apps",string,
"A list of apps to boot before starting the shell. (E.g. --apps app1,app2,app3) Defaults to rebar.config {shell, [{apps, Apps}]} or relx apps if not specified."},
{relname,114,"relname",atom,
"Name of the release to use as a template for the shell session"},
{relvsn,118,"relvsn",string,
"Version of the release to use for the shell session"},
{start_clean,undefined,"start-clean",boolean,
"Cancel any applications in the 'apps' list or release."},
{env_file,undefined,"env-file",string,
"Path to file of os environment variables to setup before expanding vars in config files."},
{user_drv_args,undefined,"user_drv_args",string,
"Arguments passed to user_drv start function for creating custom shells."},
{eval,undefined,"eval",string,
"Erlang term(s) to execute after the apps have been started, but before the shell is presented to the user."}],
[default],
default},
{provider,repos,rebar_prv_repos,
{[],[]},
false,[],
"Display repository configuration for debugging purpose",
"Print current package repository configuration",
"rebar3 repos",[],
[default],
default},
{provider,report,rebar_prv_report,
{[],[]},
true,[],
"Provide a crash report to be sent to the rebar3 issues page.",
"Provide a crash report to be sent to the rebar3 issues page.",
"rebar3 report \"<task>\"",
[{task,undefined,undefined,string,
"Task to print details for."}],
[default],
default},
{provider,relup,rebar_prv_relup,
{[],[]},
true,
[release],
"Create relup of releases.","Create relup of releases.",
"rebar3 relup",
[{all,undefined,"all",boolean,
"If true runs the command against all configured releases"},
{relname,110,"relname",string,
"Specify the name for the release that will be generated"},
{relvsn,118,"relvsn",string,
"Specify the version for the release"},
{upfrom,117,"upfrom",string,
"Only valid with relup target, specify the release to upgrade from"},
{output_dir,111,"output-dir",string,
"The output directory for the release. This is `./` by default."},
{help,104,"help",undefined,"Print usage"},
{lib_dir,108,"lib-dir",string,
"Additional dir that should be searched for OTP Apps"},
{dev_mode,100,"dev-mode",boolean,
"Symlink the applications and configuration into the release instead of copying"},
{include_erts,105,"include-erts",string,
"If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts"},
{override,97,"override",string,
"Provide an app name and a directory to override in the form <appname>:<app directory>"},
{config,99,"config",{string,[]},"The path to a config file"},
{overlay_vars,undefined,"overlay_vars",string,
"Path to a file of overlay variables"},
{vm_args,undefined,"vm_args",string,
"Path to a file to use for vm.args"},
{sys_config,undefined,"sys_config",string,
"Path to a file to use for sys.config"},
{system_libs,undefined,"system_libs",string,
"Boolean or path to dir of Erlang system libs"},
{version,undefined,"version",undefined,"Print relx version"},
{root_dir,114,"root",string,"The project root directory"},
{relnames,109,"relnames",string,
"Like --all, but only build the releases in the list, e.g. --relnames rel1,rel2"}],
[default],
default},
{provider,release,rebar_prv_release,
{[],[]},
true,
[compile],
"Build release of project.","Build release of project.",
"rebar3 release",
[{all,undefined,"all",boolean,
"If true runs the command against all configured releases"},
{relname,110,"relname",string,
"Specify the name for the release that will be generated"},
{relvsn,118,"relvsn",string,
"Specify the version for the release"},
{upfrom,117,"upfrom",string,
"Only valid with relup target, specify the release to upgrade from"},
{output_dir,111,"output-dir",string,
"The output directory for the release. This is `./` by default."},
{help,104,"help",undefined,"Print usage"},
{lib_dir,108,"lib-dir",string,
"Additional dir that should be searched for OTP Apps"},
{dev_mode,100,"dev-mode",boolean,
"Symlink the applications and configuration into the release instead of copying"},
{include_erts,105,"include-erts",string,
"If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts"},
{override,97,"override",string,
"Provide an app name and a directory to override in the form <appname>:<app directory>"},
{config,99,"config",{string,[]},"The path to a config file"},
{overlay_vars,undefined,"overlay_vars",string,
"Path to a file of overlay variables"},
{vm_args,undefined,"vm_args",string,
"Path to a file to use for vm.args"},
{sys_config,undefined,"sys_config",string,
"Path to a file to use for sys.config"},
{system_libs,undefined,"system_libs",string,
"Boolean or path to dir of Erlang system libs"},
{version,undefined,"version",undefined,"Print relx version"},
{root_dir,114,"root",string,"The project root directory"},
{relnames,109,"relnames",string,
"Like --all, but only build the releases in the list, e.g. --relnames rel1,rel2"}],
[default],
default},
{provider,upgrade,rebar_prv_plugins_upgrade,
{[],[]},
true,[],
"List or upgrade plugins. Use the -a/--all option to upgrade all plugins.",
"Upgrade plugins","rebar3 plugins upgrade <plugin>",
[{plugin,undefined,undefined,string,"Plugin to upgrade"},
{all,97,"all",undefined,"Upgrade all plugins."}],
[default],
plugins},
{provider,list,rebar_prv_plugins,
{[],[]},
true,[],"List local and global plugins for this project",
"List local and global plugins for this project",
"rebar3 plugins list",[],
[default],
plugins},
{provider,path,rebar_prv_path,
{[],[]},
true,
[app_discovery],
"Print paths to build dirs in current profile.",
"Print paths to build dirs in current profile.","rebar3 path",
[{app,undefined,"app",string,
"Comma separated list of applications to return paths for."},
{base,undefined,"base",boolean,
"Return the `base' path of the current profile."},
{bin,undefined,"bin",boolean,
"Return the `bin' path of the current profile."},
{ebin,undefined,"ebin",boolean,
"Return all `ebin' paths of the current profile's applications."},
{lib,undefined,"lib",boolean,
"Return the `lib' path of the current profile."},
{priv,undefined,"priv",boolean,
"Return the `priv' path of the current profile's applications."},
{separator,115,"separator",string,
"In case of multiple return paths, the separator character to use to join them."},
{src,undefined,"src",boolean,
"Return the `src' path of the current profile's applications."},
{rel,undefined,"rel",boolean,
"Return the `rel' path of the current profile."}],
[default],
default},
{provider,pkgs,rebar_prv_packages,
{[],[]},
true,[],
["List information for a package",46,10],
"List information for a package.","rebar3 pkgs elli",
[{package,undefined,undefined,string,
"Package to fetch information for."}],
[default],
default},
{provider,new,rebar_prv_new,
{[],[]},
true,[],
"Create rebar3 project based on template and vars.\n\nValid command line options:\n <template> [var=foo,...]\n\nSee available templates with: `rebar3 new help`\n",
"Create new project from templates.","rebar3 new <template>",
[{force,102,"force",undefined,"overwrite existing files"}],
[default],
default},
{provider,lock,rebar_prv_lock,
{[],[]},
false,
[install_deps],
"Locks dependencies","Locks dependencies.",[],[],
[default],
default},
{provider,upgrade,rebar_prv_local_upgrade,
{[],[]},
true,[],[],"Download latest rebar3 escript and extract.",
"rebar3 unstable upgrade",[],
[default],
local},
{provider,install,rebar_prv_local_install,
{[],[]},
true,[],[],
"Extract libs from rebar3 escript along with a run script.",
"rebar3 unstable install",[],
[default],
local},
{provider,install_deps,rebar_prv_install_deps,
{[],[]},
false,
[app_discovery],
[],[],undefined,[],
[default],
default},
{provider,help,rebar_prv_help,
{[],[]},
true,[],
"Display a list of tasks or help for a given task or subtask.",
"Display a list of tasks or help for a given task or subtask.",
"rebar3 help <task>",
[{help_task,undefined,undefined,string,
"Task to print help for."}],
[default],
default},
{provider,'get-deps',rebar_prv_get_deps,
{[],[]},
true,
[lock],
"Fetch project dependencies.","Fetch dependencies.",
"rebar3 get-deps",[],[],default},
{provider,eunit,rebar_prv_eunit,
{[],[]},
true,
[lock],
"Run EUnit Tests.","Run EUnit Tests.","rebar3 eunit",
[{app,undefined,"app",string,
"Comma separated list of application test suites to run. Equivalent to `[{application, App}]`."},
{application,undefined,"application",string,
"Comma separated list of application test suites to run. Equivalent to `[{application, App}]`."},
{cover,99,"cover",boolean,
"Generate cover data. Defaults to false."},
{cover_export_name,undefined,"cover_export_name",string,
"Base name of the coverdata file to write"},
{profile,112,"profile",boolean,
"Show the slowest tests. Defaults to false."},
{dir,100,"dir",string,
"Comma separated list of dirs to load tests from. Equivalent to `[{dir, Dir}]`."},
{file,102,"file",string,
"Comma separated list of files to load tests from. Equivalent to `[{file, File}]`."},
{module,109,"module",string,
"Comma separated list of modules to load tests from. Equivalent to `[{module, Module}]`."},
{test,116,"test",string,
"Comma separated list of tests to run. The format is `Module:Func1+Func2`. Equivalent to `[{test, Module, Function}]`."},
{suite,115,"suite",string,
"Comma separated list of modules to load tests from. Equivalent to `[{module, Module}]`."},
{generator,103,"generator",string,
"Comma separated list of generators to load tests from. The format is `Module:Func1+Func2`. Equivalent to `[{generator, Module, Function}]`."},
{verbose,118,"verbose",boolean,
"Verbose output. Defaults to false."},
{name,undefined,"name",atom,"Gives a long name to the node"},
{sname,undefined,"sname",atom,
"Gives a short name to the node"},
{sys_config,undefined,"sys_config",string,
"List of application config files"},
{setcookie,undefined,"setcookie",atom,
"Sets the cookie if the node is distributed"}],
[test],
default},
{provider,escriptize,rebar_prv_escriptize,
{[],[]},
true,
[compile],
"Generate an escript executable containing the project's and its dependencies' BEAM files.",
"Generate escript archive.","rebar3 escriptize",
[{main_app,97,"main-app",string,
"Specify the name of the application to build an escript for."}],
[default],
default},
{provider,edoc,rebar_prv_edoc,
{[],[]},
true,
[compile],
"Generate documentation using edoc.",
"Generate documentation using edoc.","rebar3 edoc",[],
[docs],
default},
{provider,do,rebar_prv_do,
{[],[]},
true,[],
"Higher order provider for running multiple tasks in a sequence.",
"Higher order provider for running multiple tasks in a sequence.",
"rebar3 do <task1>, <task2>, ...",[],
[default],
default},
{provider,dialyzer,rebar_prv_dialyzer,
{[],[]},
true,
[compile],
"Run the Dialyzer analyzer on the project.\n\nThis command will build, and keep up-to-date, a suitable PLT and will use it to carry out success typing analysis on the current project.\n\nThe following (optional) configurations can be added to a `proplist` of options `dialyzer` in rebar.config:\n`warnings` - a list of dialyzer warnings\n`get_warnings` - display warnings when altering a PLT file (boolean)\n`plt_apps` - the strategy for determining the applications which included in the PLT file, `top_level_deps` to include just the direct dependencies or `all_deps` to include all nested dependencies or `all_apps` to include all project apps and nested dependencies*\n`plt_extra_apps` - a list of extra applications to include in the PLT file\n`plt_extra_mods` - a list of extra modules to includes in the PLT file\n`plt_location` - the location of the PLT file, `local` to store in the profile's base directory (default) or a custom directory.\n`plt_prefix` - the prefix to the PLT file, defaults to \"rebar3\"**\n`base_plt_apps` - a list of applications to include in the base PLT file***\n`base_plt_mods` - a list of modules to include in the base PLT file***\n`base_plt_location` - the location of base PLT file, `global` to store in $HOME/.cache/rebar3 (default) or a custom directory***\n`base_plt_prefix` - the prefix to the base PLT file, defaults to \"rebar3\"** ***\n`exclude_apps` - a list of applications to exclude from PLT files and success typing analysis, `plt_extra_mods` and `base_plt_mods` can add modules from excluded applications\n`exclude_mods` - a list of modules to exclude from PLT files and success typing analysis\n`output_format` - configure whether the dialyzer_warnings file will have the `raw` or `formatted` output\n\nFor example, to warn on unmatched returns: \n{dialyzer, [{warnings, [unmatched_returns]}]}.\n\n*The direct dependent applications are listed in `applications` and `included_applications` of their .app files.\n**PLT files are named \"<prefix>_<otp_release>_plt\".\n***The base PLT is a PLT containing the core applications often required for a project's PLT. One base PLT is created per OTP version and stored in `base_plt_location`. A base PLT is used to build project PLTs.\n",
"Run the Dialyzer analyzer on the project.","rebar3 dialyzer",
[{incremental,105,"incremental",boolean,
"Enable incremental analysis mode. Default: false"},
{update_plt,117,"update-plt",boolean,
"Enable updating the PLT. Default: true"},
{succ_typings,115,"succ-typings",boolean,
"Enable success typing analysis. Default: true"},
{base_plt_location,undefined,"base-plt-location",string,
"The location of base PLT file, defaults to $HOME/.cache/rebar3"},
{plt_location,undefined,"plt-location",string,
"The location of the PLT file, defaults to the profile's base directory"},
{plt_prefix,undefined,"plt-prefix",string,
"The prefix to the PLT file, defaults to \"rebar3\""},
{app,97,"app",string,
"Perform success typing analysis of a single application"},
{base_plt_prefix,undefined,"base-plt-prefix",string,
"The prefix to the base PLT file, defaults to \"rebar3\""},
{statistics,undefined,"statistics",boolean,
"Print information about the progress of execution. Default: false"}],
[default],
default},
{provider,tree,rebar_prv_deps_tree,
{[],[]},
true,
[lock],
[],"Print dependency tree.","rebar3 tree",
[{verbose,118,"verbose",undefined,
"Print repo and branch/tag/ref for git and hg deps"}],
[default],
default},
{provider,deps,rebar_prv_deps,
{[],[]},
true,
[install_deps],
"List dependencies. Those not matching the config file are followed by an asterisk (*).",
"List dependencies","rebar3 deps",[],
[default],
default},
{provider,cover,rebar_prv_cover,
{[],[]},
true,
[lock],
"Perform coverage analysis.","Perform coverage analysis.",
"rebar3 cover",
[{reset,114,"reset",boolean,"Reset all coverdata."},
{verbose,118,"verbose",boolean,"Print coverage analysis."},
{min_coverage,109,"min_coverage",integer,
"Mandate a coverage percentage required to succeed (0..100)"}],
[test],
default},
{provider,compile,rebar_prv_compile,
{[],[]},
true,
[lock],
"Compile apps .app.src and .erl files.",
"Compile apps .app.src and .erl files.","rebar3 compile",
[{deps_only,100,"deps_only",undefined,
"Only compile dependencies, no project apps will be built."}],
[default],
default},
{provider,ct,rebar_prv_common_test,
{[],[]},
true,
[lock],
"Run Common Tests.","Run Common Tests.","rebar3 ct",
[{dir,undefined,"dir",string,
"List of additional directories containing test suites"},
{suite,undefined,"suite",string,"List of test suites to run"},
{group,undefined,"group",string,"List of test groups to run"},
{testcase,undefined,"case",string,"List of test cases to run"},
{label,undefined,"label",string,"Test label"},
{config,undefined,"config",string,"List of config files"},
{spec,undefined,"spec",string,"List of test specifications"},
{join_specs,undefined,"join_specs",boolean,
"Merge all test specifications and perform a single test run"},
{allow_user_terms,undefined,"allow_user_terms",boolean,
"Allow user defined config values in config files"},
{logdir,undefined,"logdir",string,"Log folder"},
{logopts,undefined,"logopts",string,
"Options for common test logging"},
{verbosity,undefined,"verbosity",integer,"Verbosity"},
{cover,99,"cover",{boolean,false},"Generate cover data"},
{cover_export_name,undefined,"cover_export_name",string,
"Base name of the coverdata file to write"},
{repeat,undefined,"repeat",integer,
"How often to repeat tests"},
{duration,undefined,"duration",string,
"Max runtime (format: HHMMSS)"},
{until,undefined,"until",string,"Run until (format: HHMMSS)"},
{force_stop,undefined,"force_stop",string,
"Force stop on test timeout (true | false | skip_rest)"},
{basic_html,undefined,"basic_html",boolean,"Show basic HTML"},
{stylesheet,undefined,"stylesheet",string,
"CSS stylesheet to apply to html output"},
{decrypt_key,undefined,"decrypt_key",string,
"Path to key for decrypting config"},
{decrypt_file,undefined,"decrypt_file",string,
"Path to file containing key for decrypting config"},
{abort_if_missing_suites,undefined,"abort_if_missing_suites",
{boolean,true},
"Abort if suites are missing"},
{multiply_timetraps,undefined,"multiply_timetraps",integer,[]},
{scale_timetraps,undefined,"scale_timetraps",boolean,
"Scale timetraps"},
{create_priv_dir,undefined,"create_priv_dir",string,
"Create priv dir (auto_per_run | auto_per_tc | manual_per_tc)"},
{include,undefined,"include",string,
"Directories containing additional include files"},
{readable,undefined,"readable",string,
"Shows test case names and only displays logs to shell on failures (true | compact | false)"},
{verbose,118,"verbose",boolean,"Verbose output"},
{name,undefined,"name",atom,"Gives a long name to the node"},
{sname,undefined,"sname",atom,
"Gives a short name to the node"},
{setcookie,undefined,"setcookie",atom,
"Sets the cookie if the node is distributed"},
{sys_config,undefined,"sys_config",string,
"List of application config files"},
{compile_only,undefined,"compile_only",boolean,
"Compile modules in the project with the test configuration but do not run the tests"},
{retry,undefined,"retry",boolean,
"Experimental feature. If any specification for previously failing test is found, runs them."},
{fail_fast,undefined,"fail_fast",
{boolean,false},
"Experimental feature. If any test fails, the run is aborted. Since common test does not support this natively, we abort the rebar3 run on a failure. This May break CT's disk logging and other rebar3 features."}],
[test],
default},
{provider,clean,rebar_prv_clean,
{[],[]},
true,
[app_discovery,install_deps],
"Remove compiled beam files from apps.",
"Remove compiled beam files from apps.","rebar3 clean",
[{all,97,"all",undefined,"Clean all apps include deps"},
{apps,undefined,"apps",string,
"Clean a specific list of apps or dependencies"},
{profile,112,"profile",string,
"Clean under profile. Equivalent to `rebar3 as <profile> clean`"}],
[default],
default},
{provider,compile,rebar_prv_bare_compile,
{[],[]},
false,
[{default,app_discovery}],
[],[],[],
[{paths,112,"paths",string,
"Wildcard paths of ebin directories to add to code path, separated by a colon"},
{separator,115,"separator",string,
"In case of multiple return paths, the separator character to use to join them."},
{outdir,111,"outdir",string,
"Path where build artifacts are located. Defaults to the current directory."}],
[default],
bare},
{provider,as,rebar_prv_as,
{[],[]},
true,[],
"Higher order provider for running multiple tasks in a sequence as a certain profiles.",
"Higher order provider for running multiple tasks in a sequence as a certain profiles.",
"rebar3 as <profile1>,<profile2>,... <task1>, <task2>, ...",
[{profile,undefined,undefined,string,"Profiles to run as."}],
[default],
default},
{provider,app_discovery,rebar_prv_app_discovery,
{[],[]},
false,[],[],[],[],[],
[default],
default},
{provider,clean,pc_prv_clean,
{[],[]},
true,
[{default,app_discovery}],
[],"clean the results of port compilation","rebar pc clean",[],
[default],
pc},
{provider,compile,pc_prv_compile,
{[],[]},
true,
[{default,compile}],
[],"perform port compilation","rebar pc compile",[],
[default],
pc},
{provider,xref,rebar_prv_xref,
{[],[]},
true,
[compile],
["Run cross reference analysis.",10,10,86,97,108,105,100,32,
114,101,98,97,114,46,99,111,110,102,105,103,32,111,112,116,
105,111,110,115,58,10,32,32,
[123,["xref_warnings",44,"false"],125],
10,32,32,
[123,["xref_extra_paths",44,"[]"],125],
10,32,32,
[123,
["xref_checks",44,
[91,
["undefined_function_calls",44,"undefined_functions",44,
"locals_not_used",44,10,
[32,[32,[" ",32,32,32]," ",32,32,32],32,32],
"exports_not_used",44,"deprecated_function_calls",44,10,
[32,[32,[" ",32,32,32]," ",32,32,32],32,32],
"deprecated_functions"],
93]],
125],
10,32,32,
[123,
["xref_queries",44,
[91,
[[123,
["\"(xc - uc) || (xu - x - b - (\\\"mod\\\":\\\".*foo\\\"/\\\"4\\\"))\"",
44,10,
[32,32,[[32," ",32,32,32],32," ",32,32,32],32,32],
"[]"],
125]],
93]],
125],
10],
"Run cross reference analysis.","rebar3 xref",[],
[default],
default},
{provider,version,rebar_prv_version,
{[],[]},
true,[],"Print version for rebar and current Erlang.",
"Print version for rebar and current Erlang.","rebar3 version",
[],
[default],
default},
{provider,vendor,rebar_prv_vendor,
{[],[]},
true,[],"Turns dependencies into top-level applications",
"Turns dependencies into top-level apps",[],[],
[default],
experimental},
{provider,upgrade,rebar_prv_upgrade,
{[],[]},
true,
[lock],
"Upgrade project dependencies. Use the -a/--all option to upgrade all dependencies. To upgrade specific dependencies, their names can be listed in the command.",
"Upgrade dependencies.","rebar3 upgrade [cowboy[,ranch]]",
[{all,97,"all",undefined,"Upgrade all dependencies."},
{package,undefined,undefined,string,
"List of packages to upgrade."}],
[default],
default},
{provider,update,rebar_prv_update,
{[],[]},
true,[],"Update package index.","Update package index.",
"rebar3 update",[],
[default],
default},
{provider,unlock,rebar_prv_unlock,
{[],[]},
true,[],
"Unlock project dependencies. Use the --all option to unlock all dependencies. To unlock specific dependencies, their name can be listed in the command.",
"Unlock dependencies.",[],
[{all,97,"all",undefined,
"Unlock all dependencies and remove the lock file."},
{package,undefined,undefined,string,
"List of packages to unlock."}],
[default],
default},
{provider,tar,rebar_prv_tar,
{[],[]},
true,
[compile],
"Tar archive of release built of project.",
"Tar archive of release built of project.","rebar3 tar",
[{all,undefined,"all",boolean,
"If true runs the command against all configured releases"},
{relname,110,"relname",string,
"Specify the name for the release that will be generated"},
{relvsn,118,"relvsn",string,
"Specify the version for the release"},
{upfrom,117,"upfrom",string,
"Only valid with relup target, specify the release to upgrade from"},
{output_dir,111,"output-dir",string,
"The output directory for the release. This is `./` by default."},
{help,104,"help",undefined,"Print usage"},
{lib_dir,108,"lib-dir",string,
"Additional dir that should be searched for OTP Apps"},
{dev_mode,100,"dev-mode",boolean,
"Symlink the applications and configuration into the release instead of copying"},
{include_erts,105,"include-erts",string,
"If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts"},
{override,97,"override",string,
"Provide an app name and a directory to override in the form <appname>:<app directory>"},
{config,99,"config",{string,[]},"The path to a config file"},
{overlay_vars,undefined,"overlay_vars",string,
"Path to a file of overlay variables"},
{vm_args,undefined,"vm_args",string,
"Path to a file to use for vm.args"},
{sys_config,undefined,"sys_config",string,
"Path to a file to use for sys.config"},
{system_libs,undefined,"system_libs",string,
"Boolean or path to dir of Erlang system libs"},
{version,undefined,"version",undefined,"Print relx version"},
{root_dir,114,"root",string,"The project root directory"},
{relnames,109,"relnames",string,
"Like --all, but only build the releases in the list, e.g. --relnames rel1,rel2"}],
[default],
default},
{provider,state,rebar_prv_state,
{[],[]},
false,[],"Display rebar configuration for debugging purpose",
"Print current configuration state","rebar3 state",[],
[default],
default},
{provider,shell,rebar_prv_shell,
{[],[]},
true,
[compile],
"Start a shell with project and deps preloaded similar to~n'erl -pa ebin -pa deps/*/ebin'.~n",
"Run shell with project apps and deps in path.","rebar3 shell",
[{config,undefined,"config",string,
"Path to the config file to use. Defaults to {shell, [{config, File}]} and then the relx sys.config file if not specified."},
{name,undefined,"name",atom,"Gives a long name to the node."},
{sname,undefined,"sname",atom,
"Gives a short name to the node."},
{setcookie,undefined,"setcookie",atom,
"Sets the cookie if the node is distributed."},
{script_file,undefined,"script",string,
"Path to an escript file to run before starting the project apps. Defaults to rebar.config {shell, [{script_file, File}]} if not specified."},
{apps,undefined,"apps",string,
"A list of apps to boot before starting the shell. (E.g. --apps app1,app2,app3) Defaults to rebar.config {shell, [{apps, Apps}]} or relx apps if not specified."},
{relname,114,"relname",atom,
"Name of the release to use as a template for the shell session"},
{relvsn,118,"relvsn",string,
"Version of the release to use for the shell session"},
{start_clean,undefined,"start-clean",boolean,
"Cancel any applications in the 'apps' list or release."},
{env_file,undefined,"env-file",string,
"Path to file of os environment variables to setup before expanding vars in config files."},
{user_drv_args,undefined,"user_drv_args",string,
"Arguments passed to user_drv start function for creating custom shells."},
{eval,undefined,"eval",string,
"Erlang term(s) to execute after the apps have been started, but before the shell is presented to the user."}],
[default],
default},
{provider,repos,rebar_prv_repos,
{[],[]},
false,[],
"Display repository configuration for debugging purpose",
"Print current package repository configuration",
"rebar3 repos",[],
[default],
default},
{provider,report,rebar_prv_report,
{[],[]},
true,[],
"Provide a crash report to be sent to the rebar3 issues page.",
"Provide a crash report to be sent to the rebar3 issues page.",
"rebar3 report \"<task>\"",
[{task,undefined,undefined,string,
"Task to print details for."}],
[default],
default},
{provider,relup,rebar_prv_relup,
{[],[]},
true,
[release],
"Create relup of releases.","Create relup of releases.",
"rebar3 relup",
[{all,undefined,"all",boolean,
"If true runs the command against all configured releases"},
{relname,110,"relname",string,
"Specify the name for the release that will be generated"},
{relvsn,118,"relvsn",string,
"Specify the version for the release"},
{upfrom,117,"upfrom",string,
"Only valid with relup target, specify the release to upgrade from"},
{output_dir,111,"output-dir",string,
"The output directory for the release. This is `./` by default."},
{help,104,"help",undefined,"Print usage"},
{lib_dir,108,"lib-dir",string,
"Additional dir that should be searched for OTP Apps"},
{dev_mode,100,"dev-mode",boolean,
"Symlink the applications and configuration into the release instead of copying"},
{include_erts,105,"include-erts",string,
"If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts"},
{override,97,"override",string,
"Provide an app name and a directory to override in the form <appname>:<app directory>"},
{config,99,"config",{string,[]},"The path to a config file"},
{overlay_vars,undefined,"overlay_vars",string,
"Path to a file of overlay variables"},
{vm_args,undefined,"vm_args",string,
"Path to a file to use for vm.args"},
{sys_config,undefined,"sys_config",string,
"Path to a file to use for sys.config"},
{system_libs,undefined,"system_libs",string,
"Boolean or path to dir of Erlang system libs"},
{version,undefined,"version",undefined,"Print relx version"},
{root_dir,114,"root",string,"The project root directory"},
{relnames,109,"relnames",string,
"Like --all, but only build the releases in the list, e.g. --relnames rel1,rel2"}],
[default],
default},
{provider,release,rebar_prv_release,
{[],[]},
true,
[compile],
"Build release of project.","Build release of project.",
"rebar3 release",
[{all,undefined,"all",boolean,
"If true runs the command against all configured releases"},
{relname,110,"relname",string,
"Specify the name for the release that will be generated"},
{relvsn,118,"relvsn",string,
"Specify the version for the release"},
{upfrom,117,"upfrom",string,
"Only valid with relup target, specify the release to upgrade from"},
{output_dir,111,"output-dir",string,
"The output directory for the release. This is `./` by default."},
{help,104,"help",undefined,"Print usage"},
{lib_dir,108,"lib-dir",string,
"Additional dir that should be searched for OTP Apps"},
{dev_mode,100,"dev-mode",boolean,
"Symlink the applications and configuration into the release instead of copying"},
{include_erts,105,"include-erts",string,
"If true include a copy of erts used to build with, if a path include erts at that path. If false, do not include erts"},
{override,97,"override",string,
"Provide an app name and a directory to override in the form <appname>:<app directory>"},
{config,99,"config",{string,[]},"The path to a config file"},
{overlay_vars,undefined,"overlay_vars",string,
"Path to a file of overlay variables"},
{vm_args,undefined,"vm_args",string,
"Path to a file to use for vm.args"},
{sys_config,undefined,"sys_config",string,
"Path to a file to use for sys.config"},
{system_libs,undefined,"system_libs",string,
"Boolean or path to dir of Erlang system libs"},
{version,undefined,"version",undefined,"Print relx version"},
{root_dir,114,"root",string,"The project root directory"},
{relnames,109,"relnames",string,
"Like --all, but only build the releases in the list, e.g. --relnames rel1,rel2"}],
[default],
default},
{provider,upgrade,rebar_prv_plugins_upgrade,
{[],[]},
true,[],
"List or upgrade plugins. Use the -a/--all option to upgrade all plugins.",
"Upgrade plugins","rebar3 plugins upgrade <plugin>",
[{plugin,undefined,undefined,string,"Plugin to upgrade"},
{all,97,"all",undefined,"Upgrade all plugins."}],
[default],
plugins},
{provider,list,rebar_prv_plugins,
{[],[]},
true,[],"List local and global plugins for this project",
"List local and global plugins for this project",
"rebar3 plugins list",[],
[default],
plugins},
{provider,path,rebar_prv_path,
{[],[]},
true,
[app_discovery],
"Print paths to build dirs in current profile.",
"Print paths to build dirs in current profile.","rebar3 path",
[{app,undefined,"app",string,
"Comma separated list of applications to return paths for."},
{base,undefined,"base",boolean,
"Return the `base' path of the current profile."},
{bin,undefined,"bin",boolean,
"Return the `bin' path of the current profile."},
{ebin,undefined,"ebin",boolean,
"Return all `ebin' paths of the current profile's applications."},
{lib,undefined,"lib",boolean,
"Return the `lib' path of the current profile."},
{priv,undefined,"priv",boolean,
"Return the `priv' path of the current profile's applications."},
{separator,115,"separator",string,
"In case of multiple return paths, the separator character to use to join them."},
{src,undefined,"src",boolean,
"Return the `src' path of the current profile's applications."},
{rel,undefined,"rel",boolean,
"Return the `rel' path of the current profile."}],
[default],
default},
{provider,pkgs,rebar_prv_packages,
{[],[]},
true,[],
["List information for a package",46,10],
"List information for a package.","rebar3 pkgs elli",
[{package,undefined,undefined,string,
"Package to fetch information for."}],
[default],
default},
{provider,new,rebar_prv_new,
{[],[]},
true,[],
"Create rebar3 project based on template and vars.\n\nValid command line options:\n <template> [var=foo,...]\n\nSee available templates with: `rebar3 new help`\n",
"Create new project from templates.","rebar3 new <template>",
[{force,102,"force",undefined,"overwrite existing files"}],
[default],
default},
{provider,lock,rebar_prv_lock,
{[],[]},
false,
[install_deps],
"Locks dependencies","Locks dependencies.",[],[],
[default],
default},
{provider,upgrade,rebar_prv_local_upgrade,
{[],[]},
true,[],[],"Download latest rebar3 escript and extract.",
"rebar3 unstable upgrade",[],
[default],
local},
{provider,install,rebar_prv_local_install,
{[],[]},
true,[],[],
"Extract libs from rebar3 escript along with a run script.",
"rebar3 unstable install",[],
[default],
local},
{provider,install_deps,rebar_prv_install_deps,
{[],[]},
false,
[app_discovery],
[],[],undefined,[],
[default],
default},
{provider,help,rebar_prv_help,
{[],[]},
true,[],
"Display a list of tasks or help for a given task or subtask.",
"Display a list of tasks or help for a given task or subtask.",
"rebar3 help <task>",
[{help_task,undefined,undefined,string,
"Task to print help for."}],
[default],
default},
{provider,'get-deps',rebar_prv_get_deps,
{[],[]},
true,
[lock],
"Fetch project dependencies.","Fetch dependencies.",
"rebar3 get-deps",[],[],default},
{provider,eunit,rebar_prv_eunit,
{[],[]},
true,
[lock],
"Run EUnit Tests.","Run EUnit Tests.","rebar3 eunit",
[{app,undefined,"app",string,
"Comma separated list of application test suites to run. Equivalent to `[{application, App}]`."},
{application,undefined,"application",string,
"Comma separated list of application test suites to run. Equivalent to `[{application, App}]`."},
{cover,99,"cover",boolean,
"Generate cover data. Defaults to false."},
{cover_export_name,undefined,"cover_export_name",string,
"Base name of the coverdata file to write"},
{profile,112,"profile",boolean,
"Show the slowest tests. Defaults to false."},
{dir,100,"dir",string,
"Comma separated list of dirs to load tests from. Equivalent to `[{dir, Dir}]`."},
{file,102,"file",string,
"Comma separated list of files to load tests from. Equivalent to `[{file, File}]`."},
{module,109,"module",string,
"Comma separated list of modules to load tests from. Equivalent to `[{module, Module}]`."},
{test,116,"test",string,
"Comma separated list of tests to run. The format is `Module:Func1+Func2`. Equivalent to `[{test, Module, Function}]`."},
{suite,115,"suite",string,
"Comma separated list of modules to load tests from. Equivalent to `[{module, Module}]`."},
{generator,103,"generator",string,
"Comma separated list of generators to load tests from. The format is `Module:Func1+Func2`. Equivalent to `[{generator, Module, Function}]`."},
{verbose,118,"verbose",boolean,
"Verbose output. Defaults to false."},
{name,undefined,"name",atom,"Gives a long name to the node"},
{sname,undefined,"sname",atom,
"Gives a short name to the node"},
{sys_config,undefined,"sys_config",string,
"List of application config files"},
{setcookie,undefined,"setcookie",atom,
"Sets the cookie if the node is distributed"}],
[test],
default},
{provider,escriptize,rebar_prv_escriptize,
{[],[]},
true,
[compile],
"Generate an escript executable containing the project's and its dependencies' BEAM files.",
"Generate escript archive.","rebar3 escriptize",
[{main_app,97,"main-app",string,
"Specify the name of the application to build an escript for."}],
[default],
default},
{provider,edoc,rebar_prv_edoc,
{[],[]},
true,
[compile],
"Generate documentation using edoc.",
"Generate documentation using edoc.","rebar3 edoc",[],
[docs],
default},
{provider,do,rebar_prv_do,
{[],[]},
true,[],
"Higher order provider for running multiple tasks in a sequence.",
"Higher order provider for running multiple tasks in a sequence.",
"rebar3 do <task1>, <task2>, ...",[],
[default],
default},
{provider,dialyzer,rebar_prv_dialyzer,
{[],[]},
true,
[compile],
"Run the Dialyzer analyzer on the project.\n\nThis command will build, and keep up-to-date, a suitable PLT and will use it to carry out success typing analysis on the current project.\n\nThe following (optional) configurations can be added to a `proplist` of options `dialyzer` in rebar.config:\n`warnings` - a list of dialyzer warnings\n`get_warnings` - display warnings when altering a PLT file (boolean)\n`plt_apps` - the strategy for determining the applications which included in the PLT file, `top_level_deps` to include just the direct dependencies or `all_deps` to include all nested dependencies or `all_apps` to include all project apps and nested dependencies*\n`plt_extra_apps` - a list of extra applications to include in the PLT file\n`plt_extra_mods` - a list of extra modules to includes in the PLT file\n`plt_location` - the location of the PLT file, `local` to store in the profile's base directory (default) or a custom directory.\n`plt_prefix` - the prefix to the PLT file, defaults to \"rebar3\"**\n`base_plt_apps` - a list of applications to include in the base PLT file***\n`base_plt_mods` - a list of modules to include in the base PLT file***\n`base_plt_location` - the location of base PLT file, `global` to store in $HOME/.cache/rebar3 (default) or a custom directory***\n`base_plt_prefix` - the prefix to the base PLT file, defaults to \"rebar3\"** ***\n`exclude_apps` - a list of applications to exclude from PLT files and success typing analysis, `plt_extra_mods` and `base_plt_mods` can add modules from excluded applications\n`exclude_mods` - a list of modules to exclude from PLT files and success typing analysis\n`output_format` - configure whether the dialyzer_warnings file will have the `raw` or `formatted` output\n\nFor example, to warn on unmatched returns: \n{dialyzer, [{warnings, [unmatched_returns]}]}.\n\n*The direct dependent applications are listed in `applications` and `included_applications` of their .app files.\n**PLT files are named \"<prefix>_<otp_release>_plt\".\n***The base PLT is a PLT containing the core applications often required for a project's PLT. One base PLT is created per OTP version and stored in `base_plt_location`. A base PLT is used to build project PLTs.\n",
"Run the Dialyzer analyzer on the project.","rebar3 dialyzer",
[{incremental,105,"incremental",boolean,
"Enable incremental analysis mode. Default: false"},
{update_plt,117,"update-plt",boolean,
"Enable updating the PLT. Default: true"},
{succ_typings,115,"succ-typings",boolean,
"Enable success typing analysis. Default: true"},
{base_plt_location,undefined,"base-plt-location",string,
"The location of base PLT file, defaults to $HOME/.cache/rebar3"},
{plt_location,undefined,"plt-location",string,
"The location of the PLT file, defaults to the profile's base directory"},
{plt_prefix,undefined,"plt-prefix",string,
"The prefix to the PLT file, defaults to \"rebar3\""},
{app,97,"app",string,
"Perform success typing analysis of a single application"},
{base_plt_prefix,undefined,"base-plt-prefix",string,
"The prefix to the base PLT file, defaults to \"rebar3\""},
{statistics,undefined,"statistics",boolean,
"Print information about the progress of execution. Default: false"}],
[default],
default},
{provider,tree,rebar_prv_deps_tree,
{[],[]},
true,
[lock],
[],"Print dependency tree.","rebar3 tree",
[{verbose,118,"verbose",undefined,
"Print repo and branch/tag/ref for git and hg deps"}],
[default],
default},
{provider,deps,rebar_prv_deps,
{[],[]},
true,
[install_deps],
"List dependencies. Those not matching the config file are followed by an asterisk (*).",
"List dependencies","rebar3 deps",[],
[default],
default},
{provider,cover,rebar_prv_cover,
{[],[]},
true,
[lock],
"Perform coverage analysis.","Perform coverage analysis.",
"rebar3 cover",
[{reset,114,"reset",boolean,"Reset all coverdata."},
{verbose,118,"verbose",boolean,"Print coverage analysis."},
{min_coverage,109,"min_coverage",integer,
"Mandate a coverage percentage required to succeed (0..100)"}],
[test],
default},
{provider,compile,rebar_prv_compile,
{[],[]},
true,
[lock],
"Compile apps .app.src and .erl files.",
"Compile apps .app.src and .erl files.","rebar3 compile",
[{deps_only,100,"deps_only",undefined,
"Only compile dependencies, no project apps will be built."}],
[default],
default},
{provider,ct,rebar_prv_common_test,
{[],[]},
true,
[lock],
"Run Common Tests.","Run Common Tests.","rebar3 ct",
[{dir,undefined,"dir",string,
"List of additional directories containing test suites"},
{suite,undefined,"suite",string,"List of test suites to run"},
{group,undefined,"group",string,"List of test groups to run"},
{testcase,undefined,"case",string,"List of test cases to run"},
{label,undefined,"label",string,"Test label"},
{config,undefined,"config",string,"List of config files"},
{spec,undefined,"spec",string,"List of test specifications"},
{join_specs,undefined,"join_specs",boolean,
"Merge all test specifications and perform a single test run"},
{allow_user_terms,undefined,"allow_user_terms",boolean,
"Allow user defined config values in config files"},
{logdir,undefined,"logdir",string,"Log folder"},
{logopts,undefined,"logopts",string,
"Options for common test logging"},
{verbosity,undefined,"verbosity",integer,"Verbosity"},
{cover,99,"cover",{boolean,false},"Generate cover data"},
{cover_export_name,undefined,"cover_export_name",string,
"Base name of the coverdata file to write"},
{repeat,undefined,"repeat",integer,
"How often to repeat tests"},
{duration,undefined,"duration",string,
"Max runtime (format: HHMMSS)"},
{until,undefined,"until",string,"Run until (format: HHMMSS)"},
{force_stop,undefined,"force_stop",string,
"Force stop on test timeout (true | false | skip_rest)"},
{basic_html,undefined,"basic_html",boolean,"Show basic HTML"},
{stylesheet,undefined,"stylesheet",string,
"CSS stylesheet to apply to html output"},
{decrypt_key,undefined,"decrypt_key",string,
"Path to key for decrypting config"},
{decrypt_file,undefined,"decrypt_file",string,
"Path to file containing key for decrypting config"},
{abort_if_missing_suites,undefined,"abort_if_missing_suites",
{boolean,true},
"Abort if suites are missing"},
{multiply_timetraps,undefined,"multiply_timetraps",integer,[]},
{scale_timetraps,undefined,"scale_timetraps",boolean,
"Scale timetraps"},
{create_priv_dir,undefined,"create_priv_dir",string,
"Create priv dir (auto_per_run | auto_per_tc | manual_per_tc)"},
{include,undefined,"include",string,
"Directories containing additional include files"},
{readable,undefined,"readable",string,
"Shows test case names and only displays logs to shell on failures (true | compact | false)"},
{verbose,118,"verbose",boolean,"Verbose output"},
{name,undefined,"name",atom,"Gives a long name to the node"},
{sname,undefined,"sname",atom,
"Gives a short name to the node"},
{setcookie,undefined,"setcookie",atom,
"Sets the cookie if the node is distributed"},
{sys_config,undefined,"sys_config",string,
"List of application config files"},
{compile_only,undefined,"compile_only",boolean,
"Compile modules in the project with the test configuration but do not run the tests"},
{retry,undefined,"retry",boolean,
"Experimental feature. If any specification for previously failing test is found, runs them."},
{fail_fast,undefined,"fail_fast",
{boolean,false},
"Experimental feature. If any test fails, the run is aborted. Since common test does not support this natively, we abort the rebar3 run on a failure. This May break CT's disk logging and other rebar3 features."}],
[test],
default},
{provider,clean,rebar_prv_clean,
{[],[]},
true,
[app_discovery,install_deps],
"Remove compiled beam files from apps.",
"Remove compiled beam files from apps.","rebar3 clean",
[{all,97,"all",undefined,"Clean all apps include deps"},
{apps,undefined,"apps",string,
"Clean a specific list of apps or dependencies"},
{profile,112,"profile",string,
"Clean under profile. Equivalent to `rebar3 as <profile> clean`"}],
[default],
default},
{provider,compile,rebar_prv_bare_compile,
{[],[]},
false,
[{default,app_discovery}],
[],[],[],
[{paths,112,"paths",string,
"Wildcard paths of ebin directories to add to code path, separated by a colon"},
{separator,115,"separator",string,
"In case of multiple return paths, the separator character to use to join them."},
{outdir,111,"outdir",string,
"Path where build artifacts are located. Defaults to the current directory."}],
[default],
bare},
{provider,as,rebar_prv_as,
{[],[]},
true,[],
"Higher order provider for running multiple tasks in a sequence as a certain profiles.",
"Higher order provider for running multiple tasks in a sequence as a certain profiles.",
"rebar3 as <profile1>,<profile2>,... <task1>, <task2>, ...",
[{profile,undefined,undefined,string,"Profiles to run as."}],
[default],
default},
{provider,app_discovery,rebar_prv_app_discovery,
{[],[]},
false,[],[],[],[],[],
[default],
default}],
false},
[]],
[]},
{pc_port_specs,port_opt,2,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_port_specs.erl"},
{line,244}]},
{pc_port_specs,'-get_port_spec/3-lc$^2/1-2-',2,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_port_specs.erl"},
{line,197}]},
{pc_port_specs,get_port_spec,3,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_port_specs.erl"},
{line,197}]},
{pc_port_specs,'-construct/1-lc$^0/1-1-',2,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_port_specs.erl"},
{line,68}]},
{pc_port_specs,construct,1,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_port_specs.erl"},
{line,68}]},
{pc_prv_compile,'-do/1-lc$^0/1-0-',2,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_prv_compile.erl"},
{line,52}]},
{pc_prv_compile,do,1,
[{file,
"/Users/tony/repos/fake_turn_elixir_117/deps/fast_tls/_build/default/plugins/pc/src/pc_prv_compile.erl"},
{line,54}]}]
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
** (Mix) Could not compile dependency :fast_tls, "/Users/tony/.asdf/installs/elixir/1.17.2/.mix/elixir/1-17/rebar3 bare compile --paths /Users/tony/repos/fake_turn_elixir_117/_build/dev/lib/*/ebin" command failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile fast_tls --force", update it with "mix deps.update fast_tls" or clean it with "mix deps.clean fast_tls"
Solved with help from SWM Discord.
Remove the _build directory
rm -rf _build
Make sure the env variables are set properly
export C_INCLUDE_PATH=$(brew --prefix openssl)/include
export LIBRARY_PATH=$(brew --prefix openssl)/lib
export PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig
From here: https://github.com/processone/fast_tls/issues/66
/Users/void/.asdf/installs/elixir/1.17.0/.mix/elixir/1-17/rebar3 plugins upgrade --all
mix local.rebar
Recompile
mix deps.get
mix deps.compile
When try to compile under Elixir 1.17.2 // OTP 27, fast_tls throws an error. That's a dep pulled in by fake_turn. Reporting here, since the fake_turn repo doesn't have issues enabled.
If I drop back down to Elixir 1.16.2 // OTP 26, I have no problems compiling.
Here's a repo that reproduces the issue https://github.com/Tonyhaenn/fake_turn_elixir_117
That should produce the following error:
I'm guessing it's because fake_turn is a few versions out of date