commit a68cc5de1a2995beb35ae3d6c7c18f4e36f7dbb6c897d3613546e9e779635c36 Author: Peter Simons Date: Wed Aug 14 21:01:42 2024 +0000 osc copypac from project:devel:languages:haskell:ghc-9.8.x package:ghc-aeson revision:5, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-aeson?expand=0&rev=89 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..f6e7180 --- /dev/null +++ b/_constraints @@ -0,0 +1,17 @@ + + + + 5 + + + + + s390x + + + + 8 + + + + diff --git a/aeson-2.2.3.0.tar.gz b/aeson-2.2.3.0.tar.gz new file mode 100644 index 0000000..3291f2e --- /dev/null +++ b/aeson-2.2.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daa25cf428256ad05d21f2bfa44077c1b14d6c784b7930a202ee901f11cc6baa +size 340855 diff --git a/aeson.cabal b/aeson.cabal new file mode 100644 index 0000000..db1bcb2 --- /dev/null +++ b/aeson.cabal @@ -0,0 +1,246 @@ +cabal-version: 2.2 +name: aeson +version: 2.2.3.0 +x-revision: 1 +license: BSD-3-Clause +license-file: LICENSE +category: Text, Web, JSON +copyright: + (c) 2011-2016 Bryan O'Sullivan + (c) 2011 MailRank, Inc. + +author: Bryan O'Sullivan +maintainer: Adam Bergmark +stability: experimental +tested-with: + GHC ==8.6.5 + || ==8.8.4 + || ==8.10.7 + || ==9.0.2 + || ==9.2.8 + || ==9.4.8 + || ==9.6.5 + || ==9.8.2 + || ==9.10.1 + +synopsis: Fast JSON parsing and encoding +homepage: https://github.com/haskell/aeson +bug-reports: https://github.com/haskell/aeson/issues +build-type: Simple +description: + A JSON parsing and encoding library optimized for ease of use + and high performance. + . + To get started, see the documentation for the @Data.Aeson@ module + below. + . + (A note on naming: in Greek mythology, Aeson was the father of Jason.) + +extra-source-files: + *.yaml + benchmarks/json-data/*.json + changelog.md + README.markdown + tests/golden/*.expected + tests/JSONTestSuite/results/*.tok + tests/JSONTestSuite/results/*.txt + tests/JSONTestSuite/test_parsing/*.json + tests/JSONTestSuite/test_transform/*.json + +flag ordered-keymap + description: Use ordered @Data.Map.Strict@ for KeyMap implementation. + default: True + manual: True + +library + default-language: Haskell2010 + hs-source-dirs: src + exposed-modules: + Data.Aeson + Data.Aeson.Decoding + Data.Aeson.Decoding.ByteString + Data.Aeson.Decoding.ByteString.Lazy + Data.Aeson.Decoding.Text + Data.Aeson.Decoding.Tokens + Data.Aeson.Encoding + Data.Aeson.Encoding.Internal + Data.Aeson.Key + Data.Aeson.KeyMap + Data.Aeson.QQ.Simple + Data.Aeson.RFC8785 + Data.Aeson.Text + Data.Aeson.TH + Data.Aeson.Types + + other-modules: + Data.Aeson.Decoding.Conversion + Data.Aeson.Decoding.Internal + Data.Aeson.Encoding.Builder + Data.Aeson.Internal.ByteString + Data.Aeson.Internal.Functions + Data.Aeson.Internal.Prelude + Data.Aeson.Internal.Scientific + Data.Aeson.Internal.Text + Data.Aeson.Internal.TH + Data.Aeson.Internal.Unescape + Data.Aeson.Internal.UnescapeFromText + Data.Aeson.Parser.Time + Data.Aeson.Types.Class + Data.Aeson.Types.FromJSON + Data.Aeson.Types.Generic + Data.Aeson.Types.Internal + Data.Aeson.Types.ToJSON + + -- GHC bundled libs + build-depends: + , base >=4.12.0.0 && <5 + , bytestring >=0.10.8.2 && <0.13 + , containers >=0.6.0.1 && <0.8 + , deepseq >=1.4.4.0 && <1.6 + , exceptions >=0.10.4 && <0.11 + , ghc-prim >=0.5.0.0 && <0.12 + , template-haskell >=2.14.0.0 && <2.23 + , text >=1.2.3.0 && <1.3 || >=2.0 && <2.2 + , time >=1.8.0.2 && <1.13 + + -- Compat + build-depends: + , generically >=0.1 && <0.2 + , time-compat >=1.9.6 && <1.10 + + if !impl(ghc >=9.0) + build-depends: integer-gmp + + -- Other dependencies + build-depends: + , character-ps ^>=0.1 + , data-fix ^>=0.3.2 + , dlist ^>=1.0 + , hashable ^>=1.4.6.0 || ^>=1.5.0.0 + , indexed-traversable ^>=0.1.2 + , integer-conversion ^>=0.1 + , integer-logarithms ^>=1.0.3.1 + , network-uri ^>=2.6.4.1 + , OneTuple ^>=0.4.1.1 + , primitive ^>=0.8.0.0 || ^>=0.9.0.0 + , QuickCheck ^>=2.14.3 || ^>=2.15 + , scientific ^>=0.3.7.0 + , semialign ^>=1.3 + , strict ^>=0.5 + , tagged ^>=0.8.7 + , text-iso8601 ^>=0.1.1 + , text-short ^>=0.1.5 + , th-abstraction ^>=0.5.0.0 || ^>=0.6.0.0 || ^>=0.7.0.0 + , these ^>=1.2 + , unordered-containers ^>=0.2.10.0 + , uuid-types ^>=1.0.5 + , vector ^>=0.13.0.0 + , witherable ^>=0.4.2 || ^>=0.5 + + ghc-options: -Wall + + -- String unescaping + + if flag(ordered-keymap) + cpp-options: -DUSE_ORDEREDMAP=1 + +test-suite aeson-tests + default-language: Haskell2010 + type: exitcode-stdio-1.0 + hs-source-dirs: tests + main-is: Tests.hs + ghc-options: -Wall -threaded -rtsopts + other-modules: + CastFloat + DataFamilies.Encoders + DataFamilies.Instances + DataFamilies.Properties + DataFamilies.Types + DoubleToScientific + Encoders + ErrorMessages + Functions + Instances + JSONTestSuite + Options + Properties + PropertyGeneric + PropertyKeys + PropertyQC + PropertyRoundTrip + PropertyRTFunctors + PropertyTH + PropUtils + Regression.Issue351 + Regression.Issue571 + Regression.Issue687 + Regression.Issue967 + RFC8785 + SerializationFormatSpec + Types + UnitTests + UnitTests.FromJSONKey + UnitTests.Hashable + UnitTests.KeyMapInsertWith + UnitTests.MonadFix + UnitTests.NoThunks + UnitTests.NullaryConstructors + UnitTests.OmitNothingFieldsNote + UnitTests.OptionalFields + UnitTests.OptionalFields.Common + UnitTests.OptionalFields.Generics + UnitTests.OptionalFields.Manual + UnitTests.OptionalFields.TH + UnitTests.UTCTime + + build-depends: + , aeson + , base + , base-compat + , base-orphans >=0.5.3 && <0.10 + , base16-bytestring + , bytestring + , containers + , data-fix + , deepseq + , Diff >=0.4 && <0.6 + , directory + , dlist + , filepath + , generic-deriving >=1.10 && <1.15 + , generically + , ghc-prim >=0.2 + , hashable + , indexed-traversable + , integer-logarithms >=1 && <1.1 + , network-uri + , OneTuple + , primitive + , QuickCheck >=2.14.2 && <2.16 + , quickcheck-instances >=0.3.29 && <0.4 + , scientific + , strict + , tagged + , tasty + , tasty-golden + , tasty-hunit + , tasty-quickcheck + , template-haskell + , text + , text-short + , these + , time + , time-compat + , unordered-containers + , uuid-types + , vector + + if !impl(ghc >=9.0) + build-depends: integer-gmp + + if impl(ghc >=9.2 && <9.7) + build-depends: nothunks >=0.1.4 && <0.3 + +source-repository head + type: git + location: git://github.com/haskell/aeson.git diff --git a/ghc-aeson.changes b/ghc-aeson.changes new file mode 100644 index 0000000..40ced30 --- /dev/null +++ b/ghc-aeson.changes @@ -0,0 +1,694 @@ +------------------------------------------------------------------- +Fri Aug 2 09:23:27 UTC 2024 - Peter Simons + +- Update aeson to version 2.2.3.0 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Tue Jun 11 19:32:18 UTC 2024 - Peter Simons + +- Update aeson to version 2.2.3.0. + ### 2.2.3.0 + + * Support `hashable-1.4.6.0`. + * Fix an issue where `Hashable Key` wasn't newtype instance over underlying `Text`, + so with `-ordered-keymap` there were correctness issues. + * Add instances for `Data.Semigroup.Sum`, `Product`, `Any`, `All` + +------------------------------------------------------------------- +Fri May 17 03:42:00 UTC 2024 - Peter Simons + +- Update aeson to version 2.2.2.0 revision 1. + ### 2.2.2.0 + + * Support GHC-8.6.5...9.10.1 + * Depend on `character-ps` instead of defining own Word8 pattern synonyms + +------------------------------------------------------------------- +Mon Oct 16 15:54:05 UTC 2023 - Peter Simons + +- Update aeson to version 2.2.1.0 revision 1. + ### 2.2.1.0 + + * Add `Data.Aeson.RFC8785`, a JSON Canonicalization Scheme implementation + https://datatracker.ietf.org/doc/html/rfc8785 + * Add Data.Aeson.Decoding.Text, decodeStrictText :: Text -> ... + + We avoid intermediate `ByteString` copy by not doing + `decode . TE.encodeUtf8`, but instead working on `Text` value directly. + As we know that the stream is valid Unicode (UTF8 or UTF16), + we can also take some shortcuts. + + One gotcha is that internal `Text` values (in `Key`s or `Value` `String`s) + will most likely retain the original input `Text` value (its underlying `Array`). + It shouldn't be an issue if the `Value` is then decoded to something else so these + `Text` values disapper, but if not (e.g. `Object` keys survive) + then users might want to use `Data.Text.copy`. + + ### 2.2.0.0 + + * Rework how `omitNothingFields` works. Add `allowOmittedFields` as a parsing counterpart. + + New type-class members were added: `omitField :: a -> Bool` to `ToJSON` and `omittedField :: Maybe a` to `FromJSON`. + These control which fields can be omitted. + The `.:?=`, `.:!=` and `.?=` operators were added to make use of these new members. + + GHC.Generics and Template Haskell deriving has been updated accordingly. + Note: They behave as the parsers have been written with `.:!=`, i.e. + if the field value is `null` it's passed to the underlying parser. + This doesn't make difference for `Maybe` or `Option`, but does make for + types which parser doesn't accept `null`. + (`()` parser accepts everything and `Proxy` accepts `null). + + In addition to `Maybe` (and `Option`) fields the `Data.Monoid.First` and `Data.Monoid.Last` are also omitted, + as well as the most newtype wrappers, when their wrap omittable type (e.g. newtypes in `Data.Monoid` and `Data.Semigroup`, `Identity`, `Const`, `Tagged`, `Compose`). + Additionall "boring" types like `()` and `Proxy` are omitted as well. + As the omitting is now uniform, type arguments are also omitted (also in `Generic1` derived instance). + + Resolves issues: + + - [#687](https://github.com/haskell/aeson/issues/687) Derived ToJSON1 instance does not respect omitNothingFields = True, + - [#571](https://github.com/haskell/aeson/issues/571) omitNothingFields not used in Generic Decode, + - [#792](https://github.com/haskell/aeson/issues/792) Make Proxy fields optional. + + * Use `Data.Aeson.Decoding` parsing functions (introduced in version 2.1.2.0) as default in `Data.Aeson`. + As one side-effect, `decode` and `decode'` etc pair functions are operationally the same. + All variants use an intermediate `Value` in normal form. + + The lazier variant could had `Value` thunks inside `Array` (i.e. `Vector`), but the record had been value strict since version `0.4.0.0` (before that the lazy `Data.Map` was used as `Object`). + + * Move `Data.Aeson.Parser` module into separate [`attoparsec-aeson`](https://hackage.haskell.org/package/attoparsec-aeson) package, as these parsers are not used by `aeson` itself anymore. + * Use [`text-iso8601`](https://hackage.haskell.org/package/text-iso8601) package for parsing `time` types. These are slightly faster than previously used (copy of) `attoparsec-iso8601`. + Formats accepted is slightly changed: + - The space between time and timezone offset (in `UTCTime` and `ZonedTime`) is disallowed. ISO8601 explictly forbidds it. + - The timezone offsets can be in range -23:59..23:59. This is how Python, joda-time etc seems to do. (Previously the range was -12..+14) + + * Remove internal `Data.Aeson.Internal` and `Data.Aeson.Internal.Time` modules. Everything from the former is exported elsewhere (`Data.Aeson.Types`), the latter was truly internal. + * Remove `cffi` flag. Toggling the flag made `aeson` use a C implementation for string unescaping (used for `text <2` versions). + The new native Haskell implementation (introduced in version 2.0.3.0) is at least as fast. + * Drop instances for `Number` from `attoparsec` package. + * Improve `Arbitrary Value` instance. + * Add instances for `URI` from `network-uri`. + * add instances for `Down` from `Data.Ord`. + * Use `integer-conversion` for converting `Text` and `ByteString`s into `Integer`s. + * Bump lower bounds of non GHC-boot lib dependencies. + +------------------------------------------------------------------- +Tue Aug 22 09:29:21 UTC 2023 - Peter Simons + +- Cosmetic changes to the spec file. + +------------------------------------------------------------------- +Wed Aug 2 10:29:03 UTC 2023 - Andreas Schwab + +- Reduce memory constraints for riscv64 + +------------------------------------------------------------------- +Thu Mar 30 17:05:43 UTC 2023 - Peter Simons + +- Updated spec file to conform with ghc-rpm-macros-2.5.2. + +------------------------------------------------------------------- +Sun Mar 19 14:43:54 UTC 2023 - Peter Simons + +- Update aeson to version 2.1.2.1 revision 3. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Wed Mar 15 14:37:44 UTC 2023 - Peter Simons + +- Update aeson to version 2.1.2.1 revision 2. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Wed Mar 1 11:15:32 UTC 2023 - Peter Simons + +- Update aeson to version 2.1.2.1 revision 1. + ### 2.1.2.1 + + * Support `th-abstraction-0.5` + + ### 2.1.2.0 + + * Add `throwDecode :: (MonadThrow m, FromJSON a) => ByteString -> m a` + and variants. + * Add `Data.Aeson.Decoding` which uses new underlying tokenizer / parser. + This parser seems to be faster, and the intermediate `Tokens` streams + allow to differentiate more than `Value` if needed. + If no critical issues is found, this parser will become the default + in next major `aeson` version. + * Support deriving for empty datatypes (such as `Void` and `V1`) + in `FromJSON` and `ToJSON`. + * Add `To/FromJSONKey Void` instances + * Fix `FromJSONKey Double` handling of infinities + +------------------------------------------------------------------- +Wed Sep 21 15:17:01 UTC 2022 - Peter Simons + +- Update aeson to version 2.1.1.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-2.1.1.0/src/changelog.md + +------------------------------------------------------------------- +Sat Dec 11 17:27:48 UTC 2021 - Peter Simons + +- Update aeson to version 1.5.6.0 revision 5. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Sat Nov 20 17:29:58 UTC 2021 - psimons@suse.com + +- Update aeson to version 1.5.6.0 revision 4. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Tue Nov 16 19:52:56 UTC 2021 - psimons@suse.com + +- Update aeson to version 1.5.6.0 revision 3. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Thu Sep 2 08:33:16 UTC 2021 - psimons@suse.com + +- Update aeson to version 1.5.6.0 revision 2. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Thu May 6 06:49:35 UTC 2021 - Guillaume GARDET + +- Set memory constraints to avoid OOM + +------------------------------------------------------------------- +Tue Mar 23 14:56:10 UTC 2021 - psimons@suse.com + +- Update aeson to version 1.5.6.0 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Fri Feb 19 23:03:07 UTC 2021 - psimons@suse.com + +- Update aeson to version 1.5.6.0. + ### 1.5.6.0 + * Make `Show Value` instance print object keys in lexicographic order. + +------------------------------------------------------------------- +Mon Jan 4 11:48:32 UTC 2021 - psimons@suse.com + +- Update aeson to version 1.5.5.1. + ### 1.5.5.1 + * Fix a bug in `FromJSON QuarterOfYear` instance. + + ### 1.5.5.0 + * Add instances for `Month`, `Quarter` and `QuarterOfYear` (from `time-1.11`), thanks to Oleg Grenrus. + + * The aeson repository has been moved to the haskell github organization! + +------------------------------------------------------------------- +Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup + +- disable %{ix86} build + +------------------------------------------------------------------- +Tue Oct 6 08:56:45 UTC 2020 - psimons@suse.com + +- Update aeson to version 1.5.4.1. + #### 1.5.4.1 + * Use `Text.Encoding.decodeLatin1` to speed up ASCII string decoding, thanks to Dmitry Ivanov. + * Support `bytestring 0.11.*` and `th-abstraction 0.4.*`, thanks to Oleg Grenrus. + +------------------------------------------------------------------- +Sun Oct 4 18:06:49 UTC 2020 - Ondřej Súkup + +- add constraints for s390x and riscv64 + +------------------------------------------------------------------- +Mon Aug 31 02:02:42 UTC 2020 - psimons@suse.com + +- Update aeson to version 1.5.4.0. + ### 1.5.4.0 + + * Add instances for `ToJSONKey` and `FromJSONKey` to `Const`, thanks to Dan Fithian. + * Add support for template-haskell 2.17, thanks to Galen Huntington. + * Documentation typo fix, thanks to Jean-Baptiste Mazon. + +------------------------------------------------------------------- +Tue Aug 18 10:43:55 UTC 2020 - Peter Simons + +- Replace %setup -q with the more modern %autosetup macro. + +------------------------------------------------------------------- +Mon Aug 10 08:46:53 UTC 2020 - psimons@suse.com + +- Update aeson to version 1.5.3.0. + ### 1.5.3.0 + + * Add instances for types in `strict` and `data-fix` packages, thanks to Oleg Grenrus. + * CPP cleanup, thanks to Oleg Grenrus. + * Instances for `dlist`'s `Data.DList.DNonEmpty.DNonEmpty`, thanks to Oleg Grenrus. + +------------------------------------------------------------------- +Mon Jun 15 02:00:21 UTC 2020 - psimons@suse.com + +- Update aeson to version 1.5.2.0. + ### 1.5.2.0 + + * Add `Ord Value` instance, thanks to Oleg Grenrus. + * Export `rejectUnknownFields` from `Data.Aeson` + +------------------------------------------------------------------- +Tue Jun 9 09:10:55 UTC 2020 - psimons@suse.com + +- Update aeson to version 1.5.1.0. + ### 1.5.1.0 + + * Add instances for `these`, thanks to Oleg Grenrus. + + ## 1.5.0.0 + + * Fix bug in `rejectUnknownFields` not respecting `fieldLabelModifier`, thanks to Markus Schirp. + * `GFromJSON` members are no longer exported from `Data.Aeson(.Types)`, if you are using `gParseJSON` consider switching to `gParseJSON'`, thanks to Oleg Grenrus. + * Aeson no longer accepts unescaped control characters, thanks to Oleg Grenrus. + * Remove `CoerceText` since GHC >=7.8 has `Coercible`, thanks to Oleg Grenrus. + * Rename the `GToJSON` class to `GToJSON'` and expose it, thanks to Oleg Grenrus. + + Closed tickets: https://github.com/bos/aeson/milestone/21 + +------------------------------------------------------------------- +Wed May 6 06:54:16 UTC 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 03:02:25 UTC 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 8 16:13:10 UTC 2019 - Peter Simons + +- Drop obsolete group attributes. + +------------------------------------------------------------------- +Tue Sep 10 02:02:48 UTC 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 02:02:15 UTC 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 09:23:03 UTC 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. + +------------------------------------------------------------------- +Sat Jan 19 12:33:33 UTC 2019 - Peter Simons + +- Update Cabal build instructions for more accurate dependencies. + +------------------------------------------------------------------- +Sun Nov 25 03:01:12 UTC 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 4 09:42:52 UTC 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 14:26:12 UTC 2018 - psimons@suse.com + +- Cosmetic: replace tabs with blanks, strip trailing white space, + and update copyright headers with spec-cleaner. + +------------------------------------------------------------------- +Tue Jul 17 19:30:59 UTC 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 17:02:11 UTC 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. + +------------------------------------------------------------------- +Thu Aug 3 15:38:38 UTC 2017 - psimons@suse.com + +- Updated with latest spec-cleaner version 0.9.8-8-geadfbbf. + +------------------------------------------------------------------- +Thu Jul 27 14:07:48 UTC 2017 - psimons@suse.com + +- Update to version 1.1.2.0 revision 1. + +------------------------------------------------------------------- +Tue Apr 4 11:04:08 UTC 2017 - psimons@suse.com + +- Update to version 1.0.2.1 revision 1 with cabal2obs. + +------------------------------------------------------------------- +Sun Feb 12 14:08:22 UTC 2017 - psimons@suse.com + +- Update to version 1.0.2.1 with cabal2obs. + +------------------------------------------------------------------- +Thu Jan 26 16:20:17 UTC 2017 - psimons@suse.com + +- Update to version 0.11.3.0 with cabal2obs. + +------------------------------------------------------------------- +Mon Sep 19 10:39:23 UTC 2016 - psimons@suse.com + +- Update to version 0.11.2.1 revision 1 with cabal2obs. + +------------------------------------------------------------------- +Wed Aug 17 18:30:25 UTC 2016 - psimons@suse.com + +- Update to version 0.11.2.1 revision 0 with cabal2obs. + +------------------------------------------------------------------- +Sun Jul 10 17:33:06 UTC 2016 - psimons@suse.com + +- Update to version 0.11.2.0 revision 1 with cabal2obs. + +------------------------------------------------------------------- +Thu May 26 06:06:35 UTC 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 07:41:45 UTC 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. + +------------------------------------------------------------------- +Mon Sep 28 18:42:15 UTC 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 10:47:20 UTC 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 9 15:24:35 UTC 2014 - peter.trommler@ohm-hochschule.de + +- drop aeson-disable-TH.patch +* Template Haskell (TH) now available on all supprted archs + +------------------------------------------------------------------- +Sat Oct 18 14:50:27 UTC 2014 - dvaleev@suse.com + +- disable TH module on arch's without ghci + aeson-disable-TH.patch + +------------------------------------------------------------------- +Mon Oct 28 19:50:03 UTC 2013 - sbahling@suse.com + +- Remove redundant Requires for ghc-compiler + +------------------------------------------------------------------- +Mon Oct 7 13:35:59 UTC 2013 - sbahling@suse.com + +- Initial package - version 0.6.2.0 diff --git a/ghc-aeson.spec b/ghc-aeson.spec new file mode 100644 index 0000000..b170a01 --- /dev/null +++ b/ghc-aeson.spec @@ -0,0 +1,190 @@ +# +# spec file for package ghc-aeson +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global pkg_name aeson +%global pkgver %{pkg_name}-%{version} +%bcond_with tests +Name: ghc-%{pkg_name} +Version: 2.2.3.0 +Release: 0 +Summary: Fast JSON parsing and encoding +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/%{pkg_name} +Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-OneTuple-devel +BuildRequires: ghc-OneTuple-prof +BuildRequires: ghc-QuickCheck-devel +BuildRequires: ghc-QuickCheck-prof +BuildRequires: ghc-base-devel +BuildRequires: ghc-base-prof +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-character-ps-devel +BuildRequires: ghc-character-ps-prof +BuildRequires: ghc-containers-devel +BuildRequires: ghc-containers-prof +BuildRequires: ghc-data-fix-devel +BuildRequires: ghc-data-fix-prof +BuildRequires: ghc-deepseq-devel +BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-dlist-devel +BuildRequires: ghc-dlist-prof +BuildRequires: ghc-exceptions-devel +BuildRequires: ghc-exceptions-prof +BuildRequires: ghc-generically-devel +BuildRequires: ghc-generically-prof +BuildRequires: ghc-hashable-devel +BuildRequires: ghc-hashable-prof +BuildRequires: ghc-indexed-traversable-devel +BuildRequires: ghc-indexed-traversable-prof +BuildRequires: ghc-integer-conversion-devel +BuildRequires: ghc-integer-conversion-prof +BuildRequires: ghc-integer-logarithms-devel +BuildRequires: ghc-integer-logarithms-prof +BuildRequires: ghc-network-uri-devel +BuildRequires: ghc-network-uri-prof +BuildRequires: ghc-primitive-devel +BuildRequires: ghc-primitive-prof +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-scientific-devel +BuildRequires: ghc-scientific-prof +BuildRequires: ghc-semialign-devel +BuildRequires: ghc-semialign-prof +BuildRequires: ghc-strict-devel +BuildRequires: ghc-strict-prof +BuildRequires: ghc-tagged-devel +BuildRequires: ghc-tagged-prof +BuildRequires: ghc-template-haskell-devel +BuildRequires: ghc-template-haskell-prof +BuildRequires: ghc-text-devel +BuildRequires: ghc-text-iso8601-devel +BuildRequires: ghc-text-iso8601-prof +BuildRequires: ghc-text-prof +BuildRequires: ghc-text-short-devel +BuildRequires: ghc-text-short-prof +BuildRequires: ghc-th-abstraction-devel +BuildRequires: ghc-th-abstraction-prof +BuildRequires: ghc-these-devel +BuildRequires: ghc-these-prof +BuildRequires: ghc-time-compat-devel +BuildRequires: ghc-time-compat-prof +BuildRequires: ghc-time-devel +BuildRequires: ghc-time-prof +BuildRequires: ghc-unordered-containers-devel +BuildRequires: ghc-unordered-containers-prof +BuildRequires: ghc-uuid-types-devel +BuildRequires: ghc-uuid-types-prof +BuildRequires: ghc-vector-devel +BuildRequires: ghc-vector-prof +BuildRequires: ghc-witherable-devel +BuildRequires: ghc-witherable-prof +ExcludeArch: %{ix86} +%if %{with tests} +BuildRequires: ghc-Diff-devel +BuildRequires: ghc-Diff-prof +BuildRequires: ghc-base-compat-devel +BuildRequires: ghc-base-compat-prof +BuildRequires: ghc-base-orphans-devel +BuildRequires: ghc-base-orphans-prof +BuildRequires: ghc-base16-bytestring-devel +BuildRequires: ghc-base16-bytestring-prof +BuildRequires: ghc-directory-devel +BuildRequires: ghc-directory-prof +BuildRequires: ghc-filepath-devel +BuildRequires: ghc-filepath-prof +BuildRequires: ghc-generic-deriving-devel +BuildRequires: ghc-generic-deriving-prof +BuildRequires: ghc-quickcheck-instances-devel +BuildRequires: ghc-quickcheck-instances-prof +BuildRequires: ghc-tasty-devel +BuildRequires: ghc-tasty-golden-devel +BuildRequires: ghc-tasty-golden-prof +BuildRequires: ghc-tasty-hunit-devel +BuildRequires: ghc-tasty-hunit-prof +BuildRequires: ghc-tasty-prof +BuildRequires: ghc-tasty-quickcheck-devel +BuildRequires: ghc-tasty-quickcheck-prof +%endif + +%description +A JSON parsing and encoding library optimized for ease of use and high +performance. + +To get started, see the documentation for the 'Data.Aeson' module below. + +(A note on naming: in Greek mythology, Aeson was the father of Jason.). + +%package devel +Summary: Haskell %{pkg_name} library development files +Requires: %{name} = %{version}-%{release} +Requires: ghc-compiler = %{ghc_version} +Requires(post): ghc-compiler = %{ghc_version} +Requires(postun): ghc-compiler = %{ghc_version} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + +%package -n ghc-%{pkg_name}-doc +Summary: Haskell %{pkg_name} library documentation +Requires: ghc-filesystem +BuildArch: noarch + +%description -n ghc-%{pkg_name}-doc +This package provides the Haskell %{pkg_name} library documentation. + +%package -n ghc-%{pkg_name}-prof +Summary: Haskell %{pkg_name} profiling library +Requires: ghc-%{pkg_name}-devel = %{version}-%{release} +Supplements: (ghc-%{pkg_name}-devel and ghc-prof) + +%description -n ghc-%{pkg_name}-prof +This package provides the Haskell %{pkg_name} profiling library. + +%prep +%autosetup -n %{pkg_name}-%{version} +cp -p %{SOURCE1} %{pkg_name}.cabal + +%build +%ghc_lib_build + +%install +%ghc_lib_install + +%check +%cabal_test + +%post devel +%ghc_pkg_recache + +%postun devel +%ghc_pkg_recache + +%files -f %{name}.files +%license LICENSE + +%files devel -f %{name}-devel.files +%doc README.markdown changelog.md + +%files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files +%license LICENSE + +%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files + +%changelog