tomland
uses PVP Versioning.
The changelog is available on GitHub.
- #412: Support GHC-9.4.4.
- Upgrade
mtl
andvalidation-selective
upper boundary. - Remove
transformers
dependency.
- #395: Support GHC-9.2.4.
- Upgrade
text
to version2
. - Upgrade
hedgehog
andhspec
.
- Disable building executables by default
- Bump up dependencies:
- Allow
bytestring-0.11.*
- Allow
hashable-1.4.0.0
- Allow
megaparsec-9.2.0
- Allow
time-1.13
- Allow
transformers-0.6.*
- Allow
- #370: Support GHC-9.0.1.
- #368:
Upgrade
hashable
lower bound to 1.3.1.0. - Sort keys in pretty printing by default.
- #186:
Implement TOML difference. Add
decodeExact
anddecodeFileExact
. - #325:
Add ability to one or multiline printing to
PrintOptions
for arrays. - #329:
Add
_Harcoded
codec andhardcoded
combinator. - #333: Fix bug with parsing leading zeroes in numeric values.
- #334:
Escape unicode characters correctly in
encode
. - #364:
Update GHC from
8.10.2
to8.10.4
. - #358:
Upgrade
parser-combinators
upper bound to allow1.3
.
- #331: Support hexidecimal, octal and binary values with underscores.
- #335:
Consider table array keys in
tableMap
s as well. - #338:
Allow
megaparsec-9.0
andhspec-megaparsec-2.2
. - Update GHC from
8.8.3
to8.8.4
, from8.10.1
to8.10.2
.
-
#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
fromvalidation-selective
inTomlEnv
. This allows to accumulate and display all errors that occurs during the decoding phase. All previous decode functions return list of allTomlDecodeError
s.Note: Due to the specific of
Validation
data type, there is noMonad
instanse ofCodec
anymore. However, this doesn't limit any previously released features. -
Add
decodeValidation
,decodeFileValidation
functions to returnValidation
instead ofEither
. -
#263: Simplify
Codec
abstraction. Instead of havingCodec r w c a
now it isCodec TomlEnv TomlState c a
.Remove
BiCodec
as it is simpleTomlCodec
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 fromtomland
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
orToml.Codec.Types
orToml.Codec.Error
Toml.Bi.Map
Toml.Codec.BiMap
orToml.Codec.BiMap.Conversion
Toml.Generic
Toml.Codec.Generic
Toml.Edsl
Toml.Type.Edsl
Toml.Printer
Toml.Type.Printer
Toml.PrefixTree
Toml.Type.PrefixTree
orToml.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 codecsvalidate
andvalidateIf
for custom validation. -
#289: Add
_Coerce
TomlBiMap
. -
#270: Add
pair
andtriple
codecs for tuples. -
#261: Implement
tableMap
codec to use TOML keys asMap
keys. -
#243: Implement
hashMap
,tableHashMap
,intMap
,tableIntMap
codec combinators. -
Add
intSet
codec. -
Add
_KeyInt
BiMap
for key-as-int approach. -
#242: Add
HasCodec
instances forMap
,HashMap
andIntMap
forGeneric
deriving. -
#272: Add
TomlTable
newtype to be used in genericDerivingVia
. -
#251: Implement
ByteStringAsText
,ByteStringAsBytes
,LByteStringAsText
,LByteStringAsBytes
newtypes. Add correspondingHasCodec
instances for these data types. -
#311: Reimplement custom
TomlState
instead of usingMaybeT
andState
. -
Rename
ParseException
toTomlParseError
. -
Rename
DecodeException
toTomlDecodeError
. -
Add
TableArrayNotFound
constructor toTomlDecodeError
. -
Remove
TrivialError
andTypeMismatch
constructors of theTomlDecodeError
type. -
#313: Store
Key
in theBiMapError
constructor ofTomlDecodeError
. -
Add
decodeFileEither
andencodeToFile
functions. -
Fix
sum
andproduct
behaviour on missing fields. Now it returns the wrapper ofmempty
instead of failure. -
#302:
nonEmpty
codec throwsTableArrayNotFound
instead ofTableNotFound
. -
#318: Export a function for parsing TOML keys
parseKey
. -
#310: Add tests on all kinds of
TomlDecodeError
withdecode
function. -
#218: Add tests for TOML validation.
-
#252: Move to
hspec-*
family of libraries fromtasty-*
. -
#297: Tests parallelism and speed-up.
-
#246: Bump up
megaparsec
version to8.0.0
.
- #203:
Implement codecs for
Map
-like data structures. (by @chshersh) - #241:
Implement codecs for
Monoid
wrappers:all
,any
,sum
,product
,first
,last
. (by @vrom911)
- #216: Refactor TOML parser significantly. Check for some validation errors. (by @chshersh)
- #213: Support GHC-8.8.1. (by @vrom911)
- #226:
Add
dimatch
combinator for better support of sum types. (by @Nimor111) - #219: Add INLINE pragmas to code. (by @willbasky)
- #204:
Implement bidirectional codecs to work with
ByteString
as array of bytes. (by @crtschin) - #201:
Implement
set
andhashSet
combinators for array of tables. (by @SanchayanMaity) - #215: Move benchmarks to separate repository toml-benchmarks. (by @kutyel)
- #209:
Bump up
parser-combinators
to1.2.0
. (by @vrom911) - #198: Improve test generators. (by @gabrielelana , @chshersh )
- #206: Fix in parser of inline tables inside tables, add tests for official TOML examples (by @jiegillet)
-
#154: Implement
Generic
bidirectional codecs (by @chshersh). -
#145: Add support for inline table arrays (by @jiegillet).
-
#195: Fix an exponential parser behavior for parsing table of arrays (by @jiegillet).
-
#190: Add
enumBounded
codec for nullary sum types (by @mxxo). -
#189: Breaking change: Implement custom table sorting by keys. Also fields of the
PrintOptions
data type were renamed according to style guide (by @ramanshah).Before:
data PrintOptions = PrintOptions { shouldSort :: Bool , indent :: Int } deriving (Show)
Now:
data PrintOptions = PrintOptions { printOptionsSorting :: !(Maybe (Key -> Key -> Ordering)) , printOptionsIndent :: !Int }
Migration guide: If you used
indent
field, useprintOptionsIndent
instead. If you usedshouldSort
, useprintOptionsSorting
instead and passNothing
instead ofFalse
orJust compare
instead ofTrue
.
- #177:
Add a more extensive property generator for
Piece
. - #187:
Bump up to
hedgehog-1.0
. - Support GHC 8.6.5
-
#13: Support array of tables.
- #131:
Uncommenting
tomlTableArrays
fromTOML
. - #134: Pretty printer arrays of tables and golden tests.
- #143: Parser for arrays of tables.
- #155:
Add
list
andnonEmpty
combinators for coding lists of custom user types. - #142: Adding EDSL support for arrays of tables.
- #144: Added tests for arrays of tables.
- #131:
Uncommenting
-
#140: Breaking change: Replace
wrapper
bydiwrap
.Migration guide: change
Toml.wrapper Toml.text "foo"
toToml.diwrap (Toml.text "foo")
. -
#152: Breaking change: Removing
mdimap
.Migration guide: change
Toml.mdimap showX parseX (Toml.text "foo")
toToml.textBy showX parseX "foo"
. -
#137: Replace
Maybe
withEither
inBiMap
. -
#174: Add
_LText
andlazyText
codecs. -
#163: Move all time data types from nested
DateTime
toValue
. -
#146: Allow underscores in floats.
-
#64: Integer parser doesn't accept leading zeros.
-
#50: Add property-based tests for encoder and decoder.
-
#119: Add property-based tests for
BiMap
. -
#149: Removing records syntax from
PrefixTree
.
-
#81: Breaking change: Rename data types.
Migration guide: rename
Bijection
toCodec
,Bi
toBiCodec
andBiToml
toTomlCodec
. -
#82: Breaking change: Remove
maybeT
. Adddioptional
instead.Migration guide: replace
Toml.maybeT Toml.int "foo"
withToml.dioptional (Toml.int "foo")
. -
#95: Breaking change: Swap fields in
BiMap
s for consistency withlens
package.Migration guide: reverse order of composition when using
BiMap
s. -
#98: Implement benchmarks for
tomland
and compare withhtoml
andhtoml-megaparsec
libraries. -
#130: Added combinators to
Toml.Bi.Combinators
. -
#115: Added time combinators to
Toml.BiMap
andToml.Bi.Combinators
. -
#99: Split
Toml.Parser
file into smaller files. -
#22: Report proper type checking error during parsing.
-
#14: Add support for inline tables parsing.
-
#70: Add
_TextBy
and_Read
combinators. -
#11: Add
PrintOptions
(sorting, indentation) for pretty printer. -
#17: Allow underscores in integers*.
-
#90: Migrate to megaparsec 7.0.
-
#85: Add
Date
generator for property-based tests. -
#88: Add
Array
generator for property-based tests. -
#86: Improve
String
generator for property-based tests. -
#87: Improve
Double
generator for property-based tests. -
Add support for GHC 8.6.1. Add support for GHC 8.4.4. Drop support for GHC 8.0.2.
-
#109: Add function
decodeToml
.
- #54:
Add support for sum types.
Rename
Prism
toBiMap
. RenamebijectionMaker
tomatch
. Addstring
codec.
- #19: Add proper parsing of floating point numbers.
- #15: Add parsing of multiline strings.
- #40: Support full-featured string parser.
- #18: Add dates parsing.
- Add useful combinators for
newtype
wrappers. - #58:
Add
decodeFile
function.
-
#60: Breaking change: Replace
Valuer
withPrism
.Migration guide: replace any
fooV
with corresponding prism_Foo
. -
#66: Breaking change: Introduce consistent names according to Haskell types.
Migration guide: see issue details to know which names to use.
-
#8: Create EDSL for easier TOML data type writing.
-
#10: Add
Semigroup
andMonoid
instances forPrefixTree
andTOML
. Add property tests on laws. -
#20: Add parsing of hexadecimal, octal, and binary integer numbers.
-
#26: Implement unit tests for TOML parsers. Allow terminating commas inside an array. Allow comments before and after any value inside an array. Allow keys to be literal strings.
- Make
table
parser work withmaybeP
. - #39:
Implement
prettyException
function forDecodeException
.
- Switch names for
decode
andencode
functions. - #47:
Rename
dimapBijection
todimap
. Introducemdimap
combinator. - #37: Add tables support for bidirectional conversion.