tomland v1.3.1.0 Release Notes

Release Date: 2020-09-21 // about 1 year ago
    • #331: Support hexidecimal, octal and binary values with underscores.
    • #335: Consider table array keys in tableMaps as well.
    • #338: Allow megaparsec-9.0 and hspec-megaparsec-2.2.
    • ⚡️ Update GHC from 8.8.3 to 8.8.4, from 8.10.1 to 8.10.2.

Previous changes from v1.3.0.0

    • #253: Support GHC-8.10.1. Move to GHC-8.8.3 from 8.8.1.
    • ⬇️ Drop support of GHC-8.2.2.
    • #271: Use Validation from validation-selective in TomlEnv. This allows to accumulate and display all errors that occurs during the decoding phase. All previous decode functions return list of all TomlDecodeErrors.

    Note: Due to the specific of Validation data type, there is no Monad instanse of Codec anymore. However, this doesn't limit any previously released features.

    • ➕ Add decodeValidation, decodeFileValidation functions to return Validation instead of Either.
    • #263: Simplify Codec abstraction. Instead of having Codec r w c a now it is Codec TomlEnv TomlState c a.

    Remove BiCodec as it is simple TomlCodec with this change.

    • #256, #278: Rename modules to simplify module structure.

    Migration guide: If you use Toml module (as advised by the library) then no changes required in your code. If you import some particular modules from tomland here is the renaming scheme you can use to apply to your imports:

    | Old | New | |-----|-----| | Toml.Bi | Toml.Codec | | Toml.Bi.Combinators | Toml.Codec.Combinator | | Toml.Bi.Monad | Toml.Codec.Types | | Toml.Bi.Code | Toml.Codec.Code or Toml.Codec.Types or Toml.Codec.Error | | Toml.Bi.Map | Toml.Codec.BiMap or Toml.Codec.BiMap.Conversion | | Toml.Generic | Toml.Codec.Generic | | Toml.Edsl | Toml.Type.Edsl | | Toml.Printer | Toml.Type.Printer | | Toml.PrefixTree | Toml.Type.PrefixTree or Toml.Type.Key |

    • #283: Documentation improvements:
      • Add Codec Tables to each kind of codecs with examples
      • Add high-level description to each reexported module
      • Add @since annotations
      • Improve README
      • Add more examples into functions
    • #237: Add BiMap _Validate and codecs validate and validateIf for custom validation.
    • #289: Add _Coerce TomlBiMap.
    • #270: Add pair and triple codecs for tuples.
    • #261: Implement tableMap codec to use TOML keys as Map keys.
    • #243: Implement hashMap, tableHashMap, intMap, tableIntMap codec combinators.
    • ➕ Add intSet codec.
    • ➕ Add _KeyInt BiMapfor key-as-int approach.
    • #242: Add HasCodec instances for Map, HashMap and IntMap for Generic deriving.
    • #272: Add TomlTable newtype to be used in generic DerivingVia.
    • #251: Implement ByteStringAsText, ByteStringAsBytes, LByteStringAsText, LByteStringAsBytes newtypes. Add corresponding HasCodec instances for these data types.
    • #311: Reimplement custom TomlState instead of using MaybeT and State.
    • 👀 Rename ParseException to TomlParseError.
    • 📇 Rename DecodeException to TomlDecodeError.
    • ➕ Add TableArrayNotFound constructor to TomlDecodeError.
    • ✂ Remove TrivialError and TypeMismatch constructors of the TomlDecodeError type.
    • #313: Store Key in the BiMapError constructor of TomlDecodeError.
    • ➕ Add decodeFileEither and encodeToFile functions.
    • 🛠 Fix sum and product behaviour on missing fields. Now it returns the wrapper of mempty instead of failure.
    • #302: nonEmpty codec throws TableArrayNotFound instead of TableNotFound.
    • #318: Export a function for parsing TOML keys parseKey.
    • #310: Add tests on all kinds of TomlDecodeError with decode function.
    • #218: Add tests for TOML validation.
    • #252: Move to hspec-* family of libraries from tasty-*.
    • #297: Tests parallelism and speed-up.
    • #246: Bump up megaparsec version to 8.0.0.