From d50aae87a58794bc1fc66c7a60acb0c34b5e70c7 Mon Sep 17 00:00:00 2001 From: jkachmar Date: Fri, 18 Feb 2022 00:31:12 -0500 Subject: [PATCH] Updates cabal freeze file #### TODO - [x] fix `hashable >= 1.3.1` serialization ordering issue [^1] - `test_graphql_mutations.py::TestGraphQLMutateEnums` was failing - [x] fix `unordered-containers` serialization ordering issue [^2] - `test_graphql_queries.py` was failing on Citus - [ ] verify that no new failures have been introduced - [ ] open issues to fix the above - identify test cases that "leak" implementation details by depending on `hashable` instance ordering - bump `hashable >= 1.3.1` and update test cases with new ordering OR modify them so that ordering is stable - bump `unordered-containers >= 0.2.15.0` and update test cases with new ordering OR modify them so that ordering is stable - one of the test cases was failing on string equality comparison for a generated Citus query - we probably don't want to _actually_ do this unless there are _very specific_ guarantees we want to make about generated query structure --- Just what it says on the tin. https://github.com/hasura/graphql-engine-mono/pull/3538 updated the freeze file a few weeks ago, but it looks like the index state hadn't been updated since December so a lot of stuff that had newer versions didn't get updated. --- EDIT: I should add, the motivation for doing this in the first place is that `hspec > 2.8.4` now supports specifying filtering spec trees based on patterns provided by the `HSPEC_MATCH` environment variable. For example, one could have a script that executes the following: ``` HSPEC_MATCH="PostgreSQL" \ ghcid \ --command \ 'cabal repl graphql-engine:test:tests-hspec \ --repl-option -O0 \ --repl-option -fobject-code' \ --test "main" ``` ...which will loop on typechecking the `tests-hspec` component, and then as soon as it passes (i.e. no warnings or errors) will run _only_ the `PostgreSQL` sub-components. [^1]: `hashable >= 1.3.1.0` [updated its default salts](https://github.com/haskell-unordered-containers/hashable/pull/196), which [broke serialization ordering](https://github.com/haskell/aeson/issues/837) [^2]: `unordered-containers >= 0.2.16.0` [introduced changes to some of its internal functions](https://hackage.haskell.org/package/unordered-containers-0.2.16.0/changelog) which seem like they could have affected serialization stability PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3672 GitOrigin-RevId: bbd1d48c73db4021913f0b5345b7315a8d6525d3 --- cabal.project.freeze | 342 +++++++++--------- .../src-lib/Data/HashMap/Strict/Extended.hs | 21 +- .../Hasura/Backends/MySQL/Types/Instances.hs | 5 - server/src-lib/Hasura/Base/Instances.hs | 24 +- .../Hasura/GraphQL/Execute/RemoteJoin/Join.hs | 1 - server/src-lib/Hasura/Prelude.hs | 14 +- 6 files changed, 180 insertions(+), 227 deletions(-) diff --git a/cabal.project.freeze b/cabal.project.freeze index e08308533d8..d864e9a1d64 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -1,27 +1,27 @@ active-repositories: hackage.haskell.org:merge -constraints: any.Cabal ==3.2.0.0, +constraints: any.Cabal ==3.2.1.0, Cabal -bundled-binary-generic, - any.HTTP ==4000.3.15, + any.HTTP ==4000.3.16, HTTP -conduit10 -mtl1 +network-uri -warn-as-error -warp-tests, any.HUnit ==1.6.2.0, + any.OneTuple ==0.3, any.Only ==0.1, any.QuickCheck ==2.14.2, - QuickCheck +old-random +templatehaskell, + QuickCheck -old-random +templatehaskell, any.RSA ==2.4.1, any.SHA ==1.6.4.4, SHA -exe, any.Spock-core ==0.14.0.0, - any.StateVar ==1.2.1, + any.StateVar ==1.2.2, any.adjunctions ==4.4, - any.aeson ==1.5.5.1, - aeson -bytestring-builder -cffi -developer -fast, + any.aeson ==1.5.6.0, + aeson -bytestring-builder +cffi -developer -fast, any.aeson-casing ==0.2.0.0, - any.aeson-pretty ==0.8.8, + any.aeson-pretty ==0.8.9, aeson-pretty -lib-only, - any.aeson-qq ==0.8.3, - any.alex ==3.2.6, - alex +small_base, - any.ansi-terminal ==0.11, + any.aeson-qq ==0.8.4, + any.alex ==3.2.7.1, + any.ansi-terminal ==0.11.1, ansi-terminal -example, any.ansi-wl-pprint ==0.6.9, ansi-wl-pprint -example, @@ -31,64 +31,64 @@ constraints: any.Cabal ==3.2.0.0, any.asn1-parse ==0.9.5, any.asn1-types ==0.3.4, any.assoc ==1.0.2, - any.async ==2.2.2, + any.async ==2.2.4, async -bench, any.atomic-primops ==0.8.4, atomic-primops -debug, - any.attoparsec ==0.13.2.5, + any.attoparsec ==0.14.4, attoparsec -developer, - any.attoparsec-iso8601 ==1.0.2.0, + any.attoparsec-iso8601 ==1.0.2.1, attoparsec-iso8601 -developer -fast, - any.authenticate-oauth ==1.6.0.1, + any.authenticate-oauth ==1.7, any.auto-update ==0.1.6, + any.barbies ==2.0.3.1, any.base ==4.14.3.0, - any.base-compat ==0.11.2, - any.base-compat-batteries ==0.11.2, - any.base-orphans ==0.8.4, - any.base-prelude ==1.4, - any.base16-bytestring ==1.0.1.0, - any.base64-bytestring ==1.2.0.1, - any.basement ==0.0.11, - any.bifunctors ==5.5.10, + any.base-compat ==0.12.1, + any.base-compat-batteries ==0.12.1, + any.base-orphans ==0.8.6, + any.base16-bytestring ==1.0.2.0, + any.base64-bytestring ==1.2.1.0, + any.basement ==0.0.12, + any.bifunctors ==5.5.11, bifunctors +semigroups +tagged, any.binary ==0.8.8.0, - any.binary-parser ==0.5.6, - any.blaze-builder ==0.4.2.1, + any.binary-parser ==0.5.7.1, + any.blaze-builder ==0.4.2.2, any.blaze-html ==0.9.1.2, - any.blaze-markup ==0.8.2.7, - any.blaze-textual ==0.2.1.0, + any.blaze-markup ==0.8.2.8, + any.blaze-textual ==0.2.2.1, blaze-textual -developer -integer-simple +native, any.bsb-http-chunked ==0.0.0.4, any.byteorder ==1.0.4, any.bytestring ==0.10.12.0, any.bytestring-builder ==0.10.8.2.0, bytestring-builder +bytestring_has_builder, - any.bytestring-lexing ==0.5.0.2, - any.bytestring-strict-builder ==0.4.5.3, - any.cabal-doctest ==1.0.8, - any.call-stack ==0.3.0, + any.bytestring-lexing ==0.5.0.8, + any.bytestring-strict-builder ==0.4.5.5, + any.cabal-doctest ==1.0.9, + any.call-stack ==0.4.0, any.case-insensitive ==1.2.1.0, - any.cereal ==0.5.8.1, + any.cereal ==0.5.8.2, cereal -bytestring-builder, - any.charset ==0.3.7.1, + any.charset ==0.3.9, any.ci-info ==0.1.0.0, - any.clock ==0.8.2, + any.clock ==0.8.3, clock -llvm, - any.cmdargs ==0.10.20, + any.cmdargs ==0.10.21, cmdargs +quotation -testprog, - any.colour ==2.3.5, + any.colour ==2.3.6, any.comonad ==5.0.8, comonad +containers +distributive +indexed-traversable, any.concise ==0.1.0.1, - any.concurrent-output ==1.10.12, - any.conduit ==1.3.4, + any.concurrent-output ==1.10.15, + any.conduit ==1.3.4.2, any.conduit-extra ==1.3.5, any.connection ==0.3.1, - any.constraints ==0.12, - any.constraints-extras ==0.3.0.2, + any.constraints ==0.13.3, + any.constraints-extras ==0.3.2.1, constraints-extras +build-readme, any.containers ==0.6.5.1, - any.contravariant ==1.5.3, + any.contravariant ==1.5.5, contravariant +semigroups +statevar +tagged, any.cookie ==0.4.5, any.cron ==0.7.0, @@ -96,9 +96,9 @@ constraints: any.Cabal ==3.2.0.0, any.crypto-api ==0.13.3, crypto-api -all_cpolys, any.crypto-pubkey-types ==0.4.3, - any.cryptohash-md5 ==0.11.100.1, - any.cryptohash-sha1 ==0.11.100.1, - any.cryptonite ==0.28, + any.cryptohash-md5 ==0.11.101.0, + any.cryptohash-sha1 ==0.11.101.0, + any.cryptonite ==0.29, cryptonite -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq -support_pclmuldq +support_rdrand -support_sse +use_target_attributes, any.data-bword ==0.1.0.1, any.data-checked ==0.3, @@ -107,14 +107,14 @@ constraints: any.Cabal ==3.2.0.0, any.data-default-instances-containers ==0.0.1, any.data-default-instances-dlist ==0.0.1, any.data-default-instances-old-locale ==0.0.1, - any.data-dword ==0.3.2, + any.data-dword ==0.3.2.1, any.data-endian ==0.1.1, - any.data-fix ==0.3.1, + any.data-fix ==0.3.2, any.data-has ==0.4.0.0, - any.data-serializer ==0.3.4.1, + any.data-serializer ==0.3.5, any.data-textual ==0.3.0.3, any.deepseq ==1.4.4.0, - any.deferred-folds ==0.9.15, + any.deferred-folds ==0.9.18.1, any.dependent-map ==0.4.0.0, any.dependent-sum ==0.7.1.0, any.directory ==1.3.6.0, @@ -122,7 +122,7 @@ constraints: any.Cabal ==3.2.0.0, distributive +semigroups +tagged, any.dlist ==1.0, dlist -werror, - any.double-conversion ==2.0.2.0, + any.double-conversion ==2.0.4.1, double-conversion -developer, any.easy-file ==0.2.2, any.either ==5.0.1.1, @@ -130,27 +130,27 @@ constraints: any.Cabal ==3.2.0.0, any.ekg-json ==0.1.0.7, any.ekg-statsd ==0.2.5.0, any.ekg-wai ==0.1.0.3, - any.entropy ==0.4.1.6, + any.entropy ==0.4.1.7, entropy -halvm, any.erf ==2.0.0.0, any.errors ==2.3.0, any.exceptions ==0.10.4, any.fail ==4.9.0.0, - any.fast-logger ==3.0.2, - any.file-embed ==0.0.13.0, + any.fast-logger ==3.1.1, + any.file-embed ==0.0.15.0, any.filepath ==1.4.2.1, any.flush-queue ==1.0.0, - any.focus ==1.0.2, - any.foldl ==1.4.10, - any.formatting ==7.1.1, - any.free ==5.1.6, + any.focus ==1.0.3, + any.foldl ==1.4.12, + any.formatting ==7.1.3, + any.free ==5.1.7, any.generic-monoid ==0.1.0.1, - any.generics-sop ==0.5.1.1, + any.generics-sop ==0.5.1.2, any.ghc ==8.10.7, any.ghc-boot ==8.10.7, any.ghc-boot-th ==8.10.7, any.ghc-heap ==8.10.7, - any.ghc-heap-view ==0.6.2, + any.ghc-heap-view ==0.6.3, ghc-heap-view -prim-supports-any, any.ghc-prim ==0.6.1, any.ghci ==8.10.7, @@ -160,22 +160,21 @@ constraints: any.Cabal ==3.2.0.0, any.hashable ==1.3.0.0, hashable -examples +integer-gmp +sse2 -sse41, any.hashable-time ==0.2.1, - hashable-time -old-locale, - any.hashtables ==1.2.4.1, + any.hashtables ==1.2.4.2, hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks, any.haskell-lexer ==1.1, any.haskell-src-exts ==1.23.1, - any.haskell-src-meta ==0.8.7, - any.hedgehog ==1.0.4, - any.hedis ==0.14.2, + any.haskell-src-meta ==0.8.9, + any.hedgehog ==1.1.1, + any.hedis ==0.15.1, hedis -dev, any.hourglass ==0.2.12, any.hpc ==0.6.1.0, - any.hsc2hs ==0.68.7, + any.hsc2hs ==0.68.8, hsc2hs -in-ghc-tree, - any.hspec ==2.8.3, - any.hspec-core ==2.8.3, - any.hspec-discover ==2.8.3, + any.hspec ==2.9.4, + any.hspec-core ==2.9.4, + any.hspec-discover ==2.9.4, any.hspec-expectations ==0.8.2, any.hspec-expectations-lifted ==0.10.0, any.hspec-hedgehog ==0.0.1.2, @@ -183,87 +182,85 @@ constraints: any.Cabal ==3.2.0.0, any.hspec-wai-json ==0.11.0, any.http-api-data ==0.4.3, http-api-data -use-text-show, - any.http-client ==0.7.5, + any.http-client ==0.7.11, http-client +network-uri, - any.http-client-tls ==0.3.5.3, - any.http-conduit ==2.3.7.4, + any.http-client-tls ==0.3.6.1, + any.http-conduit ==2.3.8, http-conduit +aeson, - any.http-date ==0.0.10, + any.http-date ==0.0.11, any.http-media ==0.8.0.0, any.http-types ==0.12.3, - any.http2 ==2.0.5, - http2 -devel, - any.hvect ==0.4.0.0, + any.http2 ==3.0.3, + http2 -devel -doc -h2spec, + any.hvect ==0.4.0.1, any.immortal ==0.2.2.1, - any.indexed-profunctors ==0.1, - any.indexed-traversable ==0.1.1, - any.insert-ordered-containers ==0.2.3.1, - any.inspection-testing ==0.4.5.0, + any.indexed-profunctors ==0.1.1, + any.indexed-traversable ==0.1.2, + any.indexed-traversable-instances ==0.1.1, + any.insert-ordered-containers ==0.2.5.1, + any.inspection-testing ==0.4.6.0, inspection-testing -more-tests -old-text-tests, any.integer-gmp ==1.0.3.0, any.integer-logarithms ==1.0.3.1, integer-logarithms -check-bounds +integer-gmp, - any.invariant ==0.5.4, - any.iproute ==1.7.10, - any.jose ==0.8.4, + any.invariant ==0.5.5, + any.iproute ==1.7.12, + any.jose ==0.8.5.1, jose -demos, - any.kan-extensions ==5.2.1, + any.kan-extensions ==5.2.3, any.keys ==3.12.3, any.kriti-lang ==0.3.0, - any.lens ==4.19.2, - lens -benchmark-uniplate -dump-splices +inlining -j -old-inline-pragmas -safe +test-doctests +test-hunit +test-properties +test-templates +trustworthy, - any.lens-aeson ==1.1, - lens-aeson +test-doctests, + any.lens ==5.1, + lens -benchmark-uniplate -dump-splices +inlining -j +test-hunit +test-properties +test-templates +trustworthy, + any.lens-aeson ==1.1.3, any.libyaml ==0.1.2, libyaml -no-unicode -system-libyaml, - any.lifted-async ==0.10.1.2, + any.lifted-async ==0.10.2.2, any.lifted-base ==0.2.3.12, - any.list-t ==1.0.4, - any.loch-th ==0.2.2, - any.math-functions ==0.3.4.1, - math-functions +system-erf +system-expm1, - any.megaparsec ==9.0.1, + any.list-t ==1.0.5.1, + any.logict ==0.7.0.3, + any.megaparsec ==9.2.0, megaparsec -dev, - any.memory ==0.15.0, + any.memory ==0.16.0, memory +support_basement +support_bytestring +support_deepseq +support_foundation, any.mime-types ==0.1.0.9, - any.mmorph ==1.1.4, - any.monad-control ==1.0.2.3, + any.mmorph ==1.2.0, + any.monad-control ==1.0.3.1, any.monad-logger ==0.3.36, monad-logger +template_haskell, any.monad-loops ==0.4.3, monad-loops +base4, any.monad-time ==0.3.1.0, any.monad-validate ==1.2.0.0, - any.mono-traversable ==1.0.15.1, + any.mono-traversable ==1.0.15.3, any.mtl ==2.2.2, any.mtl-compat ==0.2.2, mtl-compat -two-point-one -two-point-two, - any.mustache ==2.3.1, - any.mwc-random ==0.14.0.0, - any.mysql ==0.2.0.1, + any.mustache ==2.4.0, + any.mysql ==0.2.1, mysql -developer, - any.mysql-simple ==0.4.6, + any.mysql-simple ==0.4.7.1, mysql-simple -developer, any.natural-transformation ==0.4, - any.network ==3.1.2.5, + any.network ==3.1.2.7, network -devel, any.network-byte-order ==0.1.6, - any.network-info ==0.2.0.10, + any.network-info ==0.2.1, any.network-ip ==0.3.0.3, any.network-uri ==2.6.4.1, any.odbc ==0.2.6, any.old-locale ==1.0.0.7, any.old-time ==1.1.0.3, - any.openapi3 ==3.1.0, - any.optics-core ==0.3.0.1, - any.optics-extra ==0.3, - any.optics-th ==0.3.0.2, - any.optparse-applicative ==0.16.1.0, + any.openapi3 ==3.2.1, + any.optics-core ==0.4, + optics-core -explicit-generic-labels, + any.optics-extra ==0.4, + any.optics-th ==0.4, + any.optparse-applicative ==0.17.0.0, optparse-applicative +process, - any.optparse-generic ==1.4.4, + any.optparse-generic ==1.4.7, any.parallel ==3.2.2.0, - any.parsec ==3.1.14.0, + any.parsec ==3.1.14.0 || ==3.1.15.0, any.parser-combinators ==1.3.0, parser-combinators -dev, any.parsers ==0.12.10, @@ -272,12 +269,11 @@ constraints: any.Cabal ==3.2.0.0, pcre-light -old_base -use-pkg-config, any.pem ==0.2.4, any.pg-client ==0.1.0, - any.placeholders ==0.1, - any.pointed ==5.0.2, + any.pointed ==5.0.3, pointed +comonad +containers +kan-extensions +semigroupoids +semigroups +stm +tagged +transformers +unordered-containers, any.port-utils ==0.2.1.0, any.postgres-options ==0.2.0.0, - any.postgresql-binary ==0.12.3.3, + any.postgresql-binary ==0.12.4.1, any.postgresql-libpq ==0.9.4.3, postgresql-libpq -use-pkg-config, any.postgresql-simple ==0.6.4, @@ -285,60 +281,60 @@ constraints: any.Cabal ==3.2.0.0, any.pretty-show ==1.10, any.pretty-simple ==4.0.0.0, pretty-simple -buildexample -buildexe, - any.prettyprinter ==1.7.0, - prettyprinter -buildreadme, - any.prettyprinter-ansi-terminal ==1.1.2, - any.primitive ==0.7.1.0, - any.primitive-extras ==0.8, - any.primitive-unlifted ==0.1.3.0, + any.prettyprinter ==1.7.1, + prettyprinter -buildreadme +text, + any.prettyprinter-ansi-terminal ==1.1.3, + any.primitive ==0.7.3.0, + any.primitive-extras ==0.10.1.4, + any.primitive-unlifted ==0.1.3.1, any.process ==1.6.13.2, - any.profunctors ==5.6.1, - any.psqueues ==0.2.7.2, - any.quickcheck-instances ==0.3.25.2, + any.profunctors ==5.6.2, + any.psqueues ==0.2.7.3, + any.quickcheck-instances ==0.3.27, quickcheck-instances -bytestring-builder, any.quickcheck-io ==0.2.0, - any.random ==1.1, + any.random ==1.2.1, any.reflection ==2.1.6, reflection -slow +template-haskell, - any.regex-base ==0.94.0.0, - any.regex-tdfa ==1.3.1.0, + any.regex-base ==0.94.0.2, + any.regex-tdfa ==1.3.1.1, regex-tdfa -force-o2, any.reroute ==0.6.0.0, any.resource-pool ==0.2.3.2, resource-pool -developer, - any.resourcet ==1.2.4.2, - any.retry ==0.8.1.2, + any.resourcet ==1.2.4.3, + any.retry ==0.9.1.0, retry -lib-werror, any.rts ==1.0.1, any.safe ==0.3.19, any.safe-exceptions ==0.1.7.2, any.scanner ==0.3.1, - any.scientific ==0.3.6.2, + any.scientific ==0.3.7.0, scientific -bytestring-builder -integer-simple, - any.semialign ==1.1.0.1, + any.semialign ==1.2.0.1, semialign +semigroupoids, - any.semigroupoids ==5.3.5, + any.semigroupoids ==5.3.7, semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers, - any.semigroups ==0.19.1, + any.semigroups ==0.20, semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers, any.semver ==0.4.0.1, any.setenv ==0.1.1.3, - any.shakespeare ==2.0.25, + any.shakespeare ==2.0.25.1, shakespeare -test_coffee -test_export -test_roy, any.simple-sendfile ==0.2.30, simple-sendfile +allow-bsd, any.socks ==0.6.1, - any.some ==1.0.1, + any.some ==1.0.3, some +newtype-unsafe, - any.sop-core ==0.5.0.1, + any.sop-core ==0.5.0.2, any.split ==0.2.3.4, - any.splitmix ==0.1.0.3, + any.splitmix ==0.1.0.4, splitmix -optimised-mixer, any.stm ==2.5.0.1, - any.stm-chans ==3.0.0.4, + any.stm-chans ==3.0.0.6, any.stm-containers ==1.2, - any.stm-hamt ==1.2.0.4, - any.streaming-commons ==0.2.2.1, + any.stm-hamt ==1.2.0.7, + any.streaming-commons ==0.2.2.4, streaming-commons -use-bytestring-builder, any.strict ==0.4.0.1, strict +assoc, @@ -347,30 +343,30 @@ constraints: any.Cabal ==3.2.0.0, any.system-filepath ==0.4.14, any.tagged ==0.8.6.1, tagged +deepseq +transformers, - any.tasty ==1.4.1, + any.tasty ==1.4.2.1, tasty +clock +unix, - any.tasty-golden ==2.3.4, + any.tasty-golden ==2.3.5, tasty-golden -build-example, any.template-haskell ==2.16.0.0, any.temporary ==1.3, any.terminal-size ==0.3.2.1, any.terminfo ==0.4.1.4, - any.text ==1.2.3.2, + any.text ==1.2.3.2 || ==1.2.4.1, text -developer -integer-simple, - any.text-builder ==0.6.6.1, + any.text-builder ==0.6.6.3, any.text-conversions ==0.3.1, any.text-latin1 ==0.3.1, - any.text-printer ==0.5.0.1, - any.text-short ==0.1.3, + any.text-printer ==0.5.0.2, + any.text-short ==0.1.5, text-short -asserts, any.tf-random ==0.5, - any.th-abstraction ==0.4.2.0, - any.th-compat ==0.1.1, - any.th-expand-syns ==0.4.8.0, + any.th-abstraction ==0.4.3.0, + any.th-compat ==0.1.3, + any.th-expand-syns ==0.4.9.0, any.th-lift ==0.8.2, - any.th-lift-instances ==0.1.18, - any.th-orphans ==0.13.11, - any.th-reify-many ==0.1.9, + any.th-lift-instances ==0.1.19, + any.th-orphans ==0.13.12, + any.th-reify-many ==0.1.10, any.these ==1.1.1.1, these +assoc, any.time ==1.9.3, @@ -379,24 +375,25 @@ constraints: any.Cabal ==3.2.0.0, any.time-locale-compat ==0.1.1.5, time-locale-compat -old-locale, any.time-manager ==0.0.0, - any.tls ==1.5.5, + any.tls ==1.5.7, tls +compat -hans +network, any.tmp-postgres ==1.34.1.0, any.transformers ==0.5.6.2, - any.transformers-base ==0.4.5.2, + any.transformers-base ==0.4.6, transformers-base +orphaninstances, - any.transformers-compat ==0.6.6, + any.transformers-compat ==0.7.1, transformers-compat -five +five-three -four +generic-deriving +mtl -three -two, any.type-equality ==1, any.type-hint ==0.1, - any.typed-process ==0.2.6.0, + any.typed-process ==0.2.8.0, any.unbounded-delays ==0.1.1.1, any.unix ==2.7.2.2, - any.unix-compat ==0.5.3, + any.unix-compat ==0.5.4, unix-compat -old-time, any.unix-time ==0.4.7, + any.unliftio ==0.2.21.0, any.unliftio-core ==0.2.0.1, - any.unordered-containers ==0.2.13.0, + any.unordered-containers ==0.2.15.0, unordered-containers -debug, any.uri-bytestring ==0.3.3.1, uri-bytestring -lib-werror, @@ -404,12 +401,12 @@ constraints: any.Cabal ==3.2.0.0, uri-encode +network-uri -tools, any.url ==2.1.3, any.utf8-string ==1.0.2, - any.uuid ==1.3.13, - any.uuid-types ==1.0.3, - any.validation ==1.1, - any.vault ==0.3.1.4, + any.uuid ==1.3.15, + any.uuid-types ==1.0.5, + any.validation ==1.1.2, + any.vault ==0.3.1.5, vault +useghc, - any.vector ==0.12.2.0, + any.vector ==0.12.3.1, vector +boundschecks -internalchecks -unsafechecks -wall, any.vector-algorithms ==0.8.0.4, vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks, @@ -420,26 +417,27 @@ constraints: any.Cabal ==3.2.0.0, any.wai ==3.2.3, any.wai-app-static ==3.1.7.2, wai-app-static -print, - any.wai-extra ==3.1.6, + any.wai-extra ==3.1.8, wai-extra -build-example, - any.wai-logger ==2.3.6, - any.warp ==3.3.14, + any.wai-logger ==2.4.0, + any.warp ==3.3.19, warp +allow-sendfilefd -network-bytestring -warp-debug, any.wcwidth ==0.0.2, wcwidth -cli +split-base, - any.websockets ==0.12.7.2, + any.websockets ==0.12.7.3, websockets -example, - any.witch ==0.3.4.1, + any.witch ==1.0.0.1, + witch -pedantic, any.wl-pprint-annotated ==0.1.0.1, any.word8 ==0.1.3, any.wreq ==0.5.3.3, wreq -aws -developer +doctest -httpbin, - any.x509 ==1.7.5, - any.x509-store ==1.6.7, - any.x509-system ==1.6.6, - any.x509-validation ==1.6.11, - any.yaml ==0.11.5.0, + any.x509 ==1.7.6, + any.x509-store ==1.6.9, + any.x509-system ==1.6.7, + any.x509-validation ==1.6.12, + any.yaml ==0.11.7.0, yaml +no-examples +no-exe, - any.zlib ==0.6.2.2, + any.zlib ==0.6.2.3, zlib -bundled-c-zlib -non-blocking-ffi -pkg-config -index-state: hackage.haskell.org 2021-12-09T17:38:20Z +index-state: hackage.haskell.org 2022-02-16T22:54:12Z diff --git a/server/src-lib/Data/HashMap/Strict/Extended.hs b/server/src-lib/Data/HashMap/Strict/Extended.hs index e2d2c19d02f..db3b5b44660 100644 --- a/server/src-lib/Data/HashMap/Strict/Extended.hs +++ b/server/src-lib/Data/HashMap/Strict/Extended.hs @@ -7,7 +7,6 @@ module Data.HashMap.Strict.Extended groupOnNE, differenceOn, lpadZip, - mapKeys, unionsWith, isInverseOf, ) @@ -15,11 +14,11 @@ where import Data.Align qualified as A import Data.Foldable qualified as F -import Data.Function +import Data.Function (on) import Data.HashMap.Strict as M -import Data.Hashable +import Data.Hashable (Hashable) import Data.List.NonEmpty (NonEmpty (..)) -import Data.These +import Data.These (These (That, These, This)) import Prelude catMaybes :: HashMap k (Maybe v) -> HashMap k v @@ -65,20 +64,6 @@ lpadZip left = That b -> Just (Nothing, b) These a b -> Just (Just a, b) --- | @'mapKeys' f s@ is the map obtained by applying @f@ to each key of @s@. --- --- The size of the result may be smaller if @f@ maps two or more distinct --- keys to the same new key. In this case the value at the greatest of the --- original keys is retained. --- --- > mapKeys (+ 1) (fromList [(5,"a"), (3,"b")]) == fromList [(4, "b"), (6, "a")] --- > mapKeys (\ _ -> 1) (fromList [(1,"b"), (2,"a"), (3,"d"), (4,"c")]) == singleton 1 "c" --- > mapKeys (\ _ -> 3) (fromList [(1,"b"), (2,"a"), (3,"d"), (4,"c")]) == singleton 3 "c" --- --- copied from https://hackage.haskell.org/package/containers-0.6.4.1/docs/src/Data.Map.Internal.html#mapKeys -mapKeys :: (Ord k2, Hashable k2) => (k1 -> k2) -> HashMap k1 a -> HashMap k2 a -mapKeys f = fromList . foldrWithKey (\k x xs -> (f k, x) : xs) [] - -- | The union of a list of maps, with a combining operation: -- (@'unionsWith' f == 'Prelude.foldl' ('unionWith' f) 'empty'@). -- diff --git a/server/src-lib/Hasura/Backends/MySQL/Types/Instances.hs b/server/src-lib/Hasura/Backends/MySQL/Types/Instances.hs index 1ad17dcdf53..3b2878a7029 100644 --- a/server/src-lib/Hasura/Backends/MySQL/Types/Instances.hs +++ b/server/src-lib/Hasura/Backends/MySQL/Types/Instances.hs @@ -10,7 +10,6 @@ import Data.Aeson.Casing qualified as J import Data.Aeson.Extended import Data.Aeson.TH qualified as J import Data.Aeson.Types -import Data.HashSet.InsOrd (InsOrdHashSet, toHashSet) import Data.Pool import Data.Text.Extended (ToTxt (..)) import Database.MySQL.Base (Connection) @@ -21,10 +20,6 @@ import Hasura.Prelude import Language.Haskell.TH import Language.Haskell.TH.Syntax --- Orphan instance, InsOrdHashSet doesn't have it. -instance NFData a => NFData (InsOrdHashSet a) where - rnf = rnf . toHashSet - $( fmap concat $ for [''Aliased] \name -> diff --git a/server/src-lib/Hasura/Base/Instances.hs b/server/src-lib/Hasura/Base/Instances.hs index 71f7e67ea37..a70e8b32eca 100644 --- a/server/src-lib/Hasura/Base/Instances.hs +++ b/server/src-lib/Hasura/Base/Instances.hs @@ -5,15 +5,11 @@ module Hasura.Base.Instances () where import Data.Aeson qualified as J -import Data.Functor.Product -import Data.GADT.Compare +import Data.Functor.Product (Product (Pair)) +import Data.GADT.Compare (GCompare (gcompare), GOrdering (GEQ, GGT, GLT)) import Data.HashMap.Strict qualified as M import Data.HashSet qualified as S -import Data.Hashable -import Data.Text -import Data.Time.Calendar -import Data.Time.Clock -import Data.Time.LocalTime +import Data.Text qualified as T import Data.URL.Template qualified as UT import Database.PG.Query qualified as Q import Hasura.Prelude @@ -23,18 +19,6 @@ import System.Cron.Types qualified as C import Text.Regex.TDFA qualified as TDFA import Text.Regex.TDFA.Pattern qualified as TDFA --------------------------------------------------------------------------------- --- Hashable - -instance Hashable UTCTime where - hashWithSalt i = hashWithSalt i . show - -instance Hashable Day where - hashWithSalt i = hashWithSalt i . show - -instance Hashable TimeOfDay where - hashWithSalt i = hashWithSalt i . show - -------------------------------------------------------------------------------- -- Deepseq @@ -129,5 +113,5 @@ instance Q.FromCol C.CronSchedule where Left err -> Left err Right dbCron -> case C.parseCronSchedule dbCron of - Left err' -> Left $ "invalid cron schedule " <> pack err' + Left err' -> Left $ "invalid cron schedule " <> T.pack err' Right cron -> Right cron diff --git a/server/src-lib/Hasura/GraphQL/Execute/RemoteJoin/Join.hs b/server/src-lib/Hasura/GraphQL/Execute/RemoteJoin/Join.hs index 3ca33496e86..a92758df0ea 100644 --- a/server/src-lib/Hasura/GraphQL/Execute/RemoteJoin/Join.hs +++ b/server/src-lib/Hasura/GraphQL/Execute/RemoteJoin/Join.hs @@ -6,7 +6,6 @@ where import Data.Aeson qualified as J import Data.Aeson.Ordered qualified as JO import Data.Environment qualified as Env -import Data.HashMap.Strict qualified as Map import Data.HashMap.Strict.Extended qualified as Map import Data.HashMap.Strict.InsOrd qualified as OMap import Data.HashSet qualified as HS diff --git a/server/src-lib/Hasura/Prelude.hs b/server/src-lib/Hasura/Prelude.hs index 9cfec347651..bf8dda1ca5b 100644 --- a/server/src-lib/Hasura/Prelude.hs +++ b/server/src-lib/Hasura/Prelude.hs @@ -34,7 +34,6 @@ module Hasura.Prelude -- * Map-related utilities mapFromL, - mapKeys, oMapFromL, -- * Measuring and working with moments and durations @@ -88,13 +87,13 @@ import Data.Foldable as M import Data.Function as M (on, (&)) import Data.Functor as M (($>), (<&>)) import Data.Functor.Const as M (Const) -import Data.HashMap.Strict as M (HashMap) +import Data.HashMap.Strict as M (HashMap, mapKeys) import Data.HashMap.Strict qualified as Map import Data.HashMap.Strict.InsOrd as M (InsOrdHashMap) import Data.HashMap.Strict.InsOrd qualified as OMap import Data.HashSet as M (HashSet) +import Data.Hashable (hashWithSalt) import Data.Hashable as M (Hashable) -import Data.Hashable qualified as H import Data.List as M ( find, findIndex, @@ -215,13 +214,6 @@ findWithIndex p l = do mapFromL :: (Eq k, Hashable k) => (a -> k) -> [a] -> Map.HashMap k a mapFromL f = Map.fromList . map (\v -> (f v, v)) --- | re-key a map. In the case that @f@ is not injective you may end up with a --- smaller map than what you started with. --- --- This may be a code smell. -mapKeys :: (Eq k2, Hashable k2) => (k1 -> k2) -> Map.HashMap k1 a -> Map.HashMap k2 a -mapKeys f = Map.fromList . map (first f) . Map.toList - oMapFromL :: (Eq k, Hashable k) => (a -> k) -> [a] -> InsOrdHashMap k a oMapFromL f = OMap.fromList . map (\v -> (f v, v)) @@ -280,7 +272,7 @@ hasuraJSON :: J.Options hasuraJSON = J.aesonPrefix J.snakeCase instance (Hashable a) => Hashable (Seq a) where - hashWithSalt i = H.hashWithSalt i . toList + hashWithSalt i = hashWithSalt i . toList -- | Given a structure with elements whose type is a 'Monoid', combine them via -- the monoid's @('<>')@ operator.