haskellPackages.graphql-engine: update to 2.0.5 + refactor

This commit is contained in:
lassulus 2021-08-15 15:48:53 +02:00
parent 3b1a6b95d4
commit d07be4c5cb
14 changed files with 284 additions and 200 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 = [

View File

@ -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 ];
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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."