Changelog History
Page 2
-
v1.5.3.0 Changes
- ➕ Add instances for types in
strict
anddata-fix
packages, thanks to Oleg Grenrus. - CPP cleanup, thanks to Oleg Grenrus.
- Instances for
dlist
'sData.DList.DNonEmpty.DNonEmpty
, thanks to Oleg Grenrus.
- ➕ Add instances for types in
-
v1.5.2.0 Changes
June 14, 2020- ➕ Add
Ord Value
instance, thanks to Oleg Grenrus. - Export
rejectUnknownFields
fromData.Aeson
- ➕ Add
-
v1.5.1.0 Changes
May 26, 2020- ➕ Add instances for
these
, thanks to Oleg Grenrus.
- ➕ Add instances for
-
v1.5.0.0 Changes
May 25, 2020- 🛠 Fix bug in
rejectUnknownFields
not respectingfieldLabelModifier
, thanks to Markus Schirp. - 📜
GFromJSON
members are no longer exported fromData.Aeson(.Types)
, if you are usinggParseJSON
consider switching togParseJSON'
, thanks to Oleg Grenrus. - Aeson no longer accepts unescaped control characters, thanks to Oleg Grenrus.
- ✂ Remove
CoerceText
since GHC >=7.8 hasCoercible
, thanks to Oleg Grenrus. - 📇 Rename the
GToJSON
class toGToJSON'
and expose it, thanks to Oleg Grenrus.
Closed tickets: https://github.com/bos/aeson/milestone/21
- 🛠 Fix bug in
-
v1.4.7.1 Changes
March 29, 2020- GHC 8.10 compatibility, thanks to Ryan Scott.
-
v1.4.7.0 Changes
March 20, 2020🚀 Long overdue release (once again), so there's quite a bit of stuff 🚀 included even though it's a "minor" release. Big thanks to all the contributors, the project would not exist without you!
Special thanks to Oleg Grenrus and Xia Li-Yao for reviewing tons of stuff.
🆕 New stuff:
- ➕ Add
rejectUnknownFields
to Options which rejects unknown fields on deserialization. Useful to find errors during development, but enabling this should be considered a breaking change as previously accepted inputs may now be rejected. Thanks to rmanne.
instance FromJSON Foo where parseJSON = gParseJSON defaultOptions { rejectUnknownFields = True }
📜
FromJSON
instance ofRatio a
now parses numbers in addtion to standard{numerator=..., denumerator=...}
encoding. Thanks to Aleksey Khudyakov.➕ Add more information to parse errors, including a sample of the surrounding text. Hopefully this will lead to less "Failed to read: satisfy" confusion! Thanks to Sasha Bogicevic. We expect some downstream test suites to break because of this, apologies in advance. Hopefully you will like the improvement anyway :-)
➕ Add
parseFail
toData.Aeson.Types
.parseFail = fail
but doesn't require users to know aboutMonadFail
. Thanks to Colin Woodbury.👉 Make Template Haskell type family detection smarter when deriving
ToJSON1
instances, thanks to Ryan Scott.⚡️ Optimize string parsing for the common case of strings without escapes, thanks to Yuras.
Misc:
⚠ Clean up compiler warnings and switch from base-compat to base-compat-batteries. Thanks to Colin Woodbury & Oleg Grenrus.
📚 Clarification & fixes to documentation regarding treatment of Maybe fields, thanks to Roman Cheplyaka.
➕ Add documentation for internal development workflows. Thanks to Guru Devanla.
⬇️ Drop support for GHC < 7.8. We've chosen to support older GHCs as long as it doesn't prevent us from adding new features, but now it does! Thanks to Oleg Grenrus for the patch.
👍 Allow generic-deriving 1.13 in test suite.
🛠 Some DRY fixes thanks to Mark Fajkus.
- ➕ Add
-
v1.4.6.0 Changes
November 12, 2019Provide a clearer error message when a required tagKey for a constructor is missing, thanks to Guru Devanla. The error message now looks like this:
Error in $: parsing Types.SomeType failed, expected Object with key "tag" containing one of ["nullary","unary","product","record","list"], key "tag" not found
➕ Add
formatPath
andformatRelativePath
functions to turn aJSONPath
into aString
, thanks to Robbie McMichael
-
v1.4.5.0 Changes
September 09, 2019🔦 Expose
(<?>)
,JSONPath
andJSONPathElement(..)
fromData.Aeson.Types
. Previously only available through internal modules. Thanks to Luke Clifton.👌 Support for base-compat 0.11, thanks to Ryan Scott.
🏗 Travis build for GHC 8.8, thanks to Oleg Grenrus.
-
v1.4.4.0 Changes
June 25, 2019🆕 New features:
➕ Adds a parameterized parser
jsonWith
that can be used to choose how to handle duplicate keys in objects, thanks to Xia Li-Yao.➕ Add generic implementations of
FromJSONKey
andToJSONKey
, thanks to Xia Li-Yao. Example:
data Foo = Bar deriving Generic opts :: JSONKeyOptions opts = defaultJSONKeyOptions { keyModifier = toLower } instance ToJSONKey Foo where toJSONKey = genericToJSONKey opts instance FromJSONKey Foo where fromJSONKey = genericFromJSONKey opts
Minor:
- aeson now uses
time-compat
instead oftime-locale-compat
, thanks to Oleg Grenrus. - Prepare for
MonadFail
breakages in GHC 8.8, thanks to Oleg Grenrus. - 🏗 Require
bytestring >= 0.10.8.1
for newer GHCs to avoid build failures, thanks to Oleg Grenrus. - 👌 Support
primitive 0.7.*
, thanks to Adam Bergmark. - Allow
semigroups 0.19.*
andhashable 1.3.*
, thanks to Oleg Grenrus. - 🛠 Fix a typo in the error message when parsing
NonEmpty
, thanks to Colin Woodbury. - Document surprising behavior when using
omitNothingFields
with type variables, thanks to Xia Li-Yao.
Internal changes:
- Code cleanup by Oleg Grenrus
- 🛠 Fix dependencies of the benchmarks on older GHC's, thanks to Xia Li-Yao.
-
v1.4.3.0 Changes
April 28, 2019- 👌 Improve error messages for FromJSON in existing instances and GHC Generic implementation. Thanks to Xia Li-Yao & Igor Pashev.
- 📚 Tweak error-reporting combinators and their documentation. Thanks to Xia Li-Yao.
typeMismatch
is now about comparing JSON types (i.e., the expected and actual names of the Value constructor).withObject
and otherwith*
combinators now also mention the JSON types they expect- New
unexpected
andprependFailure
combinators.
- ➕ Add
Contravariant
ToJSONKeyFunction
instance. Thanks to Oleg Grenrus. - ➕ Add
KeyValue
instance forObject
. Thanks to Robert Hensing. - 👌 Improve performance when parsing certain large numbers, thanks to Oleg Grenrus.
- ➕ Add
Data.Aeson.QQ.Simple
- A limited version of aeson-qq. Thanks to Oleg Grenrus. - 🔦 Exposes internal helper functions like
<?>
,JSONPath
, andparseIndexedJSON
fromData.Aeson
module. Thanks to Abid Uzair. - 👍 Better error messages when there are syntax errors parsing objects and arrays. Thanks to Fintan Halpenny.
- 👌 Support building with
th-abstraction-0.3.0.0
or later. Thanks to Ryan Scott.