erlef / rebar3_hex Goto Github PK
View Code? Open in Web Editor NEWRebar3 Hex library
License: Apache License 2.0
Rebar3 Hex library
License: Apache License 2.0
I'm trying to compile Inaka/elvis_core@efa6df5 using rebar 3.0.0-beta.4+build.155.ref350fcd9 on Erlang/OTP 18 Erts 7.2.1
It's got a reference to {katana, "0.2.20"}
which rebar3 is failing to find, even though it appears to exist (https://hex.pm/packages/katana).
I tried to run rebar3 hex info katana
to see what's going on, and I see the following error:
$ DEBUG=1 rebar3 hex info katana
===> Load global config file /Users/waisbrot/.config/rebar3/rebar.config
===> Not adding provider hex user from module rebar3_hex_user because it already exists from module rebar3_hex_user
===> Not adding provider hex cut from module rebar3_hex_cut because it already exists from module rebar3_hex_cut
===> Not adding provider hex config from module rebar3_hex_config because it already exists from module rebar3_hex_config
===> Not adding provider hex key from module rebar3_hex_key because it already exists from module rebar3_hex_key
===> Not adding provider hex info from module rebar3_hex_info because it already exists from module rebar3_hex_info
===> Not adding provider hex owner from module rebar3_hex_owner because it already exists from module rebar3_hex_owner
===> Not adding provider hex docs from module rebar3_hex_docs because it already exists from module rebar3_hex_docs
===> Not adding provider hex search from module rebar3_hex_search because it already exists from module rebar3_hex_search
===> Not adding provider hex publish from module rebar3_hex_pkg because it already exists from module rebar3_hex_pkg
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{hex,info}]
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: undef
===> Stack trace to the error location: [{jsx,decode,
[<<"{\n \"url\": \"https://hex.pm/api/packages/katana\",\n \"updated_at\": \"2016-01-19T16:14:25Z\",\n \"releases\": [\n {\n \"version\": \"0.2.20\",\n \"url\": \"https://hex.pm/api/packages/katana/releases/0.2.20\",\n \"updated_at\": \"2016-01-19T16:14:25Z\",\n \"inserted_at\": \"2016-01-19T16:14:25Z\"\n },\n {\n \"version\": \"0.2.19\",\n \"url\": \"https://hex.pm/api/packages/katana/releases/0.2.19\",\n \"updated_at\": \"2016-01-12T11:00:06Z\",\n \"inserted_at\": \"2016-01-12T11:00:06Z\"\n },\n {\n \"version\": \"0.2.18\",\n \"url\": \"https://hex.pm/api/packages/katana/releases/0.2.18\",\n \"updated_at\": \"2015-12-31T15:40:21Z\",\n \"inserted_at\": \"2015-12-31T15:40:21Z\"\n },\n {\n \"version\": \"0.2.17\",\n \"url\": \"https://hex.pm/api/packages/katana/releases/0.2.17\",\n \"updated_at\": \"2015-12-30T21:03:26Z\",\n \"inserted_at\": \"2015-12-30T21:03:26Z\"\n }\n ],\n \"name\": \"katana\",\n \"meta\": {\n \"maintainers\": [\n \"unbalancedparentheses\",\n \"Inaka\"\n ],\n \"links\": {\n \"Github\": \"https://github.com/inaka/erlang-katana\"\n },\n \"licenses\": [\n \"Apache 2.0\"\n ],\n \"description\": \"Erlang grab bag of useful functions. It should have been called swiss army knife but katanas are deadlier\"\n },\n \"inserted_at\": \"2015-12-30T21:03:26Z\",\n \"downloads\": {\n \"week\": 106,\n \"day\": 21,\n \"all\": 191\n }\n}">>],
[]},
{rebar3_hex_http,get,2,
[{file,
"/Users/waisbrot/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_http.erl"},
{line,23}]},
{rebar3_hex_info,package,1,
[{file,
"/Users/waisbrot/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,54}]},
{rebar3_hex_info,do,1,
[{file,
"/Users/waisbrot/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,40}]},
{rebar_core,do,2,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar_prv_do,do_tasks,2,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar_prv_do.erl"},
{line,68}]},
{rebar_core,do,2,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar3,main,1,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar3.erl"},
{line,56}]}]
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
I'd be happy to work on a PR, but I wasn't able to figure out how rebar3_hex_http.erl:23
leads to a call to jsx:decode/1
rebar3 report
(I can submit a ticket over there if that's better) says
$ rebar3 report hex info katana
Rebar3 report
version 3.0.0-beta.4+build.155.ref350fcd9
generated at 2016-01-20T19:50:01+00:00
=================
Please submit this along with your issue at https://github.com/rebar/rebar3/issues (and feel free to edit out private information, if any)
-----------------
Task: hexinfokatana
Entered as:
hexinfokatana
-----------------
Operating System: x86_64-apple-darwin15.2.0
ERTS: Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false] [dtrace]
Root Directory: /usr/local/Cellar/erlang/18.2.1/lib/erlang
Library directory: /usr/local/Cellar/erlang/18.2.1/lib/erlang/lib
-----------------
Loaded Applications:
bbmustache: 1.0.4
certifi: 0.3.0
cf: 0.2.1
common_test: 1.11.1
compiler: 6.0.2
crypto: 3.6.2
cth_readable: 1.2.0
dialyzer: 2.8.2
edoc: 0.7.17
erlware_commons: 0.18.0
eunit: 2.2.12
eunit_formatters: 0.3.1
getopt: 0.8.2
inets: 6.1
kernel: 4.1.1
providers: 1.6.0
public_key: 1.1
relx: 3.13.0
sasl: 2.6.1
snmp: 5.2.1
ssl_verify_hostname: 1.0.5
stdlib: 2.7
syntax_tools: 1.7
tools: 2.8.2
-----------------
Escript path: undefined
Providers:
app_discovery as auto clean compile compile config cover ct cut deps dialyzer do docs edoc escriptize eunit help info install install_deps key list lock new owner path pkgs publish release relup report search shell tar tree unlock update upgrade upgrade upgrade user version xref
Migrated from erlang/rebar3#1195
$ DEBUG=1 rebar3 hex info lager
===> Load global config file /Users/j/.config/rebar3/rebar.config
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{hex,info}]
lager
Releases: 3.0.2, 3.0.1, 2.1.1
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: function_clause
===> Stack trace to the error location: [{rebar3_hex_info,
'-join/1-lc$^0/1-0-',
[nil],
[{file,
"/Users/j/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,184}]},
{rebar3_hex_info,join,1,
[{file,
"/Users/j/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,184}]},
{rebar3_hex_info,package,1,
[{file,
"/Users/j/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,152}]},
{rebar3_hex_info,do,1,
[{file,
"/Users/j/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,42}]},
{rebar_core,do,2,
[{file,
"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar_prv_do,do_tasks,2,
[{file,
"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_do.erl"},
{line,68}]},
{rebar_core,do,2,
[{file,
"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar3,main,1,
[{file,
"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar3.erl"},
{line,56}]}]
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
Report output:
Rebar3 report
version 3.1.0
generated at 2016-05-17T09:35:34+00:00
=================
Please submit this along with your issue at https://github.com/erlang/rebar3/issues (and feel free to edit out private information, if any)
-----------------
Task: hex
Entered as:
hex info lager
-----------------
Operating System: x86_64-apple-darwin15.3.0
ERTS: Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false] [dtrace]
Root Directory: /usr/local/Cellar/erlang/18.3/lib/erlang
Library directory: /usr/local/Cellar/erlang/18.3/lib/erlang/lib
-----------------
Loaded Applications:
bbmustache: 1.0.4
certifi: 0.4.0
cf: 0.2.1
common_test: 1.12
compiler: 6.0.3
crypto: 3.6.3
cth_readable: 1.2.2
dialyzer: 2.9
edoc: 0.7.18
erlware_commons: 0.19.0
eunit: 2.2.13
eunit_formatters: 0.3.1
getopt: 0.8.2
inets: 6.2
kernel: 4.2
providers: 1.6.0
public_key: 1.1.1
relx: 3.17.0
sasl: 2.7
snmp: 5.2.2
ssl_verify_hostname: 1.0.5
stdlib: 2.8
syntax_tools: 1.7
tools: 2.8.3
-----------------
Escript path: /Users/j/bin/rebar3
Providers:
app_discovery as auto clean compile compile config cover ct cut deps dialyzer do docs edoc escriptize eunit help info install install_deps key list lock new owner path pkgs publish release relup report search shell state tar tree unlock update upgrade upgrade upgrade user version xref
I tried to install the plugin but it fails on compilation:
~/Development/rebarhextest> ./rebar3 plugins
===> Fetching rebar3_hex ({pkg,<<"rebar3_hex">>,<<"1.2.0">>})
===> Fetching jsx ({pkg,<<"jsx">>,<<"2.6.1">>})
===> Compiling jsx
===> Compiling rebar3_hex
===> Compiling /Users/chris/Development/rebarhextest/_build/default/plugins/rebar3_hex/src/rebar3_hex_tar.erl failed
/Users/chris/Development/rebarhextest/_build/default/plugins/rebar3_hex/src/rebar3_hex_tar.erl:33: variable 'X' is unbound
/Users/chris/Development/rebarhextest/_build/default/plugins/rebar3_hex/src/rebar3_hex_tar.erl:34: Warning: variable 'X' is unused
/Users/chris/Development/rebarhextest/_build/default/plugins/rebar3_hex/src/rebar3_hex_tar.erl:34: Warning: variable 'X' shadowed in generate
===> Plugin rebar3_hex not available. It will not be used.
plugins <task>:
list List local and global plugins for this project
upgrade Uprade plugins
(This is reproducible, my docker image builds also fail: https://hub.docker.com/r/asaaki/base-erlang/builds/bdixrwrcubozhw9squjqgn9/)
It seems this commit (705efd0) broke it.
https://github.com/hexpm/rebar3_hex/blob/f48d66a9bd2b5b7c5db4eaeed7b917d2b7b20f03/README.md#usage says to put {plugins, [rebar3_hex]}.
in my project's rebar.config
.
http://www.rebar3.org/docs/using-available-plugins#hex-package-management says
For the
hex
plugin it is suggested to place the entry in the globalrebar3
config which should be made as~/.config/rebar3/rebar.config
.
I recently published http://github.com/ferd/backoff to hex.pm so I could easily depend on it from my Elixir/mix project. I then got a WARN: Missing plugins: [rebar3_hex]
message when building the dependency using mix, so I've removed {plugins, [rebar3_hex]}.
from backoff's rebar.config
and rely on ~/.config/rebar3/rebar.config
.
What is the best practice approach here?
If a package has unstable dependencies it is regarded as unstable itself.
The hexpm server will introduce this policy in the future so we should make rebar3 users have a grace period to update their packages until it becomes an error.
Environment:
OS - Ubuntu 16.10 Yakkety Yak
Elixir - 1.3.4
Erlang/OTP - 19
===> error: function_clause [{string,substr2,
[<<"http://127.0.0.1:3128/">>,1],
[{file,"string.erl"},{line,213}]},
{string,substr,3,
[{file,"string.erl"},{line,208}]},
{http_uri,split_uri,5,
[{file,"http_uri.erl"},{line,201}]},
{http_uri,parse_scheme,2,
[{file,"http_uri.erl"},{line,137}]},
{http_uri,parse,2,
[{file,"http_uri.erl"},{line,89}]},
{rebar3_hex_http,maybe_setup_proxy,2,
[{file,
"../deps/fs/_build/default/plugins/rebar3_hex/src/rebar3_hex_http.erl"},
{line,122}]},
{rebar3_hex_http,maybe_setup_proxy,0,
[{file,
"../deps/fs/_build/default/plugins/rebar3_hex/src/rebar3_hex_http.erl"},
{line,116}]},
{rebar3_hex,init,1,
[{file,
"../deps/fs/_build/default/plugins/rebar3_hex/src/rebar3_hex.erl"},
{line,7}]}]
===> Failed creating providers. Run with DEBUG=1 for stacktrace or consult rebar3.crashdump.
** (Mix) Could not compile dependency :fs, "../.asdf/installs/elixir/1.3.4/.mix/rebar3 bare compile --paths "../_build/dev/lib/*/ebin"" command failed. You can recompile this dependency with "mix deps.compile fs", update it with "mix deps.update fs" or clean it with "mix deps.clean fs"
How to ensure successful compilation behind proxy? Uses CNTLM for proxy
Plugin should warn that user is not authenticated to hex.pm when trying to publish package:
~/projects/rebar3_diameter_compiler
☺ ./rebar3 hex publish master@ee4afae
===> Load global config file /Users/carlosedp/.config/rebar3/rebar.config
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: {badmatch,error}
===> Stack trace to the error location: [{rebar3_hex_pkg,publish,6,
[{file,
"/Users/carlosedp/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl"},
{line,114}]},
{rebar3_hex_pkg,publish,2,
[{file,
"/Users/carlosedp/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl"},
{line,84}]},
{lists,foldl,3,
[{file,"lists.erl"},
{line,1261}]},
{rebar_core,do,2,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,124}]},
{rebar_prv_do,do_tasks,2,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar_prv_do.erl"},
{line,68}]},
{rebar_core,do,2,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,124}]},
{rebar3,main,1,
[{file,
"/home/travis/build/rebar/rebar3/_build/default/lib/rebar/src/rebar3.erl"},
{line,47}]},
{escript,run,2,
[{file,"escript.erl"},
{line,752}]}]
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
Also would be great to add the command options documentation from readme to the plugin itself (when ran ./rebar3 hex).
e.g. lfe lodox
instead of edoc
I'm trying to publish beam_olympics.
If I use rebar3 version 3.2.0:
$ rebar3 hex publish
===> Verifying dependencies...
Publishing beam_olympics 1.2.0
Description: Let's find the best beamer!
Dependencies:
eper ~> 0.94
epocxy 1.1.0
sumo_db 0.6.1
Included files:
…
If I use rebar3 version 3.3.0:
$ rebar3 hex publish
===> Verifying dependencies...
Publishing beam_olympics 1.2.0
Description: Let's find the best beamer!
Dependencies:
Included files:
…
As you can see, the plugin can't find the dependencies with the latest version of rebar3.
I did following:
$ rebar3 hex publish
Publishing jsonrpc2 0.9.2
Dependencies:
Excluded dependencies (not part of the Hex package):
Included files:
src/jsonrpc2.app.src
src/jsonrpc2.erl
src/jsonrpc2_client.erl
rebar.config
README.md
LICENSE
Proceed? ("Y")> n
Goodbye...
Empty package was created: https://hex.pm/packages/jsonrpc2
In order to prevent packages being published, we need to alert users that they need to include a description (see hexpm/hex#145 and hexpm/hexpm#162)
This can be fixed here, I assume
Need to handle this and print a nice message:
{"init terminating in do_boot",{function_clause,[{rebar3_hex_pkg,errors_to_string,[#{<<"meta">>=>#{<<"links">>=><<"is invalid">>}}]
While other hex commands work fine (reba3 hex publish, for example), DEBUG=1 ./rebar3 hex docs produces
Running edoc for jwalk
... snip...
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: function_clause
===> Stack trace to the error location: [{filename,do_flatten,
[{"doc/edoc-info",
"/Users/jrosenblum/src/jwalk/doc/edoc-info"},
[]],
[{file,"filename.erl"},
{line,938}]},
{filename,split,1,
[{file,"filename.erl"},
{line,642}]},
{rebar3_hex_docs,drop_path,2,
[{file,
"/Users/jrosenblum/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_docs.erl"},
{line,97}]},
{rebar3_hex_docs,
'-file_list/1-lc$^0/1-0-',1,
[{file,
"/Users/jrosenblum/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_docs.erl"},
{line,94}]},
{rebar3_hex_docs,do_,2,
[{file,
"/Users/jrosenblum/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_docs.erl"},
{line,57}]},
{lists,foldl,3,
[{file,"lists.erl"},
{line,1262}]},
{rebar_core,do,2,
[{file,
"/Users/jrosenblum/src/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar_prv_do,do_tasks,2,
[{file,
"/Users/jrosenblum/src/rebar3/_build/default/lib/rebar/src/rebar_prv_do.erl"},
{line,68}]}]
Rebar3 report
version 3.0.0-beta.4+build.3174.ref2de7ce2
generated at 2015-12-03T02:55:21+00:00
Please submit this along with your issue at https://github.com/rebar/rebar3/issues (and feel free to edit out private information, if any)
Task: hexdocs
Entered as:
hexdocs
Operating System: x86_64-apple-darwin14.1.0
ERTS: Erlang/OTP 18 [erts-7.1] [source-2882b0c] [64-bit] [smp:8:8] [async-threads:0] [hipe] [kernel-poll:false]
Root Directory: /usr/local/lib/erlang
Library directory: /usr/local/lib/erlang/lib
Loaded Applications:
bbmustache: 1.0.4
certifi: 0.1.1
cf: 0.2.1
common_test: 1.11
compiler: 6.0.1
crypto: 3.6.1
cth_readable: 1.1.0
dialyzer: 2.8.1
edoc: 0.7.17
erlware_commons: 0.18.0
eunit: 2.2.11
eunit_formatters: 0.3.1
getopt: 0.8.2
inets: 6.0.1
kernel: 4.1
providers: 1.6.0
public_key: 1.0.1
relx: 3.9.0
sasl: 2.6
snmp: 5.2
ssl_verify_hostname: 1.0.5
stdlib: 2.6
syntax_tools: 1.7
tools: 2.8.1
when a c_src directory exists rebar_hex will publish .d, .o, .so objects along with the source, that can lead to very bad results (aka loosing platform independence). Making this mistake is much too easy.
Appears when using "rebar3 hex publish", when using a .app file in ebin, instead of a .app.src file in src.
kristian@signhild:~/Documents/erlang/brunhilde$ DEBUG=1 rebar3 hex publish
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{default,app_discovery},
{default,install_deps},
{default,lock},
{hex,publish}]
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl/src/erlydtl.app.src.script"
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl/rebar.config.script"
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/jsx/rebar.config.script"
===> Not adding provider hex user from module rebar3_hex_user because it already exists from module rebar3_hex_user
===> Not adding provider hex cut from module rebar3_hex_cut because it already exists from module rebar3_hex_cut
===> Not adding provider hex config from module rebar3_hex_config because it already exists from module rebar3_hex_config
===> Not adding provider hex key from module rebar3_hex_key because it already exists from module rebar3_hex_key
===> Not adding provider hex info from module rebar3_hex_info because it already exists from module rebar3_hex_info
===> Not adding provider hex owner from module rebar3_hex_owner because it already exists from module rebar3_hex_owner
===> Not adding provider hex docs from module rebar3_hex_docs because it already exists from module rebar3_hex_docs
===> Not adding provider hex search from module rebar3_hex_search because it already exists from module rebar3_hex_search
===> Not adding provider hex publish from module rebar3_hex_pkg because it already exists from module rebar3_hex_pkg
===> Not adding provider hex user from module rebar3_hex_user because it already exists from module rebar3_hex_user
===> Not adding provider hex cut from module rebar3_hex_cut because it already exists from module rebar3_hex_cut
===> Not adding provider hex config from module rebar3_hex_config because it already exists from module rebar3_hex_config
===> Not adding provider hex key from module rebar3_hex_key because it already exists from module rebar3_hex_key
===> Not adding provider hex info from module rebar3_hex_info because it already exists from module rebar3_hex_info
===> Not adding provider hex owner from module rebar3_hex_owner because it already exists from module rebar3_hex_owner
===> Not adding provider hex docs from module rebar3_hex_docs because it already exists from module rebar3_hex_docs
===> Not adding provider hex search from module rebar3_hex_search because it already exists from module rebar3_hex_search
===> Not adding provider hex publish from module rebar3_hex_pkg because it already exists from module rebar3_hex_pkg
===> Verifying dependencies...
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl/src/erlydtl.app.src.script"
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl/src/erlydtl.app.src.script"
===> Upgrading erlydtl ({pkg,<<"erlydtl">>,<<"0.12.1">>})
===> Successfully downloaded https://repo.hex.pm:443/tarballs/erlydtl-0.12.1.tar?
===> Downloaded package, caching at /home/kristian/.cache/rebar3/hex/default/packages/erlydtl-0.12.1.tar
===> Writing {pkg,<<"erlydtl">>,<<"0.12.1">>} to cache at /home/kristian/.cache/rebar3/hex/default/packages/erlydtl-0.12.1.tar
===> Moving checkout "/tmp/.tmp_dir321294108200" to "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl"
===> sh info:
cwd: "/home/kristian/Documents/erlang/brunhilde"
cmd: mv /tmp/.tmp_dir321294108200 /home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl
===> opts: [{use_stdout,false},abort_on_error]
===> Port Cmd: mv /tmp/.tmp_dir321294108200 /home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl
Port Opts: [exit_status,{line,16384},use_stdio,stderr_to_stdout,hide,eof]
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/build/default/lib/erlydtl/src/erlydtl.app.src.script"
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/erlydtl/rebar.config.script"
===> Evaluating config script "/home/kristian/Documents/erlang/brunhilde/_build/default/lib/jsx/rebar.config.script"
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: {badmatch,[]}
===> Stack trace to the error location: [{rebar3_hex_utils,
update_app_src,2,
[{file,
"/home/kristian/Documents/erlang/brunhilde/_build/default/plugins/rebar3_hex/src/rebar3_hex_utils.erl"},
{line,14}]},
{rebar3_hex_pkg,publish,2,
[{file,
"/home/kristian/Documents/erlang/brunhilde/_build/default/plugins/rebar3_hex/src/rebar3_hex_pkg.erl"},
{line,104}]},
{rebar3_hex_pkg,do,2,
[{file,
"/home/kristian/Documents/erlang/brunhilde/_build/default/plugins/rebar3_hex/src/rebar3_hex_pkg.erl"},
{line,79}]},
{lists,foldl,3,
[{file,"lists.erl"},
{line,1263}]},
{rebar_core,do,2,
[{file,
"/home/kristian/Documents/erlang/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar_prv_do,do_tasks,2,
[{file,
"/home/kristian/Documents/erlang/rebar3/_build/default/lib/rebar/src/rebar_prv_do.erl"},
{line,68}]},
{rebar_core,do,2,
[{file,
"/home/kristian/Documents/erlang/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,125}]},
{rebar3,main,1,
[{file,
"/home/kristian/Documents/erlang/rebar3/_build/default/lib/rebar/src/rebar3.erl"},
{line,56}]}]
kristian@signhild:~/Documents/erlang/brunhilde$ rebar3 hex publish
===> Verifying dependencies...
===> Upgrading erlydtl ({pkg,<<"erlydtl">>,<<"0.12.1">>})
===> Downloaded package, caching at /home/kristian/.cache/rebar3/hex/default/packages/erlydtl-0.12.1.tar
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
kristian@signhild:~/Documents/erlang/brunhilde$ rebar3 report hex publish
Rebar3 report
version 3.1.0+build.3402.refcb7c9a4
generated at 2016-09-26T17:49:17+00:00
=================
Please submit this along with your issue at https://github.com/erlang/rebar3/issues (and feel free to edit out private information, if any)
-----------------
Task: hexpublish
Entered as:
hexpublish
-----------------
Operating System: x86_64-unknown-linux-gnu
ERTS: Erlang/OTP 19 [erts-8.0.2] [source-9503fff] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false]
Root Directory: /usr/lib/erlang
Library directory: /usr/lib/erlang/lib
-----------------
Loaded Applications:
bbmustache: 1.0.4
certifi: 0.4.0
cf: 0.2.1
common_test: 1.12.2
compiler: 7.0.1
crypto: 3.7
cth_readable: 1.2.2
dialyzer: 3.0.1
edoc: 0.7.19
erlware_commons: 0.20.0
eunit: 2.3
eunit_formatters: 0.3.1
getopt: 0.8.2
inets: 6.3.1
kernel: 5.0
providers: 1.6.0
public_key: 1.2
relx: 3.19.0
sasl: 3.0
snmp: 5.2.3
ssl_verify_hostname: 1.0.5
stdlib: 3.0.1
syntax_tools: 2.0
tools: 2.8.5
-----------------
Escript path: /home/kristian/Documents/erlang/rebar3/rebar3
Providers:
app_discovery as clean compile compile config cover ct cut deps dialyzer do docs edoc escriptize eunit help info install install_deps key list lock
new owner path pkgs publish release relup report search shell state tar tree unlock update upgrade upgrade upgrade user version xref
When you don't pay attention, some none files may be included in the source package. For example .so in priv, .o in c_src ...
Having a .hexignore would be useful for that. Thoughts?
I have a user and I tried to publish something on my new computer, and got the error no user registered:
[email protected]:~/Documents/brunhilde$ rebar3 hex publish ^[[A===> Verifying dependencies... ===> Upgrading erlydtl ({pkg,<<"erlydtl">>,<<"0.12.0">>, <<"CCD18010AE38444CE292379988EF5973B58C4505FEADD787242D1505AA999788">>}) ===> Downloaded package, caching at /Users/kristiansallberg/.cache/rebar3/hex/default/packages/erlydtl-0.12.0.tar ===> No user registered. See https://hex.pm/docs/rebar3_publish for instructions.
So I thought, okay I need to register.
`[email protected]:~/Documents/brunhilde$ rebar3 hex user register
By registering an account on Hex.pm you accept all our policies and terms of service found at https://hex.pm/policies
Username: ([])> my user
Email: ([])> mail
Password:
Password (confirm):
Registering...
Registration of user ... failed (401)`
So I should have used used "rebar3 hex user auth" instead.
hex user [register|whoami|auth|deauth|reset_password]
Maybe we can make the first error message say you can either register or auth? Maybe the second error message can say that the user you tried to register already exists, you need to auth.
I've tried to debug another issue and added a https_proxy config setting.
Currently, when a dependency is put into _checkouts
for development, rebar3_hex
will silently remove that from the dependencies when trying to publish. It should probably prevent that or ignore the directory for this run.
I'm not sure when this broke, but I just noticed that rebar3 hex publish
isn't collecting any of the dependencies that are listed in rebar.config and rebar.lock. They are Hex-published dependencies, and it's able to give me an error when I have a non-Hex dependency present.
I haven't had a chance to debug further, yet.
Hi guys.
Having troubles publishing current master of https://github.com/klarna/brod to hex:
$ cd brod
$ rebar3 hex publish
===> Verifying dependencies...
===> Can not publish package because the following deps are not available in hex: kafka_protocol, supervisor3
$ rebar3 version
rebar 3.1.1 on Erlang/OTP 18 Erts 7.2
$ rebar3 plugins upgrade rebar3_hex
===> No upgrade needed for rebar3_hex
$ rebar3 hex info kafka_protocol
kafka_protocol
Releases: 0.3.1, 0.2.3
Maintainers: Shi Zaiming, Ivan Dyachkov
Licenses: Apache License 2.0
Links:
Github: https://github.com/klarna/kafka_protocol
Kafka protocol erlang library
$ rebar3 hex info supervisor3
supervisor3
Releases: 1.0.1, 1.0.0
Maintainers: Shi Zaiming, Ivan Dyachkov
Licenses: MPL
Links:
Github: https://github.com/klarna/supervisor3
A copy of supervisor.erl from the R16B Erlang/OTP with modifications
using rebar3 hex cut tends to fail silently when something goes wrong. For example i.e. when using cut to generate a new release but a ebin/.app
file exist (due to checkouts creating them) the plugin will run through happily and not give an error but neither publish a new package (since the package can't be published due to version conflicts)
If build_tools
is in the .app.src
include it (along with rebar3
) in the package metadata.
The hex plugin still checks ./ebin/*.app for the app version during publish and cut, how I understand it with rebar3 that should all be in _build/default/...
This difference in behavior can lead to some confusion when a old ebin folder exists and cut/publish refuses to pick up the new version that rebar3 already knows about.
Check rebar.config
to see if a non-strict version requirement is used and use that in the package instead of what is in the lock file. And if just the package name is in the rebar.config
use ~> (lock version)
I registered a new hex account and received the confirmation email as expected, but no hex configuration was written. Glancing over the source, the only place I see a call to rebar3_hex_config:write
is in the deauth
function.
Here is the output of a few commands after I completed registration and confirm via email.
$ ./rebar3 hex user whoami
$ ./rebar3 hex config username
username:
Shouldn't the register process write a config or is writing a config file expected to be a manual step?
just an annoying error handling misfeature.
Would be better if the user got a "Network error" message.
$ DEBUG=1 rebar3 hex user auth
===> Evaluating config script "rebar.config.script"
===> Load global config file /Users/masse/.config/rebar3/rebar.config
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{hex,user}]
Username: ([])> massemanet
Password:
Generating API key...
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.crashdump
===> Uncaught error: {case_clause,
{error,
{failed_connect,
[{to_address,{"hex.pm",443}},
{inet,[inet],nxdomain}]}}}
===> Stack trace to the error location:
[{rebar3_hex_http,post_map,3,
...}]
$ rebar3 report "rebar3 hex user auth"
Rebar3 report
version 3.3.5
generated at 2017-04-14T14:17:32+00:00
=================
Task: rebar3
Entered as:
rebar3 hex user auth
-----------------
Operating System: x86_64-apple-darwin16.4.0
ERTS: Erlang/OTP 19 [erts-8.3] [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false] [dtrace]
Root Directory: /usr/local/Cellar/erlang/19.3/lib/erlang
Library directory: /usr/local/Cellar/erlang/19.3/lib/erlang/lib
-----------------
Loaded Applications:
bbmustache: 1.3.0
certifi: 0.4.0
cf: 0.2.2
common_test: 1.14
compiler: 7.0.4
crypto: 3.7.3
cth_readable: 1.2.3
dialyzer: 3.1
edoc: 0.8.1
erlware_commons: 1.0.0
eunit: 2.3.2
eunit_formatters: 0.3.1
getopt: 0.8.2
inets: 6.3.6
kernel: 5.2
providers: 1.6.0
public_key: 1.4
relx: 3.22.2
sasl: 3.0.3
snmp: 5.2.5
ssl_verify_fun: 1.1.1
stdlib: 3.3
syntax_tools: 2.1.1
tools: 2.9.1
-----------------
Escript path: /usr/local/bin/rebar3
Providers:
app_discovery as clean compile compile config cover ct cut deps dialyzer do docs edoc escriptize eunit get-deps help info install install_deps key list lock new owner path pkgs publish release relup report search shell state tar tree unlock update upgrade upgrade upgrade user version xref
Trying to publish an Erlang package I get the following error message:
[<<"{\"status\":422,\"message\":\"Validation error(s)\",\"errors\":{\\"requirements\":\"is invalid\"}}">>],
What is requirements? There is no such keyword in the rebar.config or app.src. It could possibly be deps in rebar.config or applications in app.src. However there is no description on which what or what the problem is.
Currently when rebar3 hex user auth
fails, no status code is reported (also no info is printed with DEBUG=1
set). It would be more pleasing to get some feedback on what went wrong.
FWIW mix hex.user auth
reports:
Username: sanmiguel
Password:
Generating API key...
Generation of API key failed (401)
Authentication failed (401)
When trying to publish a package with a non-semantic version number Hex returns 500 Internal Server Error (since fixed by @ericmj). The Hex plugin for Rebar 3 should ideally verify version numbers before trying to publish.
I get this error when I try to register with hex:
$ rebar3 hex user register
Username: ([])> drozzy
Email: ([])> [email protected]
�[0;31m===> �[1mUncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
�[0m�[0m�[0;32m===> When submitting a bug report, please include the output of `rebar3 report "your command"`
�[0m
I am using Win10, with Erlang18. Using rebar3 version 3.2.0.
(Ignore the weird terminal characters - it's just MINGW64)
I've tried to publish an erlang package. I followed the guide on hex.pm, I installed rebar3 and rebar3_hex for the first time. I registered and account. I've added all the metadata, I accepted the code of conduct and then it fails saying:
===> Status Code: HTTP status code: 400
Hex Error: Bad request
What is even worse: The package is listed on the frontpage now but if I click on it I get a 404. I can also not unpublish it - this whole process should be transactional.
So how can I debug this? The package source is here:
It looks like at the moment search only considers the package name. It'd be useful if it used the package description, too.
E.g. no results when searching for postgresql
:
lbolla@albion ~ > rebar3 hex search postgresql
lbolla@albion ~ >
Even if epgsql
has "Postgresql" in its description: https://hex.pm/packages/epgsql
The command available in hex is not available in rebar3.
https://hex.pm/docs/tasks#hex_retire
This command is really useful to invalidate bad revisions of a package
things like:
*~
.#*
...
that are know to be markers for temp files, it would be nice if rebar3_hex would ignore them by default
I didn't see anyway yet to add some folders to the release. In my case I wanted to add a "support" folder to add some scripts and I wasn't able to include them in the source package except in the priv folder. But in that case such files would be shipped in the release.
Having a folders
or packages
property in the .app.src
for such purpose would be useful IMO. Thoughts?
Following the discussion in erlang/rebar3#908 , I open a ticket here to track the possible addition of a new metadata to the app.src
possibly named package_name
. The main goal of this feature is to set the package name in hex independently of the application name itself.
It frequently happens that some values (contributors, maintainers, licenses, links) in 'meta' are null
instead of list. In this case rebar3 hex info <package>
return error
$ DEBUG=1 rebar3 hex info poison
===> Load global config file /home/seriy/.config/rebar3/rebar.config
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{hex,info}]
poison
Releases: 2.1.0, 2.0.1, 2.0.0, 1.5.2, 1.5.1, 1.5.0, 1.4.0, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.1, 1.1.0, 1.0.3, 1.0.2, 1.0.1, 1.0.0
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: function_clause
===> Stack trace to the error location: [{rebar3_hex_info,
'-join/1-lc$^0/1-0-',
[nil],
[{file,
"/home/***/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,184}]},
{rebar3_hex_info,join,1,
[{file,
"/home/***/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_info.erl"},
{line,184}]},
<...>
$ rebar3 report "rebar3 hex info poison"
Rebar3 report
version 3.1.0
generated at 2016-05-04T22:15:08+00:00
=================
Please submit this along with your issue at https://github.com/erlang/rebar3/issues (and feel free to edit out private information, if any)
-----------------
Task: rebar3
Entered as:
rebar3 hex info poison
-----------------
Operating System: i686-pc-linux-gnu
ERTS: Erlang/OTP 18 [erts-7.3] [source] [smp:4:4] [async-threads:0] [kernel-poll:false]
Root Directory: /usr/lib/erlang
Library directory: /usr/lib/erlang/lib
-----------------
Loaded Applications:
bbmustache: 1.0.4
certifi: 0.4.0
cf: 0.2.1
compiler: 6.0.3
crypto: 3.6.3
cth_readable: 1.2.2
dialyzer: 2.9
edoc: 0.7.18
erlware_commons: 0.19.0
eunit: 2.2.13
eunit_formatters: 0.3.1
getopt: 0.8.2
inets: 6.2
kernel: 4.2
providers: 1.6.0
public_key: 1.1.1
relx: 3.17.0
sasl: 2.7
snmp: 5.2.2
ssl_verify_hostname: 1.0.5
stdlib: 2.8
syntax_tools: 1.7
tools: 2.8.3
-----------------
Escript path: /usr/local/bin/rebar3
Providers:
app_discovery as clean compile compile config cover ct cut deps dialyzer do docs edoc escriptize eunit help info install install_deps key list lock new owner path pkgs publish release relup report search shell state tar tree unlock update upgrade upgrade upgrade user version xref
Hello,
This could very well be a user-related issue, so bear with me.. When I run rebar3 hex publish
in my local eredis
checkout I get the following stack trace:
escript: exception error: no function clause matching
rebar3_hex_pkg:errors_to_string(#{<<"meta">> =>
#{<<"licenses">> =>
<<"can't be blank">>}}) (/home/knutin/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl, line 201)
in function rebar3_hex_pkg:format_error/1 (/home/knutin/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl, line 57)
in call from rebar3:handle_error/1 (/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar3.erl, line 314)
in call from escript:run/2 (escript.erl, line 760)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_em/1
in call from init:do_boot/3
I think I should be authenticated okay.
$ rebar3 hex user whoami
[email protected]
Any ideas what I'm doing wrong?
I am getting the following error when trying to publish a hex package:
$ rebar3 --version
rebar 3.0.0-beta.4+build.3432.ref9fe6588 on Erlang/OTP 18 Erts 7.1
$ rebar3 hex publish
Publishing erlexec 1.1.3
Dependencies:
Excluded dependencies (not part of the Hex package):
Included files:
/home/serge/projects/erl-libs/erlexec/src/edoc.css
/home/serge/projects/erl-libs/erlexec/src/erlexec.app.src
/home/serge/projects/erl-libs/erlexec/src/exec.erl
/home/serge/projects/erl-libs/erlexec/src/exec_app.erl
/home/serge/projects/erl-libs/erlexec/src/overview.edoc
/home/serge/projects/erl-libs/erlexec/c_src/ei++.cpp
/home/serge/projects/erl-libs/erlexec/c_src/ei++.hpp
/home/serge/projects/erl-libs/erlexec/c_src/exec.cpp
/home/serge/projects/erl-libs/erlexec/include/exec.hrl
/home/serge/projects/erl-libs/erlexec/rebar.config.script
/home/serge/projects/erl-libs/erlexec/rebar.config
/home/serge/projects/erl-libs/erlexec/rebar.lock
/home/serge/projects/erl-libs/erlexec/README.md
/home/serge/projects/erl-libs/erlexec/LICENSE
Before publishing, please read Hex CoC: https://hex.pm/docs/codeofconduct
Proceed? ("Y")> y
escript: exception error: no function clause matching
rebar3_hex_pkg:errors_to_string(#{<<"requirements">> => <<"expected type list(map)">>}) (/home/serge/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl, line 192)
in function rebar3_hex_pkg:format_error/1 (/home/serge/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl, line 54)
in call from rebar3:handle_error/1 (/home/serge/tmp/archlinux/build/mqt-erl-sw/src/rebar3/_build/default/lib/rebar/src/rebar3.erl, line 267)
in call from escript:run/2 (escript.erl, line 757)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_it/1
in call from init:start_em/1$ rebar3 hex publish
Publishing erlexec 1.1.3
Dependencies:
Excluded dependencies (not part of the Hex package):
Included files:
/home/serge/projects/erl-libs/erlexec/src/edoc.css
/home/serge/projects/erl-libs/erlexec/src/erlexec.app.src
/home/serge/projects/erl-libs/erlexec/src/exec.erl
/home/serge/projects/erl-libs/erlexec/src/exec_app.erl
/home/serge/projects/erl-libs/erlexec/src/overview.edoc
/home/serge/projects/erl-libs/erlexec/c_src/ei++.cpp
/home/serge/projects/erl-libs/erlexec/c_src/ei++.hpp
/home/serge/projects/erl-libs/erlexec/c_src/exec.cpp
/home/serge/projects/erl-libs/erlexec/include/exec.hrl
/home/serge/projects/erl-libs/erlexec/rebar.config.script
/home/serge/projects/erl-libs/erlexec/rebar.config
/home/serge/projects/erl-libs/erlexec/rebar.lock
/home/serge/projects/erl-libs/erlexec/README.md
/home/serge/projects/erl-libs/erlexec/LICENSE
Before publishing, please read Hex CoC: https://hex.pm/docs/codeofconduct
Proceed? ("Y")> y
escript: exception error: no function clause matching
rebar3_hex_pkg:errors_to_string(#{<<"requirements">> => <<"expected type list(map)">>}) (/home/serge/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl, line 192)
in function rebar3_hex_pkg:format_error/1 (/home/serge/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_pkg.erl, line 54)
in call from rebar3:handle_error/1 (/home/serge/tmp/archlinux/build/mqt-erl-sw/src/rebar3/_build/default/lib/rebar/src/rebar3.erl, line 267)
in call from escript:run/2 (escript.erl, line 757)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_it/1
in call from init:start_em/1
What is the cause of it? The "requirements" clause doesn't seem to be well documented here. Could you make this error report more "user-friendly"?
Here rebar3_hex_search:do
calls rebar_packages:registry
https://github.com/hexpm/rebar3_hex/blob/master/src/rebar3_hex_search.erl#L31
but rebar_packages doesn't export or even have such function
https://github.com/rebar/rebar3/blob/master/src/rebar_packages.erl#L3
How does it work?
I think something like the following would be really nice to keep tags on the repo that correspond to the release package:
Create 'version bump' commit? ("Y")>
Create 'v<version number>' tag? ("Y")>
Push master to origin master? ("N")> Y
I know this somewhat works with using the git
version already but that itself comes with a bit of a ickyness.
Hi,
I get the following error when authorizing a user. Some paths is modified to keep (some parts of the) information private.
$ DEBUG=1 ./rebar3 hex user auth
===> Load global config file "~/.config/rebar3/rebar.config"
===> Due to a filelib bug in Erlang 17.1 it is recommendedyou update to a newer release.
Username: ([])> sebastiw
Password:
Generating API key...
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace
===> Uncaught error: {case_clause,
{error,
{failed_connect,
[{to_address,{"hex.pm",443}},
{inet,
[inet],
{options,
{socket_options,
[{mode,binary},
{active,false},
inet,
{partial_chain,
#Fun<rebar3_hex_http.1.61525546>}]}}}]}}}
===> Stack trace to the error location: [{rebar3_hex_http,post_json,3,
[{file,
"~/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_http.erl"},
{line,50}]},
{rebar3_hex_user,
generate_key,2,
[{file,
"~/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_user.erl"},
{line,150}]},
{rebar3_hex_user,do,1,
[{file,
"~/.cache/rebar3/plugins/rebar3_hex/src/rebar3_hex_user.erl"},
{line,50}]},
{rebar_core,do,2,
[{file,
"~/SUB/git/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,124}]},
{rebar_prv_do,do_tasks,2,
[{file,
"~/SUB//git/rebar3/_build/default/lib/rebar/src/rebar_prv_do.erl"},
{line,68}]},
{rebar_core,do,2,
[{file,
"~/SUB/git/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
{line,124}]},
{rebar3,main,1,
[{file,
"~/SUB/git/rebar3/_build/default/lib/rebar/src/rebar3.erl"},
{line,47}]},
{escript,run,2,
[{file,"escript.erl"},
{line,752}]}]
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
$ ./rebar3 report "./rebar3 hex user auth"
===> Due to a filelib bug in Erlang 17.1 it is recommendedyou update to a newer release.
Rebar3 report
version 3.0.0-beta-1
generated at 2015-07-15T22:27:04+00:00
=================
Please submit this along with your issue at https://github.com/rebar/rebar3/issues (and feel free to edit out private information, if any)
-----------------
Task: ./rebar3
Entered as:
./rebar3 hex user auth
-----------------
Operating System: x86_64-unknown-linux-gnu
ERTS: Erlang/OTP 17 [erts-6.1] [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false]
Root Directory: /opt/erlang/17.1/lib/erlang
Library directory: /opt/erlang/17.1/lib/erlang/lib
-----------------
Loaded Applications:
bbmustache: 1.0.1
common_test: 1.8.1
compiler: 5.0.1
crypto: 3.4
erlware_commons: 0.12.0
eunit: 2.2.7
inets: 5.10.2
kernel: 3.0.1
providers: 1.4.1
relx: 3.0.0
sasl: 2.4
stdlib: 2.1
syntax_tools: 1.6.15
tools: 2.6.15
-----------------
Escript path: ~/SUB/git/PROJ/rebar3
Providers:
app_discovery as clean compile config cover ct cut deps dialyzer do docs edoc escriptize eunit help info install_deps key list lock new owner pkgs publish release relup report search shell tar unlock update upgrade upgrade user version xref
$
hex search name
only prints the found packages, not the available versions this makes it rather hard to find what versions a package has available.
As of now, I think such dependencies will result in a bad_match
error.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.