CliBuilder improvements

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

CliBuilder improvements

Remko Popma
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?
Reply | Threaded
Open this post in threaded view
|

Re: CliBuilder improvements

paulk_asert
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 <[hidden email]> 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?