server: Bump GHC version to 8.10.2 (#5659)

This commit is contained in:
Alexis King 2020-08-26 23:16:23 -05:00 committed by GitHub
parent 15794ad817
commit 8c29f15b4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 24 additions and 28 deletions

View File

@ -1,9 +1,7 @@
# anchor refs to be used elsewhere
refs:
constants:
# TODO upload to hasura docker hub:
# - &server_builder_image hasura/graphql-engine-server-builder:2020-01-14
- &server_builder_image jberryman/graphql-engine-server-builder-8.10:2020-04-29
- &server_builder_image hasura/graphql-engine-server-builder:2020-08-26
skip_job_on_ciignore: &skip_job_on_ciignore
run:
name: checking if job should be terminated or not
@ -22,7 +20,7 @@ refs:
if [ -z "$CIRCLE_PR_NUMBER" ]; then
echo "Not a PR build, continuing test" && exit 0
fi
echo "Compare refs: ${CIRCLE_COMPARE_URL##http*/}"
echo "Compare refs: ${CIRCLE_COMPARE_URL##http*/}"
if git diff --quiet "${CIRCLE_COMPARE_URL##http*/}" -- server; then
echo "No server changes present, skipping test"
circleci-agent step halt
@ -165,10 +163,10 @@ jobs:
- checkout
- restore_cache:
keys:
- cabal-store-v2-{{ checksum "server/cabal.project" }}-{{ checksum "server/graphql-engine.cabal" }}-{{ checksum "server/cabal.project.freeze" }}
- cabal-store-v2-{{ checksum "server/cabal.project" }}-{{ checksum "server/graphql-engine.cabal" }}-
- cabal-store-v2-{{ checksum "server/cabal.project" }}-
- cabal-store-v2-
- cabal-store-v3-{{ checksum "server/cabal.project" }}-{{ checksum "server/graphql-engine.cabal" }}-{{ checksum "server/cabal.project.freeze" }}
- cabal-store-v3-{{ checksum "server/cabal.project" }}-{{ checksum "server/graphql-engine.cabal" }}-
- cabal-store-v3-{{ checksum "server/cabal.project" }}-
- cabal-store-v3-
- run:
name: Install latest postgresql client tools
command: |
@ -187,7 +185,7 @@ jobs:
make enable_coverage=true ci-build
fi
- save_cache:
key: cabal-store-v2-{{ checksum "server/cabal.project" }}-{{ checksum "server/graphql-engine.cabal" }}-{{ checksum "server/cabal.project.freeze" }}
key: cabal-store-v3-{{ checksum "server/cabal.project" }}-{{ checksum "server/graphql-engine.cabal" }}-{{ checksum "server/cabal.project.freeze" }}
paths:
- ~/.cabal/packages
- ~/.cabal/store
@ -416,7 +414,7 @@ jobs:
root: /build
paths:
- _cli_output
test_and_build_cli_migrations:
docker:
- image: hasura/graphql-engine-cli-migrations-builder:20200415

View File

@ -1,8 +1,6 @@
# Don't update this without updating the
# packager imager of graphql-engine
FROM phadej/ghc:8.10.1-stretch
# TODO https://github.com/haskell/docker-haskell/issues/17
#FROM haskell:8.10.1
FROM haskell:8.10.2-stretch
ARG docker_ver="17.09.0-ce"
ARG postgres_ver="12"
@ -14,7 +12,10 @@ RUN apt-get -y update \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
&& curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& apt-get -y update \
&& apt-get install -y g++ gcc libc6-dev libpq-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg upx netcat python3 python3-pip postgresql-client-${postgres_ver} postgresql-client-common \
&& apt-get install -y \
g++ gcc git gnupg libc6-dev libffi-dev libgmp-dev libkrb5-dev \
libpq-dev libssl-dev make netcat postgresql-client-${postgres_ver} \
postgresql-client-common python3 python3-pip upx xz-utils zlib1g-dev \
&& curl -sL https://deb.nodesource.com/setup_${node_ver} | bash - \
&& apt-get install -y nodejs \
&& curl -Lo /tmp/docker-${docker_ver}.tgz https://download.docker.com/linux/static/stable/x86_64/docker-${docker_ver}.tgz \

View File

@ -5,7 +5,7 @@ own machine and how to contribute.
## Pre-requisites
- [GHC](https://www.haskell.org/ghc/) 8.10.1 and [cabal-install](https://cabal.readthedocs.io/en/latest/)
- [GHC](https://www.haskell.org/ghc/) 8.10.2 and [cabal-install](https://cabal.readthedocs.io/en/latest/)
- There are various ways these can be installed, but [ghcup](https://www.haskell.org/ghcup/) is a good choice if youre not sure.
- [Node.js](https://nodejs.org/en/) (>= v8.9)
- npm >= 5.7

View File

@ -5,10 +5,8 @@ reject-unconstrained-dependencies: all
package graphql-engine
ghc-options:
-j3 -Werror
-- Limit heap size to 8GB, which is the amount of available memory on a
-- CircleCI `large` instance. (GHC interprets G as GB, i.e. 1,000^3 bytes,
-- but instances seem to have 8GiB, i.e. 1,024^3 bytes, so that leaves us
-- a little breathing room.)
+RTS -M8G -RTS
-- Limit heap size to a little less than 8GB, which is the amount of
-- available memory on a CircleCI `large` instance.
+RTS -M7500m -RTS
tests: true
benchmarks: true

View File

@ -6,7 +6,7 @@
-- Or, if you want to customize the configuration:
-- $ cp cabal.project.dev cabal.project.local
with-compiler: ghc-8.10.1
with-compiler: ghc-8.10.2
package *
documentation: true

View File

@ -35,7 +35,7 @@ constraints: any.Cabal ==3.2.0.0,
attoparsec-iso8601 -developer -fast,
any.authenticate-oauth ==1.6.0.1,
any.auto-update ==0.1.6,
any.base ==4.14.0.0,
any.base ==4.14.1.0,
any.base-compat ==0.11.1,
any.base-compat-batteries ==0.11.1,
any.base-orphans ==0.8.2,
@ -137,8 +137,8 @@ constraints: any.Cabal ==3.2.0.0,
any.foldl ==1.4.6,
any.free ==5.1.3,
any.generic-arbitrary ==0.1.0,
any.ghc-boot-th ==8.10.1,
any.ghc-heap ==8.10.1,
any.ghc-boot-th ==8.10.2,
any.ghc-heap ==8.10.2,
any.ghc-heap-view ==0.6.2,
ghc-heap-view -prim-supports-any,
any.ghc-prim ==0.6.1,

View File

@ -541,9 +541,9 @@ runHGEServer env ServeOptions{..} InitCtx{..} pgExecCtx initTime shutdownApp pos
-- see memory stay high after finishing). In the theoretical worst case
-- there is such low haskell heap pressure that we never run finalizers to
-- free the foreign data from e.g. libpq.
-- - `-Iw` is not yet implemented in 8.10.1: https://gitlab.haskell.org/ghc/ghc/-/issues/18433
-- - even if it was these two knobs would still not give us a guarentee that
-- a major GC would always run at some minumum frequency (e.g. for finalizers)
-- - as of GHC 8.10.2 we have access to `-Iw`, but those two knobs still
-- dont give us a guarantee that a major GC will always run at some
-- minumum frequency (e.g. for finalizers)
--
-- ...so we hack together our own using GHC.Stats, which should have
-- insignificant runtime overhead.

View File

@ -1,6 +1,5 @@
-- | Types and functions related to the server initialisation
{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -O0 #-}
module Hasura.Server.Init
( module Hasura.Server.Init
, module Hasura.Server.Init.Config