Sönke, I'd find this very helpful. It's annoying to keep track of which
commands use which form -- I always seem to guess wrong.

Though I don't think there is any reason to deprecate existing forms, e.g.
consumer.config vs consumer-config. I think it's perfectly reasonable to
have multiple spellings of the same arguments. I don't really see a
downside to keeping the aliases around indefinitely.

Ryanne




On Wed, Apr 17, 2019, 7:07 AM Sönke Liebau
<soenke.lie...@opencore.com.invalid> wrote:

> Hi everybody,
>
> Jason and I were recently discussing command line argument parsing on
> KAFKA-8131 (or rather the related pull request) [1].
>
> Command line tools and their arguments are somewhat diverse at the moment.
> Most of the tools use joptsimple for argument parsing, some newer java
> tools use argparse4j instead and some tools use nothing at all.
> I've looked for a reason as to why there are two libraries being used, but
> couldn't really find anything. Paolo brought up the same question on the
> mailing list a while back [7], but got no response either.
> Does anybody know why this is the case?
>
> This results in no central place to add universal parameters like help and
> version, as well as the help output looking different between some of the
> tools.
> Also, there are a number of parameters that should be renamed to adhere to
> defaults.
>
> There have been a few discussions and initiatives around this in the past.
> Just of the top of my head (and a 5 minute jira search) there are:
> - KIP-14 [2]
> - KAFKA-2111 [3]
> - KIP-316 [4]
> - KAFKA-1292 [5]
> - KAFKA-3530 [6]
> - and probably many more
>
> Would people generally be in favor of revisiting this topic?
>
> What I'd propose to do is:
> - comb through jira and KIPs, clean up old stuff and creae a new umbrella
> issue to track this  (maybe reuse KIP-4 as well)
> - agree on one library for parsing command line arguments (don't care which
> one, but two is one too many I think)
> - refactor tools to use one library and default way of argument parsing
> with central help and version parameter
> - add aliases for options that should be renamed according to KIP-4 (and
> maybe others) so that both new and old work for a while, deprecate old
> parameters for a cycle or two and then remove them
>
> I'll shut up now and see if people would consider this useful or have any
> other input :)
>
> Best regards,
> Sönke
>
> [1] https://github.com/apache/kafka/pull/6481#discussion_r273773003
> <https://issues.apache.org/jira/browse/KAFKA-8131>
> [2]
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-14+-+Tools+Standardization
> [3] https://issues.apache.org/jira/browse/KAFKA-2111
> [4]
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-316%3A+Command-line+overrides+for+ConnectDistributed+worker+properties
> [5] https://issues.apache.org/jira/browse/KAFKA-1292
> [6] https://issues.apache.org/jira/browse/KAFKA-3530
> [7]
>
> https://sematext.com/opensee/m/Kafka/uyzND10ObP01p77VS?subj=From+Scala+to+Java+based+tools+joptsimple+vs+argparse4j
>

Reply via email to