Hey,

I agree that we should deprecate '--OPTION <space> argument' as the user should see on a first glance what's happening. e.g. running "--refresh dependencies" can be interpreted by a user as build with flag --refresh + running the dependencies task. Personally I would use the '--OPTION=argument' pattern here, as it seems to be the most transparent pattern for users. Intoducing yet another option pattern (yaop) like '--OPTION-argument' may feel uncomfortable for the user.

just my two cents,

Regards,

René 
1. März 2012 16:32
Hi guys

Following our discussion from yesterday, I was thinking that maybe a review of the gradle CLI might be good for RC1.

A: The main issue is the '--refresh dependencies' option looks bad when combined with the 'dependencies' task. But this would equally apply to 'gradle --cache rebuild rebuild' (if rebuild was a task name).
         - These are the only 2 options we have that take 'multi-choice' arguments. All others take user-supplied arguments (like file names) or no arguments. 
         - Actually '--exclude integTest' only avoids this issue since you never want explicitly execute the task you're excluding ("--exclude integTest integTest" doesn't make sense!)
Options:
1) Keep things as they are.
2) Deprecate the use of '--OPTION <space> argument' and encourage '--OPTION = argument'. We could keep the ability to do '-O argument', but force the '=' when using the --long-option format.
    - This would allow us to eventually make the argument optional: eg '--refresh', '--refresh=dependencies', '--refresh=task-uptodate'
3) Add a new pattern for a 'multi-choice' option, and switch to the syntax of: '--refresh-dependencies', '--cache-rebuild'
    - We could add these individually to start with, but later add a better way to describe these in the CLI help (when we have more than a couple of choices).

B: I'd also like to see is consolidation of the '--cache rebuild' and '--refresh dependencies' options. (I really don't like --cache rebuild)
Options:
1) Keep things as they are: (--refresh=dependencies & --cache=rebuild)
2) Deprecate --cache=rebuild and reuse '--refresh':
    --refresh=task-cache
    --refresh=task-state
    --refresh=cached-task-state
    --refresh=uptodate-state
    --refresh=uptodate-cache
3) A new option entirely
????

My vote would be for A3 and B2, so we'd have '--refresh-dependencies' and '--refresh-task-cache' as separate options to start with, later adding the concept of a '--refresh' option with different '-switch' sub-options.

Thoughts?
Daz



Reply via email to