diff options
author | Dennis Gosnell <cdep.illabout@gmail.com> | 2021-08-17 10:02:08 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-17 10:02:08 +0900 |
commit | cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad (patch) | |
tree | 70c8ed0c77b9b340407701cfdac9a90893f44877 /pkgs | |
parent | 585575043f4251dd676fcd537042fc0aa75b1db5 (diff) | |
parent | da03c8aadd59a497bbe5435febfc1f9c13f0a59d (diff) | |
download | nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.tar nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.tar.gz nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.tar.bz2 nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.tar.lz nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.tar.xz nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.tar.zst nixpkgs-cc8c5ba53e35a2fb5b7f6dcf627194d4fb0d65ad.zip |
Merge pull request #133621 from Lassulus/hasura
hasura graphql-engine: 1.0.0 -> 2.0.5
Diffstat (limited to 'pkgs')
18 files changed, 288 insertions, 204 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 98482e03a87..e207413455e 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1293,23 +1293,19 @@ self: super: { # Fails with "supports custom headers" Spock-core = dontCheck super.Spock-core; - # Needed by Hasura 1.3.1 - dependent-map_0_2_4_0 = super.dependent-map_0_2_4_0.override { - dependent-sum = self.dependent-sum_0_4; - }; - - # Hasura 1.3.1 - # Because of ghc-heap-view, profiling needs to be disabled. - graphql-engine = disableLibraryProfiling( overrideCabal (super.graphql-engine.override { - immortal = self.immortal_0_2_2_1; - dependent-map = self.dependent-map_0_2_4_0; - dependent-sum = self.dependent-sum_0_4; + # hasura packages need some extra care + graphql-engine = overrideCabal (super.graphql-engine.override { + immortal = self.immortal_0_2_2_1; }) (drv: { - # version in cabal file is invalid - version = "1.3.1-beta1"; - # hasura needs VERSION env exported during build - preBuild = "export VERSION=1.3.1-beta1"; - })); + patches = [ ./patches/graphql-engine-mapkeys.patch ]; + doHaddock = false; + version = "2.0.5"; + }); + pg-client = overrideCabal super.pg-client (drv: { + librarySystemDepends = with pkgs; [ postgresql krb5.dev openssl.dev ]; + # wants a running DB to check against + doCheck = false; + }); # https://github.com/bos/statistics/issues/170 statistics = dontCheck super.statistics; diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix index 7e495474c84..a15a3f404fb 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix @@ -41,13 +41,6 @@ self: super: { unix = null; xhtml = null; - # Hasura 1.3.1 - # Because of ghc-heap-view, profiling needs to be disabled. - graphql-engine = overrideCabal (super.graphql-engine) (drv: { - # GHC 8.8.x needs a revert of https://github.com/hasura/graphql-engine/commit/a77bb0570f4210fb826985e17a84ddcc4c95d3ea - patches = [ ./patches/hasura-884-compat.patch ]; - }); - # GHC 8.8.x can build haddock version 2.23.* haddock = self.haddock_2_23_1; haddock-api = self.haddock-api_2_23_1; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index a6fafbe8a90..e7b0aeb2224 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -3324,7 +3324,6 @@ broken-packages: - oblivious-transfer - ocaml-export - Octree - - odbc - OddWord - oden-go-packages - oeis2 diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 1c96024fc0d..7a820af6b57 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -224,6 +224,9 @@ self: super: builtins.intersectAttrs super { # Test suite wants to connect to $DISPLAY. hsqml = dontCheck (addExtraLibraries (super.hsqml.override { qt5 = pkgs.qt5Full; }) [pkgs.libGLU pkgs.libGL]); + # Wants to check against a real DB, Needs freetds + odbc = dontCheck (addExtraLibraries super.odbc [ pkgs.freetds ]); + # Tests attempt to use NPM to install from the network into # /homeless-shelter. Disabled. purescript = dontCheck super.purescript; diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index e916800ba87..1a05ab37a03 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -191955,8 +191955,6 @@ self: { benchmarkHaskellDepends = [ async base text weigh ]; description = "Haskell binding to the ODBC API, aimed at SQL Server driver"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; }) {inherit (pkgs) unixODBC;}; "odd-jobs" = callPackage diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix index 6bbcabbf5a5..48ee2ee3a47 100644 --- a/pkgs/development/haskell-modules/non-hackage-packages.nix +++ b/pkgs/development/haskell-modules/non-hackage-packages.nix @@ -26,14 +26,19 @@ self: super: { nix-output-monitor = self.callPackage ../../tools/nix/nix-output-monitor { }; - # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git - ci-info = self.callPackage ../misc/haskell/hasura/ci-info {}; - # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git - pg-client = self.callPackage ../misc/haskell/hasura/pg-client {}; - # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git - graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser {}; - # cabal2nix --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git - graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine {}; + # hasura graphql-engine is not released to hackage. + # https://github.com/hasura/graphql-engine/issues/7391 + # + # pg-client and graphql-engine depend on a hasura fork of resource-pool + # which is provided by pool.nix + ci-info = self.callPackage ../misc/haskell/hasura/ci-info.nix {}; + pg-client = self.callPackage ../misc/haskell/hasura/pg-client.nix { + resource-pool = self.callPackage ../misc/haskell/hasura/pool.nix {}; + }; + graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser.nix {}; + graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine.nix { + resource-pool = self.callPackage ../misc/haskell/hasura/pool.nix {}; + }; # Unofficial fork until PRs are merged https://github.com/pcapriotti/optparse-applicative/pulls/roberth # cabal2nix --maintainer roberth https://github.com/hercules-ci/optparse-applicative.git > pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix diff --git a/pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch b/pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch new file mode 100644 index 00000000000..5fcf408b2b0 --- /dev/null +++ b/pkgs/development/haskell-modules/patches/graphql-engine-mapkeys.patch @@ -0,0 +1,13 @@ +diff --git a/server/src-lib/Data/HashMap/Strict/Extended.hs b/server/src-lib/Data/HashMap/Strict/Extended.hs +index eaff0dfba..5047a0e9d 100644 +--- a/src-lib/Data/HashMap/Strict/Extended.hs ++++ b/src-lib/Data/HashMap/Strict/Extended.hs +@@ -17,7 +17,7 @@ import qualified Data.Align as A + import qualified Data.Foldable as F + + import Data.Function +-import Data.HashMap.Strict as M ++import Data.HashMap.Strict as M hiding (mapKeys) + import Data.Hashable + import Data.List.NonEmpty (NonEmpty (..)) + import Data.These diff --git a/pkgs/development/haskell-modules/patches/hasura-884-compat.patch b/pkgs/development/haskell-modules/patches/hasura-884-compat.patch deleted file mode 100644 index bc000ba9cca..00000000000 --- a/pkgs/development/haskell-modules/patches/hasura-884-compat.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs -index 6cb70cf0..0c3789cd 100644 ---- server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs -+++ server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs -@@ -45,7 +45,7 @@ import GHC.AssertNF - import qualified ListT - import qualified Network.WebSockets as WS - import qualified StmContainers.Map as STMMap --import qualified System.IO.Error as E -+--import qualified System.IO.Error as E - - import qualified Hasura.Logging as L - -@@ -287,12 +287,6 @@ createServerApp (WSServer logger@(L.Logger writeLog) serverStatus) wsHandlers !p - let rcv = forever $ do - -- Process all messages serially (important!), in a separate thread: - msg <- liftIO $ -- -- Re-throw "receiveloop: resource vanished (Connection reset by peer)" : -- -- https://github.com/yesodweb/wai/blob/master/warp/Network/Wai/Handler/Warp/Recv.hs#L112 -- -- as WS exception signaling cleanup below. It's not clear why exactly this gets -- -- raised occasionally; I suspect an equivalent handler is missing from WS itself. -- -- Regardless this should be safe: -- handleJust (guard . E.isResourceVanishedError) (\()-> throw WS.ConnectionClosed) $ - WS.receiveData conn - writeLog $ WSLog wsId (EMessageReceived $ TBS.fromLBS msg) Nothing - _hOnMessage wsHandlers wsConn msg diff --git a/pkgs/development/misc/haskell/hasura/ci-info/default.nix b/pkgs/development/misc/haskell/hasura/ci-info.nix index 2770e74a698..ce16c9c17f0 100644 --- a/pkgs/development/misc/haskell/hasura/ci-info/default.nix +++ b/pkgs/development/misc/haskell/hasura/ci-info.nix @@ -1,3 +1,5 @@ +# This has been automatically generated by the script +# ./update.sh. This should not be changed by hand. { mkDerivation, aeson, aeson-casing, base, fetchgit, hashable , hpack, lib, template-haskell, text, th-lift-instances , unordered-containers @@ -7,8 +9,8 @@ mkDerivation { version = "0.1.0.0"; src = fetchgit { url = "https://github.com/hasura/ci-info-hs.git"; - sha256 = "0rn1799z4y7z1c6ijrr0gscarg25zmnfq0z9rrmk4ad727vf1ppc"; - rev = "6af5a68450347a02295a9cd050d05a8b2f5c06ab"; + sha256 = "018vfyg0y2sn497nigjrcs6b1v3i9bna06dsbvgr6wjikcl6dhh4"; + rev = "68247a83738ac4bb9f719f0e4213aeb7be9565cf"; fetchSubmodules = true; }; libraryHaskellDepends = [ diff --git a/pkgs/development/misc/haskell/hasura/graphql-engine.nix b/pkgs/development/misc/haskell/hasura/graphql-engine.nix new file mode 100644 index 00000000000..285094874e9 --- /dev/null +++ b/pkgs/development/misc/haskell/hasura/graphql-engine.nix @@ -0,0 +1,81 @@ +# This has been automatically generated by the script +# ./update.sh. This should not be changed by hand. +{ mkDerivation, aeson, aeson-casing, ansi-wl-pprint, asn1-encoding +, asn1-types, async, attoparsec, attoparsec-iso8601, auto-update +, base, base16-bytestring, base64-bytestring, binary, byteorder +, bytestring, case-insensitive, ci-info, containers, cron +, cryptonite, data-has, deepseq, dependent-map, dependent-sum +, directory, ekg-core, ekg-json, exceptions, fast-logger, fetchgit +, file-embed, filepath, generic-arbitrary, ghc-heap-view +, graphql-parser, hashable, hashable-time, hspec, hspec-core +, hspec-expectations, hspec-expectations-lifted, http-api-data +, http-client, http-client-tls, http-conduit, http-types, immortal +, insert-ordered-containers, jose, kan-extensions, lens, lens-aeson +, lib, lifted-async, lifted-base, list-t, memory, mime-types +, mmorph, monad-control, monad-loops, monad-validate, mtl, mustache +, mysql, mysql-simple, natural-transformation, network, network-uri +, odbc, optparse-applicative, pem, pg-client, postgresql-binary +, postgresql-libpq, process, profunctors, psqueues, QuickCheck +, quickcheck-instances, random, regex-tdfa, resource-pool, retry +, safe, safe-exceptions, scientific, semialign, semigroups, semver +, shakespeare, some, split, Spock-core, stm, stm-containers, tagged +, template-haskell, text, text-builder, text-conversions, these +, time, transformers, transformers-base, unix, unordered-containers +, uri-encode, utf8-string, uuid, validation, vector +, vector-instances, wai, warp, websockets, wreq, x509, x509-store +, yaml, zlib +}: +mkDerivation { + pname = "graphql-engine"; + version = "1.0.0"; + src = fetchgit { + url = "https://github.com/hasura/graphql-engine.git"; + sha256 = "0sw7jwj3ixr0nnh3i9yagiqjsvf83w79jd7ac9vdvm410jfjcnxf"; + rev = "5990ca403bf6e7dd66081720c329e513f0624fb6"; + fetchSubmodules = true; + }; + postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-casing ansi-wl-pprint asn1-encoding asn1-types async + attoparsec attoparsec-iso8601 auto-update base base16-bytestring + base64-bytestring binary byteorder bytestring case-insensitive + ci-info containers cron cryptonite data-has deepseq dependent-map + dependent-sum directory ekg-core ekg-json exceptions fast-logger + file-embed filepath ghc-heap-view graphql-parser hashable + hashable-time http-api-data http-client http-client-tls + http-conduit http-types immortal insert-ordered-containers jose + kan-extensions lens lens-aeson lifted-async lifted-base list-t + memory mime-types mmorph monad-control monad-loops monad-validate + mtl mustache mysql mysql-simple network network-uri odbc + optparse-applicative pem pg-client postgresql-binary + postgresql-libpq process profunctors psqueues QuickCheck + quickcheck-instances random regex-tdfa resource-pool retry + safe-exceptions scientific semialign semigroups semver shakespeare + some split Spock-core stm stm-containers tagged template-haskell + text text-builder text-conversions these time transformers + transformers-base unix unordered-containers uri-encode utf8-string + uuid validation vector vector-instances wai warp websockets wreq + x509 x509-store yaml zlib + ]; + executableHaskellDepends = [ + base bytestring ekg-core kan-extensions pg-client text + text-conversions time unix + ]; + testHaskellDepends = [ + aeson base bytestring containers cron dependent-map dependent-sum + generic-arbitrary graphql-parser hspec hspec-core + hspec-expectations hspec-expectations-lifted http-client + http-client-tls http-types insert-ordered-containers jose + kan-extensions lens lifted-base mmorph monad-control mtl + natural-transformation network-uri optparse-applicative pg-client + process QuickCheck safe scientific split template-haskell text time + transformers-base unordered-containers vector + ]; + doCheck = false; + homepage = "https://www.hasura.io"; + description = "GraphQL API over Postgres"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ lassulus ]; +} diff --git a/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix b/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix deleted file mode 100644 index 9e7d448e4c1..00000000000 --- a/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ mkDerivation, aeson, aeson-casing, ansi-wl-pprint, asn1-encoding -, asn1-types, async, attoparsec, attoparsec-iso8601, auto-update -, base, base64-bytestring, byteorder, bytestring, case-insensitive -, ci-info, containers, criterion, cryptonite, data-has, deepseq -, dependent-map, dependent-sum, directory, ekg-core, ekg-json -, fast-logger, fetchgit, file-embed, filepath, generic-arbitrary -, ghc-heap-view, graphql-parser, hashable, hspec, hspec-core -, hspec-expectations-lifted, http-client, http-client-tls -, http-types, immortal, insert-ordered-containers, jose, lens -, lifted-async, lifted-base, list-t, mime-types, monad-control -, monad-time, monad-validate, mtl, mustache, mwc-probability -, mwc-random, natural-transformation, network, network-uri -, optparse-applicative, pem, pg-client, postgresql-binary -, postgresql-libpq, process, profunctors, psqueues, QuickCheck -, regex-tdfa, safe, scientific, semver, shakespeare, split -, Spock-core, lib, stm, stm-containers, template-haskell, text -, text-builder, text-conversions, th-lift-instances, these, time -, transformers, transformers-base, unix, unordered-containers -, uri-encode, uuid, vector, wai, wai-websockets, warp, websockets -, wreq, x509, yaml, zlib, witherable, semialign, validation, cron -}: -mkDerivation { - pname = "graphql-engine"; - version = "1.0.0"; - src = fetchgit { - url = "https://github.com/hasura/graphql-engine.git"; - sha256 = "sha256-tNKoi3dtoXj0nn4qBgLBroo7SgX7SdVaHtBqjs1S3hQ="; - rev = "1e3eb035d3c915032ba23e502bcb0132b4d54202"; - fetchSubmodules = true; - }; - postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-casing ansi-wl-pprint asn1-encoding asn1-types async - attoparsec attoparsec-iso8601 auto-update base base64-bytestring - byteorder bytestring case-insensitive ci-info containers cryptonite - data-has deepseq dependent-map dependent-sum directory ekg-core - ekg-json fast-logger file-embed filepath generic-arbitrary - ghc-heap-view graphql-parser hashable http-client http-client-tls - http-types immortal insert-ordered-containers jose lens - lifted-async lifted-base list-t mime-types monad-control monad-time - monad-validate mtl mustache network network-uri - optparse-applicative pem pg-client postgresql-binary - postgresql-libpq process profunctors psqueues QuickCheck regex-tdfa - scientific semver shakespeare split Spock-core stm stm-containers - template-haskell text text-builder text-conversions - th-lift-instances these time transformers transformers-base unix - unordered-containers uri-encode uuid vector wai wai-websockets warp - websockets wreq x509 yaml zlib - witherable semialign validation - cron - ]; - executableHaskellDepends = [ - base bytestring pg-client text text-conversions - ]; - testHaskellDepends = [ - aeson base bytestring hspec hspec-core hspec-expectations-lifted - http-client http-client-tls lifted-base monad-control mtl - natural-transformation optparse-applicative pg-client process - QuickCheck safe split text time transformers-base - unordered-containers - ]; - benchmarkHaskellDepends = [ - async base bytestring criterion deepseq mwc-probability mwc-random - split text vector - ]; - doCheck = false; - homepage = "https://www.hasura.io"; - description = "GraphQL API over Postgres"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ offline ]; - hydraPlatforms = []; - broken = true; -} diff --git a/pkgs/development/misc/haskell/hasura/graphql-parser.nix b/pkgs/development/misc/haskell/hasura/graphql-parser.nix new file mode 100644 index 00000000000..f8cee5fe2c1 --- /dev/null +++ b/pkgs/development/misc/haskell/hasura/graphql-parser.nix @@ -0,0 +1,32 @@ +# This has been automatically generated by the script +# ./update.sh. This should not be changed by hand. +{ mkDerivation, aeson, attoparsec, base, bytestring, containers +, criterion, deepseq, fetchgit, filepath, hashable, hedgehog, lib +, prettyprinter, scientific, template-haskell, text, text-builder +, th-lift-instances, unordered-containers, vector +}: +mkDerivation { + pname = "graphql-parser"; + version = "0.2.0.0"; + src = fetchgit { + url = "https://github.com/hasura/graphql-parser-hs.git"; + sha256 = "015b1h475k8wmhm9hkrvyxr985x7d8yc0xgcdqj7vmziixvfwwwj"; + rev = "79beb0e85e00422a8a15318c0bc573765fc7b246"; + fetchSubmodules = true; + }; + libraryHaskellDepends = [ + aeson attoparsec base bytestring containers deepseq filepath + hashable hedgehog prettyprinter scientific template-haskell text + text-builder th-lift-instances unordered-containers vector + ]; + testHaskellDepends = [ + attoparsec base bytestring hedgehog prettyprinter scientific text + text-builder + ]; + benchmarkHaskellDepends = [ + base bytestring criterion prettyprinter text text-builder + ]; + homepage = "https://github.com/hasura/graphql-parser-hs"; + description = "A native Haskell GraphQL parser"; + license = lib.licenses.bsd3; +} diff --git a/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix b/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix deleted file mode 100644 index dbd3edf0064..00000000000 --- a/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ mkDerivation, aeson, attoparsec, base, bytestring, containers -, criterion, fetchgit, filepath, hedgehog, hpack, prettyprinter -, protolude, regex-tdfa, scientific, lib, template-haskell, text -, text-builder, th-lift-instances, unordered-containers, vector -}: -mkDerivation { - pname = "graphql-parser"; - version = "0.1.0.1"; - src = fetchgit { - url = "https://github.com/hasura/graphql-parser-hs.git"; - sha256 = "sha256-oem/h0AQPk7eSM/P6wMoWV9KirxutE4hnQWwrpQ6TGk="; - rev = "ba8e26fef1488cf3c8c08e86f02730f56ec84e1f"; - fetchSubmodules = true; - }; - libraryHaskellDepends = [ - aeson attoparsec base bytestring containers filepath hedgehog - prettyprinter protolude regex-tdfa scientific template-haskell text - text-builder th-lift-instances unordered-containers vector - ]; - libraryToolDepends = [ hpack ]; - testHaskellDepends = [ - aeson attoparsec base bytestring containers filepath hedgehog - prettyprinter protolude regex-tdfa scientific template-haskell text - text-builder th-lift-instances unordered-containers vector - ]; - benchmarkHaskellDepends = [ - aeson attoparsec base bytestring containers criterion filepath - hedgehog prettyprinter protolude regex-tdfa scientific - template-haskell text text-builder th-lift-instances - unordered-containers vector - ]; - doCheck = false; - prePatch = "hpack"; - homepage = "https://github.com/hasura/graphql-parser-hs#readme"; - license = lib.licenses.bsd3; -} diff --git a/pkgs/development/misc/haskell/hasura/pg-client.nix b/pkgs/development/misc/haskell/hasura/pg-client.nix new file mode 100644 index 00000000000..0f1d9a8cf94 --- /dev/null +++ b/pkgs/development/misc/haskell/hasura/pg-client.nix @@ -0,0 +1,35 @@ +# This has been automatically generated by the script +# ./update.sh. This should not be changed by hand. +{ mkDerivation, aeson, aeson-casing, attoparsec, base, bytestring +, Cabal, criterion, ekg-core, fetchgit, file-embed, hashable +, hashtables, hasql, hasql-pool, hasql-transaction, hspec, lib +, mmorph, monad-control, mtl, postgresql, postgresql-binary +, postgresql-libpq, resource-pool, retry, scientific +, template-haskell, text, text-builder, time, transformers-base +, uuid, vector +}: +mkDerivation { + pname = "pg-client"; + version = "0.1.0"; + src = fetchgit { + url = "https://github.com/hasura/pg-client-hs.git"; + sha256 = "1y79s3ai4h82szpm1j5n5ygybqr7cza9l0raxf39vgn66jhy1jd2"; + rev = "92975d0f8f933c8d06913dc97af259253bf7fb5f"; + fetchSubmodules = true; + }; + setupHaskellDepends = [ base Cabal ]; + libraryHaskellDepends = [ + aeson aeson-casing attoparsec base bytestring ekg-core hashable + hashtables mmorph monad-control mtl postgresql-binary + postgresql-libpq resource-pool retry scientific template-haskell + text text-builder time transformers-base uuid vector + ]; + librarySystemDepends = [ postgresql ]; + testHaskellDepends = [ base bytestring hspec mtl ]; + benchmarkHaskellDepends = [ + base bytestring criterion file-embed hashable hasql hasql-pool + hasql-transaction mtl postgresql-libpq text text-builder + ]; + homepage = "https://github.com/hasura/platform"; + license = lib.licenses.bsd3; +} diff --git a/pkgs/development/misc/haskell/hasura/pg-client/default.nix b/pkgs/development/misc/haskell/hasura/pg-client/default.nix deleted file mode 100644 index bccb3f6eda3..00000000000 --- a/pkgs/development/misc/haskell/hasura/pg-client/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ mkDerivation, aeson, aeson-casing, attoparsec, base, bytestring -, criterion, fetchgit, file-embed, hashable, hashtables, hasql -, hasql-pool, hasql-transaction, monad-control, mtl -, postgresql-binary, postgresql-libpq, resource-pool, retry -, scientific, lib, template-haskell, text, text-builder, th-lift -, th-lift-instances, time, transformers-base, uuid, vector -}: -mkDerivation { - pname = "pg-client"; - version = "0.1.0"; - src = fetchgit { - url = "https://github.com/hasura/pg-client-hs.git"; - sha256 = "1941gj5yp24kx0xb1nd774nwp5vnpsp6m83isqkwpyz9spl4sq7l"; - rev = "70a849d09bea9461e72c5a5bbde06df65aab61c0"; - fetchSubmodules = true; - }; - libraryHaskellDepends = [ - aeson aeson-casing attoparsec base bytestring hashable hashtables - monad-control mtl postgresql-binary postgresql-libpq resource-pool - retry scientific template-haskell text text-builder th-lift - th-lift-instances time transformers-base uuid vector - ]; - testHaskellDepends = [ base ]; - benchmarkHaskellDepends = [ - base bytestring criterion file-embed hashable hasql hasql-pool - hasql-transaction mtl postgresql-libpq text text-builder - ]; - homepage = "https://github.com/hasura/platform"; - license = lib.licenses.bsd3; -} diff --git a/pkgs/development/misc/haskell/hasura/pool.nix b/pkgs/development/misc/haskell/hasura/pool.nix new file mode 100644 index 00000000000..72127ad8d32 --- /dev/null +++ b/pkgs/development/misc/haskell/hasura/pool.nix @@ -0,0 +1,23 @@ +# This has been automatically generated by the script +# ./update.sh. This should not be changed by hand. +{ mkDerivation, base, fetchgit, hashable, hspec, lib, monad-control +, stm, time, transformers, transformers-base, vector +}: +mkDerivation { + pname = "resource-pool"; + version = "0.2.3.2"; + src = fetchgit { + url = "https://github.com/hasura/pool.git"; + sha256 = "00q1fxh72fgjwl1pi3lnp4xg8f3kfm6q12gs9scinwbymfgzarms"; + rev = "bc4c3f739a8fb8ec4444336a34662895831c9acf"; + fetchSubmodules = true; + }; + libraryHaskellDepends = [ + base hashable monad-control stm time transformers transformers-base + vector + ]; + testHaskellDepends = [ base hspec ]; + homepage = "http://github.com/bos/pool"; + description = "A high-performance striped resource pooling implementation"; + license = lib.licenses.bsd3; +} diff --git a/pkgs/development/misc/haskell/hasura/update.sh b/pkgs/development/misc/haskell/hasura/update.sh new file mode 100755 index 00000000000..227d3229ebe --- /dev/null +++ b/pkgs/development/misc/haskell/hasura/update.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p cabal2nix curl jq -I nixpkgs=. +# +# This script will update the hasura derivations to the latest version using +# cabal2nix. +# +# Note that you should always try building hasura graphql-engine after updating it here, since +# some of the overrides in pkgs/development/haskell/configuration-nix.nix may +# need to be updated/changed. + +set -eo pipefail + +# This is the directory of this update.sh script. +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +# graphql-engine derivation created with cabal2nix. +engine_derivation_file="${script_dir}/graphql-engine.nix" +parser_derivation_file="${script_dir}/graphql-parser.nix" +ciinfo_derivation_file="${script_dir}/ci-info.nix" +pgclient_derivation_file="${script_dir}/pg-client.nix" +pool_derivation_file="${script_dir}/pool.nix" + +# TODO: get current revision of graphql-engine in Nixpkgs. +# old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$engine_derivation_file")" + +# This is the latest release version of graphql-engine on GitHub. +new_version=$(curl --silent "https://api.github.com/repos/hasura/graphql-engine/releases" | jq '.[0].tag_name' --raw-output) + +echo "Running cabal2nix and outputting to ${engine_derivation_file}..." + +echo "# This has been automatically generated by the script" > "$engine_derivation_file" +echo "# ./update.sh. This should not be changed by hand." >> "$engine_derivation_file" + +# 2.0.5 hardcoded for now, because 2.0.6 failed to build. should be removed when updating +# cabal2nix --revision "$new_version" --subpath server --maintainer lassulus "https://github.com/hasura/graphql-engine.git" >> "$engine_derivation_file" +cabal2nix --revision "v2.0.5" --subpath server --maintainer lassulus --no-check "https://github.com/hasura/graphql-engine.git" >> "$engine_derivation_file" + +echo "Running cabal2nix and outputting to ${parser_derivation_file}..." + +echo "# This has been automatically generated by the script" > "$parser_derivation_file" +echo "# ./update.sh. This should not be changed by hand." >> "$parser_derivation_file" + +cabal2nix "https://github.com/hasura/graphql-parser-hs.git" >> "$parser_derivation_file" + +echo "Running cabal2nix and outputting to ${ciinfo_derivation_file}..." + +echo "# This has been automatically generated by the script" > "$ciinfo_derivation_file" +echo "# ./update.sh. This should not be changed by hand." >> "$ciinfo_derivation_file" + +cabal2nix "https://github.com/hasura/ci-info-hs.git" >> "$ciinfo_derivation_file" + +echo "Running cabal2nix and outputting to ${pgclient_derivation_file}..." + +echo "# This has been automatically generated by the script" > "$pgclient_derivation_file" +echo "# ./update.sh. This should not be changed by hand." >> "$pgclient_derivation_file" + +cabal2nix "https://github.com/hasura/pg-client-hs.git" >> "$pgclient_derivation_file" + +echo "Running cabal2nix and outputting to ${pool_derivation_file}..." + +echo "# This has been automatically generated by the script" > "$pool_derivation_file" +echo "# ./update.sh. This should not be changed by hand." >> "$pool_derivation_file" + +cabal2nix "https://github.com/hasura/pool.git" >> "$pool_derivation_file" + +echo "###################" +echo "please update pkgs/servers/hasura/cli.nix vendorSha256" +echo "please update pkgs/development/haskell-modules/configuration-common.nix graphql-engine version" +echo "###################" + +echo "Finished." diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix index 4413324e159..4338f1bcaed 100644 --- a/pkgs/servers/hasura/cli.nix +++ b/pkgs/servers/hasura/cli.nix @@ -9,7 +9,7 @@ buildGoModule rec { subPackages = [ "cmd/hasura" ]; - vendorSha256 = "sha256-Fp6o3xZ/964q8yzJJFrqWZtQ5zYNy6Wreh42YxWjNbU="; + vendorSha256 = "1pkc9bh5s2vqnpkmnm91zaihh98b3drhiv4lcpi98rhln8r52b1k"; doCheck = false; |