Fwd: Default user feedback
David Cheney
david.cheney at canonical.com
Tue Apr 2 13:16:56 UTC 2013
Can this wait two weeks ? Ie, can we live with the differences between
the new, helpful sync-tools and the older, gruffer, juju cli, til after
13.04 ?
On 03/04/13 00:02, roger peppe wrote:
> [sending to the list proper this time!]
>
> On 2 April 2013 10:15, John Arbash Meinel <john at arbash-meinel.com> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> I'd like to open up a discussion about how much user-feedback to give
>> while running the "juju" client, and how we go about providing that
>> feedback internally.
>>
>> Right now, juju commands are generally silent by default (no output
>> unless --debug or --verbose[1] is supplied, unless there is a one line
>> error report).
>
> Yes, I think that silent-means-ok is a good default, with
> considerable historical precedent. If there is to be any
> output by default, I think it should be well formed and
> contain useful information, not just expected messages.
>
>> As part of sync-tools, I was making the tool a bit more user-focused,
>> rather than script focused. So I generally output a message to the
>> user for any operation that took more than a second or so.
>>
>> It was noted in review that this was different from all other commands
>> to date.
>>
>> I believe Roger feels strongly that juju as a program should be
>> designed for scripting first and user interaction second. (So the
>> default should be silent, and the docs can just add "-v" to all the
>> examples for users.)
>>
>> At which point, all messages go through the logging infrastructure,
>> and we just tweak the default log level so that we get an
>> "appropriate" level of communication at the "-v" level.
>>
>> I personally would prefer a user-focus first, with a flag to disable
>> messages for scripting. But I certainly concede that it is best to be
>> consistent, so that scripting and interactive users can know what to
>> expect.
>>
>> I did try to do both:
>> lp:~jameinel/juju-core/sync-tools
>> lp:~jameinel/juju-core/sync-tools-logging
>>
>> You should be able to try them out by configuring an environment, and
>> sourcing your EC2 credentials (into the bash ENV settings):
>>
>> $ cd cmd/juju
>> $ go build
>> $ ./juju sync-tools -e [target-env] [-v]
>>
>> I'm trying not to be too biased, so I'd appreciate it if people try it
>> out. Here is a paste of both running:
>> http://paste.ubuntu.com/5669878/
>
> Here's my suggestion for how different flags might
> affect the output of this command:
>
> http://paste.ubuntu.com/5670147/
>
>> I do feel there is a fundamental difference in the messages you should
>> put to stdout/stderr during a command running, vs what you want to put
>> into a log file. Though the juju client doesn't write to a log file
>> without --log-path, so we could bias the client logging to be for
>> user-visible messages.
>
> I tend to agree here, although I can think of arguments both ways.
>
>> [1] As a side note, --debug and --verbose are IMO undiscoverable. The
>> only trail I found to them was:
>> juju help
>> juju help topics
>> juju help global-options
>>
>> There wasn't a breadcrumb from "juju help <command>" that global
>> options even existed. If we do go with quiet-by-default, we probably
>> need a better way of discovering '-v'.
>
> I agree. I'd prefer it if each command printed all flags available on the
> command, but perhaps I know Tim doesn't agree. At least some
> indication that more flags are to be found elsewhere would be good.
>
> cheers,
> rog.
>
More information about the Juju-dev
mailing list