You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@groovy.apache.org by Remko Popma <re...@gmail.com> on 2019/05/07 11:39:07 UTC

CliBuilder improvements

The vote thread for 3.0.0-beta-1 woke me up. :-)

Is there still a chance to include enhancements to CliBuilder in 3.0, or
does the beta mean no new features? (And are there any rough timelines for
3.0 GA?)

I was thinking about the following features:
* indexed and typed positional parameters (currently positional parameters
are just a list of String values)
* password options (prompt for input with echo suppressed)
* subcommands
* argument groups (exclusive options, dependent options)

Would there be any interest in adding these capabilities to CliBuilder?
Any other features anyone would like to see?

The first two should be relatively straightforward to spec out and
implement.
Subcommands will probably need some discussion on what the API should look
like.

The last feature, argument groups, would require picocli 4.0, which is
still in alpha stage as of this writing. To give some idea of timelines, I
hope to release the first picocli beta in early June, and GA around July.

Thoughts?

Re: CliBuilder improvements

Posted by Paul King <pa...@asert.com.au>.
There would still be time for some new features. I am expecting at least
one more beta, maybe more, and then at least one and likely more RCs. As we
get closer to GA we will be locking more things down. The expectation is
that once we hit RCs, that normal semantic versioning should apply with a
tiny bit of wiggle room before then, i.e. we should be wrapping up and
documenting any breaking changes soon with non-breaking enhancements a bit
easier to accommodate for a while longer. We have the @Incubating marker
annotation to use for scenarios where one part of an api might be more
subject to change.

Timeframes for GA are something we need to discuss in the next little
while. My current feeling is we need to get 3.0 out sooner rather than
later. We might want to defer some things like unifying to indy only and
improving module support until a 3.1 or 4.0 version. I'll try to write
something up in the next couple of weeks and we'll see what others think.

In terms of the other CLI features, some of those sound interesting but
just to play devil's advocate, in the past CliBuilder used Groovy's dynamic
capabilities to expose the underlying CLI library for advanced features.
CliBuilder made the 80% of cases really easy and let you just call the
underlying library to cover the more exotic cases. We should keep in mind
whether such a possibility is still an option. If that was possible, we can
get more features just by upgrading the underlying library without needing
those changes reflected in CliBuilder. Having said that, it is much easier
to do with the original dynamic modes of usage than the more recent
type-aware/static modes of usage, so it might be an evolving or
multi-faceted story. I guess when we dive into the next level of detail, it
might become more obvious what our options are.

Cheers, Paul.

On Tue, May 7, 2019 at 9:48 PM Remko Popma <re...@gmail.com> wrote:

> The vote thread for 3.0.0-beta-1 woke me up. :-)
>
> Is there still a chance to include enhancements to CliBuilder in 3.0, or
> does the beta mean no new features? (And are there any rough timelines for
> 3.0 GA?)
>
> I was thinking about the following features:
> * indexed and typed positional parameters (currently positional parameters
> are just a list of String values)
> * password options (prompt for input with echo suppressed)
> * subcommands
> * argument groups (exclusive options, dependent options)
>
> Would there be any interest in adding these capabilities to CliBuilder?
> Any other features anyone would like to see?
>
> The first two should be relatively straightforward to spec out and
> implement.
> Subcommands will probably need some discussion on what the API should look
> like.
>
> The last feature, argument groups, would require picocli 4.0, which is
> still in alpha stage as of this writing. To give some idea of timelines, I
> hope to release the first picocli beta in early June, and GA around July.
>
> Thoughts?
>