I was on my phone when I first read this. But now I wonder how this is wrong.
The example adds 2 options o1 and o2 and a group comprising the 2 and the expected output contains o1, o2, and o3. Where did o3 get its name? I assume o3 is intended to be the group of 01 and 02, but I don't think those were ever delineated in the output. Am I missing something? On Thu, Oct 30, 2025 at 12:47 PM Claude Warren <[email protected]> wrote: > Looks likeregression. I will take a look later today. > > Claude > > LinkedIn: http://www.linkedin.com/in/claudewarren > > On Thu 30 Oct 2025, 12:12 Gary Gregory, <[email protected]> wrote: > >> Claude, any thoughts here? I was just about to push a release candidate... >> >> Gary >> >> On Sun, Oct 26, 2025 at 10:38 AM Damien Carbonne >> <[email protected]> wrote: >> > >> > Hi, >> > >> > When using the new HelpFormatter (commons-cli-1.10.0), option groups are >> > poorly formatted. >> > >> > This looks like a regression. >> > The following code shows the difference between the new HelpFormatter >> > and the deprecated one: >> > ------------------------------------- >> > import java.io.IOException; >> > >> > import org.apache.commons.cli.Option; >> > import org.apache.commons.cli.OptionGroup; >> > import org.apache.commons.cli.Options; >> > >> > public class CliTest { >> > public static void main(String[] args) throws IOException { >> > // create options and groups >> > final Option o1 = new Option("o1", "Descr"); >> > final Option o2 = new Option("o2", "Descr"); >> > >> > final Options options = new Options(); >> > options.addOption(o1); >> > options.addOption(o2); >> > >> > final OptionGroup group = new OptionGroup(); >> > group.addOption(o1); >> > group.addOption(o2); >> > options.addOptionGroup(group); >> > >> > //format options with new formatter >> > final org.apache.commons.cli.help.HelpFormatter newFormatter = >> > >> org.apache.commons.cli.help.HelpFormatter.builder().setShowSince(false).get(); >> > newFormatter.printHelp("Command", null, options, null, true); >> > >> > // format options with old formatter >> > final org.apache.commons.cli.HelpFormatter oldFormatter = >> > new org.apache.commons.cli.HelpFormatter(); >> > oldFormatter.printHelp("Command", null, options, null, true); >> > } >> > } >> > ------------------------------------- >> > >> > The output is: >> > ------------------------------------- >> > usage: Command [-o1] [-o2] >> > Options Description >> > -o1 Descr >> > -o2 Descr >> > >> > >> > usage: Command [-o1 | -o2] >> > -o1 Descr >> > -o2 Descr >> > ------------------------------------- >> > >> > Groups are not shown any more. >> > I would expect the new formatter output to look like this: >> > ------------------------------------- >> > usage: Command [-o1 | -o2] >> > Options Description >> > -o1 Descr >> > -o2 Descr >> > -o3 Descr >> > ------------------------------------- >> > >> > Regards, >> > Damien Carbonne >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [email protected] >> > For additional commands, e-mail: [email protected] >> > >> >
