Coder Social home page Coder Social logo

rebar3_hex's People

Contributors

benoitc avatar dumbbell avatar egobrain avatar ericmj avatar ferd avatar filmor avatar g-andrade avatar gleber avatar jbdamiano avatar jfacorro avatar jkrukoff avatar joeljuca avatar kianmeng avatar knusbaum avatar ksallberg avatar kubaodias avatar licenser avatar maennchen avatar mikpe avatar msch avatar paulo-ferraz-oliveira avatar pbrudnick avatar philss avatar saleyn avatar starbelly avatar tsloughter avatar waisbrot avatar wojtekmach avatar yohaneskuma avatar yuce avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rebar3_hex's Issues

Error on `hex info katana`

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

rebar3 hex info fails with function_clause exception

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 

Latest version seems to be broken (`variable 'X' is unbound`)

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.

Where to put the plugin configuration

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 global rebar3 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?

Warn if publishing package with pre-release dependencies

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.

compilation error when behind proxy

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

Improve error message when user is not authenticated.

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).

Dependencies not found with rebar3 3.3.0

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.

search is missing packages

Some packages seem not to be listed, for example searching for oauth2 doesn't list the oauth2 package wich does exist.

reproduce:

rebar3 hex search oauth2 
p1_oauth2: 0.6.1

vs:

image

Handle bad metadata error messages

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">>}}]

hex docs produces an Uncaught error in rebar_core error

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

Don't publish compiled binaries

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.

Uncaught error (badmatch) when using "rebar3 hex publish"

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

Got confused by rebar3 hex user auth

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.

rebar3 hex config key value always writes bitstrings

I've tried to debug another issue and added a https_proxy config setting.

  1. it was written to the hex.config but I got an error that my global rebar3.config was existing but unreadable as a consequence
  2. the proxy setting is passed to http_uri:parse which fails if you pass it a binary because it is expecting a string. You should add a type conversion there. rebar3_http_hex.erl:123

Publishing should probably ignore _checkouts

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.

Dependencies aren't being published

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.

Can not publish package because the following deps are not available in hex

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

rebar3 hex cut fails silently

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)

Should the ebin version be checked?

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.

Include requirements

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)

No hex config written when registering

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?

uncaught error when network is flaky

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

Error messages provides no hint on what is wrong

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.

Report status code when user auth fails

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)

Plugin should verify semantic version numbers

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.

Uncaught error in rebar_core

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)

Bad Request when publishing an erlang package

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:

https://github.com/hukl/rstats

Search inside package descriptions, too

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

ignore known temp files

things like:

*~
.#*
...

that are know to be markers for temp files, it would be nice if rebar3_hex would ignore them by default

allows some folders, files to be added to the hex package

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?

Exception in 'rebar3 hex info' when some meta values are 'null'

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 

Crash in publish

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?

Hex publish issue

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"?

Add option to not only create a commit but also tag it.

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.

Unable to connect to hex.pm:443

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 
$ 

have search print versions

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.