hasura: 1.2.1 -> 1.3.1-beta.1

This commit is contained in:
Ariel Nunez 2020-08-13 15:43:19 -05:00
parent ad7f8917fd
commit a29ed35bc7
20 changed files with 169 additions and 200 deletions

View File

@ -1386,6 +1386,38 @@ self: super: {
# Testsuite trying to run `which haskeline-examples-Test`
haskeline_0_8_1_0 = dontCheck super.haskeline_0_8_1_0;
# Tests for list-t, superbuffer, and stm-containers
# depend on HTF and it is broken, 2020-08-23
list-t = dontCheck super.list-t;
superbuffer = dontCheck super.superbuffer;
stm-containers = dontCheck super.stm-containers;
# 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;
witherable = self.witherable_0_3_2;
}) (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";
}));
graphql-parser = super.graphql-parser.override {
protolude = self.protolude_0_3_0;
};
# Requires repline 0.4 which is the default only for ghc8101, override for the rest
zre = super.zre.override {
repline = self.repline_0_4_0_0.override {

View File

@ -76,6 +76,16 @@ self: super: {
singletons = self.singletons_2_7;
th-desugar = self.th-desugar_1_11;
insert-ordered-containers = super.insert-ordered-containers.override {
optics-core = self.optics-core_0_3_0_1;
optics-extra = self.optics-extra_0_3.override {
optics-core = self.optics-core_0_3_0_1;
};
};
# Jailbreaking because monoidal-containers hasnt bumped it's base dependency for 8.10.
monoidal-containers = doJailbreak super.monoidal-containers;
# `ghc-lib-parser-ex` (see conditionals in its `.cabal` file) does not need
# the `ghc-lib-parser` dependency on GHC >= 8.8. However, because we have
# multiple verions of `ghc-lib-parser(-ex)` available, and the default ones

View File

@ -41,6 +41,13 @@ 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

@ -2617,6 +2617,13 @@ extra-packages:
- yesod-persistent < 1.5 # pre-lts-11.x versions neeed by git-annex 6.20180227
- yesod-static ^>= 1.5 # pre-lts-11.x versions neeed by git-annex 6.20180227
- yesod-test ^>= 1.5 # pre-lts-11.x versions neeed by git-annex 6.20180227
- immortal == 0.2.2.1 # required by Hasura 1.3.1, 2020-08-20
- dependent-map == 0.2.4.0 # required by Hasura 1.3.1, 2020-08-20
- dependent-sum == 0.4 # required by Hasura 1.3.1, 2020-08-20
- witherable == 0.3.2 # required by Hasura 1.3.1, 2020-08-20
- protolude == 0.3.0 # required by Hasura 1.3.1, 2020-08-20
- optics-core == 0.3.0.1 # required by Hasura 1.3.1, 2020-08-20
- base-compat == 0.11.1 # required by Hasura 1.3.1, 2020-08-20
package-maintainers:
peti:
@ -7368,7 +7375,6 @@ broken-packages:
- list-mux
- list-prompt
- list-remote-forwards
- list-t
- list-t-attoparsec
- list-t-html-parser
- list-t-http-client
@ -8741,7 +8747,6 @@ broken-packages:
- prim-array
- prim-ref
- primes-type
- primitive-extras
- primitive-indexed
- primitive-maybe
- primitive-simd
@ -9874,7 +9879,6 @@ broken-packages:
- Spock-api-ghcjs
- Spock-api-server
- Spock-auth
- Spock-core
- Spock-digestive
- Spock-lucid
- Spock-worker
@ -9982,9 +9986,7 @@ broken-packages:
- STL
- STLinkUSB
- stm-chunked-queues
- stm-containers
- stm-firehose
- stm-hamt
- stm-promise
- stm-stats
- stm-supply
@ -10075,7 +10077,6 @@ broken-packages:
- sunroof-server
- super-user-spark
- superbubbles
- superbuffer
- supercollider-ht
- supercollider-midi
- superconstraints

View File

@ -18976,8 +18976,6 @@ self: {
];
description = "Another Haskell web framework for rapid development";
license = stdenv.lib.licenses.bsd3;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {};
"Spock-digestive" = callPackage
@ -71274,6 +71272,20 @@ self: {
broken = true;
}) {};
"dependent-map_0_2_4_0" = callPackage
({ mkDerivation, base, containers, dependent-sum }:
mkDerivation {
pname = "dependent-map";
version = "0.2.4.0";
sha256 = "0il2naf6gdkvkhscvqd8kg9v911vdhqp9h10z5546mninnyrdcsx";
revision = "1";
editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
libraryHaskellDepends = [ base containers dependent-sum ];
description = "Dependent finite maps (partial dependent products)";
license = "unknown";
hydraPlatforms = stdenv.lib.platforms.none;
}) {};
"dependent-map" = callPackage
({ mkDerivation, base, constraints-extras, containers
, dependent-sum
@ -71321,6 +71333,18 @@ self: {
broken = true;
}) {};
"dependent-sum_0_4" = callPackage
({ mkDerivation, base }:
mkDerivation {
pname = "dependent-sum";
version = "0.4";
sha256 = "07hs9s78wiybwjwkal2yq65hdavq0gg1h2ld7wbph61s2nsfrpm8";
libraryHaskellDepends = [ base ];
description = "Dependent sum type";
license = stdenv.lib.licenses.publicDomain;
hydraPlatforms = stdenv.lib.platforms.none;
}) {};
"dependent-sum" = callPackage
({ mkDerivation, base, constraints-extras, some }:
mkDerivation {
@ -142704,6 +142728,25 @@ self: {
broken = true;
}) {};
"immortal_0_2_2_1" = callPackage
({ mkDerivation, base, lifted-base, monad-control, stm, tasty
, tasty-hunit, transformers, transformers-base
}:
mkDerivation {
pname = "immortal";
version = "0.2.2.1";
sha256 = "13lddk62byx8w41k80d24q31mmijacnqqz64zrrkls9si2ia2jpd";
libraryHaskellDepends = [
base lifted-base monad-control stm transformers-base
];
testHaskellDepends = [
base lifted-base stm tasty tasty-hunit transformers
];
description = "Spawn threads that never die (unless told to do so)";
license = stdenv.lib.licenses.mit;
hydraPlatforms = stdenv.lib.platforms.none;
}) {};
"immortal" = callPackage
({ mkDerivation, base, stm, tasty, tasty-hunit, transformers
, unliftio-core
@ -160639,8 +160682,6 @@ self: {
testHaskellDepends = [ base-prelude HTF mmorph mtl-prelude ];
description = "ListT done right";
license = stdenv.lib.licenses.mit;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {};
"list-t-attoparsec" = callPackage
@ -203027,8 +203068,6 @@ self: {
];
description = "Extras for the \"primitive\" library";
license = stdenv.lib.licenses.mit;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {};
"primitive-foreign" = callPackage
@ -240984,8 +241023,6 @@ self: {
];
description = "Containers for STM";
license = stdenv.lib.licenses.mit;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {};
"stm-delay" = callPackage
@ -241055,8 +241092,6 @@ self: {
];
description = "STM-specialised Hash Array Mapped Trie";
license = stdenv.lib.licenses.mit;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {};
"stm-io-hooks" = callPackage
@ -244515,8 +244550,6 @@ self: {
];
description = "Efficiently build a bytestring from smaller chunks";
license = stdenv.lib.licenses.bsd3;
hydraPlatforms = stdenv.lib.platforms.none;
broken = true;
}) {};
"supercollider-ht" = callPackage
@ -273203,6 +273236,26 @@ self: {
license = stdenv.lib.licenses.gpl3;
}) {};
"witherable_0_3_2" = callPackage
({ mkDerivation, base, base-orphans, containers, hashable
, monoidal-containers, transformers, transformers-compat
, unordered-containers, vector
}:
mkDerivation {
pname = "witherable";
version = "0.3.2";
sha256 = "1iqf3kc9h599lbiym8rf9b4fhj31lqwm1cxqz6x02q9dxyrcprmi";
revision = "1";
editedCabalFile = "01mprffm41km3pm5nlpsp2ig2izgl6ll9ylrym3dg01f9609aa0z";
libraryHaskellDepends = [
base base-orphans containers hashable monoidal-containers
transformers transformers-compat unordered-containers vector
];
description = "filterable traversable";
license = stdenv.lib.licenses.bsd3;
hydraPlatforms = stdenv.lib.platforms.none;
}) {};
"witherable" = callPackage
({ mkDerivation, base, base-orphans, containers, hashable, lens
, monoidal-containers, transformers, transformers-compat

View File

@ -23,4 +23,13 @@ self: super: {
# both are auto-generated by pkgs/development/tools/haskell/haskell-language-server/update.sh
haskell-language-server = self.callPackage ../tools/haskell/haskell-language-server { };
hls-ghcide = self.callPackage ../tools/haskell/haskell-language-server/hls-ghcide.nix { };
# 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 {};
}

View File

@ -0,0 +1,26 @@
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

@ -17,18 +17,18 @@
, 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
, 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 = "0hg44zl3gqa8lq7kggwgmgbsgdc7zrv5cxs507vilg11xklsbz4l";
rev = "27b0b59361cebecd074bd59123f602e7b013bac1";
sha256 = "sha256-tNKoi3dtoXj0nn4qBgLBroo7SgX7SdVaHtBqjs1S3hQ=";
rev = "1e3eb035d3c915032ba23e502bcb0132b4d54202";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
@ -48,6 +48,8 @@ mkDerivation {
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

View File

@ -5,11 +5,11 @@
}:
mkDerivation {
pname = "graphql-parser";
version = "0.1.0.0";
version = "0.1.0.1";
src = fetchgit {
url = "https://github.com/hasura/graphql-parser-hs.git";
sha256 = "0vz0sqqmr1l02d3f1pc5k7rm7vpxmg5d5ijvdcwdm34yw6x5lz1v";
rev = "623ad78aa46e7ba2ef1aa58134ad6136b0a85071";
sha256 = "sha256-oem/h0AQPk7eSM/P6wMoWV9KirxutE4hnQWwrpQ6TGk=";
rev = "ba8e26fef1488cf3c8c08e86f02730f56ec84e1f";
fetchSubmodules = true;
};
libraryHaskellDepends = [
@ -29,6 +29,7 @@ mkDerivation {
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 = stdenv.lib.licenses.bsd3;

View File

@ -9,7 +9,7 @@ buildGoModule rec {
subPackages = [ "cmd/hasura" ];
vendorSha256 = "0a3mlkl00r680v8x3hy24ykggq5qm7k3101krlyfrb5y4karp75a";
vendorSha256 = "sha256-Fp6o3xZ/964q8yzJJFrqWZtQ5zYNy6Wreh42YxWjNbU=";
doCheck = false;

View File

@ -1,63 +0,0 @@
{ haskell }:
with haskell.lib;
let
# version in cabal file is invalid
version = "1.2.1";
pkgs = haskell.packages.ghc865.override {
overrides = self: super: {
# cabal2nix --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
hasura-graphql-engine = justStaticExecutables
((self.callPackage ./graphql-engine.nix { }).overrideDerivation (d: {
name = "graphql-engine-${version}";
inherit version;
# hasura needs VERSION env exported during build
preBuild = "export VERSION=${version}";
}));
hasura-cli = self.callPackage ./cli.nix {
hasura-graphql-engine = self.hasura-graphql-engine // {
inherit version;
};
};
# internal dependencies, non published on hackage (find revisions in cabal.project file)
# cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
ci-info = self.callPackage ./ci-info.nix { };
# cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
graphql-parser = self.callPackage ./graphql-parser.nix { };
# cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
pg-client = self.callPackage ./pg-client.nix { };
# version constrained dependencies, without these hasura will not build,
# find versions in graphql-engine.cabal
# cabal2nix cabal://dependent-map-0.2.4.0
dependent-map = self.callPackage ./dependent-map.nix { };
# cabal2nix cabal://dependent-sum-0.4
dependent-sum = self.callPackage ./dependent-sum.nix { };
# cabal2nix cabal://these-0.7.6
these = doJailbreak (self.callPackage ./these.nix { });
# cabal2nix cabal://immortal-0.2.2.1
immortal = self.callPackage ./immortal.nix { };
# cabal2nix cabal://network-uri-2.6.1.0
network-uri = self.callPackage ./network-uri.nix { };
# cabal2nix cabal://ghc-heap-view-0.6.0
ghc-heap-view = disableLibraryProfiling (self.callPackage ./ghc-heap-view.nix { });
# unmark broewn packages and do required modifications
stm-hamt = doJailbreak (unmarkBroken super.stm-hamt);
superbuffer = dontCheck (doJailbreak (unmarkBroken super.superbuffer));
Spock-core = dontCheck (unmarkBroken super.Spock-core);
stm-containers = dontCheck (unmarkBroken super.stm-containers);
ekg-json = unmarkBroken super.ekg-json;
list-t = dontCheck (unmarkBroken super.list-t);
primitive-extras = unmarkBroken super.primitive-extras;
};
};
in {
inherit (pkgs) hasura-graphql-engine hasura-cli;
}

View File

@ -1,13 +0,0 @@
{ mkDerivation, base, containers, dependent-sum, stdenv }:
mkDerivation {
pname = "dependent-map";
version = "0.2.4.0";
sha256 = "5db396bdb5d156434af920c074316c3b84b4d39ba8e1cd349c7bb6679cb28246";
revision = "1";
editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
libraryHaskellDepends = [ base containers dependent-sum ];
homepage = "https://github.com/mokus0/dependent-map";
description = "Dependent finite maps (partial dependent products)";
license = "unknown";
hydraPlatforms = stdenv.lib.platforms.none;
}

View File

@ -1,10 +0,0 @@
{ mkDerivation, base, stdenv }:
mkDerivation {
pname = "dependent-sum";
version = "0.4";
sha256 = "a8deecb4153a1878173f8d0a18de0378ab068bc15e5035b9e4cb478e8e4e1a1e";
libraryHaskellDepends = [ base ];
homepage = "https://github.com/mokus0/dependent-sum";
description = "Dependent sum type";
license = stdenv.lib.licenses.publicDomain;
}

View File

@ -1,18 +0,0 @@
{ mkDerivation, base, binary, bytestring, Cabal, containers
, deepseq, filepath, ghc-heap, stdenv, template-haskell
, transformers
}:
mkDerivation {
pname = "ghc-heap-view";
version = "0.6.0";
sha256 = "99ed6034d02a7a942e1b6ed970e9f7028dcdfd5b5d29fd8a0fb89f1a5e7c5ec8";
enableSeparateDataOutput = true;
setupHaskellDepends = [ base Cabal filepath ];
libraryHaskellDepends = [
base binary bytestring containers ghc-heap template-haskell
transformers
];
testHaskellDepends = [ base deepseq ];
description = "Extract the heap representation of Haskell values and thunks";
license = stdenv.lib.licenses.bsd3;
}

View File

@ -1,17 +0,0 @@
{ mkDerivation, base, lifted-base, monad-control, stdenv, stm
, tasty, tasty-hunit, transformers, transformers-base
}:
mkDerivation {
pname = "immortal";
version = "0.2.2.1";
sha256 = "ed4aa1a2883a693a73fec47c8c2d5332d61a0626a2013403e1a8fb25cc6c8d8e";
libraryHaskellDepends = [
base lifted-base monad-control stm transformers-base
];
testHaskellDepends = [
base lifted-base stm tasty tasty-hunit transformers
];
homepage = "https://github.com/feuerbach/immortal";
description = "Spawn threads that never die (unless told to do so)";
license = stdenv.lib.licenses.mit;
}

View File

@ -1,18 +0,0 @@
{ mkDerivation, base, deepseq, HUnit, parsec, stdenv
, test-framework, test-framework-hunit, test-framework-quickcheck2
}:
mkDerivation {
pname = "network-uri";
version = "2.6.1.0";
sha256 = "423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0";
revision = "1";
editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32";
libraryHaskellDepends = [ base deepseq parsec ];
testHaskellDepends = [
base HUnit test-framework test-framework-hunit
test-framework-quickcheck2
];
homepage = "https://github.com/haskell/network-uri";
description = "URI manipulation";
license = stdenv.lib.licenses.bsd3;
}

View File

@ -1,25 +0,0 @@
{ mkDerivation, aeson, base, base-compat, bifunctors, binary
, containers, data-default-class, deepseq, hashable, keys, lens
, mtl, QuickCheck, quickcheck-instances, semigroupoids, stdenv
, tasty, tasty-quickcheck, transformers, transformers-compat
, unordered-containers, vector, vector-instances
}:
mkDerivation {
pname = "these";
version = "0.7.6";
sha256 = "9464b83d98e626360a8ad9836ba77e5201cd1e9c89b95b1b11a28ef3c23ac746";
libraryHaskellDepends = [
aeson base base-compat bifunctors binary containers
data-default-class deepseq hashable keys lens mtl QuickCheck
semigroupoids transformers transformers-compat unordered-containers
vector vector-instances
];
testHaskellDepends = [
aeson base base-compat bifunctors binary containers hashable lens
QuickCheck quickcheck-instances tasty tasty-quickcheck transformers
unordered-containers vector
];
homepage = "https://github.com/isomorphism/these";
description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
license = stdenv.lib.licenses.bsd3;
}

View File

@ -16300,17 +16300,9 @@ in
hashi-ui = callPackage ../servers/hashi-ui {};
/* This package duplicates a lot of functionality from haskellPackages
instead of using the packages we maintain there. Now, a recent update to
haskellPackages causes these tools to fail evaluation, and I have been
unable to mark them as "broken" in a way that ofBorg bot recognizes. Since
I don't want to merge code into master that generates evaluation errors, I
have no other idea but to comment them out entirely.
hasura-graphql-engine = haskellPackages.graphql-engine;
inherit (callPackage ../servers/hasura { })
hasura-cli
hasura-graphql-engine;
*/
hasura-cli = callPackage ../servers/hasura/cli.nix { };
heapster = callPackage ../servers/monitoring/heapster { };