Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor annoyance: output of rebar help new is different from rebar new help #1873

Closed
aronisstav opened this issue Sep 7, 2018 · 3 comments
Closed

Comments

@aronisstav
Copy link
Contributor

aronisstav commented Sep 7, 2018

Environment

$ rebar3 report help new
Rebar3 report
 version 3.6.1
 generated at 2018-09-07T08:53:45+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: helpnew
Entered as:
  helpnew
-----------------
Operating System: x86_64-apple-darwin17.6.0
ERTS: Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Root Directory: /Users/stavros/otps/21.0
Library directory: /Users/stavros/otps/21.0/lib
-----------------
Loaded Applications:
bbmustache: 1.5.0
certifi: 2.0.0
cf: 0.2.2
common_test: 1.16
compiler: 7.2
crypto: 4.3
cth_readable: 1.4.2
dialyzer: 3.3
edoc: 0.9.3
erlware_commons: 1.2.0
eunit: 2.3.6
eunit_formatters: 0.5.0
getopt: 1.0.1
hipe: 3.18
inets: 7.0
kernel: 6.0
providers: 1.7.0
public_key: 1.6
relx: 3.26.0
sasl: 3.2
snmp: 5.2.11
ssl_verify_fun: 1.1.3
stdlib: 3.5
syntax_tools: 2.1.5
tools: 3.0

-----------------
Escript path: undefined
Providers:
  app_discovery as clean compile compile cover ct deps dialyzer do edoc escriptize eunit get-deps help install install_deps list lock new path pkgs release relup report shell state tar tree unlock update upgrade upgrade upgrade version xref

Current behaviour

$ rebar3 new help
Call `rebar3 new help <template>` for a detailed description

app (built-in): Complete OTP Application structure.
cmake (built-in): Standalone Makefile for building C/C++ in c_src
escript (built-in): Complete escriptized application structure
lib (built-in): Complete OTP Library application (no processes) structure
plugin (built-in): Rebar3 plugin project structure
release (built-in): OTP Release structure for executable programs
umbrella (built-in): OTP structure for executable programs (alias of 'release' template)

$ rebar3 help new
Create rebar3 project based on template and vars.

Valid command line options:
  <template> [var=foo,...]

Usage: rebar3 new [-f]

  -f, --force  overwrite existing files

Expected behaviour

The output should (?) be the same.

The concrete reason I am reporting this: I wanted to see the list of templates and intuitively used rebar3 help new, which didn't return anything useful. I had to go to documentation to see that what I should have used was rebar3 new or rebar3 new help.

I could work to fix that, if you agree that this is indeed desirable.

@ferd
Copy link
Collaborator

ferd commented Sep 7, 2018

it should, but it can't.

The help provided by rebar3 help new is purely static and based on metadata given by the new provider before the shape of the project is even scanned by the tools.

By comparison, rebar3 new help is allowed to run post-scan and is able to go find the templates in plugins, global configuration, and so on.

I don't think that there is a way to fix this since it's kind of baked into how the whole 'provider' mechanism is put together.

@aronisstav
Copy link
Contributor Author

aronisstav commented Sep 7, 2018

Then perhaps a hint when doing rebar3 help XXX that more help might be available by rebar3 XXX help would be sufficient to nudge in the right direction?

@ferd
Copy link
Collaborator

ferd commented Sep 7, 2018

yeah that's a good idea

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants