All Versions
11
Latest Version
Avg Release Cycle
42 days
Latest Release
412 days ago

Changelog History
Page 1

  • v0.23.0 Changes

    October 12, 2020

    Major Features and Improvements

    • ๐Ÿ”‹ feature: support to load keys as little camel case by default
    • ๐Ÿ”‹ feature: support empty YAML/JSON files
    • ๐Ÿ”‹ feature: support to interpolate Byte/Short/Int/Long/BigInteger/Char
    • ๐Ÿ”‹ feature: support to merge sources with different features
    • ๐Ÿ”‹ feature: support to aggregate sources from different layers
    • ๐Ÿ›  fix: support for non-map based StdSerializer
    • ๐Ÿ›  fix: discover all official providers automatically

    ๐Ÿ’ฅ Breaking Changes

    • All keys in sources are loaded as little camel case by default, e.g., tcpPort and tcp_port in the source are treated as the same key. You can use config.disable(Feature.LOAD_KEYS_AS_LITTLE_CAMEL_CASE) to disable this change.

    ๐Ÿ—„ Deprecated

    • ๐Ÿšš fromXXX APIs on providers are removed use the new shorter APIs instead. E.g., you can use file instead of fromFile.
  • v0.22.1

    December 24, 2019
  • v0.22.0 Changes

    December 22, 2019

    ๐Ÿ”‹ feature: support flatten env source (#41)

    If you have the following environment variables:

    DATABASE=foo.example.com DATABASE\_USER=john DATABASE\_PASS=doe
    

    You can load them without any name conversion by using config.from.env(nested=false):

    object Root : ConfigSpec("") { val DATABASE by required\<String\>() val DATABASE\_USER by required\<String\>() val DATABASE\_PASS by required\<String\>() }Config { addSpec(Root) }.from.env(nested=false)
    

    ๐Ÿ›  fix: support numeric keys in source

    Now you can use numeric keys in source (use YAML as example):

    tree: 1: myVal: true
    
  • v0.21.0 Changes

    November 25, 2019

    โฌ†๏ธ A serious configuration error in Gradle has been fixed in this version. This bug will cause compilation error when using konf without simultaneously declaring dependency to konf-core since v0.15. Please upgrade to this version if you are using v0.15~v0.20.0.

  • v0.20.0 Changes

    September 15, 2019
    • ๐Ÿ”‹ feature: support to cast config to value with config.toValue<T>()
    • ๐Ÿ›  fix: watchFile throws exception when using relative path
    • ๐Ÿ›  fix: parsing of environment variables is stricter now
  • v0.19.0 Changes

    September 09, 2019

    Major Features and Improvements

    • ๐Ÿ”‹ feature: support default providers API
    • ๐Ÿ”‹ feature: support substituted source
    • ๐Ÿ”‹ feature: all sources are substituted before loaded into config by default

    ๐Ÿ’ฅ Breaking Changes

    • Since all sources are substituted before loaded into config by default, all path variables will be substituted now. You can use config.disable(Feature.SUBSTITUTE_SOURCE_BEFORE_LOADED) to disable this change.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ fromXXX APIs on providers are deprecated now, use the new shorter APIs instead. E.g., you can use file instead of fromFile.
  • v0.18.0 Changes

    September 07, 2019
    • ๐Ÿ”‹ feature: migrate to tree-based config
  • v0.17.1 Changes

    September 05, 2019
    • ๐Ÿ›  fix: Loader#watchFile doesn't work on macOS
    • โšก๏ธ build: update dependencies
    • ๐Ÿ— build: support Github Actions
    • ๐Ÿ— build: disable Aliyun Maven repository by default
  • v0.17.0 Changes

    September 03, 2019

    Major Features and Improvements

    • ๐Ÿ”‹ feature: migrate to tree-based source APIs
    • ๐Ÿ”‹ feature: support merge operation for sources
    • ๐Ÿ”‹ feature: support withFallback API for config spec
    • ๐Ÿ›  fix: fix formatting bug in toml4j's writer when map is in nested list
    • ๐Ÿ›  fix: filter invalid variables in environment
    • โ™ป๏ธ refactor: unify info and context in Source API

    ๐Ÿ’ฅ Breaking Changes

    ๐Ÿšš After migrated to tree-based source APIs, many deprecated APIs are removed, including:

    • Source: all isXXX and toXXX APIs
    • Config: layer, addSource and withSourceFrom
  • v0.16.0 Changes

    August 26, 2019

    ๐Ÿ”‹ feature: support JavaScript source using GraalVM JavaScript