Version: 1.4.7.1-bp152.1.2
* Wed May 06 2020 psimons@suse.com
- Update aeson to version 1.4.7.1.
[#]### 1.4.7.1
* GHC 8.10 compatibility, thanks to Ryan Scott.
[#]## 1.4.7.0
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 of `Ratio 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` to `Data.Aeson.Types`. `parseFail = fail` but
doesn't require users to know about `MonadFail`. 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.
* Wed Nov 13 2019 psimons@suse.com
- Update aeson to version 1.4.6.0.
[#]## 1.4.6.0
* Provide 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` and `formatRelativePath` functions to turn a `JSONPath` into a `String`, thanks to Robbie McMichael
* Fri Nov 08 2019 Peter Simons <psimons@suse.com>
- Drop obsolete group attributes.
* Tue Sep 10 2019 psimons@suse.com
- Update aeson to version 1.4.5.0.
[#]## 1.4.5.0
* Expose `(<?>)`, `JSONPath` and `JSONPathElement(..)` from `Data.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.
* Tue Jun 25 2019 psimons@suse.com
- Update aeson to version 1.4.4.0.
[#]## 1.4.4.0
* *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` and `ToJSONKey`, thanks to Xia Li-Yao. Example:
```haskell
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 of `time-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.*` and `hashable 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.
* Tue Apr 30 2019 psimons@suse.com
- Update aeson to version 1.4.3.0.
[#]## 1.4.3.0
* 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 other `with*` combinators now also mention the JSON types they expect
* New `unexpected` and `prependFailure` combinators.
* Add `Contravariant` `ToJSONKeyFunction` instance. Thanks to Oleg Grenrus.
* Add `KeyValue` instance for `Object`. 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`, and `parseIndexedJSON` from `Data.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.
Version: 1.4.2.0-bp151.2.9
* Sat Jan 19 2019 Peter Simons <psimons@suse.com>
- Update Cabal build instructions for more accurate dependencies.
* Sun Nov 25 2018 psimons@suse.com
- Update aeson to version 1.4.2.0.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/aeson-1.4.2.0/src/changelog.md
* Thu Oct 04 2018 psimons@suse.com
- Update aeson to version 1.4.1.0.
[#]### 1.4.1.0
* Optimizations of generics, thanks to Rémy Oudompheng, here are some numbers for GHC 8.4:
* Compilation time: G/BigProduct.hs is 25% faster, G/BigRecord.hs is 2x faster.
* Runtime performance: BigRecord/toJSON/generic and BigProduct/encode/generic are more than 2x faster.
* Added To/FromJSON instances for `Void` and Generics's `V1`, thanks to Will Yager
* Added To/FromJSON instances for `primitive`'s `Array`, `SmallArray`, `PrimArray` and `UnliftedArray`, thanks to Andrew Thad.
* Fixes handling of `UTCTime` wrt. leap seconds , thanks to Adam Schønemann
* Warning and documentation fixes thanks to tom-bop, Gabor Greif, Ian Jeffries, and Mateusz Cury?o.
* Wed Jul 18 2018 psimons@suse.com
- Cosmetic: replace tabs with blanks, strip trailing white space,
and update copyright headers with spec-cleaner.
* Tue Jul 17 2018 psimons@suse.com
- Update aeson to version 1.4.0.0.
[#]## 1.4.0.0
This release introduces bounds on the size of `Scientific` numbers when they are converted to other arbitrary precision types that do not represent them efficiently in memory.
This means that trying to decode a number such as `1e1000000000` into an `Integer` will now fail instead of using a lot of memory. If you need to represent large numbers you can add a newtype (preferably over `Scientific`) and providing a parser using `withScientific`.
The following instances are affected by this:
* `FromJSON Natural`
* `FromJSONKey Natural`
* `FromJSON Integer`
* `FromJSONKey Integer`
* `FromJSON NominalDiffTime`
For the same reasons the following instances & functions have been removed:
* Remove `FromJSON Data.Attoparsec.Number` instance. Note that `Data.Attoparsec.Number` is deprecated.
* Remove deprecated `withNumber`, use `withScientific` instead.
Finally, encoding integral values with large exponents now uses scientific notation, this saves space for large numbers.
[#]## 1.3.1.1
* Catch 0 denominators when parsing Ratio
[#]## 1.3.1.0
* Fix bug in generically derived `FromJSON` instances that are using `unwrapUnaryRecords`, thanks to Xia Li-yao
* Allow base-compat 0.10.*, thanks to Oleg Grenrus
[#]# 1.3.0.0
Breaking changes:
* `GKeyValue` has been renamed to `KeyValuePair`, thanks to Xia Li-yao
* Removed unused `FromJSON` constraint in `withEmbeddedJson`, thanks to Tristan Seligmann
Other improvements:
* Optimizations of TH toEncoding, thanks to Xia Li-yao
* Optimizations of hex decoding when using the default/pure unescape implementation, thanks to Xia Li-yao
* Improved error message on `Day` parse failures, thanks to Gershom Bazerman
* Add `encodeFile` as well as `decodeFile*` variants, thanks to Markus Hauck
* Documentation fixes, thanks to Lennart Spitzner
* CPP cleanup, thanks to Ryan Scott
* Mon May 14 2018 psimons@suse.com
- Update aeson to version 1.2.4.0.
* Add `Ord` instance for `JSONPathElement`, thanks to Simon Hengel.
* Added `withEmbeddedJSON` to help parse JSON embedded inside a JSON string, thanks to Jesse Kempf.
* Memory usage improvements to the default (pure) parser, thanks to Jonathan Paugh. Also thanks to Neil Mitchell & Oleg Grenrus for contributing a benchmark.
* `omitNothingFields` now works for the `Option` newtype, thanks to Xia Li-yao.
* Some documentation fixes, thanks to Jonathan Paug & Philippe Crama.
* Add `FromJSON` and `ToJSON` instances for
* `DiffTime`, thanks to Víctor López Juan.
* `CTime`, thanks to Daniel Díaz.
* Fix handling of fractions when parsing Natural, thanks to Yuriy Syrovetskiy.
* Change text in error messages for Integral types to make them follow the common pattern, thanks to Yuriy Syrovetskiy.
* Add missing `INCOHERENT` pragma for `RecordToPair`, thanks to Xia Li-yao.
* Everything related to `Options` is now exported from `Data.Aeson`, thanks to Xia Li-yao.
* Optimizations to not escape text in clear cases, thanks to Oleg Grenrus.
* Some documentation fixes, thanks to Phil de Joux & Xia Li-yao.
* Add `parserThrowError` and `parserCatchError` combinators, thanks to Oleg Grenrus.
* Add `Generic` instance for `Value`, thanks to Xia Li-yao.
* Fix a mistake in the 1.2.0.0 changelog, the `cffi` flag is disabled by default! Thanks to dbaynard.
* `tagSingleConstructors`, an option to encode single-constructor types as tagged sums was added to `Options`. It is disabled by default for backward compatibility.
* The `cffi` flag is now turned off (`False`) by default, this means C FFI code is no longer used by default. You can flip the flag to get C implementation.
* The `Options` constructor is no longer exposed to prevent new options from being breaking changes, use `defaultOptions` instead.
* The contents of `GToJSON` and `GToEncoding` are no longer exposed.
* Some INLINE pragmas were removed to avoid GHC running out of simplifier ticks.
Version: 1.1.2.0-bp150.2.4
* Thu Aug 03 2017 psimons@suse.com
- Updated with latest spec-cleaner version 0.9.8-8-geadfbbf.
* Thu Jul 27 2017 psimons@suse.com
- Update to version 1.1.2.0 revision 1.
* Tue Apr 04 2017 psimons@suse.com
- Update to version 1.0.2.1 revision 1 with cabal2obs.
* Sun Feb 12 2017 psimons@suse.com
- Update to version 1.0.2.1 with cabal2obs.
* Thu Jan 26 2017 psimons@suse.com
- Update to version 0.11.3.0 with cabal2obs.
* Mon Sep 19 2016 psimons@suse.com
- Update to version 0.11.2.1 revision 1 with cabal2obs.
* Wed Aug 17 2016 psimons@suse.com
- Update to version 0.11.2.1 revision 0 with cabal2obs.
Version: 0.9.0.1-3.1
* Mon Sep 28 2015 mimi.vx@gmail.com
- update to 0.9.0.1
* A stray export of encodeToBuilder got away!
* The json and json' parsers are now synonyms for value and value', in conformance
with the looser semantics of RFC 7159.
* Renamed encodeToByteStringBuilder to the more compact encodeToBuilder.
* The dependency on the unordered-containers package was too lax, and has been
corrected.
* Encoding a Scientific value with a huge exponent is now handled efficiently.
(This would previously allocate a huge arbitrary-precision integer, potentially
leading to a denial of service.)
* Handling of strings that contain backslash escape sequences is greatly improved.
For a pathological string containing almost a megabyte of consecutive backslashes,
the new implementation is 27x faster and uses 42x less memory.
* The ToJSON instance for UTCTime is rendered with higher (picosecond) resolution.
* The value parser now correctly handles leading whitespace.
* New instances of ToJSON and FromJSON for Data.Sequence and Data.Functor.Identity.
The Value type now has a Read instance.
* ZonedTime parser ordering now favours the standard JSON format, increasing
efficiency in the common case.
* Encoding to a Text.Builder now escapes '<' and '>' characters, to reduce XSS risk.
* Wed Apr 22 2015 mimi.vx@gmail.com
- update to 0.8.0.2
* Fix ToJSON instance for 15-tuples.
* Support time-1.5.
* Add ToJSON and FromJSON instances for tuples of up to 15 elements.
* Major compiler and library compatibility changes: we have dropped
support for GHC older than 7.4, text older than 1.1, and bytestring
older than 0.10.4.0. Supporting the older versions had become
increasingly difficult, to the point where it was no longer worth
it.
* The performance of encoding to and decoding of bytestrings have both
improved by up to 2x, while also using less memory.
* New dependency: the scientific package lets us parse floating point
numbers more quickly and accurately.
* eitherDecode, decodeStrictWith: fixed bugs.
* Added FromJSON and ToJSON instances for Tree and Scientific.
* Fixed the ToJSON instances for UTCTime and ZonedTime.
* Sun Nov 09 2014 peter.trommler@ohm-hochschule.de
- drop aeson-disable-TH.patch
* Template Haskell (TH) now available on all supprted archs
* Sat Oct 18 2014 dvaleev@suse.com
- disable TH module on arch's without ghci
aeson-disable-TH.patch
* Mon Oct 28 2013 sbahling@suse.com
- Remove redundant Requires for ghc-compiler
* Mon Oct 07 2013 sbahling@suse.com
- Initial package - version 0.6.2.0
Version: 0.11.2.0-6.7
* Sun Jul 10 2016 psimons@suse.com
- Update to version 0.11.2.0 revision 1 with cabal2obs.
* Thu May 26 2016 mimi.vx@gmail.com
- update to 0.11.2.0
* Enable PolyKinds to generalize Proxy, Tagged, and Const instances.
* Add unsafeToEncoding in Data.Aeson.Types, use with care!
* Fri Mar 25 2016 mimi.vx@gmail.com
- update to 0.11.1.4
* Fix build with base < 4.8 and unordered-containers < 0.2.6.
* Add missing field in docs for defaultOptions.
* Fixes a bug where the hashes of equal values could differ.
* The only changes are added instances. (0.11.1.0)
+ These are new:
ToJSON a => ToJSON (NonEmpty a)
FromJSON a => FromJSON (NonEmpty a)
ToJSON (Proxy a)
FromJSON (Proxy a)
ToJSON b => ToJSON (Tagged a b)
FromJSON b => FromJSON (Tagged a b)
ToJSON a => ToJSON (Const a b)
FromJSON a => FromJSON (Const a b)
+ These are now available for older GHCs:
ToJSON Natural
FromJSON Natural
* This release should be close to backwards compatible with aeson 0.9 (0.11.0.0)
+ Breaking changes:
Revert .:? to behave like it did in 0.9. If you want the 0.10 behavior
use .:! instead.
Revert JSON format of Either to 0.9, Left and Right are now serialized with
an initial uppercase letter. If you want the names in lowercase you can
add a newtype with an instance.
All ToJSON and FromJSON instances except for [a] are no longer OVERLAPPABLE.
Mark your instance as OVERLAPPING if it overlaps any of the other aeson
instances.
All ToJSON and FromJSON instances except for [Char] are no longer
incoherent, this means you may need to replace your incoherent instances
with a newtyped instance.
+ Additions:
Introduce .:! that behaves like .:? did in 0.10.
Allow HH:MM format for ZonedTime and UTCTime. This is one of the formats
allowed by ISO 8601.
Added ToJSON and FromJSON instances for the Version, Ordering, and Natural
types.
+ Bug fixes:
JSONPath identifiers are now escaped if they contain invalid characters.
Fixed JSONPath messages for Seq to include indices.
Fixed JSONPath messages for Either to include left/right.
Fix missing quotes surrounding time encodings.
Fix #293: Type error in TH when using omitNothingFields = True.