git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Commons cli contribution?


Hi Romain,

I’m confused: the Groovy 2.5 cli annotations are similar to the picocli annotations: one option per property/method, not a command being a method with an option per method parameter. 

Looks like the crest implementation already does exactly what you have in mind...

Based on my experiences while helping Groovy migrate from Commons CLI to picocli, I personally disagree that commons-cli provides strong parsing. It felt to me that the parser had many issues but they may be hard to fix, partially because the design gets in the way and partially because of the need for the library to stay backwards compatible. (That may explain why it’s hard for the Commons community to address the open bugs).

Please note that picocli is published under the Apache license so it is easy for other ASF projects to adopt picocli. 

I hope you’ll reconsider picocli. The project can really use an enthusiastic evangelist!

Kind regards,
Remko


On Tue, May 29, 2018 at 14:03 Romain Manni-Bucau <rmannibucau@xxxxxxxxx> wrote:
Hi Remko,

I checked picoli but it looks close to airlines or the pattern I'm trying to abandon from what I read in the readme and the few classes I looked. I want something command oriented but a command being a method, not a class.

Here is something close to what I have in mind https://github.com/tomitribe/crest. For "big" cli apps you mix it with jline or equivalent but for small ones it is super light and efficient (it even have injection support).

Cli provides a strong parsing bit misses a user friendly api so Im just trying to make it converging + Id like to see it hosted @asf to reuse it in other asf projects without more careness.


Le mar. 29 mai 2018 06:52, Remko Popma <remko.popma@xxxxxxxxx> a écrit :
(Adding Romain to recipients)

On Tue, May 29, 2018 at 13:48 Remko Popma <remko.popma@xxxxxxxxx> wrote:
Romain,

I’m hoping for picocli to become the successor to Commons CLI (and to some extent JCommander, args4j, jopt-simple etc). 

Please take a look at the project. (Nutshell: apps can avoid depending on picocli.jar, have ANSI colors, shell autocompletion,  subcommands, and strongly typed options & positional parameters, all with almost zero code.)

I admire your enthusiasm to blow new life into  the Commons CLI project, but I hope I can convince you to help evangelize picocli instead.  

I don’t see much enthusiasm in the Apache Commons community to maintain the CLI project (I see many open bugs, most of them years old). On the other hand, picocli is actively maintained: features are continuously added and there are no outstanding bugs. If a bug is reported, the fix is usually released within 48 hours or less. 

Picocli is a young project and it’s difficult to get traction against the incumbents that have a large installed base.  

It would be great if you could help picocli get visibility in the Java community. Your enthusiasm could make a massive difference!

Looking forward to your response (either on-list or off-list, both are fine).

Remko


On Tue, May 29, 2018 at 5:13 Romain Manni-Bucau <rmannibucau@xxxxxxxxx> wrote:
I can take part of this one for this week end. Ill keep you up to date.

Le lun. 28 mai 2018 21:55, Paul King <paulk@xxxxxxxxxxxx> a écrit :
Well, certainly in the first instance it would be good to know how much of the existing annotation functionality works as-is from Java.

On Tue, May 29, 2018 at 5:29 AM, Romain Manni-Bucau <rmannibucau@xxxxxxxxx> wrote:
Do you think groovy community could try to extract it and do a PR to cli project? I already did it like 5 times (+ tomitribe-cli work) and would be happy to see some convergence here. Cli is a strong base for the parsing but api is too raw :(.


Le lun. 28 mai 2018 20:46, Paul King <paulk@xxxxxxxxxxxx> a écrit :
I've mentioned it on the cli dev list before:

https://markmail.org/message/45jgonianj4sw7i4

You can probably use it all directly from Java apart from the Closure-based converters (which are also possible from Java just a big uglier). We could easily provide a lambda overload these days if there was interest.

Cheers, Paul.


On Tue, May 29, 2018 at 4:31 AM, Remko Popma <remko.popma@xxxxxxxxx> wrote:
Personally, I would invite everyone using Commons CLI to migrate to picocli.
But I may be biased... :-)

Remko

On Tue, May 29, 2018 at 2:06 AM, Romain Manni-Bucau <rmannibucau@xxxxxxxxx> wrote:
Hi guys

Saw you added some annotations to write a cli in groovy cli, did you try (or do you plan) to propose it to commons cli? It would be an awesome addition which affects more than groovy users IMHO and could unify part of the specific api you created.

Romain