I understand you concern about backward compatibility.
Currently we have in the CLI two different ways to handle optional
arguments.
1. Use options flags like: "create [-s] [-e] path data acl"
This is what i would prefer.
2. Use optional parameters: "get path [watch]"
This i'd like to change to "get [-w] path"
Or change "set path data [version]" to "set [-v version] path data"

In general i think using the posix-like option-flags would give the CLI a
more consistent way of usage.

Of course for some time we could support both styles. So you would be able
to do:
"get path watch" and "get -w path". And later we could remove the old style.

What do you think?
Hartmut

Am 28. Februar 2012 00:43 schrieb Patrick Hunt <ph...@apache.org>:

> Actually we have been trying to maintain backward compatibility on
> user facing features, including cli. For example
> https://issues.apache.org/jira/browse/ZOOKEEPER-1326 was implemented
> to maintain b/w compat. It's possible to use the CLI in scripts and
> often people automate processes using it. I'd suggest we try hard not
> to break things unless absolutely necessary, and then perhaps we
> should introduce a new "CLI2" or somesuch, with the original CLI
> listed as "deprecated", and then cli1 removed in some later version?
> I'd rather not see us break b/w compatibility but perhaps others feel
> differently?
>
> Patrick
>
> On Sun, Feb 26, 2012 at 6:31 PM, Henry Robinson <he...@cloudera.com>
> wrote:
> > Hi Hartmut -
> >
> > Great! Any improvements to the CLI are most welcome.
> >
> > Compatibility *is* a concern; although I don't think we view the CLI as
> an
> > API that we have to maintain, we shouldn't go changing it without a good
> > reason. This applies really only to your proposal to change the syntax
> for
> > commands.
> >
> > I would open a JIRA for each of the changes you want to work on, and we
> can
> > discuss their merits there. I've commented briefly on each proposal
> below.
> >
> > On 24 February 2012 03:02, Hartmut Lang <hartmut.l...@googlemail.com>
> wrote:
> >
> >> Hi,
> >>
> >> i started to look into the CLI code of zookeeper, and think of making
> some
> >> contributions there.
> >>
> >> My ideas:
> >> - use commons-cli for option parsing (see:
> >> ZOOKEEPER-271<https://issues.apache.org/jira/browse/ZOOKEEPER-271>
> >> )
> >>
> >
> > Sounds good. Feel free to start work on this one!
> >
> >
> >> - switch to options instead of args: like -w instead of [watch] or -v
> >> version instead of [version]
> >> - use a -s option if you want to see Stat of a command
> >> - we could also do a "rm [-r]" instead of "delete" and "deleteall" (see:
> >> ZOOKEEPER-1326 <https://issues.apache.org/jira/browse/ZOOKEEPER-1326>)
> >>
> >
> > This is probably ok, but the only potentially incompatible change.
> What's a
> > compelling reason for doing this?
> >
> >
> >> - order the result of a "ls" command
> >> - order the list of available commands
> >>
> >
> > These sound fine. File a JIRA?
> >
> >
> >> - introduce own Class for every command, to be more flexible in adding
> >> removing commands
> >>
> >
> > Yep, it would be nice to sort out that giant if-then-if-then block in
> > ZooKeeperMain. File a JIRA?
> >
> > Thanks,
> > Henry
> >
> >
> >>
> >> To you think this could be a valid contribution to the project?
> >> What about compatibility? Is it important that all the "current"
> commands
> >> work in the same way?
> >> Some changes (like introducing [-v version] or [-w])  will not be
> backward
> >> compatible.
> >>
> >> Any comments welcome.
> >>
> >> /Hartmut
> >>
> >
> >
> >
> > --
> > Henry Robinson
> > Software Engineer
> > Cloudera
> > 415-994-6679
>

Reply via email to