The setup:
- Some top level tasks
- A 'docs' submodule
- docs.build is configured to be the default task for 'docs'
- So, 'invoke docs' == 'invoke docs.build'. Either is allowed.
The question is, how should this setup display in --list? Our options:
Fab 1.x style: display both, no indication of what maps to what:
$ invoke --list top level docs docs.clean docs.build docs.browse
Super-compact style: display only the default/shorthand. Kind of meh, "hides" the "real" task name:
$ invoke --list top level docs docs.clean docs.browse
Compact style: focus on the default/shorthand, but display the "real" name alongside:
$ invoke --list top level docs (docs.build) docs.clean docs.browse
Doubled-up/highly explicit style: still show what the default maps to, but ALSO show the "real" name in-place:
$ invoke --list top level docs (docs.build) docs.clean docs.build docs.browse
Variation on either of the above two, the "alongside" display could be compacted a bit, e.g.:
$ invoke --list top level docs (.build) docs.clean docs.build docs.browse
or:
docs(.build)
or:
docs[.build]
or so forth.
@myusuf3 My main issue with having the word 'default' here, is that the default-ness isn't really what's important, all that really matters to a user in this context is A) which identifiers are available/allowed, and B) the fact that 'docs' is the same as calling 'docs.build'.
It was late when I posted this, and I just remembered now that this needs to account for non-default aliasing as well. For example, let's pretend we have a top level task
release
which is an alias ofdeploy
(i.e.deploy
was decorated with@task(aliases=['release'])
). We might want something like:Seems like this gets cluttered fast if we allow defaults/aliases' "real" targets to have their own lines, so I think from that angle, it's best to be compact and only show any given identifier once. (See e.g.
svn help
output for prior art here.)That solves aliases. Given a default task is an "alias" of sorts to its collection/namespace, I think I'll go with consistency for now:
First release will be an 0.9 series so I reserve the right to backtrack on any of these opinions after folks actually start using it :D