All Versions
Latest Version
Avg Release Cycle
42 days
Latest Release
1778 days ago

Changelog History
Page 1

  • v2.0.7 Changes

    May 08, 2018

    🛠 Fixed

    📜 Issue #54
    👍 Allow the dot character in options and arguments. Thanks @tgockel!

    📜 Issue #47
    👀 If an option looks at the value of another option it can see the
    current value. If no value has been set a MissingValueException is thrown.

  • v2.0.6 Changes

    March 26, 2018

    🔄 Changed

    • Help text formatting now treats multi-newlines as paragraph separators, while
      single newlines are still treated like spaces. Thanks @leomillon!
  • v2.0.5 Changes

    March 20, 2018

    🔄 Changed

    Releasing to Maven Central in addition to Bintray. This is probably the only
    really externally visible change.

    ⬆️ Upgraded a bunch of dependencies, including gradlew.

    • gradle -> 4.5.1
    • dokka -> = 0.9.16
    • gradle_bintray -> = 1.8.0
    • gradle_release -> = 2.6.0
    • kotlin -> 1.2.30
    • xenocom -> 0.0.6
  • v2.0.4 Changes

    January 18, 2018

    ➕ Added

    If the programName passed to mainBody is null, then the
    📜 system property com.xenomachina.argparser.programName is used, if set.

    📜 The parseInto method can be used as an inline alternative to force.
    Thanks @shanethehat!

    📜 Issue #24:
    0️⃣ default can now accept a lambda, making it possible to defer computation of
    0️⃣ defaults until actually required.
    Thanks @shanethehat!

    🔄 Changed

    All instances of progName have been renamed to programName.

    ⚡️ The gradle wrapper has been updated.
    Thanks @ColinHebert!

  • v2.0.3 Changes

    June 12, 2017

    🛠 Fixed

  • v2.0.2 Changes

    June 12, 2017

    🛠 Fixed

    • 📜 Issue #19 by
      ⚡️ updating xenocom dependency to 0.0.5. Also updated kotlin to 1.1.2-5 for good
  • v2.0.1 Changes

    May 15, 2017

    🔄 Changed

    📜 Issue #14
    previously, automatic option naming would turn "camelCase" into
    "--camelCase". Now it is converted to "--camel-case".

    Likewise, positinal argument auto-naming used to convert "camelCase" into
    "CAMELCASE". Now it is converted to "CAMEL-CASE".

    👌 Improve help formatting w/long program names

    README formatting improved.
    Thanks @konfilios!

    🛠 Fixed

    📜 Issue #17
    specifying 0 for the columns should format help without line wrapping.
    Previously, this did not work as documented, and would instead wrap text in
    very narrow columns.

    📜 Issue #15
    — make it possible to specify 'argName' on all variants of 'storing' and

  • v2.0.0 Changes

    April 21, 2017

    ➕ Added

    📜 ArgParser.option is now a public method, so it's possible to create many
    🆕 new option types that were not previously possible. The existing option types
    are all written in terms of option, so they can be used to get an idea of
    how it works.

    ✅ More tests have been added.

    Started using format for

    🚀 Made minor improvements to release process

    🔄 Changed

    📜 The storing, adding and positionalList methods of ArgParser have had
    their parameters slightly reordered to be consistent with the other methods.
    This is an incompatible change. The name(s) come first, if any, followed by
    help. Other parameters appear after help, with the transform function,
    if any, last. It is recommended that clients either pass the transform as a
    block (ie: with braces) or as a named parameter, as any future new parameters
    will necessarily change its position in the list.

    Delegate and DelegateProvider are now abstract classes with internal
    constructors. This makes it much easier for me to separate internal and
    public parts of their API. This is an incompatible change, however it
    shouldn't really affect you unless you were trying to implement Delegate,
    👍 which was't supported to begin with.

    0️⃣ default methods on both Delegate and DelegateProvider are now extension
    methods. This makes it possible to generalize the type when adding a
    0️⃣ default. This is most noticable when using a nullable value (or null
    0️⃣ itself) for the default, though may also be useful in other cases (eg: a
    0️⃣ "storing" that always produces a Rectangle, but you want the default to be
    a Circle. The resulting delegate will be a Delegate<Shape>.)

    Registration of delegates now takes place at binding-time rather than
    construction time. This should be pretty indistinguishable from the old
    behavior unless you're creating delegates without binding them.

    Help formatting has been improved so that it's far less likely to wrap option
    names in the usage table.

    🛠 There have been numerous bugfixes, particularly around positionals

  • v1.1.0 Changes

    March 09, 2017

    ➕ Added

    • Auto-naming of options and positionals.

      • Each of the ArgParser methods that takes names and returns a Delegate has an overload that takes no name, but returns a DelegateProvider.
      • A DelegateProvider has an operator fun provideDelegate that returns a Delegate, using a name derived from the name of the property the DelegateProvider is being bound to.

    ✂ Removed

    • 🗄 addValidtator is now deprecated. Use addValidator instead.

    🛠 Fixed

    • ✂ Removed documentation of option from, as it is internal

    • Corrected spelling of addValidator. addValidtator is still there, but deprecated. It'll probably be removed in the next release, barring the addition of potato functionality.

  • v1.0.2 Changes

    March 07, 2017

    🔄 Changed

    • ⬆️ Upgrade to Kotlin 1.1, extract xenocom package.