Skip to content

v4.0.0-RC2

Compare
Choose a tag to compare
@afsalthaj afsalthaj released this 22 Feb 13:26
· 124 commits to series/4.x since this release
b5e94ca

Working with the new frontend of ZIO

With 4.x.x, zio-config acts as an extension to the core ZIO library's Config in the following ways.

  • Introduction of IndexedFlat and its new read functionality to handle complex configuration sources such as HOCON, JSON, YAML and XML. More documentation on IndexedFlat will be provided in upcoming releases.

  • Extra backends, such as YAML and Typesafe-HOCON.

  • Auto-Derivations for zio.Config in scala 2(using magnolia) and scala3. Note that, we may change the module name from zio-config-magnolia to zio-config-derivation and corresponding imports, in coming releases.

  • Integrations with cats, enumeratum, scalaz, AWS-SDK, and zio-AWS.

  • Automatic validation using integration with refined.

The following capabilities are removed in 4.x.x:

  • CommandLine source, due to maintainability issues. You can use zio-config-3.x (that has latest zio dependency) if you were using this. Meanwhile, we will try to come up with a better solution.
  • Scala 2.11 support, due to maintainability issues.
  • Memoized sources.
  • SystemEnv and SystemProperties are now in the core library and not in zio-config since they are simple configuration sources that work with Flat.
  • Effectful Configuration Sources, such as ConfigProvider.fromHoconFile can fail, and it is now up to the user to make sure it is properly effect-handled.

More refinements and additions are on it's way

More backends, including TOML and XML, are on the way. We aim to eliminate Java and third-party library dependencies to parse the remaining configuration sources as well.

The release of version 4.x.x represents a massive change to zio-config, and we appreciate your patience. We recommend using this release candidate version, providing feedback and reporting any bugs that you encounter. We will continue to refine the product and improve the website. More documentation on version 4.x.x will be updated in upcoming releases.

EDITED: Note that there were a few CI publish hiccups, and more release candidates were tried. Please make sure to choose the latest one.