Current

1.30
2012/10/27

Added: JCommander#acceptUnknownOption and JCommander#getUnknownArgs
Added: JCommander#allowAbbreviatedOptions (default: false)
Added: JCommander#setCaseSensitiveOptions (default: true)
Added: Support for enums (Scott M Stark)
Fixed: Missing new lines in usage (styurin)
Fixed: The description of commands is now displayed on the next line and indented.

1.29
2012/07/28

Fixed: Empty string defaults now displayed as "<empty string>" in the usage
Fixed: Bugs with the PositiveInteger validator
Fixed: Parameters with a single double quote were not working properly

1.27
2012/07/05

Added: IValueValidator to validate parameter values (typed) as opposed to IParameterValidator which validates strings
Added: echoInput, used when password=true to echo the characters (Jason Wheeler)
Added: @Parameter(help = true)
Fixed: wasn't handling parameters that start with " but don't end with one correctly
Fixed: if using a different option prefix, unknown option are mistakenly reported as "no main parameter defined" (kurmasz)
Fixed: 113: getCommandDescription() returns the description of the main parameter instead of that of the command
Fixed: bug with several multiple arity parameters (VariableArityTest)
Fixed: variable arities not working when same parameter appears multiple times.

1.25
2012/04/26

Added: Default passwords are no longer displayed in the usage (Paul Mendelson)
Added: Variable arities now work magically, no need for IVariableArity any more
Fixed: Commands using @Parameters(resourceBundle) were not i18n'ed properly in the usage()
Fixed: StringIndexOutOfBoundsException if passing an empty parameter (bomanz)
Fixed: GITHUB-105: If no description is given for an enum, use that enum's value (Adrian Muraru)
Fixed: GITHUB-108: Dynamic parameters with "=" in them are not parsed correctly (szhem)
Fixed: Commands with same prefix as options were not working properly.
Fixed: GITHUB-97: Required password always complains that it is not specified (timoteoponce)

1.23
2012/01/12

Added: @DynamicParameter
Fixed: Use JDK 6 Console() when available to improve support of non ascii chars (Julien Henry)

1.20
2011/11/24

Added: Support for delegating parameter definitions to child classes (rodionmoiseev)
Added: @Parameter(commandNames) so that command names can be specified with annotations
Added: Support for enums (Adrian Muraru)
Fixed: Throw if an unknown option is found
Fixed: Main parameters are now validated as well (Connor Mullen)

1.19
2011/10/10

Added: commandDescriptionKey to @Parameters, to allow internationalized command descriptions
Added: JCommander#setParameterDescriptionComparator for better control over usage()
Fixed: Fields of type Set (HashSet and SortedSet) are now supported
Fixed: defaults for commands were not properly applied (Stevo Slavic)
Fixed: "-args=a=b,b=c" was not being parsed correctly (Michael Lancaster)
Fixed: GITHUB-73: descriptionKey was being ignored on main parameters

1.18
2011/07/20

Added: Default converter factories can be overridden (Scott Clasen)
Added: IParameterValidator
Added: Don't display "Options:" if none were defined
Added: Enforce that the type of the main parameter is a List
Added: usage() now displays the options for each command as well
Fixed: Default values with a validator were being validate at parse() time instead of creation time.
Fixed: Exception when using an @ file with empty lines between options
Fixed: OOM when parsing certain descriptions with long URL's in them

1.15
2011/01/24

Added: Added a constructor that takes a Bundle only, https://github.com/cbeust/jcommander/pull/47 (Russell Egan)
Fixed: NPE with calling getCommandDescription() of an unknown command

1.13
2010/12/15

Added: Boolean parameters with arity 0 (e.g. "foo -debug")
Fixed: JCommander would sometimes just print a stack trace and continue, now rethrowing.

1.7
2010/09/06

Added: Command usages are now shown in the order they were added to the JCommander object
Fixed: JCommander now compatible with Java 5
Fixed: Minor bug in the command display (Marc Ende)

1.6
2010/08/28

Added: @Parameters(commandDescription = "command description")
Added: now throwing an exception if required main parameters are not supplied
Fixed: usage() was changing default values after two runs (jstrachan)

1.5
2010/08/15

Added: overloaded versions of usage() with StringBuilders
Added: inheritance support (Guillaume Sauthier)
Added: support for commands (e.g. "main add --author=cbeust Foo.java")
Added: support for converters for main parameters (e.g. List<HostPort>).

1.4
2010/07/28

Added: string converter factories
Added: IDefaultProvider
Added: PropertyFileDefaultProvider
Added: Usage is now showing required parameters and default value
Added: Support for values that look like parameters ("-integer -3", "/file /tmp/a")
Added: @Parameters(optionPrefixes) to allow for different prefixes than "-"

1.2
2010/07/25

Usage is now aligned and alphabetically sorted
Added the hidden attribute
Added support for different separators than " " (e.g. "=").
Deprecated @ResourceBundle, replaced with @Parameters

1.1
2010/08/15

Better internationalization
Password support
Type converters